From 82ba10bb47dafd14fbce5c75a8e0b50286c36736 Mon Sep 17 00:00:00 2001
From: Kinsey Moore <kmoore@digium.com>
Date: Thu, 15 Aug 2013 12:17:41 +0000
Subject: [PATCH] Fix feature_attended_transfer test

The feature_attended_transfer test is failing due to Asterisk not
passing DTMF in the bridges created for internal attended transfers.
This sets the features initialization routine to set this flag by
default and adjusts the basic bridge and confbridge's use of the
bridging system accordingly as per Richard's suggestion instead of
adjusting this individual case. This change allows the necessary DTMF
to pass through the attended transfer bridge and complete the test
successfully.

Review: https://reviewboard.asterisk.org/r/2759/
(closes issue ASTERISK-22222)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@396724 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 apps/app_confbridge.c | 2 ++
 main/bridge.c         | 2 ++
 main/features.c       | 3 ---
 3 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/apps/app_confbridge.c b/apps/app_confbridge.c
index 01060976d7..79631225e2 100644
--- a/apps/app_confbridge.c
+++ b/apps/app_confbridge.c
@@ -1587,6 +1587,8 @@ static int confbridge_exec(struct ast_channel *chan, const char *data)
 	/* Set if DTMF should pass through for this user or not */
 	if (ast_test_flag(&user.u_profile, USER_OPT_DTMF_PASS)) {
 		user.features.dtmf_passthrough = 1;
+	} else {
+		user.features.dtmf_passthrough = 0;
 	}
 
 	/* Set dsp threshold values if present */
diff --git a/main/bridge.c b/main/bridge.c
index bc983b1b3c..b53079552a 100644
--- a/main/bridge.c
+++ b/main/bridge.c
@@ -3204,6 +3204,8 @@ int ast_bridge_features_init(struct ast_bridge_features *features)
 		return -1;
 	}
 
+	features->dtmf_passthrough = 1;
+
 	return 0;
 }
 
diff --git a/main/features.c b/main/features.c
index 6585aeccdb..3df0555af4 100644
--- a/main/features.c
+++ b/main/features.c
@@ -797,9 +797,6 @@ int ast_bridge_channel_setup_features(struct ast_bridge_channel *bridge_channel)
 {
 	int res = 0;
 
-	/* Always pass through any DTMF digits. */
-	bridge_channel->features->dtmf_passthrough = 1;
-
 	res |= setup_bridge_features_builtin(bridge_channel->features, bridge_channel->chan);
 	res |= setup_bridge_features_dynamic(bridge_channel->features, bridge_channel->chan);
 
-- 
GitLab