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);