From: Anthony Minessale Date: Fri, 5 Feb 2016 19:03:15 +0000 (-0600) Subject: FS-6833 X-Git-Tag: v1.6.7~2^2~100 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d60ea97157161d829d9720615198048979d5a486;p=thirdparty%2Ffreeswitch.git FS-6833 --- diff --git a/src/switch_ivr.c b/src/switch_ivr.c index 0bdd50e71a..df673bd3f7 100644 --- a/src/switch_ivr.c +++ b/src/switch_ivr.c @@ -1806,6 +1806,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_3p_nomedia(const char *uuid, switch_m switch_channel_set_flag(other_channel, CF_RESET); switch_channel_set_flag(other_channel, CF_REDIRECT); + switch_channel_set_variable(channel, SWITCH_R_SDP_VARIABLE, NULL); switch_channel_set_flag(channel, CF_3P_NOMEDIA_REQUESTED); switch_core_session_receive_message(session, &msg); @@ -1819,24 +1820,24 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_3p_nomedia(const char *uuid, switch_m switch_channel_wait_for_state(other_channel, channel, CS_PARK); } - - switch_channel_set_flag(other_channel, CF_3P_NOMEDIA_REQUESTED); - switch_channel_set_flag(other_channel, CF_3P_NOMEDIA_REQUESTED_BLEG); - + if (!switch_core_session_in_thread(session)) { switch_channel_wait_for_state(channel, NULL, CS_PARK); } switch_channel_wait_for_flag(channel, CF_REQ_MEDIA, SWITCH_FALSE, 10000, NULL); switch_channel_wait_for_flag(channel, CF_MEDIA_ACK, SWITCH_TRUE, 10000, NULL); - //switch_channel_wait_for_flag(channel, CF_MEDIA_SET, SWITCH_TRUE, 10000, NULL); - + switch_channel_wait_for_flag(channel, CF_3P_NOMEDIA_REQUESTED, SWITCH_FALSE, 10000, NULL); msg.string_arg = switch_channel_get_variable(channel, SWITCH_R_SDP_VARIABLE); + switch_channel_set_flag(other_channel, CF_3P_NOMEDIA_REQUESTED); + switch_channel_set_flag(other_channel, CF_3P_NOMEDIA_REQUESTED_BLEG); + + switch_core_session_receive_message(other_session, &msg); switch_channel_wait_for_flag(other_channel, CF_REQ_MEDIA, SWITCH_FALSE, 10000, NULL); - //switch_channel_wait_for_flag(other_channel, CF_MEDIA_SET, SWITCH_TRUE, 10000, NULL); switch_channel_wait_for_flag(other_channel, CF_MEDIA_ACK, SWITCH_TRUE, 10000, NULL); + switch_channel_wait_for_flag(other_channel, CF_3P_NOMEDIA_REQUESTED, SWITCH_FALSE, 10000, NULL); } if (other_channel) {