[asterisk-bugs] [JIRA] (ASTERISK-23780) Failing to join a bridge could leave the bridge orphaned.
Richard Mudgett (JIRA)
noreply at issues.asterisk.org
Thu May 22 18:05:44 CDT 2014
Richard Mudgett created ASTERISK-23780:
------------------------------------------
Summary: Failing to join a bridge could leave the bridge orphaned.
Key: ASTERISK-23780
URL: https://issues.asterisk.org/jira/browse/ASTERISK-23780
Project: Asterisk
Issue Type: Bug
Security Level: None
Components: Applications/app_bridgewait, Core/Bridging
Affects Versions: 12.0.0
Reporter: Richard Mudgett
A typical two party bridge gets the participants into it by using {{ast_bridge_impart()}} for the peer channel and {{ast_bridge_join(AST_BRIDGE_JOIN_PASS_REFERENCE)}} for the calling channel as in {{ast_bridge_call_with_flags()}}. Unfortunately, if the channels fail to join the bridge for some reason (e.g., The channel hangs up before joining.) then the bridge could get orphaned and never destroyed. The caller of {{ast_bridge_join(AST_BRIDGE_JOIN_PASS_REFERENCE)}} cannot correct this because it *intentionally* no longer has a bridge reference.
Proposed solution:
* Make {{ast_bridge_join()}} and {{ast_bridge_impart()}} do the {{bridge_channel_dissolve_check()}} as if the channel had just left the bridge.
* Any hooks that are marked {{AST_BRIDGE_HOOK_REMOVE_ON_PULL}} should be removed as if the channel was pulled out of the bridge. Currently only one bridge join failure path removes the hooks causing an inconsistent return state. This may need to be the other way around and not remove these hooks if joining fails.
The {{BridgeWait}} application needs to be fixed up if the channel fails to join the bridge in {{bridgewait_exec()}} because the interval hook may not be there if/when the channel fails to join the bridge.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list