[asterisk-dev] [Code Review] Fix broken redirect out of MeetMe() aswell as the deeper issue at hand

Russell Bryant russell at digium.com
Fri Jan 21 09:43:58 CST 2011


On Fri, 2011-01-21 at 12:24 +1100, Damien Wedhorn wrote:
> On Thu, 20 Jan 2011 23:14:02 -0000, "Russell Bryant" <reviewboard at asterisk.org> wrote:
> > 
> > Removing ast_check_hangup() works around the issue in app_meetme, but
> > doesn't solve the issue if another application did the same thing.  There
> > are also other edge cases where if an application finishes at the same time
> > that a redirect happens, the target of the redirect will think that the
> > channel hung up.  So, I made some changes in pbx.c to resolve it at a
> > deeper level.  There are already places that unset the SOFTHANGUP_ASYNCGOTO
> > flag in an attempt to abort the hangup process.  My patch extends this to
> > remove the END_OF_Q frame from the channel's read queue, making the "abort
> > hangup" more complete. 
> > 
> 
> I've a concern that your patch may aid in obfuscation of _softhangup handling. From a fundamental level, shouldn't the END_OF_Q frame be removed from any channel where _softhangup is explicitly set to zero? As such, I think the patch should not be just for SOFTHANGUP_ASYNC_GOTO, but for unsetting all _softhangup flags.

Thank you very much for the feedback from both you and Richard.  I will
work on updating it to attempt to address the issues you both
identified.

-- 
Russell Bryant
Digium, Inc.  |  Engineering Manager, Open Source Software
445 Jan Davis Drive NW   -    Huntsville, AL 35806  -  USA
jabber: rbryant at digium.com    -=-    skype: russell-bryant
www.digium.com -=- www.asterisk.org -=- blogs.asterisk.org





More information about the asterisk-dev mailing list