Hallo,
ich nutze einen SPA3102 (Linksys) um eine analoge Leitung in eine VOIP-Leitung zu verwandeln. Alle eingehenden Gespräche kommen über den ATA, alle ausgehenden laufen auch darüber. Soweit so gut.
Dem ATA hab ich als Disconnect-Tone folgendes eingestellt: 440@-30,440@-30;2(.5/.5/1+2)
Die Asterisk/FreePBX-Version: Core 2.10.1.0 , Voicemail 2.10.0.4
Das funktioniert soweit auch sehr gut. Wenn ein Gespräch zu Stande kam, wird die SIP-Verbindung einwandfrei beendet und es sind in der *-CLI keine offenen Channels mehr. Wenn aber die Voicebox rangeht und die Aufnahme nicht mit # beendet wird oder auch schon während der Ansage aufgelegt wird, dann bleibt der Channel offen und weitere Anrufversuche an die Nummer scheitern (in diesem Fall die 2753).
Wenn ich dann in der CLI "channel request hangup all" tipper, wird der Channel freigegeben und die Nummer 2753 kann wieder angerufen werden.
Ansonsten dauert es Ewigkeiten, bis der Asterisk die Leitung wieder freigibt...
Hier ein Mitschnitt der CLI-Ausgabe (verbosity 3) wenn der Anrufende aufgelegt hat, während die Mailbox-Ansage noch lief.
Bei einem "channel request hangup all", wird auf der CLI dann folgendes ausgegeben:
Ist das jetzt ein Bug von FreePBX oder von *? Gibt es da evtl. eine Lösung für? Wonach müßte ich evtl. suchen?
Wenn die Voicebox-Aufnahme mit # abgebrochen wird und die Aufnahme dann nicht mit 1 bestätigt wird, spuckt die *-CLI folgendes aus:
Bei Bestätigung mit # gefolgt von 1 geht das ganze etwas schneller... Schöner wäre es aber auch da, wenn die Voicebox bei Auflegen des Anrufers nach getätigter Aufnahme (auch ohne Bestätigung) das Gesprächsende erkennt und direkt wieder die Leitung freigibt.
Bin für jeden Hinweis dankbar
Sven
ich nutze einen SPA3102 (Linksys) um eine analoge Leitung in eine VOIP-Leitung zu verwandeln. Alle eingehenden Gespräche kommen über den ATA, alle ausgehenden laufen auch darüber. Soweit so gut.
Dem ATA hab ich als Disconnect-Tone folgendes eingestellt: 440@-30,440@-30;2(.5/.5/1+2)
Die Asterisk/FreePBX-Version: Core 2.10.1.0 , Voicemail 2.10.0.4
Das funktioniert soweit auch sehr gut. Wenn ein Gespräch zu Stande kam, wird die SIP-Verbindung einwandfrei beendet und es sind in der *-CLI keine offenen Channels mehr. Wenn aber die Voicebox rangeht und die Aufnahme nicht mit # beendet wird oder auch schon während der Ansage aufgelegt wird, dann bleibt der Channel offen und weitere Anrufversuche an die Nummer scheitern (in diesem Fall die 2753).
Wenn ich dann in der CLI "channel request hangup all" tipper, wird der Channel freigegeben und die Nummer 2753 kann wieder angerufen werden.
Ansonsten dauert es Ewigkeiten, bis der Asterisk die Leitung wieder freigibt...
Hier ein Mitschnitt der CLI-Ausgabe (verbosity 3) wenn der Anrufende aufgelegt hat, während die Mailbox-Ansage noch lief.
Code:
-- SIP/2753-00000031 is ringing
-- SIP/2753-00000031 is ringing
-- SIP/2753-00000031 is ringing
-- SIP/2753-00000031 is ringing
-- Nobody picked up in 10000 ms
-- Executing [s@macro-dial-one:43] ExecIf("SIP/1-pstn-00000030", "0?Set(DIALSTATUS=)") in new stack
-- Executing [s@macro-dial-one:44] GosubIf("SIP/1-pstn-00000030", "0?s-NOANSWER,1()") in new stack
-- Executing [s@macro-dial-one:45] MacroExit("SIP/1-pstn-00000030", "") in new stack
-- Executing [s@macro-exten-vm:8] Set("SIP/1-pstn-00000030", "SV_DIALSTATUS=NOANSWER") in new stack
-- Executing [s@macro-exten-vm:9] GosubIf("SIP/1-pstn-00000030", "0?docfu,1()") in new stack
-- Executing [s@macro-exten-vm:10] GosubIf("SIP/1-pstn-00000030", "0?docfb,1()") in new stack
-- Executing [s@macro-exten-vm:11] Set("SIP/1-pstn-00000030", "DIALSTATUS=NOANSWER") in new stack
-- Executing [s@macro-exten-vm:12] ExecIf("SIP/1-pstn-00000030", "0?MacroExit()") in new stack
-- Executing [s@macro-exten-vm:13] GotoIf("SIP/1-pstn-00000030", "0?s-NOANSWER,1") in new stack
-- Executing [s@macro-exten-vm:14] Macro("SIP/1-pstn-00000030", "vm,2753,NOANSWER,") in new stack
-- Executing [s@macro-vm:1] Macro("SIP/1-pstn-00000030", "user-callerid,SKIPTTL") in new stack
-- Executing [s@macro-user-callerid:1] Set("SIP/1-pstn-00000030", "AMPUSER=01017613312111") in new stack
-- Executing [s@macro-user-callerid:2] GotoIf("SIP/1-pstn-00000030", "0?report") in new stack
-- Executing [s@macro-user-callerid:3] ExecIf("SIP/1-pstn-00000030", "0?Set(REALCALLERIDNUM=01017613312111)") in new stack
-- Executing [s@macro-user-callerid:4] Set("SIP/1-pstn-00000030", "AMPUSER=") in new stack
-- Executing [s@macro-user-callerid:5] Set("SIP/1-pstn-00000030", "AMPUSERCIDNAME=") in new stack
-- Executing [s@macro-user-callerid:6] GotoIf("SIP/1-pstn-00000030", "1?report") in new stack
-- Goto (macro-user-callerid,s,12)
-- Executing [s@macro-user-callerid:12] GotoIf("SIP/1-pstn-00000030", "1?continue") in new stack
-- Goto (macro-user-callerid,s,25)
-- Executing [s@macro-user-callerid:25] Set("SIP/1-pstn-00000030", "CALLERID(number)=01017613312111") in new stack
-- Executing [s@macro-user-callerid:26] Set("SIP/1-pstn-00000030", "CALLERID(name)=anonym") in new stack
-- Executing [s@macro-user-callerid:27] Set("SIP/1-pstn-00000030", "CHANNEL(language)=en") in new stack
-- Executing [s@macro-vm:2] Set("SIP/1-pstn-00000030", "VMGAIN=""") in new stack
-- Executing [s@macro-vm:3] Macro("SIP/1-pstn-00000030", "blkvm-check,") in new stack
-- Executing [s@macro-blkvm-check:1] Set("SIP/1-pstn-00000030", "GOSUB_RETVAL=") in new stack
-- Executing [s@macro-blkvm-check:2] ExecIf("SIP/1-pstn-00000030", "0?Set(GOSUB_RETVAL=TRUE)") in new stack
-- Executing [s@macro-blkvm-check:3] MacroExit("SIP/1-pstn-00000030", "") in new stack
-- Executing [s@macro-vm:4] GotoIf("SIP/1-pstn-00000030", "1?vmx,1") in new stack
-- Goto (macro-vm,vmx,1)
-- Executing [vmx@macro-vm:1] Set("SIP/1-pstn-00000030", "MEXTEN=2753") in new stack
-- Executing [vmx@macro-vm:2] Set("SIP/1-pstn-00000030", "MMODE=NOANSWER") in new stack
-- Executing [vmx@macro-vm:3] Set("SIP/1-pstn-00000030", "RETVM=") in new stack
-- Executing [vmx@macro-vm:4] Set("SIP/1-pstn-00000030", "MODE=unavail") in new stack
-- Executing [vmx@macro-vm:5] GotoIf("SIP/1-pstn-00000030", "1?chknomsg") in new stack
-- Goto (macro-vm,vmx,8)
-- Executing [vmx@macro-vm:8] GotoIf("SIP/1-pstn-00000030", "0?s-NOANSWER,1") in new stack
-- Executing [vmx@macro-vm:9] GotoIf("SIP/1-pstn-00000030", "1?notdirect") in new stack
-- Goto (macro-vm,vmx,11)
-- Executing [vmx@macro-vm:11] NoOp("SIP/1-pstn-00000030", "Checking if ext 2753 is enabled: ") in new stack
-- Executing [vmx@macro-vm:12] GotoIf("SIP/1-pstn-00000030", "1?s-NOANSWER,1") in new stack
-- Goto (macro-vm,s-NOANSWER,1)
-- Executing [s-NOANSWER@macro-vm:1] Macro("SIP/1-pstn-00000030", "get-vmcontext,2753") in new stack
-- Executing [s@macro-get-vmcontext:1] Set("SIP/1-pstn-00000030", "VMCONTEXT=default") in new stack
-- Executing [s@macro-get-vmcontext:2] GotoIf("SIP/1-pstn-00000030", "0?200:300") in new stack
-- Goto (macro-get-vmcontext,s,300)
-- Executing [s@macro-get-vmcontext:300] NoOp("SIP/1-pstn-00000030", "") in new stack
-- Executing [s-NOANSWER@macro-vm:2] VoiceMail("SIP/1-pstn-00000030", "2753@default,u""") in new stack
-- <SIP/1-pstn-00000030> Playing '/var/spool/asterisk/voicemail/default/2753/unavail.slin' (language 'en')
-- <SIP/1-pstn-00000030> Playing 'vm-intro.ulaw' (language 'en')
-- <SIP/1-pstn-00000030> Playing 'beep.ulaw' (language 'en')
-- Recording the message
-- x=0, open writing: /var/spool/asterisk/voicemail/default/2753/tmp/DwanGa format: wav49, 0x6ae5668
-- x=1, open writing: /var/spool/asterisk/voicemail/default/2753/tmp/DwanGa format: wav, 0x6ae6018
Bei einem "channel request hangup all", wird auf der CLI dann folgendes ausgegeben:
Code:
-- <SIP/1-pstn-00000035> Playing 'vm-intro.ulaw' (language 'en')
voip*CLI> sip show channels
Peer User/ANR Call ID Format Hold Last Message Expiry Peer
10.69.0.24 1-pstn a6b30c4b-830c05 0x4 (ulaw) No Rx: ACK 1-pstn
10.69.0.24 (None) 523d1e70327f13e 0x0 (nothing) No Init: OPTIONS 1-pstn
2 active SIP dialogs
-- <SIP/1-pstn-00000035> Playing 'beep.ulaw' (language 'en')
-- Recording the message
-- x=0, open writing: /var/spool/asterisk/voicemail/default/2753/tmp/tKuVLW format: wav49, 0x2aaac808de38
-- x=1, open writing: /var/spool/asterisk/voicemail/default/2753/tmp/tKuVLW format: wav, 0x2aaac8037b68
[2012-12-14 22:10:50] NOTICE[11183]: chan_sip.c:26625 sip_poke_noanswer: Peer '1-pstn' is now UNREACHABLE! Last qualify: 6
[2012-12-14 22:11:00] NOTICE[11183]: chan_sip.c:21107 handle_response_peerpoke: Peer '1-pstn' is now Reachable. (5ms / 2000ms)
voip*CLI> sip show channels
Peer User/ANR Call ID Format Hold Last Message Expiry Peer
10.69.0.24 1-pstn a6b30c4b-830c05 0x4 (ulaw) No Rx: ACK 1-pstn
1 active SIP dialog
voip*CLI> channel request hangup all
Requested Hangup on channel 'SIP/1-pstn-00000035'
-- User hung up
== Parsing '/var/spool/asterisk/voicemail/default/2753/INBOX/msg0000.txt': == Found
== Parsing '/var/spool/asterisk/voicemail/default/2753/INBOX/msg0000.txt': == Found
== Parsing '/var/spool/asterisk/voicemail/default/2753/INBOX/msg0000.txt': == Found
== Spawn extension (macro-vm, s-NOANSWER, 2) exited non-zero on 'SIP/1-pstn-00000035' in macro 'vm'
== Spawn extension (macro-exten-vm, s, 14) exited non-zero on 'SIP/1-pstn-00000035' in macro 'exten-vm'
== Spawn extension (from-did-direct, 2753, 2) exited non-zero on 'SIP/1-pstn-00000035'
-- Executing [h@from-did-direct:1] Macro("SIP/1-pstn-00000035", "hangupcall,") in new stack
-- Executing [s@macro-hangupcall:1] GotoIf("SIP/1-pstn-00000035", "1?theend") in new stack
-- Goto (macro-hangupcall,s,3)
-- Executing [s@macro-hangupcall:3] ExecIf("SIP/1-pstn-00000035", "0?Set(CDR(recordingfile)=)") in new stack
-- Executing [s@macro-hangupcall:4] Hangup("SIP/1-pstn-00000035", "") in new stack
== Spawn extension (macro-hangupcall, s, 4) exited non-zero on 'SIP/1-pstn-00000035' in macro 'hangupcall'
== Spawn extension (from-did-direct, h, 1) exited non-zero on 'SIP/1-pstn-00000035'
voip*CLI>
Ist das jetzt ein Bug von FreePBX oder von *? Gibt es da evtl. eine Lösung für? Wonach müßte ich evtl. suchen?
Wenn die Voicebox-Aufnahme mit # abgebrochen wird und die Aufnahme dann nicht mit 1 bestätigt wird, spuckt die *-CLI folgendes aus:
Code:
-- User ended message by pressing #
-- <SIP/1-pstn-00000037> Playing 'auth-thankyou.ulaw' (language 'en')
-- <SIP/1-pstn-00000037> Playing 'vm-review.ulaw' (language 'en')
-- <SIP/1-pstn-00000037> Playing 'vm-review-urgent.ulaw' (language 'en')
-- <SIP/1-pstn-00000037> Playing 'vm-reachoper.ulaw' (language 'en')
-- <SIP/1-pstn-00000037> Playing 'vm-review.ulaw' (language 'en')
-- <SIP/1-pstn-00000037> Playing 'vm-review-urgent.ulaw' (language 'en')
-- <SIP/1-pstn-00000037> Playing 'vm-reachoper.ulaw' (language 'en')
-- <SIP/1-pstn-00000037> Playing 'vm-review.ulaw' (language 'en')
-- <SIP/1-pstn-00000037> Playing 'vm-review-urgent.ulaw' (language 'en')
-- <SIP/1-pstn-00000037> Playing 'vm-reachoper.ulaw' (language 'en')
-- <SIP/1-pstn-00000037> Playing 'vm-review.ulaw' (language 'en')
-- <SIP/1-pstn-00000037> Playing 'vm-review-urgent.ulaw' (language 'en')
-- <SIP/1-pstn-00000037> Playing 'vm-reachoper.ulaw' (language 'en')
== Parsing '/var/spool/asterisk/voicemail/default/2753/INBOX/msg0001.txt': == Found
== Parsing '/var/spool/asterisk/voicemail/default/2753/INBOX/msg0001.txt': == Found
== Parsing '/var/spool/asterisk/voicemail/default/2753/INBOX/msg0001.txt': == Found
-- <SIP/1-pstn-00000037> Playing 'vm-goodbye.ulaw' (language 'en')
-- Executing [s-NOANSWER@macro-vm:3] Goto("SIP/1-pstn-00000037", "exit-SUCCESS,1") in new stack
-- Goto (macro-vm,exit-SUCCESS,1)
-- Executing [exit-SUCCESS@macro-vm:1] GotoIf("SIP/1-pstn-00000037", "0?exit-RETURN,1") in new stack
-- Executing [exit-SUCCESS@macro-vm:2] Playback("SIP/1-pstn-00000037", "goodbye") in new stack
-- <SIP/1-pstn-00000037> Playing 'goodbye.gsm' (language 'en')
-- Executing [exit-SUCCESS@macro-vm:3] Hangup("SIP/1-pstn-00000037", "") in new stack
== Spawn extension (macro-vm, exit-SUCCESS, 3) exited non-zero on 'SIP/1-pstn-00000037' in macro 'vm'
== Spawn extension (macro-exten-vm, s, 14) exited non-zero on 'SIP/1-pstn-00000037' in macro 'exten-vm'
== Spawn extension (from-did-direct, 2753, 2) exited non-zero on 'SIP/1-pstn-00000037'
-- Executing [h@from-did-direct:1] Macro("SIP/1-pstn-00000037", "hangupcall,") in new stack
-- Executing [s@macro-hangupcall:1] GotoIf("SIP/1-pstn-00000037", "1?theend") in new stack
-- Goto (macro-hangupcall,s,3)
-- Executing [s@macro-hangupcall:3] ExecIf("SIP/1-pstn-00000037", "0?Set(CDR(recordingfile)=)") in new stack
-- Executing [s@macro-hangupcall:4] Hangup("SIP/1-pstn-00000037", "") in new stack
== Spawn extension (macro-hangupcall, s, 4) exited non-zero on 'SIP/1-pstn-00000037' in macro 'hangupcall'
== Spawn extension (from-did-direct, h, 1) exited non-zero on 'SIP/1-pstn-00000037'
Bei Bestätigung mit # gefolgt von 1 geht das ganze etwas schneller... Schöner wäre es aber auch da, wenn die Voicebox bei Auflegen des Anrufers nach getätigter Aufnahme (auch ohne Bestätigung) das Gesprächsende erkennt und direkt wieder die Leitung freigibt.
Bin für jeden Hinweis dankbar
Sven
Zuletzt bearbeitet: