2009-08-12 10 views
0

私のダイヤルプランですが、私は7桁の数字がユーザによってダイヤルされたことを知りたいと思っています。ただし、ダイヤルプランには既に_Xという拡張子が含まれています。これは7桁の番号チェックを無効にします。 ダイヤルプランに既に_Xが含まれていると考えているため、誰かがダイヤルした7桁の番号と一致する正しい拡張機能を教えてください。 。ダイヤルプランの7桁の数字と一致する

ありがとうございます。

+0

以下に投稿した回答をテストできましたか?もしそうならフィードバックを送ることができますか? – paracycle

答えて

1

7は、パターンが非パターンの後で常にチェックされるため、_X.を決して上書きしないでください。詳細はvoip-info.orgを参照してください。

+0

私は7桁の数字にマッチしていないので、私は_XXXXXXXを使用しました。だから、_X。つまり、0から9の任意の桁の後に任意の桁数が_XXXXXXXを上書きします。だから、それが起こるのを防ぐ方法はありますか? –

2

パターンが複数の拡張子に一致する場合、アスタリスクは最も特定の一致を実行します。

exten => _867530X,1,Dial(SIP/foo) 
exten => _NXXXXXX,1,Dial(SIP/foo) 
exten => _XXXXXXX,1,Dial(SIP/foo) 
exten => _X.,1,Dial(SIP/foo) 

使用「ダイヤルプランショー:同じ文脈で、次の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) 

アスタリスクは関係なく、コンテキスト内で表示される場所の次の順序でそれらを一致しますエクステンション@コンテキスト」をCLIで実行すると、アスタリスクはマッチの実行順序を表示します。たとえば:詳細については

*CLI> dialplan show [email protected] 
[ 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. =- 

私はアスタリスクのWikiをお勧めします

https://wiki.asterisk.org/wiki/display/AST/Pattern+Matching

またはアスタリスクDefinativeガイド

http://www.asteriskdocs.org/en/3rd_Edition/asterisk-book-html/asterisk-book.html#asterisk-DP-Basics-SECT-3.6

のvoip-infoが時代遅れの多くを持っている傾向があります情報。

1

あなたはすでにあなたが競合にダイヤルプランパターンを避けるようにしてください

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桁の表現 に一致するように

exten => _X.,1,Dial(SIP/foo) 
exten => _X.,2,Hangup 

を持って考えてみましょう。

関連する問題