[asterisk-bugs] [JIRA] (ASTERISK-21882) Bridge API Enhancements - ensure that n-1 channels leaving a multi-party bridge ejects the last channel

Matt Jordan (JIRA) noreply at issues.asterisk.org
Fri Jun 7 09:07:03 CDT 2013


Matt Jordan created ASTERISK-21882:
--------------------------------------

             Summary: Bridge API Enhancements - ensure that n-1 channels leaving a multi-party bridge ejects the last channel
                 Key: ASTERISK-21882
                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-21882
             Project: Asterisk
          Issue Type: Bug
          Components: Core/Bridging
            Reporter: Matt Jordan


This issue is to address the BUGBUG comment in {{bridging_basic}}:

{noformat}
static int basic_hangup_hook(struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel, void *hook_pvt)
{
/* BUGBUG Race condition.  If all parties but one hangup at the same time, the bridge may not be dissolved on the remaining party. */
	ast_bridge_channel_lock_bridge(bridge_channel);
	if (2 < bridge_channel->bridge->num_channels) {
		/* Just allow this channel to leave the multi-party bridge. */
		ast_bridge_change_state(bridge_channel, AST_BRIDGE_CHANNEL_STATE_HANGUP);
	}
	ast_bridge_unlock(bridge_channel->bridge);
	return 0;
}
{noformat}

The issue here is that if the bridge is currently in a multi-party mixing state, and {{n - 1}} channels leave, we should naturally transition to a two-party bridge with a single channel it. That should eject that channel from the bridge and the bridge should be disposed of.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.asterisk.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the asterisk-bugs mailing list