From e9ac63f9a99d29f1a7c8e966dcb9d187b85900dc Mon Sep 17 00:00:00 2001
From: Kinsey Moore <kmoore@digium.com>
Date: Thu, 15 Aug 2013 12:05:41 +0000
Subject: [PATCH] Prevent automagic things from happening to Stasis application
 bridges

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 | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/res/res_stasis.c b/res/res_stasis.c
index b64f40ca90..5d44d0ef95 100644
--- a/res/res_stasis.c
+++ b/res/res_stasis.c
@@ -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 {
-- 
GitLab