私のダイヤルプランでは、ユーザーがいつ 7 桁の番号をダイヤルしたかを知りたいです。ただし、ダイヤルプランにはすでに拡張子 _X が含まれています。これにより、7 桁の数字チェックが上書きされます。それで、ダイヤル プランにすでに _X が含まれていることを考慮して、ユーザーがダイヤルした 7 桁の番号に一致させるために使用する正しい内線番号を教えてください。.
ありがとうございました。
私のダイヤルプランでは、ユーザーがいつ 7 桁の番号をダイヤルしたかを知りたいです。ただし、ダイヤルプランにはすでに拡張子 _X が含まれています。これにより、7 桁の数字チェックが上書きされます。それで、ダイヤル プランにすでに _X が含まれていることを考慮して、ユーザーがダイヤルした 7 桁の番号に一致させるために使用する正しい内線番号を教えてください。.
ありがとうございました。
パターン マッチが複数の拡張子である場合、Asterisk は最も限定的なマッチを実行します。
たとえば、同じコンテキストで次の 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. =-
詳細については、The Asterisk Wiki をお勧めします
https://wiki.asterisk.org/wiki/display/AST/Pattern+Matching
または決定的なガイドにアスタリスクを付ける
voip-info には、多くの古い情報が含まれる傾向があります。
あなたがすでに持っていると考えてください
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
_X.
パターンは常に非パターンの後にチェックされるため、決してオーバーライドしないでください。詳細については 、 voip-info.orgを参照してください。