$(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
 
Ich hab nich alles gelesen, aber mit () geht's nicht. Nímm {}.
; exten => _01.,1,Dial,SIP/$(EXTEN)@4317xxx|45|r
 
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
 
"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
 
Ok, mal wieder ein bisschen schlauer geworden :)
Danke!
 
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.