From cd28e5dda26ce1c2ac394028c2a7610ab4a3d8b9 Mon Sep 17 00:00:00 2001 From: Jonathan Rose Date: Wed, 13 Aug 2014 16:07:22 +0000 Subject: Bridges: Fix feature interruption/unintended kick caused by external actions If a manager or CLI user attached a mixmonitor to a call running a dynamic bridge feature while in a bridge, the feature would be interrupted and the channel would be forcibly kicked out of the bridge (usually ending the call during a simple 1 to 1 call). This would also occur during any similar action that could set the unbridge soft hangup flag, so the fix for this was to remove unbridge from the soft hangup flags and make it a separate thing all together. ASTERISK-24027 #close Reported by: mjordan Review: https://reviewboard.asterisk.org/r/3900/ ........ Merged revisions 420934 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@420940 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/bridge_after.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'main/bridge_after.c') diff --git a/main/bridge_after.c b/main/bridge_after.c index fbe4e605a..a21cbf58e 100644 --- a/main/bridge_after.c +++ b/main/bridge_after.c @@ -452,9 +452,9 @@ int ast_bridge_setup_after_goto(struct ast_channel *chan) int goto_failed = -1; /* We are going to be leaving the bridging system now; - * clear any pending UNBRIDGE flags + * clear any pending unbridge flags */ - ast_channel_clear_softhangup(chan, AST_SOFTHANGUP_UNBRIDGE); + ast_channel_set_unbridged(chan, 0); /* Determine if we are going to setup a dialplan location and where. */ if (ast_channel_softhangup_internal_flag(chan) & AST_SOFTHANGUP_ASYNCGOTO) { -- cgit v1.2.3