[Asterisk-bugs] [Asterisk 0007612]: [patch] Zaptel misreports channel in battery drop state as available, then refuses to open it

noreply at bugs.digium.com noreply at bugs.digium.com
Thu Jul 5 12:58:03 CDT 2007


The following issue has been RESOLVED. 
====================================================================== 
http://bugs.digium.com/view.php?id=7612 
====================================================================== 
Reported By:                rbraun
Assigned To:                mattf
====================================================================== 
Project:                    Asterisk
Issue ID:                   7612
Category:                   Core/General
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     resolved
Asterisk Version:           1.4.5 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Disclaimer on File?:        Yes 
Request Review:              
Resolution:                 fixed
Fixed in Version:           
====================================================================== 
Date Submitted:             07-28-2006 18:28 CDT
Last Modified:              07-05-2007 12:58 CDT
====================================================================== 
Summary:                    [patch] Zaptel misreports channel in battery drop
state as available, then refuses to open it
Description: 
In asterisk chan_zap, the function available() is used to check that a
channel is free before trying to dial on it. It is also used to find such a
channel when a Zap group dial is used, such as Dial(Zap/G1/5551212).
Chan_zap relies on the ZT_GET_PARAMS zaptel ioctl to find enough channel
information to ensure that the channel is available even if it does not
know of a call on that channel.

If the channel is in the battery drop state (ZT_TXSTATE_KEWL) or in the
guard time after it (ZT_TXSTATE_AFTERKEWL), the parameters returned by
ZT_GET_PARAMS do not indicate that the channel is not available to be used.
available() and zt_request() will thus select that channel, try to open it,
and fail (EBUSY is returned by zaptel due to the channel state). The result
is that a call being made to a group dial will fail even though there are
channels free in the zap group; as this results in a call failing to go
through, I am filing this as a major bug. We have worked around this in the
past by doing a manual rollover (e.g. priority 1 dials Zap/1, priority 2
dials Zap/2), but that should not be necessary.
======================================================================
Relationships       ID      Summary
----------------------------------------------------------------------
child of            0007755 [patch] workaround for race condition w...
====================================================================== 

---------------------------------------------------------------------- 
 qwell - 07-05-07 12:58  
---------------------------------------------------------------------- 
Fixed in svn branches 1.2, 1.4, and trunk, in revisions 2696, 2697, and
2698. 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
07-05-07 12:58  qwell          Status                   assigned => resolved
07-05-07 12:58  qwell          Resolution               open => fixed       
07-05-07 12:58  qwell          Note Added: 0066544                          
======================================================================




More information about the Asterisk-bugs mailing list