Index: asterisk-13.7.2/main/features.c =================================================================== --- asterisk-13.7.2.orig/main/features.c +++ asterisk-13.7.2/main/features.c @@ -646,6 +646,14 @@ int ast_bridge_call_with_flags(struct as ast_bridge_basic_set_flags(bridge, flags); + ast_channel_lock_both(chan, peer); + if (!ast_channel_tech(chan)->send_digit_begin && !ast_channel_tech(peer)->send_digit_begin) { + ast_set_flag(ast_channel_flags(chan), AST_FLAG_END_DTMF_ONLY); + ast_set_flag(ast_channel_flags(peer), AST_FLAG_END_DTMF_ONLY); + } + ast_channel_unlock(chan); + ast_channel_unlock(peer); + /* Put peer into the bridge */ if (ast_bridge_impart(bridge, peer, NULL, peer_features, AST_BRIDGE_IMPART_CHAN_INDEPENDENT | AST_BRIDGE_IMPART_INHIBIT_JOIN_COLP)) { @@ -670,6 +678,8 @@ int ast_bridge_call_with_flags(struct as if (ast_channel_softhangup_internal_flag(chan) & AST_SOFTHANGUP_ASYNCGOTO) { res = 0; } + + ast_clear_flag(ast_channel_flags(chan), AST_FLAG_END_DTMF_ONLY); ast_channel_unlock(chan); ast_bridge_features_cleanup(&chan_features);