[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/[email protected]|60|tT)") in new stack
    -- Called [email protected]
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
 

TinTin

Aktives Mitglied
Mitglied seit
6 Mai 2004
Beiträge
1,864
Punkte für Reaktionen
0
Punkte
0
hmm, versuch's mal mit SetGlobalVar anstatt SetVar, ist ja eine globale Variable.

Gruß,
Tin
 

johnyt11

Neuer User
Mitglied seit
27 Aug 2004
Beiträge
120
Punkte für Reaktionen
0
Punkte
16
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
 

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
233,105
Beiträge
2,030,177
Mitglieder
351,441
Neuestes Mitglied
Airmr