Summary: | ASTERISK-13539: [patch] Dahdi does not wait for wink on outbound calls before dialing DTMF with Signalling type = em_w | ||
Reporter: | Arlen Raasch (araasch) | Labels: | |
Date Opened: | 2009-02-08 15:18:46.000-0600 | Date Closed: | 2009-07-21 15:30:37 |
Priority: | Major | Regression? | No |
Status: | Closed/Complete | Components: | Channels/chan_dahdi |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ( 0) em_wink_trace.txt ( 1) emwinkmod | |
Description: | No provision for proper handling of the E&M wink start protocol exists in chan_dahdi.c for outbound dialing from Asterisk. The switch statement in chan_dahdi.c lines 1950 and 1951 treat signalling types SIG_EMWINK and SIG_EM exactly the same. Asterisk should first take the channel offhook, wait for a wink from the far end, then dial. As it is, it takes the channel offhook, and immediately dials. This is correct for E&M Immediate Start, but not for E&M Wink Start. This was first reported 2005-03-15 with tracker id of 3772 which described the problem in chan_zap.c It appears no further action was taken. This behavior has been verified with T1 test equipment. I checked the code on the online Doxygen system to determine if any further updates had addressed this issue, and it appears that none has. Thanks. | ||
Comments: | By: Jared Smith (jsmith) 2009-02-10 13:08:49.000-0600 I've verified this in my lab (using both Asterisk 1.4 and Asterisk 1.6.0), and Asterisk is indeed dialing the digits without waiting for the wink to occur. If you turn up the debugging in logger.conf, you can indeed see that Asterisk dials the digits, and then later sees the wink (and says "Hey, I'm gonna ignore this"). I've attached the debug log to this bug to show this. By: Arlen Raasch (araasch) 2009-02-10 13:41:19.000-0600 I wrote a code fix that corrects the problem which works o.k. for normal call flows, but lacks the proper error condition handling that should be used in a production environment. I will continue to improve the fix and submit a patch if and when I get it to a satisfactory level. -Arlen By: Leif Madsen (lmadsen) 2009-02-13 13:42:01.000-0600 Thanks for the update Arlen. I look forward to your patch! :) By: Arlen Raasch (araasch) 2009-02-17 15:51:06.000-0600 This patch has been tested with a TE405P quad span card, with two active calls up. More intensive testing may be called for, but time did not permit it. Thanks, -Arlen By: Leif Madsen (lmadsen) 2009-05-22 12:36:23 I've assigned this to Richard in the hopes he can move this issue forward. Thanks! By: Digium Subversion (svnbot) 2009-07-20 18:23:20 Repository: asterisk Revision: 207573 U branches/1.4/channels/chan_dahdi.c ------------------------------------------------------------------------ r207573 | jpeeler | 2009-07-20 18:23:20 -0500 (Mon, 20 Jul 2009) | 10 lines Wait for wink before dialing when using E&M wink signaling This patch adds a new dahdi_wait function to specifically wait for the wink event. If the wink is not eventually received the channel is hung up. (closes issue ASTERISK-13539) Reported by: araasch Patches: emwinkmod uploaded by araasch (license 693) ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=207573 By: Digium Subversion (svnbot) 2009-07-20 18:31:39 Repository: asterisk Revision: 207599 _U trunk/ ------------------------------------------------------------------------ r207599 | jpeeler | 2009-07-20 18:31:38 -0500 (Mon, 20 Jul 2009) | 16 lines Blocked revisions 207573 via svnmerge ........ r207573 | jpeeler | 2009-07-20 18:23:18 -0500 (Mon, 20 Jul 2009) | 10 lines Wait for wink before dialing when using E&M wink signaling This patch adds a new dahdi_wait function to specifically wait for the wink event. If the wink is not eventually received the channel is hung up. (closes issue ASTERISK-13539) Reported by: araasch Patches: emwinkmod uploaded by araasch (license 693) ........ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=207599 By: Digium Subversion (svnbot) 2009-07-20 23:39:00 Repository: asterisk Revision: 207636 U branches/1.6.0/channels/chan_dahdi.c ------------------------------------------------------------------------ r207636 | jpeeler | 2009-07-20 23:38:59 -0500 (Mon, 20 Jul 2009) | 10 lines Wait for wink before dialing when using E&M wink signaling This patch adds a new dahdi_wait function to specifically wait for the wink event. If the wink is not eventually received the channel is hung up. (closes issue ASTERISK-13539) Reported by: araasch Patches: emwinkmod uploaded by araasch (license 693) ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=207636 By: Digium Subversion (svnbot) 2009-07-20 23:45:21 Repository: asterisk Revision: 207637 U branches/1.6.1/channels/chan_dahdi.c ------------------------------------------------------------------------ r207637 | jpeeler | 2009-07-20 23:45:21 -0500 (Mon, 20 Jul 2009) | 11 lines Wait for wink before dialing when using E&M wink signaling This patch adds a new dahdi_wait function to specifically wait for the wink event. If the wink is not eventually received the channel is hung up. (closes issue ASTERISK-13539) Reported by: araasch Patches: emwinkmod uploaded by araasch (license 693) ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=207637 By: Digium Subversion (svnbot) 2009-07-20 23:51:46 Repository: asterisk Revision: 207638 U branches/1.6.2/channels/chan_dahdi.c ------------------------------------------------------------------------ r207638 | jpeeler | 2009-07-20 23:51:46 -0500 (Mon, 20 Jul 2009) | 10 lines Wait for wink before dialing when using E&M wink signaling This patch adds a new dahdi_wait function to specifically wait for the wink event. If the wink is not eventually received the channel is hung up. (closes issue ASTERISK-13539) Reported by: araasch Patches: emwinkmod uploaded by araasch (license 693) ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=207638 By: Jeff Peeler (jpeeler) 2009-07-21 12:16:45 Unfortunately the approach taken here needs to be done another way. The commits have been reverted and the bug reopened. By: Digium Subversion (svnbot) 2009-07-21 15:16:58 Repository: asterisk Revision: 207827 U branches/1.4/channels/chan_dahdi.c ------------------------------------------------------------------------ r207827 | jpeeler | 2009-07-21 15:16:58 -0500 (Tue, 21 Jul 2009) | 9 lines Wait for wink before dialing when using E&M wink signaling There was already code for other signaling types in dahdi_handle_event to handle dialing if a dial operation dial string was present. Simply add SIG_EMWINK to the list. (closes issue ASTERISK-13539) Reported by: araasch ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=207827 By: Digium Subversion (svnbot) 2009-07-21 15:26:07 Repository: asterisk Revision: 207854 _U trunk/ U trunk/channels/chan_dahdi.c U trunk/channels/sig_analog.c ------------------------------------------------------------------------ r207854 | jpeeler | 2009-07-21 15:26:07 -0500 (Tue, 21 Jul 2009) | 16 lines Merged revisions 207827 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r207827 | jpeeler | 2009-07-21 15:16:55 -0500 (Tue, 21 Jul 2009) | 9 lines Wait for wink before dialing when using E&M wink signaling There was already code for other signaling types in dahdi_handle_event to handle dialing if a dial operation dial string was present. Simply add SIG_EMWINK to the list. (closes issue ASTERISK-13539) Reported by: araasch ........ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=207854 By: Digium Subversion (svnbot) 2009-07-21 15:27:50 Repository: asterisk Revision: 207860 _U branches/1.6.0/ U branches/1.6.0/channels/chan_dahdi.c ------------------------------------------------------------------------ r207860 | jpeeler | 2009-07-21 15:27:50 -0500 (Tue, 21 Jul 2009) | 23 lines Merged revisions 207854 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ................ r207854 | jpeeler | 2009-07-21 15:26:02 -0500 (Tue, 21 Jul 2009) | 16 lines Merged revisions 207827 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r207827 | jpeeler | 2009-07-21 15:16:55 -0500 (Tue, 21 Jul 2009) | 9 lines Wait for wink before dialing when using E&M wink signaling There was already code for other signaling types in dahdi_handle_event to handle dialing if a dial operation dial string was present. Simply add SIG_EMWINK to the list. (closes issue ASTERISK-13539) Reported by: araasch ........ ................ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=207860 By: Digium Subversion (svnbot) 2009-07-21 15:29:11 Repository: asterisk Revision: 207861 _U branches/1.6.1/ U branches/1.6.1/channels/chan_dahdi.c ------------------------------------------------------------------------ r207861 | jpeeler | 2009-07-21 15:29:11 -0500 (Tue, 21 Jul 2009) | 23 lines Merged revisions 207854 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ................ r207854 | jpeeler | 2009-07-21 15:26:02 -0500 (Tue, 21 Jul 2009) | 16 lines Merged revisions 207827 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r207827 | jpeeler | 2009-07-21 15:16:55 -0500 (Tue, 21 Jul 2009) | 9 lines Wait for wink before dialing when using E&M wink signaling There was already code for other signaling types in dahdi_handle_event to handle dialing if a dial operation dial string was present. Simply add SIG_EMWINK to the list. (closes issue ASTERISK-13539) Reported by: araasch ........ ................ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=207861 By: Digium Subversion (svnbot) 2009-07-21 15:30:36 Repository: asterisk Revision: 207862 _U branches/1.6.2/ U branches/1.6.2/channels/chan_dahdi.c ------------------------------------------------------------------------ r207862 | jpeeler | 2009-07-21 15:30:36 -0500 (Tue, 21 Jul 2009) | 23 lines Merged revisions 207854 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ................ r207854 | jpeeler | 2009-07-21 15:26:02 -0500 (Tue, 21 Jul 2009) | 16 lines Merged revisions 207827 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r207827 | jpeeler | 2009-07-21 15:16:55 -0500 (Tue, 21 Jul 2009) | 9 lines Wait for wink before dialing when using E&M wink signaling There was already code for other signaling types in dahdi_handle_event to handle dialing if a dial operation dial string was present. Simply add SIG_EMWINK to the list. (closes issue ASTERISK-13539) Reported by: araasch ........ ................ ------------------------------------------------------------------------ http://svn.digium.com/view/asterisk?view=rev&revision=207862 |