From 08991ac281974025eec8bf6d9e74dad429fb0d4c Mon Sep 17 00:00:00 2001
From: Richard Mudgett <rmudgett@digium.com>
Date: Wed, 14 Aug 2013 21:28:21 +0000
Subject: [PATCH] app_bridgewait: Inhibit local channel optimizations to the
 bridge.

Holding bridges can allow local channel move/swap optimization to the
bridge.  However, we cannot allow it for the BridgeWait holding bridge
because the call will lose the channel roles and dialplan location as a
result.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@396695 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 apps/app_bridgewait.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/apps/app_bridgewait.c b/apps/app_bridgewait.c
index 5697a79d05..f97f5f9775 100644
--- a/apps/app_bridgewait.c
+++ b/apps/app_bridgewait.c
@@ -349,10 +349,16 @@ static struct wait_bridge_wrapper *get_wait_bridge_wrapper(const char *bridge_na
 		return wrapper;
 	}
 
+	/*
+	 * Holding bridges can allow local channel move/swap
+	 * optimization to the bridge.  However, we cannot allow it for
+	 * this holding bridge because the call will lose the channel
+	 * roles and dialplan location as a result.
+	 */
 	bridge = ast_bridge_base_new(AST_BRIDGE_CAPABILITY_HOLDING,
 		AST_BRIDGE_FLAG_MERGE_INHIBIT_TO | AST_BRIDGE_FLAG_MERGE_INHIBIT_FROM
-		| AST_BRIDGE_FLAG_SWAP_INHIBIT_FROM | AST_BRIDGE_FLAG_TRANSFER_PROHIBITED
-		| AST_BRIDGE_FLAG_DISSOLVE_EMPTY);
+		| AST_BRIDGE_FLAG_SWAP_INHIBIT_TO | AST_BRIDGE_FLAG_SWAP_INHIBIT_FROM
+		| AST_BRIDGE_FLAG_TRANSFER_PROHIBITED | AST_BRIDGE_FLAG_DISSOLVE_EMPTY);
 
 	if (!bridge) {
 		return NULL;
-- 
GitLab