FSCORE-615

This commit is contained in:
Anthony Minessale 2010-06-03 10:16:47 -05:00 committed by Brian West
parent e853654871
commit 4a4670a71e
1 changed files with 11 additions and 8 deletions

View File

@ -1284,6 +1284,10 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_nomedia(const char *uuid, switch_medi
switch_channel_set_flag(other_channel, CF_RESET); switch_channel_set_flag(other_channel, CF_RESET);
switch_channel_set_flag(other_channel, CF_REDIRECT); switch_channel_set_flag(other_channel, CF_REDIRECT);
if (!switch_core_session_in_thread(session)) {
switch_channel_set_state(channel, CS_PARK);
}
switch_channel_set_state(other_channel, CS_PARK); switch_channel_set_state(other_channel, CS_PARK);
if (switch_core_session_in_thread(session)) { if (switch_core_session_in_thread(session)) {
switch_yield(100000); switch_yield(100000);
@ -1298,15 +1302,14 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_nomedia(const char *uuid, switch_medi
switch_core_session_receive_message(session, &msg); switch_core_session_receive_message(session, &msg);
if (!switch_core_session_in_thread(session)) {
switch_channel_set_state(channel, CS_PARK);
switch_channel_wait_for_state(channel, channel, 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);
}
if (other_channel) { if (other_channel) {
if (!switch_core_session_in_thread(session)) {
switch_channel_wait_for_state(channel, channel, 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);
}
if (swap) { if (swap) {
switch_ivr_signal_bridge(other_session, session); switch_ivr_signal_bridge(other_session, session);
} else { } else {