Goto macht nicht was es soll

kombjuder

IPPF-Promi
Mitglied seit
2 Nov 2004
Beiträge
3,086
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich versuche gerade eine rufnummernabhängige Liste für den zu benutzenden Provider zu erstellen.
Ich habe das so aufgebaut:

Code:
;ist das bekannte voip-Nummer? Dann Wahlregel aus Datenbank
exten => _XXXX.,1,NoOp(Wir checken die Datenbank vor dem waehlen)
exten => _XXXX.,2,DBGet(voipdial=VOIP/${EXTEN})

exten => _XXXX.,3,Dial(SIP/${VOIPDIAL},60,Ttr)
exten => _XXXX.,4,HangUp

exten => _XXXX.,103,Goto(Provider,${EXTEN},1)
exten => _XXXX.,104,Hangup

[Provider]
exten => _00XX.,1,Goto(voipjet|${EXTEN}|1)
exten => _0041.,2,Goto(4132511xxxx|${EXTEN}|1)
exten => _0[2-9].,3,Goto(5555xxx,${EXTEN},1)
exten => _010X.,4,Hangup
exten => _019X.,5,Hangup
exten => _01[2-8]X,6,Goto(isdn1,${EXTEN},1)
exten => 11X,7,Goto(Notruf,${EXTEN},1)
exten => 12XX,8,Goto(Benutzer,${EXTEN},1)
exten => 999,9,Goto(Benutzer,${EXTEN},1)
exten => _[1-9]XXX.,10,Goto(isdn1,${EXTEN,1)

Asterisk sagt bei einer Wahl:

Channel 'SIP/1234-842b'' sent into invalid extension '07612123xxx' in context 'Provider', but no invalid handler

Wo ist hier der Denkfehler begraben?
 
Ich vermute mal es läuft so:

Dial(SIP/${VOIPDIAL},60,Ttr) meldet besetzt... + 101 = 103
Dann folgt Goto(Provider, 07612123, 1) aber in [Provider] gibt es keine
Extensions mit Prio 1 für diese Nummer. Der nimmt nur Nummern die mit zwei Nullen beginnen.

Ich weiß ja nicht was Du damit genau erreichen willst. Aber so geht es nicht. ;-)
 
@kombjuder

Du mußt in Deinem Kontext [Provider] bei jeder Extension die Du definierst, immer wieder mit Prio 1 anfangen. Letztendlich bedeutet das in Deinem Beispiel, daß in jeder Zeile die Prio 1 stehen muß.
 
Jonny schrieb:
Ich vermute mal es läuft so:

Dial(SIP/${VOIPDIAL},60,Ttr) meldet besetzt... + 101 = 103

Nein, nicht bei besetzt, sondern wenn die Datenbankanfrage negativ verlief, also in der Datenbank keine Regel für Diaol over ip hinterlegt ist.
Dann folgt Goto(Provider, 07612123, 1) aber in [Provider] gibt es keine
Extensions mit Prio 1 für diese Nummer.
Nein, ursprünglich wurde 07612123xxx gewählt, die Rufnummer ist nicht in der Datenbank hinterlegt, desshalb nach Zeile 103.
Von hieraus wird nach [Provider] gesprungen.

Ich weiß ja nicht was Du damit genau erreichen willst.

In [Provider] soll die Auswahl des zu verwendenden Providers erfolgen, also

wenn _00XX. dann voipjet, Wahlregeln siehe dort
wenn _0041. dann Provider Schweiz, Wahlregel siehe dort
wenn 11x dann ISDN, Wahlregeln siehe dort
...

Aber so geht es nicht. ;-)

Hast du mir denn einen Vorschlag wie das geht?
Prio 1-4 sind ok und funktionieren (dank Betateilchen)
 
betateilchen schrieb:
@kombjuder

Letztendlich bedeutet das in Deinem Beispiel, daß in jeder Zeile die Prio 1 stehen muß.

Das ging ja eben auch nicht. Ich hatte zuerst im Kontext [Provider] alles mit Prio 1 aber das lief auch nicht.
Ich vermute mal, dass die unterschiedliche Rufnummernlänge das Problem ist. Ich muß auf wenigstens 4 Stellen auswerten, habe aber 3-stellige Rufnummer (Notruf zum Beispiel)
 
Bin grad unterwegs und kann es nicht nachschauen, aber irgendwie ist mir so als hätte ich schon mal ein ähnliches Problem gehabt und es so gelöst:

exten => _XXXX.,103,Goto(Provider,BYEXTENSION,1)
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.