Revision
15149
Author
anthm
Date
2009-10-13 15:03:18 -0500 (Tue, 13 Oct 2009)

Log Message

send update after both sides are answered

Modified Paths

Diff

Modified: freeswitch/trunk/src/switch_ivr_bridge.c (15148 => 15149)


--- freeswitch/trunk/src/switch_ivr_bridge.c	2009-10-13 18:46:44 UTC (rev 15148)
+++ freeswitch/trunk/src/switch_ivr_bridge.c	2009-10-13 20:03:18 UTC (rev 15149)
@@ -161,7 +161,7 @@
 	const char *silence_var, *var;
 	int silence_val = 0, bypass_media_after_bridge = 0;
 	const char *bridge_answer_timeout = NULL;
-	int answer_timeout;
+	int answer_timeout, sent_update = -5;
 	time_t answer_limit = 0;
 	
 #ifdef SWITCH_VIDEO_IN_THREADS
@@ -400,6 +400,13 @@
 		}
 		
 
+		if (originator && sent_update < 0 && ans_a && ans_b) {
+			if (!++sent_update) {
+				switch_ivr_bridge_display(session_a, session_b);
+				sent_update = 1;
+			}
+		}
+
 #ifndef SWITCH_VIDEO_IN_THREADS
 		if (switch_channel_test_flag(chan_a, CF_VIDEO) && switch_channel_test_flag(chan_b, CF_VIDEO)) {
 			/* read video from 1 channel and write it to the other */
@@ -888,8 +895,6 @@
 		return switch_ivr_signal_bridge(session, peer_session);
 	}
 	
-	switch_ivr_bridge_display(session, peer_session);
-
 	switch_channel_set_flag(caller_channel, CF_BRIDGE_ORIGINATOR);
 
 	b_leg->session = peer_session;