diff --git a/apps/app_confbridge.c b/apps/app_confbridge.c index 01060976d7737995fa535f96786c37071a0a5867..79631225e271c21cfdd833cba36174333fbc2269 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 bc983b1b3c07b2d136b9420e3adc456f183f4dbb..b53079552a35d748d1e74c40aae41526780c2d84 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 6585aeccdb70ac41ed9242d2383845465821876e..3df0555af4c77cf336ba44fe2592ddeb40294e73 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);