Revision
16309
Author
anthm
Date
2010-01-14 10:44:58 -0600 (Thu, 14 Jan 2010)

Log Message

shhh

Modified Paths

Diff

Modified: freeswitch/trunk/src/switch_ivr_bridge.c (16308 => 16309)


--- freeswitch/trunk/src/switch_ivr_bridge.c	2010-01-14 16:02:46 UTC (rev 16308)
+++ freeswitch/trunk/src/switch_ivr_bridge.c	2010-01-14 16:44:58 UTC (rev 16309)
@@ -847,7 +847,8 @@
 					transfer_after_bridge(other_session, var);
 				}
 				
-				if (switch_channel_test_flag(other_channel, CF_BRIDGE_ORIGINATOR) &&
+				if (switch_channel_test_flag(other_channel, CF_BRIDGE_ORIGINATOR) && 
+					switch_channel_test_flag(channel, CF_ANSWERED) &&
 					switch_true(switch_channel_get_variable(other_channel, SWITCH_HANGUP_AFTER_BRIDGE_VARIABLE))) {
 					switch_channel_hangup(other_channel, switch_channel_get_cause(channel));	
 				} else {
@@ -1178,7 +1179,8 @@
 				switch_ivr_park_session(session);
 			} else if ((var = switch_channel_get_variable(caller_channel, SWITCH_TRANSFER_AFTER_BRIDGE_VARIABLE))) {
 				transfer_after_bridge(session, var);
-			} else if (switch_true(switch_channel_get_variable(caller_channel, SWITCH_HANGUP_AFTER_BRIDGE_VARIABLE))) {
+			} else if (switch_channel_test_flag(peer_channel, CF_ANSWERED) && 
+					   switch_true(switch_channel_get_variable(caller_channel, SWITCH_HANGUP_AFTER_BRIDGE_VARIABLE))) {
 				switch_channel_hangup(caller_channel, switch_channel_get_cause(peer_channel));
 			}
 		}