2009-08-12 5 views
0

In meinem Wählplan möchte ich wissen, wann eine 7-stellige Nummer vom Benutzer gewählt wurde. Der Wählplan enthält jedoch bereits eine Erweiterung _X. , die die Überprüfung der siebenstelligen Nummer überschreiben würde. Also, kann mir bitte jemand die richtige Nebenstelle sagen, die verwendet wird, um eine siebenstellige Nummer zu erreichen, die vom Benutzer gewählt wurde, da der Wählplan bereits _X enthält. .Abgleich einer 7-stelligen Nummer im Wählplan

Vielen Dank.

+0

Konnten Sie die Antwort, die ich unten gepostet habe, testen? Wenn ja, kannst du Feedback geben? – paracycle

Antwort

1

7 sollte niemals _X. überschreiben, da Muster immer nach Nicht-Mustern überprüft werden. Weitere Informationen finden Sie unter voip-info.org.

+0

ich bin nicht für eine Nummer 7, sondern eine siebenstellige Zahl, so dass ich _XXXXXXX, die ich denke, ist ein Muster, um eine siebenstellige Zahl übereinstimmen, korrigieren Sie mich, wenn ich falsch bin. Also, _X. was bedeutet, dass jede Ziffer von 0 bis 9 gefolgt von einer beliebigen Anzahl von Ziffern _XXXXXXX überschreiben würde. Gibt es einen Weg, dies zu verhindern? –

2

Wenn ein Muster übereinstimmt sind mehr als eine Erweiterung Asterisk wird die spezifischste Übereinstimmung ausführen.

Zum Beispiel der folgenden vier Erweiterungen im gleichen Kontext gegeben

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

Asterisk wird sie in der folgenden Reihenfolge übereinstimmen, unabhängig davon, wo sie im Kontext erscheinen:

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

Use „dialplan Show extension @ context "auf der CLI und Asterisk zeigt Ihnen die Reihenfolge, in der die Matches ausgeführt werden. Zum Beispiel:

*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. =- 

Für weitere Informationen empfehle ich die Asterisk Wiki

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

Oder Asterisk die Definative Führer

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

voip-info dazu neigt, eine Menge veralteter haben Information.

1

Betrachten Sie bereits

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

Derzeit haben die 7 DIGIT Expression passen Sie so etwas wie dieses

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 

Versuch tun können Konflikte Dialplans Muster zu vermeiden.