.titleBar { margin-bottom: 5px!important; }

$(EXTEN) wird nicht richtig aufgelöst

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von southy, 6 Okt. 2008.

  1. southy

    southy Mitglied

    Registriert seit:
    6 Okt. 2004
    Beiträge:
    385
    Zustimmungen:
    0
    Punkte für Erfolge:
    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:040xyz@sipgate.de 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:xxxx@sipgate.de/5650xxx
    ;register => 431xxxx:xxxxxx@sipgate.de/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
     
  2. Burmann

    Burmann Mitglied

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

    southy Mitglied

    Registriert seit:
    6 Okt. 2004
    Beiträge:
    385
    Zustimmungen:
    0
    Punkte für Erfolge:
    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
     
  4. Burmann

    Burmann Mitglied

    Registriert seit:
    16 Feb. 2005
    Beiträge:
    372
    Zustimmungen:
    0
    Punkte für Erfolge:
    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
    
     
  5. southy

    southy Mitglied

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