Rufumleitung tut nicht

Hi,

ich habe auch gerade ein Problem mit der RUL.
Hab mir das jetzt im Diaplan so zusammen gesetzt:

Code:
exten => _2XXXX,n,NoOp(Anruf von ${CALLERID(num)} fuer ${EXTEN})
exten => _2XXXX,n,Set(cf=${DB_EXISTS(CF/${EXTEN})})
exten => _2XXXX,n,GotoIf($["${cf}" != "1" ]?normal:forward)
exten => _2XXXX,n(normal),NoOp(Keine Weiterleitung ${EXTEN} wird gerufen)
exten => _2XXXX,n,Dial(SIP/${EXTEN},20)
exten => _2XXXX,n,VoiceMail(${EXTEN},u)
exten => _2XXXX,n(forward),NoOp(Weiterleitung von ${EXTEN} zu ${DB(CF/${EXTEN})})
exten => _2XXXX,n,Set(target=${DB(CF/${EXTEN})})
exten => _2XXXX,n,Dial(SIP/${target})

Das Problem ist jetzt, dass die letzte Zeile nicht richtig funktioniert. Richte ich zum Beispiel eine RUL zur 222 ein, sehe ich im Asterisk:

Code:
 -- Executing [29100@default:8] NoOp("SIP/29400-09e47f58", "Weiterleitung von 29100 zu 222") in new stack
    -- Executing [29100@default:9] Set("SIP/29400-09e47f58", "target=222") in new stack
    -- Executing [29100@default:10] Dial("SIP/29400-09e47f58", "SIP/222") in new stack
[Apr 20 11:43:16] WARNING[2491]: chan_sip.c:2921 create_addr: No such host: default
[Apr 20 11:43:16] WARNING[2491]: app_dial.c:1202 dial_exec_full: Unable to create channel of type 'SIP' (cause 3 - No route to destination)
  == Everyone is busy/congested at this time (1:0/0/1)

Die 222 ist aber definitiv erreichbar, auch von der 29100 und der 29400 aus.
Wo liegt der Hund begraben?
 
Der Hund liegt - warum auch immer in dieser Zeile - im "default" begraben.

Es bleiben zwei Möglichkeiten:

A) Versuche Dial(Local/${target})
Damit wird ein Call in den lokalen Kontext zurückgeworfen, statt einen ausgehenden Call an einen nichtexistenten Provider "default" zu versuchen.

B) Du machst an dieser Stelle gar keinen Call sondern startest die Auswertung im Kontext neu, indem Du ein Goto nimmst: Goto(_deinKontext_|${target}|1). Dabei musst Du natürlich auch noch Deinen Kontext einsetzen, in dem Du Dich bewegst bzw. der, in dem das Umleitungsziel (222) gehandelt wird.

Mit der Variante B sind auch verkettete Rufumleitungen möglich, da sie ja die Auswertung neu startet, bis sie auf ein nicht-umgeleitetes Ziel trifft, und dann erst einen Call auslöst. Auch schont Variante B die Ressourcen im SIP-Stack, da nur einmal zum Schluss ein SIP-Call ausgelöst wird. Ganz idiotensicher ist die Goto-Geschichte aber auch nicht, man kann auch da bei der Programmierung ein paar Denkfehlern unterliegen. :)
 
Zuletzt bearbeitet:
Hi,

danke! Hatte schon vermutet, dass er im falschen Kontext nach der 222 sucht. Momentan ist das ganze noch eine Testumgebung, um die Möglichkeiten von Asterisk durchzuprobieren, daher hängt alles im default-context.
 
Kostenlos!

Statistik des Forums

Themen
248,886
Beiträge
2,303,952
Mitglieder
378,564
Neuestes Mitglied
warumdas