[Freeswitch-svn] [commit] r5564 - freeswitch/trunk/src
Freeswitch SVN
mikej at freeswitch.org
Fri Aug 3 12:46:22 EDT 2007
Author: mikej
Date: Fri Aug 3 12:46:21 2007
New Revision: 5564
Modified:
freeswitch/trunk/src/switch_ivr.c
Log:
fix for FSCORE-34
Modified: freeswitch/trunk/src/switch_ivr.c
==============================================================================
--- freeswitch/trunk/src/switch_ivr.c (original)
+++ freeswitch/trunk/src/switch_ivr.c Fri Aug 3 12:46:21 2007
@@ -890,8 +890,17 @@
switch_channel_set_variable(channel, SWITCH_SIGNAL_BOND_VARIABLE, NULL);
- if ((uuid = switch_channel_get_variable(channel, SWITCH_SIGNAL_BOND_VARIABLE))
- && (other_session = switch_core_session_locate(uuid))) {
+
+ /* If HANGUP_AFTER_BRIDGE is set to 'true', SWITCH_SIGNAL_BRIDGE_VARIABLE
+ * will not have a value, so we need to check SWITCH_BRIDGE_VARIABLE */
+
+ uuid = switch_channel_get_variable(channel, SWITCH_SIGNAL_BRIDGE_VARIABLE);
+
+ if(!uuid) {
+ uuid = switch_channel_get_variable(channel, SWITCH_BRIDGE_VARIABLE);
+ }
+
+ if (uuid && (other_session = switch_core_session_locate(uuid))) {
switch_channel_set_variable(other_channel, SWITCH_SIGNAL_BOND_VARIABLE, NULL);
switch_core_session_rwunlock(other_session);
}
@@ -906,6 +915,9 @@
switch_channel_set_variable(channel, SWITCH_BRIDGE_VARIABLE, NULL);
switch_channel_set_variable(other_channel, SWITCH_BRIDGE_VARIABLE, NULL);
+
+ /* If we are transferring the CALLER out of the bridge, we do not want to hang up on them */
+ switch_channel_set_variable(channel, SWITCH_HANGUP_AFTER_BRIDGE_VARIABLE, "false");
switch_channel_hangup(other_channel, SWITCH_CAUSE_BLIND_TRANSFER);
switch_ivr_media(uuid, SMF_NONE);
More information about the Freeswitch-svn
mailing list