[Gelöst] Fragen zum Dialplan -> Hotline Konfiguration

ScOp3

Neuer User
Mitglied seit
28 Jul 2006
Beiträge
9
Punkte für Reaktionen
0
Punkte
0
Mein erstes Posting in den "heiligen" Hallen.

Zuerst einmal ein absolut verdientes Danke für den Autor des Asterisk-Kurses.
Bis letzten Donnerstag hatte ich ein wenig was über Asterisk gehört und hatte nicht wirklich eine Idee was dort alles so existiert.
Seit gestern Vormittag läuft mein eigener Asterisk mit DID, Voicemail und allem was ich für's erste so brauche in einer VMWare Session.
Der "Asterisk für Fortgeschrittene Kurs" wird daher auch mit Spannung von mir erwartet.

Habe allerdings auch noch die ein oder andere Frage....

1) Für eine spezielle als Hotline definierte Nummer wünsche ich mir eine Art Eskalation die nach einem gewissen Zeitwert auf einem Mobilfunkanschluss landet.

Momentan hab ich folgenden Eintrag:

Code:
;--- Regeln für HOTLINE Rufnummer ---;

exten => <Zielnummer>,1,Dial,SIP/10&SIP/15&SIP/20&SIP/30&SIP/69|30|tr

Endergebnis sollte sein, dass nachdem keiner der SIP Devices innerhalb eines Zeitraumes von sagen wir mal 15 Sekunden abnimmt, als nächste Stufe ein oder mehrere Mobilfunknummern gewählt werden.

2) Wie man ebenfalls sieht ist mein Wählansatz recht manuell. Will heissen ich liste die SIP Targets in einem Statement. Lässt sich in Asterisk etwas wie in folgendem Schema basteln?

Code:
[DialGroup 1]
SIP/10
SIP/15
...

;--- Regeln für HOTLINE Rufnummer ---;

exten => <Zielnummer>,1,Dial,DialGroup 1|30|tr

Danke für's lesen!

ScOp3
 
Zuletzt bearbeitet:
zu 1)
Man kann das ähnlich wie beim Anrufbeantworter machen, also erst 15 Sekunden mit dem ersten Dial- Befehl klingellassen,
danach dann mit einem zweiten auch noch das Mobiltelefon.

zu 2)
Ich verwende dazu folgendes:
im [globals] Abschnitt der extensions.conf setze ich einfach Variablen, bsp:
Code:
CIBI=SIP/21&IAX2/39

Gewählt wird dann Dial,${CIBI}|30|tr

Geht eventuell aber auch anderst/besser
 
cibi schrieb:
Code:
CIBI=SIP/21&IAX2/39

Gewählt wird dann Dial,${CIBI}|30|tr

Die Idee ist doch recht gut und hätte ich eigentlich selbst drauf kommen können. Bin zu IOS bzw PixOS verwöhnt. :)

Dein Ansatz zu Variante 1 klingt auch logisch, Syntax muss ich mir dann gleich mal raussuchen.
 
funzt denn ein makro auch mit variablen?
 
Habe nun ein wenig rumexperimentiert und war nicht wirklich erfolgreich.
Die Geschichte mit dem Zusammenfassen von SIP Zielen per Variable hat leider auch nicht zum gewünschten Effekt geführt und wird daher erstmal unter dem Aspekt "Kosmetik" nach hinten geschoben.

Wirklich interessant bzw. problematisch ist momentan folgende Aufgabenstellung.

Anruf auf eine Hotlinenummer -> Dial interne N SIP Clients -> Warte 10 sek. -> Dial N Mobilfunknummern.
Der Effekt, dass zuerst die internen Telefone klingeln und danach die Mobilfunknumern ist für mich derzeit machbar. Mein Problem ist, dass nach dem Abheben auf einem Handy keine Sprachinformationen übertragen werden. Der Call ist offensichtlich etabliert aber es wird keine Sprachinformation übertragen.

Beispiel:

Code:
Executing NoOp("SIP/dus.net-081bc488", "Hotline Event") in new stack
    -- Executing Dial("SIP/dus.net-081bc488", "SIP/72|5|t") in new stack
    -- Called 72
    -- SIP/72-081bf078 is ringing
    -- Nobody picked up in 5000 ms
    -- Executing Wait("SIP/dus.net-081bc488", "1") in new stack
    -- Executing NoOp("SIP/dus.net-081bc488", "Setzen der Hotlinerufnummer als Absender") in new stack
    -- Executing Set("SIP/dus.net-081bc488", "CALLERID(name)=<nummer>") in new stack
    -- Executing Set("SIP/dus.net-081bc488", "CALLERID(number)=<nummer>") in new stack
    -- Executing NoOp("SIP/dus.net-081bc488", "Dial der Mobilfunkrufnummern") in new stack
    -- Executing Dial("SIP/dus.net-081bc488", "SIP/0172<nummer>@<dus.net account>") in new stack
    -- Called 0172<nummer>@<dus.net account>
    -- SIP/<dus.net account>-081b4688 is ringing
    -- SIP/<dus.net account>-081b4688 is making progress passing it to SIP/dus.net-081bc488
    -- SIP/<dus.net account>-081b4688 answered SIP/dus.net-081bc488
    -- Attempting native bridge of SIP/dus.net-081bc488 and SIP/000387224265-081b4688

Danach wird allerdings nichts übertragen...
Die verantwortliche Konfiguration in der "extension.conf" sieht wie folgt aus.

Code:
exten => <Hotlinerufnummer>,1,NoOp(Hotline Event)
exten => <Hotlinerufnummer>,n,Dial,SIP/72|5|t
exten => <Hotlinerufnummer>,n,Wait(1)
exten => <Hotlinerufnummer>,n,NoOp(Setzen der Hotlinerufnummer als Absender)
exten => <Hotlinerufnummer>,n,Set(CALLERID(name)=<Hotlinerufnummer>)
exten => <Hotlinerufnummer>,n,Set(CALLERID(number)=<Hotlinerufnummer>)
exten => <Hotlinerufnummer>,n,NoOp(Dial der Mobilfunkrufnummern)
exten => <Hotlinerufnummer>,n,Dial,SIP/<nummer>@<dus.net account>

Fragen :)

1) Muss ich einen externen Call erst "local" terminieren bevor ich ihn durchreichen kann? Wäre dies dann eines dieser "Channel Local" Konstrukte die ich noch nicht wirklich verstanden habe?

2) Hat wer ein praktisches Beispiel bzw. ein extension.conf Auszug der zeigt wie man es besser bzw. richtig macht?

Danke fürs lesen...
 
Wenn Du nichts hörst ist es ein anderen Problem.

Local Channel siehe hier und da der Link da drin von mir.
http://www.ip-phone-forum.de/showthread.php?t=110297

Nur mit LocalChannels kannst Du mehrere Ziele gleichzeitig anwählen und einstellen, ab wann pro Ziel angewählt wird und wie lange es am Ziel klingeln soll.

Das erste peer was abnimmt gewinnt, alle anderen Channels werden dann beendet.

PS: Die Kommunikation des Ursprungschannels zu den LOCALChannel geht nicht über normale Variablen, da diese nur im jeweiligen Channel gültig sind. Man kann aber die Anrufdauer und den Anrufbeginn in die EXTEN kodieren und die dann im aufgerufenen Channel auswerten.
 
Thomas007 schrieb:
Wenn Du nichts hörst ist es ein anderen Problem.

Die Frage ist nur was. Schaue mir gerade Ethereal Traces von dem Call-Setup an und bin der Meinung, dass ist okay so. Allerdings bin ich nicht wirklich fit was SIP angeht.

Nur mit LocalChannels kannst Du mehrere Ziele gleichzeitig anwählen und einstellen, ab wann pro Ziel angewählt wird und wie lange es am Ziel klingeln soll.Das erste peer was abnimmt gewinnt, alle anderen Channels werden dann beendet.

Kann ich doch grundlegend mit meinem Konstrukt durch "Dial,SIP/11&SIP/22" z.b. auch veranlassen. Das "Gewinnschema" ist auch ähnlich. First come first serve... :)
Der Unterschied zu dem Local sind dann wohl nur die unterschiedlichen Zeitparameter pro Ziel.

PS: Die Kommunikation des Ursprungschannels zu den LOCALChannel geht nicht über normale Variablen, da diese nur im jeweiligen Channel gültig sind. Man kann aber die Anrufdauer und den Anrufbeginn in die EXTEN kodieren und die dann im aufgerufenen Channel auswerten.

Diesen Satz muss ich noch verarbeiten, hoffe diesen Hinweis in naher Zukunft würdigen zu können :)

Trotzdem danke für die rasche Antwort. Allerdings bin ich momentan ein wenig ratlos wo ich als nächstes ansetzen könnte um das Problem zu debuggen bzw. zu lösen.

Any ideas?


EDIT: Habe selbe Aufgabenstellung nun mal mit der LOCAL Variante aus deinem Posting getestet. Das Ergebnis ist allerdings das gleiche. Wenn ich die Rufnummer oder eine andere Rufnummer direkt anwähle also den Call von Intern starte, funktioniert alles.

Ich raff's nicht... :)
 
Zuletzt bearbeitet:
Mein Konstrukt funktioniert. Es lag an fehlenden Port Forwardings. Daher konnten einfach kein RTP Traffic zu meinem Asterisk gelangen.

Habe jetzt die RTP.conf angepasst und den dortigen Port Bereich eingeschränkt. Ich hoffe diese Ports wirken sich auch auf das Verhalten bei "Incoming" Calls aus.

Evt. hilft es ja jemand in Zukunft weiter.

ScOp3
 
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.