diff --git a/src/switch_ivr_bridge.c b/src/switch_ivr_bridge.c index 46755e3b59..62d5daf600 100644 --- a/src/switch_ivr_bridge.c +++ b/src/switch_ivr_bridge.c @@ -552,7 +552,12 @@ static void *audio_bridge_thread(switch_thread_t *thread, void *obj) if ((bypass_media_after_bridge || switch_channel_test_flag(chan_b, CF_BYPASS_MEDIA_AFTER_BRIDGE)) && switch_channel_test_flag(chan_a, CF_ANSWERED) && switch_channel_test_flag(chan_b, CF_ANSWERED)) { - switch_ivr_3p_nomedia(switch_core_session_get_uuid(session_a), SMF_REBRIDGE); + + if (switch_true(switch_channel_get_variable_dup(chan_a, "bypass_media_after_bridge_oldschool", SWITCH_FALSE, -1))) { + switch_ivr_nomedia(switch_core_session_get_uuid(session_a), SMF_REBRIDGE); + } else { + switch_ivr_3p_nomedia(switch_core_session_get_uuid(session_a), SMF_REBRIDGE); + } bypass_media_after_bridge = 0; switch_channel_clear_flag(chan_b, CF_BYPASS_MEDIA_AFTER_BRIDGE); goto end_of_bridge_loop;