Hallo,
ich hab hier ein Problem, wo ich nicht weiß, ob es wirklich mit dem Dialplan zusammen hängt, oder ob es andere Gründe hat, aber ich hab es mal hier reingestellt.
Ich habe analoge Telefone über eine ISDN-TK-Anlage und ein USB-HFC-Adapter im NT-Mode am Asterisk angeschlossen. Außerdem eine Fritz PCI dann am PSTN. Beide ISDN-Karten laufen über mISDN. Also insgesamt wie folgt:
Analog-Telefon -> TK-Anlage -> HFC-S-USB -> ASTERISK -> Fritz PCI -> PSTN.
Wenn ich nun mit meinem analogen Telefon eine nummer wähle wie 0173XXXXX bekomme ich leider folgendes Problem:
Bereits nach 01 wird Dial() ausgeführt, obwohl ich beispielsweise folgende extensions definiert habe.
exten => _01[5-7],1,Dial(SIP/XXX)
exten => _X.,1,Dial(mISDN/1/XXX)
Also bei 01 würde ja die _X. extension passen.
Wenn ich aber mit meinem analogen Telefon die 0173XXX wähle, dann würde ja nach der Pattern-Matching-Regel das erste Pattern besser passen als das zweite und damit würde über SIP gewählt. Das funktioniert aber nicht, weil ja bereits nach 01 schon über mISDN gewählt wird. Warum? Es muss doch eigentlich erstmal gewartet werden, was denn nach der 01 noch kommt, oder wo liegt mein Denkfehler?
Ich habe mir schon überlegt, dass man das Problem ja lösen könnte, indem man die zweite extension ersetzt durch:
exten => _XX.,1,Dial(mISDN/1/XXX)
Damit würde das Pattern erst matchen, nachdem die dritte Ziffer gewählt ist und dann das richtige ausgewählt. Aber dies kann ja auch nicht die Lösung sein, denn mal extrem, wenn ich ein recht spezielles Pattern habe für das ich mind. 5 Ziffern brauche (z.B. eine bestimmte Vorwahl) dann kann ich keine 4stelligen Ortsrufnummern mehr wählen, weil ja keiner der Pattern passen würde.
Wie löst man diesen Fall denn professionell in dem Dialplan, oder liegt der Fehler sogar ganz woanders, weil er eben nicht auf die komplette Rufnr. wartet?
Grüße
Andi
ich hab hier ein Problem, wo ich nicht weiß, ob es wirklich mit dem Dialplan zusammen hängt, oder ob es andere Gründe hat, aber ich hab es mal hier reingestellt.
Ich habe analoge Telefone über eine ISDN-TK-Anlage und ein USB-HFC-Adapter im NT-Mode am Asterisk angeschlossen. Außerdem eine Fritz PCI dann am PSTN. Beide ISDN-Karten laufen über mISDN. Also insgesamt wie folgt:
Analog-Telefon -> TK-Anlage -> HFC-S-USB -> ASTERISK -> Fritz PCI -> PSTN.
Wenn ich nun mit meinem analogen Telefon eine nummer wähle wie 0173XXXXX bekomme ich leider folgendes Problem:
Bereits nach 01 wird Dial() ausgeführt, obwohl ich beispielsweise folgende extensions definiert habe.
exten => _01[5-7],1,Dial(SIP/XXX)
exten => _X.,1,Dial(mISDN/1/XXX)
Also bei 01 würde ja die _X. extension passen.
Wenn ich aber mit meinem analogen Telefon die 0173XXX wähle, dann würde ja nach der Pattern-Matching-Regel das erste Pattern besser passen als das zweite und damit würde über SIP gewählt. Das funktioniert aber nicht, weil ja bereits nach 01 schon über mISDN gewählt wird. Warum? Es muss doch eigentlich erstmal gewartet werden, was denn nach der 01 noch kommt, oder wo liegt mein Denkfehler?
Ich habe mir schon überlegt, dass man das Problem ja lösen könnte, indem man die zweite extension ersetzt durch:
exten => _XX.,1,Dial(mISDN/1/XXX)
Damit würde das Pattern erst matchen, nachdem die dritte Ziffer gewählt ist und dann das richtige ausgewählt. Aber dies kann ja auch nicht die Lösung sein, denn mal extrem, wenn ich ein recht spezielles Pattern habe für das ich mind. 5 Ziffern brauche (z.B. eine bestimmte Vorwahl) dann kann ich keine 4stelligen Ortsrufnummern mehr wählen, weil ja keiner der Pattern passen würde.
Wie löst man diesen Fall denn professionell in dem Dialplan, oder liegt der Fehler sogar ganz woanders, weil er eben nicht auf die komplette Rufnr. wartet?
Grüße
Andi