Summary: | ASTERISK-15272: [patch] busydetect incorrectly hangs up incoming call due to incoming DTMF seen as busy pattern. | ||
Reporter: | Alec Davis (alecdavis) | Labels: | |
Date Opened: | 2009-12-03 17:54:59.000-0600 | Date Closed: | 2009-12-20 03:07:21.000-0600 |
Priority: | Minor | Regression? | No |
Status: | Closed/Complete | Components: | Channels/chan_dahdi |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ( 0) dtmf_busydetector.diff.txt ( 1) dtmf_busydetector.diff2.txt ( 2) Voicemail_Integration_patterns.pdf | |
Description: | We're using WCTDM FXO modules for an IVR application/voicemail to a legacy PABX. Users, and the legacy PABX sends DTMF digits, after dialing voice mail. Users have these programmed into their phones, dial main number then pause, then dial known extension. The legacy PABX sends DTMF sequences immediately the call is answered, to advise VoiceMail that the call is from inside/out, a forwarded call due to non-answer etc. Asterisk see's these repeated tone on/off patterns as busy signal and hangs up. Having busydetect on is required, as with signalling=fxs_ls requires it. ****** ADDITIONAL INFORMATION ****** Attached, VoiceMail integration patterns. Asterisk SVN-branch-1.6.1-r226977 DAHDI Version: 2.2.0 Echo Canceller: MG2 libpri version: SVN-branch-1.4-r1249 | ||
Comments: | By: Alec Davis (alecdavis) 2009-12-03 18:09:50.000-0600 dialplan code to read VM Integration digits. [voicemail] exten => s,1,Answer() ;Read(variable[,filename[&filename2[&...]][,maxdigits[,options[,attempts[,timeout]]]]]) exten => s,n,Read(fujitsu,bdt/GT001100.GRT,10,,0,5) exten => s,n,NoOp(received ${fujitsu}) exten => s,n,Goto(ivr-bdt-daytime,s,1) Console ouputs below, both dialled from the same Fujitsu extension number - 4866. <b><u>CORRECT: Console output with 'busydetect=no'</u></b> [Dec 4 12:52:36] NOTICE[16111]: chan_dahdi.c:7549 ss_thread: Got event 18 (Ring Begin)... [Dec 4 12:52:37] NOTICE[16111]: chan_dahdi.c:7549 ss_thread: Got event 2 (Ring/Answered)... [Dec 4 12:52:39] NOTICE[16111]: chan_dahdi.c:7549 ss_thread: Got event 18 (Ring Begin)... -- Executing [s@voicemail:1] Answer("DAHDI/65-1", "") in new stack -- Executing [s@voicemail:2] Read("DAHDI/65-1", "fujitsu,bdt/GT001100.GRT,10,,0,5") in new stack -- Accepting a maximum of 10 digits. -- <DAHDI/65-1> Playing 'bdt/GT001100.GRT.gsm' (language 'en') -- User entered 'C14866' -- Executing [s@voicemail:3] NoOp("DAHDI/65-1", "received C14866") in new stack -- Executing [s@voicemail:4] Goto("DAHDI/65-1", "ivr-bdt-daytime,s,1") in new stack -- Goto (ivr-bdt-daytime,s,1) -- Executing [s@ivr-bdt-daytime:1] Answer("DAHDI/65-1", "") in new stack -- Executing [s@ivr-bdt-daytime:2] BackGround("DAHDI/65-1", "bdt/GT001100.GRT") in new st <b><u>INCORRECT: Console output with 'busydetect=yes'</u></b> [Dec 4 12:57:32] NOTICE[16624]: chan_dahdi.c:7549 ss_thread: Got event 18 (Ring Begin)... [Dec 4 12:57:33] NOTICE[16624]: chan_dahdi.c:7549 ss_thread: Got event 2 (Ring/Answered)... [Dec 4 12:57:34] NOTICE[16624]: chan_dahdi.c:7549 ss_thread: Got event 18 (Ring Begin)... -- Executing [s@voicemail:1] Answer("DAHDI/65-1", "") in new stack -- Executing [s@voicemail:2] Read("DAHDI/65-1", "fujitsu,bdt/GT001100.GRT,10,,0,5") in new stack -- Accepting a maximum of 10 digits. -- <DAHDI/65-1> Playing 'bdt/GT001100.GRT.gsm' (language 'en') <b><u>-- User disconnected</b></u> <b><u>-- Hungup 'DAHDI/65-1'</b></u> By: Alec Davis (alecdavis) 2009-12-06 04:30:37.000-0600 uploaded dtmf_busydetector.diff.txt These tests are with a PBX that initially sends DTMF to indicated status. tested with: busydetect=no. After dialling in and seeing the DTMF arrive, then hangup, approx 20 seconds later the channel hangup the call. This result was also the case before the attached patch. busydetect=yes. After dialling in and seeing the DTMF arrive, then hangup, approx 5 seconds later asterisk hungup the channel, If I didn't hangup, call proceeded as normal. Without the patch, asterisk would hangup the channel on the caller after the 4th DTMF digit, with busycount=4 and busydetect=yes. By: Michiel van Baak (mvanbaak) 2009-12-09 03:29:45.000-0600 As discussed on #asterisk-dev, moved to the asterisk project with category Core/PBX By: Tzafrir Cohen (tzafrir) 2009-12-09 03:32:38.000-0600 Issue is not a chan_dahdi issue, but I can't find a Core/DSP category, and IIRC only chan_dahdi uses the busy-detect code. By: Digium Subversion (svnbot) 2009-12-14 21:05:00.000-0600 Repository: asterisk Revision: 234897 U trunk/main/dsp.c ------------------------------------------------------------------------ r234897 | alecdavis | 2009-12-14 21:04:59 -0600 (Mon, 14 Dec 2009) | 9 lines restarts busydetector (if enabled) when DTMF is received. (closes issue ASTERISK-15272) Reported by: alecdavis Tested by: alecdavis Patch dtmf_busydetector.diff.txt uploaded by alecdavis (license 585) ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=234897 By: Digium Subversion (svnbot) 2009-12-14 21:08:54.000-0600 Repository: asterisk Revision: 234898 _U branches/1.6.2/ U branches/1.6.2/main/dsp.c ------------------------------------------------------------------------ r234898 | alecdavis | 2009-12-14 21:08:54 -0600 (Mon, 14 Dec 2009) | 9 lines restarts busydetector (if enabled) when DTMF is received. (closes issue ASTERISK-15272) Reported by: alecdavis Tested by: alecdavis Patch dtmf_busydetector.diff.txt uploaded by alecdavis (license 585) ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=234898 By: Digium Subversion (svnbot) 2009-12-14 21:10:37.000-0600 Repository: asterisk Revision: 234899 _U branches/1.6.1/ U branches/1.6.1/main/dsp.c ------------------------------------------------------------------------ r234899 | alecdavis | 2009-12-14 21:10:37 -0600 (Mon, 14 Dec 2009) | 9 lines restarts busydetector (if enabled) when DTMF is received. (closes issue ASTERISK-15272) Reported by: alecdavis Tested by: alecdavis Patch dtmf_busydetector.diff.txt uploaded by alecdavis (license 585) ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=234899 By: Alec Davis (alecdavis) 2009-12-20 02:17:40.000-0600 During a call, if the calling party repeatably pressed a key at the right rate, if busy detect was enabled, the call could still be terminated. uploaded dtmf_busydetector.diff2.txt By: Alec Davis (alecdavis) 2009-12-20 02:52:03.000-0600 Console output: Showing user repeatably pressing the "7" key. With debug print, also with the code commented out that actually resets the historicsilence and historicnoise buffers. -- <DAHDI/5-1> Playing 'invalid.gsm' (language 'en') [Dec 20 21:47:52] WARNING[31440]: dsp.c:1413 ast_dsp_process: DTMF Detected - Should Reset busydetector [Dec 20 21:47:52] WARNING[31440]: dsp.c:1413 ast_dsp_process: DTMF Detected - Should Reset busydetector [Dec 20 21:47:53] WARNING[31440]: dsp.c:1413 ast_dsp_process: DTMF Detected - Should Reset busydetector == Spawn extension (ivr2-bdt-night, i, 2) exited non-zero on 'DAHDI/5-1' -- Executing [h@ivr2-bdt-night:1] Verbose("DAHDI/5-1", "0,'' IVR-NIGHT Hangup") in new stack '' IVR-NIGHT Hangup -- Hanging up on 'DAHDI/5-1' -- Hungup 'DAHDI/5-1' By: Digium Subversion (svnbot) 2009-12-20 02:58:23.000-0600 Repository: asterisk Revision: 235775 U branches/1.6.2/main/dsp.c ------------------------------------------------------------------------ r235775 | alecdavis | 2009-12-20 02:58:22 -0600 (Sun, 20 Dec 2009) | 8 lines restarts busydetector (if enabled) when DTMF is received after call is bridged. (closes issue ASTERISK-15272) Reported by: alecdavis Tested by: alecdavis Patch dtmf_busydetector.diff2.txt uploaded by alecdavis (license 585) ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=235775 By: Digium Subversion (svnbot) 2009-12-20 03:07:20.000-0600 Repository: asterisk Revision: 235776 U branches/1.6.1/main/dsp.c ------------------------------------------------------------------------ r235776 | alecdavis | 2009-12-20 03:07:20 -0600 (Sun, 20 Dec 2009) | 8 lines restarts busydetector (if enabled) when DTMF is received after call is bridged. (closes issue ASTERISK-15272) Reported by: alecdavis Tested by: alecdavis Patch dtmf_busydetector.diff2.txt uploaded by alecdavis (license 585) ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=235776 |