Asterisk 匹配拨号计划中的7位数字

Asterisk 匹配拨号计划中的7位数字,asterisk,Asterisk,我是我的拨号计划,我想知道用户何时拨打了一个7位数的号码。但是,拨号计划已经包含一个扩展名_X.,它将覆盖七位数的数字检查。 那么,考虑到拨号计划中已经包含了_X.,有人能告诉我与用户拨打的七位数号码相匹配的正确分机号码吗 谢谢。7永远不要覆盖\u X.,因为模式总是在非模式之后检查。有关更多详细信息,请参见。7不应覆盖\u X.,因为模式总是在非模式之后进行检查。有关详细信息,请参阅。如果一个模式匹配多个扩展名,星号将执行最特定的匹配 例如,给定相同上下文中的以下4个扩展 exten =>

我是我的拨号计划,我想知道用户何时拨打了一个7位数的号码。但是,拨号计划已经包含一个扩展名_X.,它将覆盖七位数的数字检查。 那么,考虑到拨号计划中已经包含了_X.,有人能告诉我与用户拨打的七位数号码相匹配的正确分机号码吗


谢谢。

7
永远不要覆盖
\u X.
,因为模式总是在非模式之后检查。有关更多详细信息,请参见。

7
不应覆盖
\u X.
,因为模式总是在非模式之后进行检查。有关详细信息,请参阅。

如果一个模式匹配多个扩展名,星号将执行最特定的匹配

例如,给定相同上下文中的以下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)
使用“拨号计划”显示extension@context“在CLI上,星号将显示匹配的执行顺序。例如:

*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. =-
更多信息,我推荐星号维基

或者在定义指南上加星号


voip信息往往有很多过时的信息

如果模式匹配不止一个扩展,星号将执行最具体的匹配

例如,给定相同上下文中的以下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)
使用“拨号计划”显示extension@context“在CLI上,星号将显示匹配的执行顺序。例如:

*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. =-
更多信息,我推荐星号维基

或者在定义指南上加星号


voip信息往往有很多过时的信息

认为你已经有了

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

尽量避免与计划模式冲突。

认为您已经有了计划模式

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

尽量避免与计划模式冲突。

我不是匹配7位数字,而是匹配7位数字,所以我使用了xxxxxx,我认为这是匹配7位数字的模式,如果我错了,请纠正我。所以,X。这意味着0到9之间的任何数字后跟任意数量的数字将覆盖xxxxxx。那么,有没有办法防止这种情况发生呢?我不是在匹配一个7位数的数字,而是一个7位数的数字,所以我使用了xxxxxx,我认为这是一个匹配7位数的模式,如果我错了,请纠正我。所以,X。这意味着0到9之间的任何数字后跟任意数量的数字将覆盖xxxxxx。那么,有没有办法防止这种情况发生?你能测试我在下面发布的答案吗?如果是,你能给出反馈吗?你能测试我在下面发布的答案吗?如果有,你能给出反馈吗?