[asterisk-bugs] [Asterisk 0007755]: [patch] workaround for race condition with disconnect supervision

noreply at bugs.digium.com noreply at bugs.digium.com
Sat Jun 7 12:50:51 CDT 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=7755 
====================================================================== 
Reported By:                rbraun
Assigned To:                mattf
====================================================================== 
Project:                    Asterisk
Issue ID:                   7755
Category:                   Core/General
Reproducibility:            N/A
Severity:                   tweak
Priority:                   normal
Status:                     closed
Asterisk Version:           I did not set the version :( 
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:             08-18-2006 17:46 CDT
Last Modified:              06-07-2008 12:50 CDT
====================================================================== 
Summary:                    [patch] workaround for race condition with
disconnect supervision
Description: 
We have an asterisk installation at a customer site connected to an adit
600 channel bank which feeds a legacy pbx (comdial) with analog lines.
Working through issues reported by this customer we have found numerous
ways in which the comdial pbx does not behave according to spec or even
consistent with its own documentation. One is that it expects at least 1
second of disconnect supervision (ZT_KEWLTIME) while 500 ms is documented.
Even this is insufficient to make it recognize that a call has terminated
if the call terminates at just the right time before it picks up; it does
not recognize the battery drop if it has not yet seized the line.

We have successfully solved this problem with the attached patch, which
changes the behavior of kewlstart so that if the line is picked up remotely
during the ZT_KEWLTIME or during the guard time (ZT_AFTERKEWLTIME) after
the battery drop, zaptel will respond by repeating the battery drop after
the guard time completes. This behavior is only triggered when the line was
on hook but is taken off hook during the battery drop or the guard time.
The main adjustment to make after this patch is applied is to set the
AFTERKEWLTIME to an appropriate value to eliminate the race condition; we
use 1.5 seconds for KEWLTIME (actually a bit less in practice on the adit)
and 2.5 seconds for AFTERKEWLTIME which sums to 4 seconds, the amount of
time between rings.
======================================================================
Relationships       ID      Summary
----------------------------------------------------------------------
parent of           0007612 [patch] Zaptel misreports channel in ba...
parent of           0007754 [patch] chan_zap plays dialtone even if...
====================================================================== 

---------------------------------------------------------------------- 
 svnbot - 06-07-08 12:50  
---------------------------------------------------------------------- 
Repository: dahdi
Revision: 2458

_U  be/branches/B.2/
U   be/branches/B.2/Makefile
U   be/branches/B.2/README
U   be/branches/B.2/README.Linux26
A   be/branches/B.2/README.hpec
U   be/branches/B.2/build_tools/make_firmware_object
U   be/branches/B.2/hpec/hpec_zaptel.h
A   be/branches/B.2/jpah.h
U   be/branches/B.2/wct1xxp.c
U   be/branches/B.2/wct4xxp/base.c
U   be/branches/B.2/wct4xxp/vpm450m.c
U   be/branches/B.2/wcte12xp.c
A   be/branches/B.2/xpp/.version
U   be/branches/B.2/xpp/Makefile
A   be/branches/B.2/xpp/card_bri.c
A   be/branches/B.2/xpp/card_bri.h
U   be/branches/B.2/xpp/card_fxo.c
U   be/branches/B.2/xpp/card_fxs.c
U   be/branches/B.2/xpp/card_global.c
U   be/branches/B.2/xpp/firmwares/FPGA_1141.hex
U   be/branches/B.2/xpp/firmwares/FPGA_1151.hex
U   be/branches/B.2/xpp/firmwares/FPGA_FXS.hex
U   be/branches/B.2/xpp/firmwares/USB_1140.hex
U   be/branches/B.2/xpp/firmwares/USB_1150.hex
U   be/branches/B.2/xpp/utils/Makefile
U   be/branches/B.2/xpp/utils/fpga_load.c
U   be/branches/B.2/xpp/utils/genzaptelconf
U   be/branches/B.2/xpp/utils/hexfile.c
U   be/branches/B.2/xpp/utils/hexfile.h
U   be/branches/B.2/xpp/utils/test_parse.c
U   be/branches/B.2/xpp/utils/xpp_fxloader
U   be/branches/B.2/xpp/utils/zconf/Zaptel/Xpp/Xbus.pm
U   be/branches/B.2/xpp/xbus-core.c
U   be/branches/B.2/xpp/xbus-core.h
U   be/branches/B.2/xpp/xpd.h
U   be/branches/B.2/xpp/xpp_usb.c
U   be/branches/B.2/xpp/xpp_zap.c
U   be/branches/B.2/xpp/xpp_zap.h
U   be/branches/B.2/xpp/xproto.c
U   be/branches/B.2/xpp/xproto.h
U   be/branches/B.2/zaptel-base.c
U   be/branches/B.2/zaptel.h
U   be/branches/B.2/zaptel.init
U   be/branches/B.2/zconfig.h
U   be/branches/B.2/ztmonitor.c

------------------------------------------------------------------------
r2458 | qwell | 2008-06-07 12:50:49 -0500 (Sat, 07 Jun 2008) | 203 lines

Merged revisions
2239,2243,2250-2252,2257,2266,2274-2276,2280-2282,2286,2290,2296,2301,2307,2310-2311,2322,2342,2347,2350,2353,2398,2405,2422,2434,2443,2451
via svnmerge from 
https://origsvn.digium.com/svn/zaptel/branches/1.2

........
r2239 | tzafrir | 2007-02-27 00:14:18 -0600 (Tue, 27 Feb 2007) | 18 lines

Xorcom rev. 3491:
 * Version of xpp modules is set from xpp/.version, rather than "unknown".
 * Astribank devices are now initialized in parallel: faster startup
   when there are multiple Astribanks.
 * Re-added support for the old format of /proc/xpp/sync write:
   (echo N 0 > /proc/xpp/sync ) . The new format (SYNC=NN) is preffered.
 * Firmware update to fix a PCM issue.
 * Fixed a build issue with kernel 2.6.8 .
 * Fixed missing initialization in Zaptel::Xpp::Xbus .
 * genzaptelconf will now set FXS ports as LS by default. To set them as 
   KS, use fxs_default_start=ks in /etc/default/zaptel /
/etc/sysconfig/zaptel
   (Also a workaround for http://bugs.digium.com/view.php?id=7755 ).
 * Groundwork for sync from zaptel master span: if zaptel is built with
   ZAPTEL_SYNC_TIC (see zaptel/team/tzafrir/sync ), xpp will report its 
   drift from the zaptel sync master.
 * USB firmware update: had bad lines checksums (and fxload did not
report).
 * fpga_load can now better report bad hex file checksum ;-) .

........
r2243 | tzafrir | 2007-02-27 18:05:59 -0600 (Tue, 27 Feb 2007) | 4 lines

* xpp rev. 3495: fix a race in the FXO driver of recent weeks.
* Add the Astribank BRI driver (though still needs bristuffed zaptel
  to build and thus will not build by default)

........
r2250 | kpfleming | 2007-02-28 14:43:42 -0600 (Wed, 28 Feb 2007) | 2 lines

correct comment, and set module installation directory before it is needed

........
r2251 | kpfleming | 2007-02-28 14:44:28 -0600 (Wed, 28 Feb 2007) | 2 lines

allow the HPEC to work even if echotraining has been requested (the HPEC
doesn't do echotraining, but it shouldn't fail just because the user asked
for it)

........
r2252 | tzafrir | 2007-02-28 14:57:52 -0600 (Wed, 28 Feb 2007) | 3 lines

Make the xpp/utils/Makefile in 1.2 closer to the one in 1.4 
(and actually work, this tine).

........
r2257 | tzafrir | 2007-03-01 13:29:12 -0600 (Thu, 01 Mar 2007) | 2 lines

SLAB_KERNEL is an obsolete alias of GFP_KERNEL. Fix build on Vanilla
2.6.20 .

........
r2266 | tzafrir | 2007-03-02 14:40:06 -0600 (Fri, 02 Mar 2007) | 2 lines

Clarify a cyptic build message.

........
r2274 | tzafrir | 2007-03-02 16:23:45 -0600 (Fri, 02 Mar 2007) | 2 lines

Proper initialization of the Astribank (xpp).

........
r2275 | tzafrir | 2007-03-02 16:25:01 -0600 (Fri, 02 Mar 2007) | 2 lines

Proper initialization of the Astribank (xpp) at zaptel startup.

........
r2276 | tzafrir | 2007-03-02 16:29:04 -0600 (Fri, 02 Mar 2007) | 2 lines

Revert the bogus changeset 2274.

........
r2280 | kpfleming | 2007-03-04 23:34:43 -0600 (Sun, 04 Mar 2007) | 2 lines

ensure that we run objdump in the most generic language possible to avoid
complications on non-English systems (issue
http://bugs.digium.com/view.php?id=9196)

........
r2281 | kpfleming | 2007-03-04 23:40:37 -0600 (Sun, 04 Mar 2007) | 2 lines

remove stray character that my editor decided to add

........
r2282 | kpfleming | 2007-03-04 23:41:30 -0600 (Sun, 04 Mar 2007) | 2 lines

this driver does not use workqueues, so does not need this header (issue
http://bugs.digium.com/view.php?id=9196)

........
r2286 | tzafrir | 2007-03-05 10:14:11 -0600 (Mon, 05 Mar 2007) | 2 lines

Found a proper "marker" for the gfp_t typedef. Now every 2.6.9 is
supported.

........
r2290 | tzafrir | 2007-03-07 13:14:30 -0600 (Wed, 07 Mar 2007) | 3 lines

Don't die when there is no udev rules dir (on an installtion with 
INSTALL_PREFIX explicitly set).

........
r2296 | file | 2007-03-08 09:56:05 -0600 (Thu, 08 Mar 2007) | 2 lines

vprintk is only available on 2.6.9+ (issue
http://bugs.digium.com/view.php?id=9232 reported by baconbuttie)

........
r2301 | mattf | 2007-03-09 13:59:43 -0600 (Fri, 09 Mar 2007) | 2 lines

Make sure we don't allocate as GFP_KERNEL in atomic context

........
r2307 | mattf | 2007-03-14 11:03:18 -0500 (Wed, 14 Mar 2007) | 2 lines

Fix bug in J1 mode configuration.

........
r2310 | tzafrir | 2007-03-16 00:07:33 -0500 (Fri, 16 Mar 2007) | 2 lines

Ignoring Module.symvers

........
r2311 | tzafrir | 2007-03-16 00:45:55 -0500 (Fri, 16 Mar 2007) | 5 lines

Update the README:
* Update modules list
* Add a basic list of utilities.
* Clarify the location of the kernel source tree.

........
r2322 | file | 2007-03-19 11:28:58 -0500 (Mon, 19 Mar 2007) | 2 lines

Update documentation to match current Makefile. linux26 is no longer a
valid target. (issue http://bugs.digium.com/view.php?id=9296 reported by valley)

........
r2342 | russell | 2007-03-27 13:48:23 -0500 (Tue, 27 Mar 2007) | 5 lines

When debug is enabled, ensure that "debug=1" gets passed to the zaptel
module,
and not just the hardware modules.  Also, run "ztcfg -s" at the beginning
of
the "stop" action of the script.
(issue http://bugs.digium.com/view.php?id=7409, PCadach and tzafrir)

........
r2347 | russell | 2007-03-29 11:05:32 -0500 (Thu, 29 Mar 2007) | 3 lines

Add a README for HPEC, and add support for HPEC in the init script.
(issue http://bugs.digium.com/view.php?id=9413, chozian)

........
r2350 | russell | 2007-03-29 11:35:37 -0500 (Thu, 29 Mar 2007) | 4 lines

Trim the HPEC readme that is included in zaptel to only include basic
information
as the one on the FTP site will always be the one that contains the full
up to
date information.  Also, tweak some grammar in the additions to the init
script.

........
r2353 | qwell | 2007-03-30 13:56:46 -0500 (Fri, 30 Mar 2007) | 4 lines

Fix an issue where an echo can was freed incorrectly in certain
circumstances.

Issue 9292, fix suggested by ddv2005.

........
r2398 | mattf | 2007-04-07 11:49:46 -0500 (Sat, 07 Apr 2007) | 2 lines

Fix for http://bugs.digium.com/view.php?id=9208.  Thanks adomo and Tzafrir!

........
r2405 | mattf | 2007-04-11 14:01:21 -0500 (Wed, 11 Apr 2007) | 4 lines

Fix buglet in memory corruption fix.



........
r2422 | qwell | 2007-04-13 18:12:23 -0500 (Fri, 13 Apr 2007) | 14 lines

Fix several places where we treat confmode as a bitmask.
It is a bitmask...sort of..  I'll explain..

confmode is used for 2 different things.
It defines both the "mode" and the "flags" of the conference.

The "mode" part is in 0x00FF and is NOT bitwise.
The "flag" part is in 0xFF00 and *IS* bitwise.
Confused yet?  Good.

So, when we want to check the "mode" of the conference, we need to check
only within 0xFF.
There were several places where this was not happening - but due to luck,
it worked (...sort of).
That's what this patch fixes.

........
r2434 | qwell | 2007-04-24 13:33:29 -0500 (Tue, 24 Apr 2007) | 1 line

Backport pre-echocan debugging for ztmonitor
........
r2443 | qwell | 2007-04-25 10:35:34 -0500 (Wed, 25 Apr 2007) | 2 lines

Don't try to reference a variable on a channel that may not exist.

........
r2451 | mattf | 2007-04-25 11:26:18 -0500 (Wed, 25 Apr 2007) | 1 line

Start fixing potential deadlock between device driver and zaptel
........

------------------------------------------------------------------------

http://svn.digium.com/view/dahdi?view=rev&revision=2458 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
06-07-08 12:50  svnbot         Note Added: 0088282                          
======================================================================




More information about the asterisk-bugs mailing list