Hallo Experten,
ich möchte eine CallBack-Funktion über CAPI einrichten. Wenn eine bestimmte MSN angerufen wird, soll die TK-Anlage den Ruf an Asterisk 1.4 über den internen Bus leiten. Asterisk soll auflegen und nach 10s den Anrufer zurückrufen. Ich scheiter leider daran, dass Asterisk beim Erreichen des Dial-Kommandos einfach ohne Fehlermeldung auflegt. Hier der Auszug aus der extensins.conf:
[isdn-in]
exten => 12,1,Goto(callback,{EXTEN},1)
[callback]
exten => _X.,1,SoftHangup(CAPI/ISDN1)
exten => _X.,2,Wait(10)
exten => _X.,3,Dial(CAPI/ISDN1(14:${CALLERID(num)},60,G(callback^i^2)
exten => i,1,NoOp()
exten => i,2,NoOp()
exten => Goto(callthrough,s,2)
[callthrough]
.....
Falls die Zeit von 10s zu kurz ist, habe ich sofort nach der Rufsignalisierung von Hand beim anrufenden Handy aufgelegt. Leider kommt dann kein Rückruf.
Asterisk zeigt folgendes, wenn der Dial-Befehl drann ist. Alles wird sofort, ohne Pause ausgegeben:
-- Executing [12@callback:3] Dial("CAPI/ISDN1#02/12-0", "CAPI/ISDN1/14:017xxxxxxxxx|60|G(callback^i^2)") in new stack
-- Called ISDN1/14:017xxxxxxxxx
== ISDN1#01: CAPI Hangingup for PLCI=0x201 in state 5
== Spawn extension (callback, 12, 3) exited non-zero on 'CAPI/ISDN1#02/12-0'
== ISDN1#02: CAPI Hangingup for PLCI=0xdead0000 in state 4
Ich habe in meiner Verzweiflung schon sehr viel ausprobiert. Einmal hat es sogar schon funktioniert. Als ich dann meiner Meinung nach überflüssiges Zeug (eigentlich nur Kommentar) löschte, ging es nicht mehr.
Hat jemand mit CallBack Erfahrung? Ich wollte eigentlich eine übersichtliche Lösung, die ohne externe Skripts auskommt. Hat Asterisk 1.4 hier eventuell ein Bug?
Vielen Dank für's Mitdenken.
ich möchte eine CallBack-Funktion über CAPI einrichten. Wenn eine bestimmte MSN angerufen wird, soll die TK-Anlage den Ruf an Asterisk 1.4 über den internen Bus leiten. Asterisk soll auflegen und nach 10s den Anrufer zurückrufen. Ich scheiter leider daran, dass Asterisk beim Erreichen des Dial-Kommandos einfach ohne Fehlermeldung auflegt. Hier der Auszug aus der extensins.conf:
[isdn-in]
exten => 12,1,Goto(callback,{EXTEN},1)
[callback]
exten => _X.,1,SoftHangup(CAPI/ISDN1)
exten => _X.,2,Wait(10)
exten => _X.,3,Dial(CAPI/ISDN1(14:${CALLERID(num)},60,G(callback^i^2)
exten => i,1,NoOp()
exten => i,2,NoOp()
exten => Goto(callthrough,s,2)
[callthrough]
.....
Falls die Zeit von 10s zu kurz ist, habe ich sofort nach der Rufsignalisierung von Hand beim anrufenden Handy aufgelegt. Leider kommt dann kein Rückruf.
Asterisk zeigt folgendes, wenn der Dial-Befehl drann ist. Alles wird sofort, ohne Pause ausgegeben:
-- Executing [12@callback:3] Dial("CAPI/ISDN1#02/12-0", "CAPI/ISDN1/14:017xxxxxxxxx|60|G(callback^i^2)") in new stack
-- Called ISDN1/14:017xxxxxxxxx
== ISDN1#01: CAPI Hangingup for PLCI=0x201 in state 5
== Spawn extension (callback, 12, 3) exited non-zero on 'CAPI/ISDN1#02/12-0'
== ISDN1#02: CAPI Hangingup for PLCI=0xdead0000 in state 4
Ich habe in meiner Verzweiflung schon sehr viel ausprobiert. Einmal hat es sogar schon funktioniert. Als ich dann meiner Meinung nach überflüssiges Zeug (eigentlich nur Kommentar) löschte, ging es nicht mehr.
Hat jemand mit CallBack Erfahrung? Ich wollte eigentlich eine übersichtliche Lösung, die ohne externe Skripts auskommt. Hat Asterisk 1.4 hier eventuell ein Bug?
Vielen Dank für's Mitdenken.
Zuletzt bearbeitet: