我希望能够从拨号方案中仅隔离免费号码,然后通过SIP而不是通过本地中继路由。我的问题是优先级编号,似乎免费电话号码也会与主干分机相匹配。
目前: `
exten => _1XXXXXXXXXX,1,SetCallerID(${DEFAULT_CIDName} <${DEFAULT_CIDNum}>)
exten => _1XXXXXXXXXX,n,Dial(${TRUNK_OB}/${EXTEN:0:11})
exten => _1XXXXXXXXXX,n,Hangup
`
我希望能够添加:
exten => _1800NXXXXXX,1,Dial(SIP/sip.server.com/${EXTEN})
(以及888,855,877和866)
但免费电话号码也与中继拨号相匹配。
如果我将添加设置为优先级2,然后将中继拨号设置为优先级3,它是否只会拨打SIP并跳过中继线,或者是否可以将它们作为优先级1,然后如果它是免费的,只拨打SIP?
我到处寻找,无法得出结论。任何建议将不胜感激!!
答案 0 :(得分:0)
在您的示例中,您覆盖优先级1,拨号方案继续在“更广泛”的扩展模式中使用优先级2。在您的情况下,当您拨打18001234567时,将执行以下拨号方案:
exten => _1800NXXXXXX,1,Dial(SIP/sip.server.com/${EXTEN})
exten => _1XXXXXXXXXX,2,Dial(${TRUNK_OB}/${EXTEN:0:11})
exten => _1XXXXXXXXXX,3,Hangup
SetCallerID()被免费分机覆盖。有两种方法可以解决这个问题:
覆盖扩展名2,而不是1
exten => _1XXXXXXXXXX,1,SetCallerID(${DEFAULT_CIDName} <${DEFAULT_CIDNum}>)
exten => _1XXXXXXXXXX,n,Dial(${TRUNK_OB}/${EXTEN:0:11})
exten => _1XXXXXXXXXX,n,Hangup
; overwrite priority 2 (Dial) for toll free numbers
exten => _1800NXXXXXX,2,Dial(SIP/sip.server.com/${EXTEN})
这可能不是最干净的解决方案,因为在移动代码时你会被优先事项弄糊涂。
设置优先级为1的“dialstring”变量,您可以覆盖并稍后使用。
exten => _1XXXXXXXXXX,1,Set(DIALOUTSTRING=${TRUNK_OB}/${EXTEN:0:11})
exten => _1XXXXXXXXXX,n,SetCallerID(${DEFAULT_CIDName} <${DEFAULT_CIDNum}>)
exten => _1XXXXXXXXXX,n,Dial(${DIALOUTSTRING})
exten => _1XXXXXXXXXX,n,Hangup
; use another dialout for toll free numbers
exten => _1800NXXXXXX,1,Set(DIALOUTSTRING=SIP/sip.server.com/${EXTEN})