[asterisk-bugs] [Asterisk 0013786]: [patch] DAHDI_CHECK_HOOKSTATE automatically defined when chan_dahdi is built with zaptel support

Asterisk Bug Tracker noreply at bugs.digium.com
Thu Nov 13 08:30:50 CST 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=13786 
====================================================================== 
Reported By:                tzafrir
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   13786
Category:                   Channels/chan_dahdi
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     new
Asterisk Version:           SVN 
SVN Branch (only for SVN checkouts, not tarball releases):  1.4  
SVN Revision (number only!): 151905 
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             2008-10-26 06:15 CDT
Last Modified:              2008-11-13 08:30 CST
====================================================================== 
Summary:                    [patch] DAHDI_CHECK_HOOKSTATE automatically defined
when chan_dahdi is built with zaptel support
Description: 
chan_dahdi.c has the following compile time option:

/*! \note
 * Define if you want to check the hook state for an FXO (FXS signalled)
interface
 * before dialing on it.  Certain FXO interfaces always think they're out
of
 * service with this method however.
 */
/* #define DAHDI_CHECK_HOOKSTATE */

Sadly, DAHDI_CHECK_HOOKSTATE is defined unconditionally in
include/asterisk/dahdi_compat.h in case you built it with zaptel support:

#define DAHDI_CHECK_HOOKSTATE ZT_CHECK_HOOKSTATE

Thus it should be made conditioned on the definition of
ZT_CHECK_HOOKSTATE, just in case someone had it in a build script.

At first glance it seems that the same applies to:

#ifdef DAHDI_EVENT_EC_DISABLED
#ifdef DAHDI_EVENT_RINGBEGIN
#ifdef DAHDI_GETCONFMUTE
#ifdef DAHDI_PRI
#ifdef DAHDI_TONEDETECT

====================================================================== 

---------------------------------------------------------------------- 
 (0094846) tzafrir (manager) - 2008-11-13 08:30
 http://bugs.digium.com/view.php?id=13786#c94846 
---------------------------------------------------------------------- 
It seems that in 1.6 the whole DAHDI_CHECK_HOOKSTATE ifdef was removed, but
it always assumes that this needs checking (available() returns there 0,
that is: channel is not available). This seems to break some FXO adapters,
e.g. the TDM400 in
http://lists.digium.com/pipermail/asterisk-users/2008-November/thread.html#221553
.

This hack is no longer necessary if the FXO adapter provides this
information by sending an alarm.

It seems to expose a bug(?) in zaptel/dahdi where chan->rxhooksig is set
to RX_HOOKSIG_INITIAL at the end of chanconfig() which leaves the channel's
state there "uninitialized" and even if the channel driver knows better it
cannot override this decision. But I'm not sure what's the intended
behaviour, so I avoid a seperate bug report on that for now. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2008-11-13 08:30 tzafrir        Note Added: 0094846                          
======================================================================




More information about the asterisk-bugs mailing list