]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Prevent automagic things from happening to Stasis application bridges
authorKinsey Moore <kmoore@digium.com>
Thu, 15 Aug 2013 12:05:41 +0000 (12:05 +0000)
committerKinsey Moore <kmoore@digium.com>
Thu, 15 Aug 2013 12:05:41 +0000 (12:05 +0000)
This prevents swap optimization, merges, and transfers involving Stasis
application bridges. It wouldn't be nice if the bridge you thought you
owned disappeared from under you.

Reported-by: Richard Mudgett
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@396722 65c4cc65-6c06-0410-ace0-fbb531ad65f3

res/res_stasis.c

index b64f40ca908cd575cddca5b2062862519b65fb77..5d44d0ef951a96bbb3dfbc7b9fcb108da7fff5de 100644 (file)
@@ -442,12 +442,15 @@ static void control_unlink(struct stasis_app_control *control)
 struct ast_bridge *stasis_app_bridge_create(const char *type)
 {
        struct ast_bridge *bridge;
-       int capabilities, flags = 0;
+       int capabilities, flags = AST_BRIDGE_FLAG_MERGE_INHIBIT_FROM | AST_BRIDGE_FLAG_MERGE_INHIBIT_TO
+               | AST_BRIDGE_FLAG_SWAP_INHIBIT_FROM | AST_BRIDGE_FLAG_SWAP_INHIBIT_TO
+               | AST_BRIDGE_FLAG_TRANSFER_PROHIBITED;
+
        if (ast_strlen_zero(type) || !strcmp(type, "mixing")) {
                capabilities = AST_BRIDGE_CAPABILITY_1TO1MIX |
                        AST_BRIDGE_CAPABILITY_MULTIMIX |
                        AST_BRIDGE_CAPABILITY_NATIVE;
-               flags = AST_BRIDGE_FLAG_SMART;
+               flags |= AST_BRIDGE_FLAG_SMART;
        } else if (!strcmp(type, "holding")) {
                capabilities = AST_BRIDGE_CAPABILITY_HOLDING;
        } else {