$(EXTEN) wird nicht richtig aufgelöst

southy

Mitglied
Mitglied seit
6 Okt 2004
Beiträge
385
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich bastle grade wieder ein wenig - aber über einen Fehler komme ich nicht rüber:

Gegeben ist ein * und zwei sipgate-Accounts. Der eine - ältere, mit Guthaben drauf - soll für outgoing ins Mobilfunknetz, der andere, neue, mit Freiminuten, soll für outgoing ins Festnetz genutzt werden.
Mit dem neuen funktioniert (ins Festnetz) auch alles prima.
Das hinzufügen des zweiten, älteren, gestaltet sich aber schwieriger als gedacht: ein debug zeigt mir gravierende Unterschiede im Rufaufbau:

Was bei dem neuen noch ordentlich aussieht [Rufaufbau-debug]

INVITE sip:[email protected] SIP/2.0

sieht beim alten so aus:

INVITE sip:$(EXTEN)@sipgate.de SIP/2.0

Dementsprechend schlägt der Rufaufbau natürlich fehl.
Wieso bloß wird da die Variable nicht aufgelöst??! Und das passiert wirklich auch, wenn ich einen von beiden Accs in den Configfiles total auskommentiere. Egal, wie ich es anstelle, der ältere Account fiunktioniert nicht, ein letztens erst neu erstellter geht prima.

Die Konfiguration ist für beide absolut identisch (der eine Acc ist grade auskommentiert), hier meine sip.conf:
Code:
register => 5650xxx:[email protected]/5650xxx
;register => 431xxxx:[email protected]/4317xxx

; ---- Sipgate fuer Handy

[5650xxx]
type=peer
username=5650xxx
fromuser=5650xxx
secret=xxxx
host=sipgate.de
fromdomain=sipgate.de
insecure=very
canreinvite=no
nat=no
disallow=all
allow=ulaw


; ---- Sipgate fuer Festnetz

;[4317xxx]
;type=peer
;username=4317xxx
;fromuser=4317xxx
;secret=xxxxxx
;host=sipgate.de
;fromdomain=sipgate.de
;insecure=very
;canreinvite=no
;nat=no
;disallow=all
;allow=ulaw
und die extensions.conf:
Code:
[sipgate_out]
;exten => _01.,1,Dial,SIP/$(EXTEN)@4317xxx|45|r
exten => _0.,2,Dial,SIP/${EXTEN}@5650xxx|45|r

; [sipgate_handy_out]
; exten => _01.,1,Dial,SIP/$(EXTEN)@4317xxx|45|r

[ankommend] 
exten => 5650xxx,1,Dial,SIP/10|30|r
exten => 4317xxx,1,Dial,SIP/10|30|r
(Mal abgesehen davon, daß der eine Acc nicht funktioniert - mache ich das jetzt eher in einem neuen Context (sipgate_out) oder beides wie oben in sipgate_out?

Hat jemand einen Tipp? Ich meine, die config ist doch für beide Accs exakt analog, wieso geht der eine und der andere nicht??

Viele Grüße,
southy
 

Burmann

Mitglied
Mitglied seit
16 Feb 2005
Beiträge
372
Punkte für Reaktionen
0
Punkte
0
Ich hab nich alles gelesen, aber mit () geht's nicht. Nímm {}.
; exten => _01.,1,Dial,SIP/$(EXTEN)@4317xxx|45|r
 

southy

Mitglied
Mitglied seit
6 Okt 2004
Beiträge
385
Punkte für Reaktionen
0
Punkte
0
Oh mey,
welch peinlicher offensichtlicher Fehler :-(
Ist wohl doch schon arg spät gewesen gestern...
Danke!


Aber trotzdem erlaube ich mir die zweite Hälfte der Frage noch zu stellen:
ist cleverer so:
Code:
[sipgate_out]
exten => _01.,1,Dial,SIP/${EXTEN}@4317xxx|45|r
exten => _0.,2,Dial,SIP/${EXTEN}@5650xxx|45|r
oder so:
Code:
[sipgate_out]
exten => _0.,1,Dial,SIP/${EXTEN}@5650xxx|45|r

[sipgate_handy_out]
exten => _01.,1,Dial,SIP/${EXTEN}@4317xxx|45|r
Ich verstehe das doch richtig, daß die Bedingungen in dem Fall einfach von oben nach unten durchsucht werden? Dann wäre es an sich egal, aber die 1. Version übersichtlicher?

Danke und Grüße,
southy
 

Burmann

Mitglied
Mitglied seit
16 Feb 2005
Beiträge
372
Punkte für Reaktionen
0
Punkte
0
"die Bedingungen in dem Fall einfach von oben nach unten durchsucht werden" ->falsch

Bei Version 1.4: die besser besser passt.
Folgende Zeilen "passen" bei "0178" in dieser Reihenfolge (unabhängig davon in welcher Reihenfolge die Zeilen in extension.conf stehen).
Code:
exten => 0178,1,NoOp("0178")
exten => _017[8],1,NoOp("_017[8]")
exten => _017[89],1,NoOp("_017[89]")
exten => _017X,1,NoOp("_017X")
exten => _01[567]8,1,NoOp("_01[567]8")
exten => _01[567]X,1,NoOp("_01[567]X")
exten => _01[567].,1,NoOp("_01[567].")
exten => _01X.,1,NoOp("_01X.")
Wenn nur ein Dial-Befehl da steht, würde ich ein Context nehmen. Wenn noch mehr eingestellt werden soll (z.B. Absende-Rufnummer) könnte man mit goto arbeiten und kann so Übersicht haben, was gemacht wird und in den einzelnen Bereichen kann man mit "_X." arbeiten.

Code:
exten => _00.,1,goto(sipgate_out,${EXTEN},1)
exten => _01[567].,1,goto(sipgate_handy_out,${EXTEN},1)
exten => _090.,1,goto(TeureRufnummer,${EXTEN},1)
exten => _018.,1,goto(sipgate_out,${EXTEN},1)
...
exten => _X.1,Busy() ; für alle anderen Rufnummern "Besetzt"

[TeureRufnummer]
exten => _X.,1,TrySystem(echo "Teure Ruf# ${EXTEN} von ${Callerid(number)}" >>/var/log/asterisk/achtung.log)
exten => _X.,n,goto(sipgate_out,${EXTEN},1)

[sipgate_out]
exten => _X.,1,Set(Callerid(all)="Name" <5650xxx>)
exten => _X.,n,Dial,SIP/${EXTEN}@5650xxx|45|r
 

southy

Mitglied
Mitglied seit
6 Okt 2004
Beiträge
385
Punkte für Reaktionen
0
Punkte
0
Ok, mal wieder ein bisschen schlauer geworden :)
Danke!
 

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
233,793
Beiträge
2,038,504
Mitglieder
352,744
Neuestes Mitglied
Mr.Caipi