[asterisk-dev] [Code Review] Fix broken redirect out of MeetMe() aswell as the deeper issue at hand
voip at facts.com.au
Thu Jan 20 19:24:24 CST 2011
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.
More information about the asterisk-dev