[Home]

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-0600Date Closed:2009-07-21 15:30:37
Priority:MajorRegression?No
Status:Closed/CompleteComponents: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