]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-6833 ammendium
authorAnthony Minessale <anthm@freeswitch.org>
Wed, 3 Feb 2016 17:28:13 +0000 (11:28 -0600)
committerAnthony Minessale <anthm@freeswitch.org>
Wed, 3 Feb 2016 17:28:13 +0000 (11:28 -0600)
src/switch_ivr.c

index f2f09c801b67f4c61af62cb00a954c1634c5b456..8cd8325d1bee5dda3b63cc9ccfdea5730a135635 100644 (file)
@@ -1821,19 +1821,23 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_3p_nomedia(const char *uuid, switch_m
                                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 {