[asterisk-dev] [Code Review] 3585: bridge_native_rtp: Reconfigure bridge on removal of framehook - take 2
Mark Michelson
reviewboard at asterisk.org
Thu Jun 5 12:45:51 CDT 2014
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/3585/#review12053
-----------------------------------------------------------
/branches/12/include/asterisk/channel.h
<https://reviewboard.asterisk.org/r/3585/#comment22016>
It's a tough thing to do, but I'd like to see this function's name imply that channels that are being hung up do not count as "leaving the bridge".
/branches/12/main/channel.c
<https://reviewboard.asterisk.org/r/3585/#comment22015>
I reccomend re-writing this to be:
hangup_flags = ast_channel_softhangup_internal_flag(chan);
hangup_test = hangup_flags & (AST_SOFTHANGUP_ASYNCGOTO | AST_SOFTHANGUP_UNBRIDGE);
return (hangup_test && (hangup_test == hangup_flags));
It's certainly easier to expand on this if it turns out a third flag needs to be considered.
- Mark Michelson
On June 4, 2014, 4:43 p.m., Matt Jordan wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/3585/
> -----------------------------------------------------------
>
> (Updated June 4, 2014, 4:43 p.m.)
>
>
> Review request for Asterisk Developers.
>
>
> Repository: Asterisk
>
>
> Description
> -------
>
> This patch is a re-do of review 3535.
>
> When review request 3535 was merged, a major problem with it was uncovered. UNBRIDGE soft hangup flags have a catastrophic effect on the pbx core if they leak out from the bridge layer: the channel gets hung up. With the number of threads involved in a blind transfer, and with the initial patch, it was likely that this would occur. This caused a large number of test failures
>
> This patch is nearly identical with the one proposed in review 3535, save for the following changes:
> - We explicitly clear the UNBRIDGE flag when setting an after goto on a channel in a bridge
> - Defensively, if we encounter an UNBRIDGE flag in the pbx core, we handle it
>
>
> Diffs
> -----
>
> /branches/12/main/pbx.c 414996
> /branches/12/main/framehook.c 414996
> /branches/12/main/channel.c 414996
> /branches/12/main/bridge_channel.c 414996
> /branches/12/main/bridge_after.c 414996
> /branches/12/include/asterisk/channel.h 414996
> /branches/12/bridges/bridge_native_rtp.c 414996
>
> Diff: https://reviewboard.asterisk.org/r/3585/diff/
>
>
> Testing
> -------
>
> The blind transfer tests for PJSIP now pass (fingers crossed). See review 3586.
>
>
> Thanks,
>
> Matt Jordan
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20140605/38d983c0/attachment-0001.html>
More information about the asterisk-dev
mailing list