[asterisk-dev] [Code Review] Deadlock between dahdi_exception and dahdi_indicate

rmudgett at digium.com rmudgett at digium.com
Mon Oct 11 14:52:36 CDT 2010

This is an automatically generated e-mail. To reply, visit:

Review request for Asterisk Developers.


There is a deadlock between dahdi_exception and dahdi_indicate for analog ports.  The call-waiting and three-way-calling feature can experience deadlock if these features are trying to do something and an event from the bridged channel happens at the same time.

I have not been able to reproduce the deadlock.  However, I can see the deadlock in the code.

This addresses bug 16847.


  /branches/1.8/channels/chan_dahdi.c 291115 
  /branches/1.8/channels/sig_analog.h 291115 
  /branches/1.8/channels/sig_analog.c 291115 

Diff: https://reviewboard.asterisk.org/r/971/diff


Call waiting:
A -- B (B answered or originated call with A)
C -> B (CW)

B can toggle between A and C using a flash hook.
A or C can hangup when they are the active or held call.
B can hangup to drop the active call and get a recall ring to retrieve the party on hold.

Three way calling:
A -- B (A answered or originated call with B)
A flash hooks to dial C.
A -> C

A can hangup to transfer B to C (Before or after C answers)
A can flash hook to connect A, B, and C together for three way call.
A can hangup after three way established to transfer call to B and C.

Features still worked.



More information about the asterisk-dev mailing list