diff --git a/src/include/switch_channel.h b/src/include/switch_channel.h index c0bef4be59..25273bafc4 100644 --- a/src/include/switch_channel.h +++ b/src/include/switch_channel.h @@ -79,6 +79,7 @@ SWITCH_DECLARE(int) switch_channel_test_ready(switch_channel_t *channel, switch_ #define switch_channel_ready(_channel) switch_channel_test_ready(_channel, SWITCH_TRUE, SWITCH_FALSE) #define switch_channel_media_ready(_channel) switch_channel_test_ready(_channel, SWITCH_TRUE, SWITCH_TRUE) +#define switch_channel_media_up(_channel) (switch_channel_test_flag(_channel, CF_ANSWERED) || switch_channel_test_flag(_channel, CF_EARLY_MEDIA)) #define switch_channel_up(_channel) (switch_channel_get_state(_channel) < CS_HANGUP) #define switch_channel_down(_channel) (switch_channel_get_state(_channel) >= CS_HANGUP) diff --git a/src/switch_ivr_bridge.c b/src/switch_ivr_bridge.c index f130625a75..88c72bf1b8 100644 --- a/src/switch_ivr_bridge.c +++ b/src/switch_ivr_bridge.c @@ -1398,10 +1398,8 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_uuid_bridge(const char *originator_uu return SWITCH_STATUS_FALSE; } - //if (!switch_channel_test_flag(originator_channel, CF_ANSWERED)) { - if (!switch_channel_media_ready(originator_channel)) { - if (switch_channel_media_ready(originatee_channel)) { - //if (switch_channel_test_flag(originatee_channel, CF_ANSWERED)) { + if (!switch_channel_media_up(originator_channel)) { + if (switch_channel_media_up(originatee_channel)) { swap_session = originator_session; originator_session = originatee_session; originatee_session = swap_session;