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_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_SET, SWITCH_TRUE, 10000, NULL);
+ switch_channel_wait_for_flag(other_channel, CF_MEDIA_ACK, SWITCH_TRUE, 10000, NULL);
}
if (other_channel) {
- 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);
- }
-
if (swap) {
switch_ivr_signal_bridge(other_session, session);
} else {