- Mitglied seit
- 27 Dez 2004
- Beiträge
- 3,309
- Punkte für Reaktionen
- 9
- Punkte
- 38
Also, ich habe mal nachgeschaut. Es müsste mit meiner Callbacklösung relativ einfach gehen, wenn man in den Incomingkontext etwas in der Art:
einbaut (mit 040123456 als Grundnummer von Sipgate Trunking) und im Übrigen mein Callthough-Beispiel nutzt.
Da dies natürlich zu einem Anruf auf 004940123456xxx führen würde, gehört die Übersetzung zum eigentlichen Ziel in den zugehörigen ausgehend1-Kontext:
Praktischerweise pakt man das in eine eigene Datei ("zieluebersetzungausgehend1.conf"), die man in ausgehend1 via #include zieluebersetzungausgehend1.conf in ausgehend1 einbindet.
Im eigentlichen Callbackteil meiner Beispielskripte müsste man die Variablen, in denen die Rückrufnummern und -wege hinterlegt sind, natürlich durch feste Werte ersetzen.
Damit wäre die Triggerlösung, die allerdings nur auf Nummern funktioniert, die man auch in der Datei hinterlegt hat, dafür aber sehr bequem ist, quick-and-dirty machbar.
Für ein traditionales Callback nimmt man zusätzlich die Standardlösung, wie man sie allehauf im Netz findet - z.B. mit der Triggernummer ...000.
Eine Alternative wäre natürlich auch, statt der zieluebersetzungausgehend1.conf die astdb zu verwenden:
wobei man DB(kurzwahl/${EXTEN}) natürlich erstmal mit den Zielen befüllen müsste. Das könnte man per Skript lösen.
Vorteil dabei wäre, dass man die so erweitern könnte, dass man bei Anruf auf eine noch nicht belegte Kurzwahl in eine Art Programmiermodus käme: Es würde ein klassisches Callback ausgelöst, bei dem man per dtmf das Ziel programmiert. Legt man danach auf, wird die Kurzwahl gespeichert.
Achtung: Ich habe das ganze nicht getestet, sondern nur logisch aus dem bereits Vorhandenen entwickelt. Das soll also eher als Experimentiermaterial dienen.
Ich empfehle auch, erst das ganze wie vorgesehen mit BoxToGo nach den Howto einzurichten und zu testen und sich erst dann an die Erweiterung auf DirectTriggerCallback zu erweitern.
Code:
exten => _040123456XXX.,1,
exten => _040123456XXX.,1,set(Anrufer=${EXTEN})
; Die Rufnummer muss ins internationale Format gewandelt werden
exten => _040123456XXX.,2,GotoIf($[${Anrufer:0:2}=00]?20:3)
exten => _040123456XXX.,3,GotoIf($[${Anrufer:0:1}=0]?4:10)
exten => _040123456XXX.,4,set(Anrufer=0049${Anrufer:1})
exten => _040123456XXX.,5,goto(20)
exten => _040123456XXX.,10,set(Anrufer=00${Anrufer})
exten => _040123456XXX.,11,goto(20)
; Jetzt merkt sich der Asterisk die (internationalisierte) Zielnummer für den Nutzer 1
exten => _040123456XXX.,20,Set(DB(callback/nummer1)=${Anrufer})
exten => _040123456XXX.,21,wait(1)
Da dies natürlich zu einem Anruf auf 004940123456xxx führen würde, gehört die Übersetzung zum eigentlichen Ziel in den zugehörigen ausgehend1-Kontext:
Code:
exten => _004940123456001.,1, Dial(SIP/0049eigentlichesziel1@eingerichteterausgehenderdellmont,,T)
exten => _004940123456002.,1, Dial(SIP/0049eigentlichesziel2@eingerichteterausgehenderdellmont,,T)
...
Praktischerweise pakt man das in eine eigene Datei ("zieluebersetzungausgehend1.conf"), die man in ausgehend1 via #include zieluebersetzungausgehend1.conf in ausgehend1 einbindet.
Im eigentlichen Callbackteil meiner Beispielskripte müsste man die Variablen, in denen die Rückrufnummern und -wege hinterlegt sind, natürlich durch feste Werte ersetzen.
Damit wäre die Triggerlösung, die allerdings nur auf Nummern funktioniert, die man auch in der Datei hinterlegt hat, dafür aber sehr bequem ist, quick-and-dirty machbar.
Für ein traditionales Callback nimmt man zusätzlich die Standardlösung, wie man sie allehauf im Netz findet - z.B. mit der Triggernummer ...000.
Eine Alternative wäre natürlich auch, statt der zieluebersetzungausgehend1.conf die astdb zu verwenden:
Code:
exten => _004940123456XXX.,1, Dial(SIP/${DB(kurzwahl/${EXTEN})}@eingerichteterausgehenderdellmont,,T)
Vorteil dabei wäre, dass man die so erweitern könnte, dass man bei Anruf auf eine noch nicht belegte Kurzwahl in eine Art Programmiermodus käme: Es würde ein klassisches Callback ausgelöst, bei dem man per dtmf das Ziel programmiert. Legt man danach auf, wird die Kurzwahl gespeichert.
Achtung: Ich habe das ganze nicht getestet, sondern nur logisch aus dem bereits Vorhandenen entwickelt. Das soll also eher als Experimentiermaterial dienen.
Ich empfehle auch, erst das ganze wie vorgesehen mit BoxToGo nach den Howto einzurichten und zu testen und sich erst dann an die Erweiterung auf DirectTriggerCallback zu erweitern.
Zuletzt bearbeitet: