[asterisk-bugs] [Zaptel 0008290]: [patch] zap hookstate is never set offhook if wctdm module is loaded with an active fxo line

noreply at bugs.digium.com noreply at bugs.digium.com
Mon Dec 3 09:37:51 CST 2007


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=8290 
====================================================================== 
Reported By:                tmarkov
Assigned To:                mattf
====================================================================== 
Project:                    Zaptel
Issue ID:                   8290
Category:                   wctdm
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     assigned
Zaptel Version:              1.2.10 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Disclaimer on File?:        Yes 
Request Review:              
====================================================================== 
Date Submitted:             11-03-2006 17:28 CST
Last Modified:              12-03-2007 09:37 CST
====================================================================== 
Summary:                    [patch] zap hookstate is never set offhook if wctdm
module is loaded with an active fxo line
Description: 
If #define ZAP_CHECK_HOOKSTATE is uncommented in chan_zap.c, then the
hookstate stays onhook if the wctdm module is loaded with an active line. 
Removing line and reinserting will cause the hookstate to initialize
properly.  The problem appears to be that wc->mod[card].fxo.battery never
gets initialized to 0, so in wctdm_voicedaa_check_hook() the test "if
(!wc->mod[card].fxo.battery && !wc->mod[card].fxo.battdebounce)" is never
entered, and the hookstate remains onhook upon module startup.  Only a
cycling of line voltage will correct the problem.  I have attached a patch
which initializes the battery variable and fixes the problem for me.
====================================================================== 

---------------------------------------------------------------------- 
 flefoll - 12-03-07 09:37  
---------------------------------------------------------------------- 
what about creating a mixed patch, or two independant patches :
- to fix the race condition in wctdm_init_proslic()(it did not seem to
create trouble here, but it's worth fixing if you have detected a scenario
where the problem occurs),
- to force fxo state update with a call to zt_hooksig() whenever rxhooksig
is equal to ZT_RXSIG_INITIAL at the end of wctdm_voicedaa_check_hook() ?

This fix seems sufficient here, even without initializing fxo.battery = -1
instead of 0, but obviously, the more tests, the better. 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
12-03-07 09:37  flefoll        Note Added: 0074678                          
======================================================================




More information about the asterisk-bugs mailing list