Summary: | ASTERISK-13838: [patch] 1.6.1: unidirectional PCM if (FXS?) hardware DTMF detection enabled | ||
Reporter: | Tzafrir Cohen (tzafrir) | Labels: | |
Date Opened: | 2009-03-26 06:26:20 | Date Closed: | 2009-06-25 16:10:56 |
Priority: | Blocker | Regression? | Yes |
Status: | Closed/Complete | Components: | Channels/chan_dahdi |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ( 0) confmute.diff ( 1) v1-14761.patch | |
Description: | The following is seems to be a regression between 1.6.0 to 1.6.1 . Tested it locally with Astribanks and also heard it reported with Sangoma A200 cards. In this case, the caller does not get PCM once the call is established. Workaround: disable hardwqre DTMF detection in the driver. | ||
Comments: | By: Tzafrir Cohen (tzafrir) 2009-04-25 07:57:41 Did some bisecting in the 1.6.1 branch. Versions before r134260 fail to build with current DAHDI. That version and on exhibits the problem. By: Tzafrir Cohen (tzafrir) 2009-04-25 10:56:34 confmute is set on DTMFDOWN, but not reset on DTMFUP. A sample brute-force patch attached (confmute.diff) By: Tzafrir Cohen (tzafrir) 2009-05-08 06:58:05 Maybe the problem is with the removal of the "else" case in handle_dtmf_up at r111022 ? By: Leif Madsen (lmadsen) 2009-05-12 14:17:28 dimas: would you mind taking a look at this issue to determine if the patch you provided for issue ASTERISK-11413 could have caused a regression here? Thanks! By: Dmitry Andrianov (dimas) 2009-05-12 15:08:20 Yeah, it looks like it could be me. My patch was tested with software DTMF detection only because I had no board woth hardware detection available so I missed the logic how hardware-detected DTMF are processed. tzafrir, I'm just curious why your patch not just returns the last "else" but does "unmute" a bit different? I believe "else { zt_confmute(p, 0); }" should work fine... By: Dmitry Andrianov (dimas) 2009-05-12 20:01:29 Btw, after looking more at the code, I think that confmute(p, 0) should be not in the zt_handle_dtmfup but in the zt_handle_event instead (in the if which handles ZT_EVENT_DTMFUP - right before "return f;") This way "unmute" code for the case of hardware-detected DTMFs will be close to the code which makes the "mute" call. tzafrir, could you please test if it works because I still do not have the board with h/w detection. Thanks. By: Tzafrir Cohen (tzafrir) 2009-05-13 07:30:29 dimas, you need some translation to dahdi: s/zt_/dahdi_/; s/ZT_/DAHDI_/ Adding 'dahdi_confmute(p, 0)' either at an else clause in the end of dahdi_handle_dtmfup() or in dahdi_handle_event right before the 'return f;' both work fine. I'll note that dahdi_handle_dtmfup can also be called from dahdi_read . I'm not really sure at what scenario. By: Dmitry Andrianov (dimas) 2009-05-13 08:26:18 tzafrir, could you please test v1-14761.patch which tries to handle hardware-detected UP and DOWN in the same way instead of spreading the mute/unmute code into different functions)? To my knowledge, dahdi_read calls dahdi_handle_dtmfup when software DTMF detection is used (in other words when ast_dsp_process returns DTMF END frame). By: Tzafrir Cohen (tzafrir) 2009-05-13 15:07:32 dimas, this patch works as well. By: Leif Madsen (lmadsen) 2009-05-28 22:30:21 What is needed to get this committed now? By: Dmitry Andrianov (dimas) 2009-05-29 03:17:51 To my taste it is v1-14761.patch However tzafrir is more involved into DAHDI/Zaptel stuff so lets ask him :) By: Tzafrir Cohen (tzafrir) 2009-05-29 03:25:27 Works well here. By: Leif Madsen (lmadsen) 2009-05-29 05:48:40 Then I presume this is ready to be committed. Marking as Ready for Review. By: Digium Subversion (svnbot) 2009-06-25 14:22:47 Repository: asterisk Revision: 203258 U trunk/channels/chan_dahdi.c ------------------------------------------------------------------------ r203258 | qwell | 2009-06-25 14:22:47 -0500 (Thu, 25 Jun 2009) | 10 lines Unmute when we get a dtmfup (we muted on dtmfdown) event. This would occasionally cause one-way audio when using hardware DTMF detection. (closes issue ASTERISK-13838) Reported by: tzafrir Patches: v1-14761.patch uploaded by dimas (license 88) Tested by: tzafrir, dimas ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=203258 By: Digium Subversion (svnbot) 2009-06-25 14:27:06 Repository: asterisk Revision: 203274 _U branches/1.6.1/ U branches/1.6.1/channels/chan_dahdi.c ------------------------------------------------------------------------ r203274 | qwell | 2009-06-25 14:27:05 -0500 (Thu, 25 Jun 2009) | 17 lines Merged revisions 203258 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ........ r203258 | qwell | 2009-06-25 14:22:46 -0500 (Thu, 25 Jun 2009) | 10 lines Unmute when we get a dtmfup (we muted on dtmfdown) event. This would occasionally cause one-way audio when using hardware DTMF detection. (closes issue ASTERISK-13838) Reported by: tzafrir Patches: v1-14761.patch uploaded by dimas (license 88) Tested by: tzafrir, dimas ........ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=203274 By: Digium Subversion (svnbot) 2009-06-25 14:27:13 Repository: asterisk Revision: 203276 _U branches/1.6.2/ U branches/1.6.2/channels/chan_dahdi.c ------------------------------------------------------------------------ r203276 | qwell | 2009-06-25 14:27:11 -0500 (Thu, 25 Jun 2009) | 17 lines Merged revisions 203258 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ........ r203258 | qwell | 2009-06-25 14:22:46 -0500 (Thu, 25 Jun 2009) | 10 lines Unmute when we get a dtmfup (we muted on dtmfdown) event. This would occasionally cause one-way audio when using hardware DTMF detection. (closes issue ASTERISK-13838) Reported by: tzafrir Patches: v1-14761.patch uploaded by dimas (license 88) Tested by: tzafrir, dimas ........ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=203276 By: Digium Subversion (svnbot) 2009-06-25 16:10:55 Repository: asterisk Revision: 203278 _U branches/1.6.0/ ------------------------------------------------------------------------ r203278 | qwell | 2009-06-25 16:10:55 -0500 (Thu, 25 Jun 2009) | 16 lines Blocked revisions 203258 via svnmerge ........ r203258 | qwell | 2009-06-25 14:22:46 -0500 (Thu, 25 Jun 2009) | 10 lines Unmute when we get a dtmfup (we muted on dtmfdown) event. This would occasionally cause one-way audio when using hardware DTMF detection. (closes issue ASTERISK-13838) Reported by: tzafrir Patches: v1-14761.patch uploaded by dimas (license 88) Tested by: tzafrir, dimas ........ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=203278 |