Local ?!? oder: Wie Loop abfangen nach intern ?

dora71

Neuer User
Mitglied seit
25 Sep 2004
Beiträge
60
Punkte für Reaktionen
0
Punkte
6
Hallo zusammen,

leider habe ich zu o. g. Problem hier noch keine Lösung gefunden. Es geht um Folgendes:

Ich habe hier 2 Sip-Provider (sipgate.de und fwd) konfiguriert, funktioniert auch soweit alles.

sipgate bzw. fwd erkennen nun auch, daß ich eine Schleife erzeuge, wenn ich versuche, die Accounts gegenseitig anzurufen.

Code:
Got SIP response 482 "Loop Detected" back from 69.90.155.70

Dann geht es aber weiter:

Code:
Now forwarding SIP/3355-2d48 to 'Local/**77749xxxxxxxxxx@default' (thanks to SIP/fwd-abgehend-ae39)

Ist ja prinzipiell auch ok, aber ich weiß nicht, wie ich das jetzt so gezielt abfangen kann, daß mein Asterisk einfach bei so einem Fall auf "internen Betrieb" umschaltet. Habe gelesen, daß geht, indem man einen Local Channel aufbaut, aber mir leuchtet noch nicht ganz ein wie, und wie ich das in den Dialplan einbauen kann.

Habe einfach versucht, in die extensions.conf ein Kontext [Local] einzubauen, aber das funktioniert nicht :-(

Hat jemand eine Idee?!?

Grüße

Dora71
 
Das mit dem [local] Kontext funktioniert prinzipiell schon. Die Frage ist natürlich, was du dort reingeschrieben hast. Leider hat meine Wahrsagerkugel heute schon Feierabend, sodaß es ohne einen entsprechenden Auszug aus Deiner extensions.conf recht schwierig wird, Dir zu helfen.
 
@betateilchen:

Danke für die suuuuuuuuper-schnelle Antwort. Hast schon recht, die Glaskugel ist schwer zu befragen, habe bisher nur für Testzwecke folgendes reingeschrieben:

Code:
[Local]
exten => s,1,NoOp(Test ob die Schleife hierhin kommt)
exten => s,2,Congestion

Allerdings sehe ich im CLI nichts dergleichen, daß ich überhaupt dahin komme. Ich müßte doch wenigstens dieses NoOp im CLI nachverfolgen können?!? Oder ist der Kontext case-sensitive? Dann dürfe im CLI aber nicht "Local/xxxx" stehen, oder?!? kann aber auch nicht sein, habe ich gerade ausprobiert, selbes Ergebnis.

Folgendes spuckt Asterisk noch aus:

Code:
Jun 22 20:41:14 NOTICE[18126]: chan_local.c:494 local_alloc: No such extension/context **77749xxxxxxxxxxx@default creating local channel
Jun 22 20:41:14 NOTICE[18126]: app_dial.c:467 wait_for_answer: Unable to create local channel for call forward to 'Local/**77749xxxxxxxxxx@default' (cause = 0)
  == Everyone is busy/congested at this time (1:0/0/1)
    -- Executing Hangup("SIP/3355-96d7", "") in new stack

Merkwürdigerweise klingeln die Telefone trotzdem, als ob der Anruf durchgestellt wird, aber beim Abnehmen ist die Leitung tot, da der Anrufer schon vorher ein Besetzt erhält (s. Codeschnipsel oben).

Gibt es noch eine Datei, die ich bearbeiten muß, um aus diesem default-Kontext rauszukommen?

Benutze hier Asterisk Version 1.2.1

Gruß

Dora71
 
Zuletzt bearbeitet:
wenn ich Deine erste CLI Ausgabe richtig interpretiere, wird erstmal die extension **77749xxxxxxxxxx im Kontext default gesucht. Du mußt also dafür sorgen, daß diese extension dort auch gefunden wird. Mit der extension "s" kommst Du jedenfalls nicht weit. Du mußt schon die extension explizit angeben, also
Code:
exten => **77749xxxxxxxxxx,1,bla

Teste erstmal in [default] und dann in [local] - dann findest Du heraus, wohin der Anruf wirklich geschickt wird.

Groß/Kleinschreibung spielt in den Kontextnamen keine Rolle.
 
Dasselbe Problem hab ich auch. Ich habe 2 Sipgate-Nummern.
Die können sich bei meiner Konfiguration nicht gegenseitig anrufen.
Ich krieg dann ein:
Code:
Unable to create local channel for call forward to 'Local/ZIELRUFNUMMER@sip-in' (cause = 0)
Auszug aus der extensions.conf:
Code:
[internal]
exten => _[1-3]X,1,Dial(SIP/${EXTEN}&IAX2/${EXTEN},20)
exten => _[1-3]X,2,VoiceMail(${EXTEN})



[sip-in]
exten => xxxxxe0,1,Dial(SIP/11&IAX2/11,20)
exten => xxxxxe0,2,VoiceMail(11)

exten => xxxxxe1,1,Dial(SIP/12&IAX2/12,20)
exten => xxxxxe1,2,VoiceMail(12)

exten => xxxxxe2,1,Dial(IAX2/iaxmodem)
Das mit dem local channel hab ich noch nicht so ganz kapiert, aber
ich nehme an, dass hier die Lösung liegt.
 
Zuletzt bearbeitet von einem Moderator:
...man einen Local Channel aufbaut, aber mir leuchtet noch nicht ganz ein wie, und wie ich das in den Dialplan einbauen kann.

Das ist recht simpel:
Die Meldung "Now forwarding SIP/3355-2d48 to 'Local/**77749xxxxxxxxxx@default'" besagt, das er in dem context default die Rufnummer '**77749xxxxxxxxxx' wählen möchte. Also:
[@default]
exten => **77749xxxxxxxxxx,1,NoOp(Huhu)


Und die Meldung "forward to 'Local/ZIELRUFNUMMER@sip-in' " besagt, das er in dem context sip-in die Rufnummer 'ZIELRUFNUMMER' wählen möchte. Also:
[sip-in]
exten => ZIELRUFNUMMER,1,NoOp(huhu)



Dial(LOCAL/MyEXTEN@MyContext) macht etwa das gleiche wie goto(MyContext,MyEXTEN,1) es Springt also zum Context MyContext zur prio 1 und die gewählte nummer ist MyEXTEN. Das heist es muß sowas wie
[MyContext]exten => _My.,1,NoOP(Hier gehts weiter)
geben.

Ein Beispiel:
Eine MSN(Ruf#4567890) soll bei drei Telefonen Klingeln. Bei Telefon1 (Ruf# 101), bei Telefon2 (Ruf# 102) nur 20 Sekunden (der Chef will die Rufnummer sehen und eigendlich nicht gestört werden) und wenn nach 15 Sekunden noch keiner dran gegangen ist, soll's bei Telefon3 (Ruf#103) auch noch klingeln - wobei die auch ein Parallelruf (vgl. hier). möglich sein soll:
extension.conf
Code:
[globals]
ParRuf=00xxx00

[intern]
;_999XXX =>ParRuf setzen/loeschen
exten => _999XXX,2,Set(GLOBAL(ParRuf${EXTEN:3})=${IF($[${EXTEN:3}a=${CALLERID(number)}a]?00xxx00:${CALLERID(number)})}))
exten => _999XXX,n,Hangup()

;_XXX =>internen Teilnehmer rufen
exten => _XXX,1,Dial(SIP/${EXTEN}&SIP/${ParRuf${EXTEN}})
exten => 101,1,Dial(SIP/${EXTEN}&SIP/${ParRuf${EXTEN}},20)

;_00099[COLOR="DeepSkyBlue"][B]nn[/B][/COLOR]. =>Ruf [COLOR="deepskyblue"][B]nn[/B][/COLOR] Sekunden Verzoegern
exten => _00099[COLOR="deepskyblue"][B]XX[/B][/COLOR]XXX,1,Wait([COLOR="deepskyblue"][B]${EXTEN:5:7}[/B][/COLOR])
exten => _00099[COLOR="deepskyblue"][B]XX[/B][/COLOR]XXX,1,Dial(Local/${EXTEN:7})

[default]
;Rufe von Extern 
exten => 4567890,Dail(LOCAL/101@intern&LOCAL/102@intern&LOCAL/00099[B][COLOR="deepskyblue"]15[/COLOR][/B]103@intern)

Nach 15 Sekunden klingelt der Ruf bei drei Telefonen - wer zuerst dran geht hat das Gespräch.
 
Und wie mach ich das jetzt, wenn ich von einem SIP-Telefon über die
externe Nummer das andere SIP-Telefon anrufen will?
Telefon 1 mit xxxe0 (intern 11) will xxxe1 (intern 12) anrufen, aber
über die externe Nummer.
 
Was wählt Telefon1 und in welchen context wählt es mit der Kennung xxxe0 raus?
 
Für die beiden Telefone hab ich jeweils einen eigenen context zum
rauswählen:
Code:
[sip-out-1]
exten => _0.,1,Set(CALLERID(num)=EXTERNENUMMER1)
exten => _0.,2,Dial(SIP/0${EXTEN:1}@sip-ext-2)



[sip-out-2]
exten => _0.,1,Set(CALLERID(num)=EXTERNENUMMER2)
exten => _0.,2,Dial(SIP/0${EXTEN:1}@sip-ext-1)
 
Code:
[sip-out-1]
[B]include => sip-in[/B]
exten => _0.,1,Set(CALLERID(num)=EXTERNENUMMER1)
exten => _0.,2,Dial(SIP/${EXTEN}@sip-ext-2)

[sip-out-2]
[B]include => sip-in[/B]
exten => _0.,1,Set(CALLERID(num)=EXTERNENUMMER2)
exten => _0.,2,Dial(SIP/${EXTEN}@sip-ext-1)
sollte genügen wenn "xxxxxe0" = "EXTERNENUMMER1" ansonsten fügst du unter
Code:
[sip-in]
exten => EXTERNENUMMER1,1,Dial(SIP/11&IAX2/11,20)
exten => EXTERNENUMMER2,1,Dial(SIP/12&IAX2/12,20)
ein. Das Einfügen einer 0 vor ${EXTEN} und das Abschneiden mit ':1' hebt sich auf.
Bist du sicher, dass du "EXTERNENUMMER1" mit "sip-ext-2" wählst ?;)
 
Hast Recht. Mit sip-ext-2 hab ich mich nur vertippt. War aber in der
extensions.conf richtig.
Ich hab die externen Nummern jetzt eingefügt. Ging zuerst nicht.
Dann hab ich die Vorwahl dazugepackt. Jetzt geht's.
Jetzt hab ich mal mit 0049 gewählt. Dann geht's wieder nicht.
Was mach ich da am besten? Ein Platzhalter vor der Nummer ohne
Vorwahl?
 
Eine Unterscheidung ob ohne 0 mit einer 0 oder 2x0.
 
Ich hab jetzt folgendes probiert:
Code:
exten => _X.EXTERNENUMMER0,1,Dial(SIP/11&IAX2/11,20)

exten => _X.EXTERNENUMMER1,1,Dial(SIP/12&IAX2/12,20)
Wenn ich jetzt mit dem Telefon 1 die externe Nummer von Telefon 2
anrufe, dann erhalte ich ein Besetztzeichen, anstatt der Voicebox.
Mit _X. wollte ich eigentlich die Vorwahl, bzw. Areacode + Vorwahl
abfangen.
 

Statistik des Forums

Themen
244,808
Beiträge
2,218,758
Mitglieder
371,494
Neuestes Mitglied
msh7
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.