mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-02 02:18:31 +00:00
Fix assumption in bridge_native_rtp.c regarding number of participants in a bridge.
When a party leaves a bridge, there may be more participants in the bridge than expected. As such, it is important not to make assumptions regarding the list of channels in a bridge. This change makes it so that when a party leaves a native RTP bridge, we unbridge it and the party it was bridged with. Previously, the first and last channels in the list were unbridged since it was assumed that these were the two channels that had been bridged. As previously stated, a new party had been inserted into the bridge, so this logic did not work properly. (closes issue ASTERISK-22615) reported by Matt Jordan (closes issue ASTERISK-22532) reported by Matt Jordan Review: https://reviewboard.asterisk.org/r/2899 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@400403 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -113,6 +113,10 @@ struct ast_bridge_technology {
|
||||
* \brief Remove a channel from a bridging technology instance for a bridge.
|
||||
*
|
||||
* \note On entry, bridge is already locked.
|
||||
* \note Do not make assumptions about the number of channels in the bridge when
|
||||
* this callback is called. When a channel is swapped into a bridge for another
|
||||
* channel, the leave callback is called after the new channel has been added to
|
||||
* the bridge.
|
||||
*/
|
||||
void (*leave)(struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel);
|
||||
/*!
|
||||
|
Reference in New Issue
Block a user