在我的拨号方案中,我想知道用户何时拨打了7位数的号码。但是,拨号方案已经包含一个分机_X。,它将覆盖七位数号码检查。那么,有没有人可以告诉我,考虑到拨号方案已经包含_X,要使用正确的分机来匹配用户拨打的七位数号码。
谢谢。
发布于 2013-01-03 22:27:37
如果模式匹配超过一个扩展名,星号将执行最具体的匹配。
例如,给定相同上下文中的以下4个扩展
exten => _X.,1,Dial(SIP/foo)
exten => _NXXXXXX,1,Dial(SIP/foo)
exten => _XXXXXXX,1,Dial(SIP/foo)
exten => _867530X,1,Dial(SIP/foo)无论它们出现在上下文中的什么位置,星号都将按以下顺序匹配它们:
exten => _867530X,1,Dial(SIP/foo)
exten => _NXXXXXX,1,Dial(SIP/foo)
exten => _XXXXXXX,1,Dial(SIP/foo)
exten => _X.,1,Dial(SIP/foo)在CLI上使用"dialplan show extension@context“,星号将显示执行匹配的顺序。例如:
*CLI> dialplan show 8675309@default
[ Context 'default' created by 'pbx_config' ]
'_867530X' => 1. Dial(SIP/foo) [pbx_config]
'_NXXXXXX' => 1. Dial(SIP/foo) [pbx_config]
'_XXXXXXX' => 1. Dial(SIP/foo) [pbx_config]
'_X.' => 1. Dial(SIP/foo) [pbx_config]
-= 4 extensions (4 priorities) in 1 context. =-有关更多信息,我推荐使用Asterisk Wiki
https://wiki.asterisk.org/wiki/display/AST/Pattern+Matching
或使用星号标记定义指南
http://www.asteriskdocs.org/en/3rd_Edition/asterisk-book-html/asterisk-book.html#asterisk-DP-Basics-SECT-3.6
voip-info往往有很多过时的信息。
发布于 2013-02-12 13:58:37
假设你已经拥有了
exten => _X.,1,Dial(SIP/foo)
exten => _X.,2,Hangup目前,要匹配7位数表达式,可以这样做
exten => _X.,1,GotoIf( $[${LEN($EXTEN)} = 7] ? dig7)
exten => _X.,n,Dial(SIP/foo)
exten => _X.,n,Hangup
exten => _X.,n(dig7),Dial(ZAP/${EXTEN})
exten => _X.,n,Hangup尽量避免与拨号方案模式冲突。
发布于 2009-08-12 11:49:39
7永远不应该覆盖_X.,因为模式总是在非模式之后被检查。有关更多详细信息,请参阅voip-info.org。
https://stackoverflow.com/questions/1265632
复制相似问题