app_bridgewait: Inhibit local channel optimizations to the bridge.
authorRichard Mudgett <rmudgett@digium.com>
Wed, 14 Aug 2013 21:28:21 +0000 (21:28 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Wed, 14 Aug 2013 21:28:21 +0000 (21:28 +0000)
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

index 5697a79..f97f5f9 100644 (file)
@@ -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;