[erledigt] Wieso wird die Variable falsch gesetzt?

johnyt11

Neuer User
Mitglied seit
27 Aug 2004
Beiträge
120
Punkte für Reaktionen
0
Punkte
16
Irgendwie hab ich ein Problem mit den Variablen im Dialplan.
Ich habe ein paar Varablen für meine Provider defieniert ,
die dann abhängig von der rufnummer beim wählen eingesetzt werden.

mit

callprov =>2


setzte ich den Provider 2, also NikotelAccount1

jetzt werden die Nummern überprüft und wenn sich nichts ändert, wird der Prvider in der Call Zeile richtig eingesetzt.

mit diesem Befehl wird gewählt:
exten => _X.,1,Dial(SIP/${vac${callprov}}${EXTEN:1}@${aac${callprov}},60,tT))


In der CLI kommt folgende Meldung und der Teilnehmer wird angerufen:

Code:
-- Executing Goto("Zap/2-1", "providerwahl|05731234567|1") in new stack
    -- Goto (providerwahl,05741602790,1)
    -- Executing Dial("Zap/2-1", "SIP/491231234567@NikotelAccount1|60|tT)") in new stack
    -- Called 495741602790@NikotelAccount1

wenn allerdings jetzt die Anwahl mit
0150..... anfängt, wird die Variable durch diese Zeile geändert.

exten => _015.,1,SetVar(callprov=1)


Dann kommt aber folgende Meldung in der CLI-Konsole:

Code:
 -- Executing Goto("Zap/2-1", "providerwahl|0151123456789|1") in new stack
    -- Goto (providerwahl,0151123456789,1)
    -- Executing SetVar("Zap/2-1", "callprov=1") in new stack
    -- Executing Congestion("Zap/2-1", "") in new stack

Ich hab doch nur die Variable callprov=1 anstatt callprov=2 abgeändert...
Was mach ich hier falsch?? :roll:


Hier noch der auszug aus der extensions.conf

Code:
[globals]
IAXINFO=guest

;;; Einstellungen & Kurzwahlen & andere Variablen ;;;
;; VoIP Provider der zur Zeit für augehende Gespräche genutzt werden soll

;;;; Provider ;;;;;
aac1 => 1und1Account1
aac2 => NikotelAccount1
aac3 => NikotelAccount2
aac4 => sipgate1

;;; Vorwahl für Deutschland der Provider ;;
vac1 => 49
vac2 => 49
vac3 => 49  
vac4 => 0

;; Standardtprovider
callprov =>2

;
;
;

[providerwahl]
;Handyprovider
;exten => _015.,1,SetVar(callprov=1)
exten => _016.,1,SetVar(callprov=2)
exten => _017.,1,SetVar(callprov=2)

;Sonderrufnummern (0180, 0800, 0700)
exten => _018.,1,SetVar(callprov=4)
exten => _0700.,1,SetVar(callprov=4)
exten => _0800.,1,SetVar(callprov=2)

include = outgoing

[outgoing]
exten => _X.,1,Dial(SIP/${vac${callprov}}${EXTEN:1}@${aac${callprov}},60,tT))
exten => _X.,2,Congestion
exten => _X.,3,Busy
exten => _X.,4,Hangup
 
hmm, versuch's mal mit SetGlobalVar anstatt SetVar, ist ja eine globale Variable.

Gruß,
Tin
 
Ich habs.

Das mit "SetGlobalVar" hat nicht geklappt. Damit kamm das gleiche.
ausserdem stellt "SetGlobalVar" die Variable dauerhaft um.

Ich hab gemerkt das gar nicht gewählt wird.

also "include = outgoing" weg.

exten => _015.,1,SetVar(callprov=3)
exten => _015.,2,Goto(outgoing|${EXTEN}|1)
.
.
usw.

so klappts.

Auszug der extensions.conf
Code:
[providerwahl]
;Handyprovider
exten => _015.,1,SetVar(callprov=3)
exten => _015.,2,Goto(outgoing|${EXTEN}|1)

exten => _016.,1,SetVar(callprov=2)
exten => _016.,2,Goto(outgoing|${EXTEN}|1)

exten => _017.,1,SetVar(callprov=2)
exten => _017.,2,Goto(outgoing|${EXTEN}|1)

;Sonderrufnummern (0180, 0800, 0700)
exten => _018.,1,SetVar(callprov=4)
exten => _018.,2,Goto(outgoing|${EXTEN}|1)

exten => _0700.,1,SetVar(callprov=4)
exten => _0700.,2,Goto(outgoing|${EXTEN}|1)

exten => _0800.,1,SetVar(callprov=2)
exten => _0800.,2,Goto(outgoing|${EXTEN}|1)

exten => _X.,1,Goto(outgoing|${EXTEN}|1)

[outgoing]
exten => _X.,1,Dial(SIP/${vac${callprov}}${EXTEN:1}@${aac${callprov}},60,tT))
exten => _X.,2,Congestion
exten => _X.,3,Busy
exten => _X.,4,Hangup
 
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.