我们国家有两个主要的移动运营商 - (1)从818927,818937,818929开始,(2)从818917,818919,818987,818989开始。
我有4个usb调制解调器(huawei),我希望每个移动运营商使用2条不同的线路。
我正在使用DongleStatus,因为必须在同一个前缀上同时允许2个呼叫(例如,当有两个相同的SIP代理正在呼叫相同的方向时,例如,他们两个都试图同时从818927 *范围呼叫两个不同的号码)
这里我提到扩展配置不起作用!
但是如果您将删除所有扩展行并且只剩下其中一个,那么下面提到的整个DongleStatus脚本完美地工作(它允许随后由4个SIP代理同时使用4行)
我需要你的帮助才能找到上述提到的配置中的错误,或者你有关实现相同目标的其他方法的建议。我对星号比较陌生,我希望不要过于复杂的答案。
; buklau
exten => _818927XXXXXXX,1,DongleStatus(GSM-001,Dongle0_Status)
exten => _818937XXXXXXX,1,DongleStatus(GSM-001,Dongle0_Status)
exten => _818929XXXXXXX,1,DongleStatus(GSM-001,Dongle0_Status)
exten => _818917XXXXXXX,1,DongleStatus(GSM-003,Dongle2_Status)
exten => _818919XXXXXXX,1,DongleStatus(GSM-003,Dongle2_Status)
exten => _818987XXXXXXX,1,DongleStatus(GSM-003,Dongle2_Status)
exten => _818989XXXXXXX,1,DongleStatus(GSM-003,Dongle2_Status)
same => n,DongleStatus(GSM-002,Dongle1_Status)
same => n,DongleStatus(GSM-003,Dongle2_Status)
same => n,DongleStatus(GSM-004,Dongle3_Status)
same => n,GotoIf($[${Dongle0_Status} = 2]?dongle0dial:dongle1check)
same => n(dongle0dial),Dial(Dongle/GSM-001/${EXTEN:2},60,tT)
same => n,Hangup
same => n(dongle1check),GotoIf($[${Dongle1_Status} = 2]?dongle1dial:dongle2check)
same => n(dongle1dial),Dial(Dongle/GSM-002/${EXTEN:2},60,tT)
same => n,Hangup
same => n(dongle2check),GotoIf($[${Dongle2_Status} = 2]?dongle2dial:dongle3check)
same => n(dongle2dial),Dial(Dongle/GSM-003/${EXTEN:2},60,tT)
same => n,Hangup
same => n(dongle3check),GotoIf($[${Dongle3_Status} = 2]?dongle3dial:utel)
same => n(dongle3dial),Dial(Dongle/GSM-004/${EXTEN:2},60,tT)
same => n,Hangup
答案 0 :(得分:0)
这部分:
exten => _818989XXXXXXX,1,DongleStatus(GSM-003,Dongle2_Status)
same => n,DongleStatus(GSM-002,Dongle1_Status)
等于
exten => _818989XXXXXXX,1,DongleStatus(GSM-003,Dongle2_Status)
exten => _818989XXXXXXX,2,DongleStatus(GSM-002,Dongle1_Status)
因此它不适用于上面使用的任何其他模式。如果您需要完全支持上述所有内容,请使用类似
的内容exten => _8189XXXXXXXXX,2,DongleStatus(GSM-002,Dongle1_Status)
提示:您总是可以要求星号显示它如何理解拨号方案,为此
asterisk -rx "dialplan show number@context"