]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-6637 try this patch
authorAnthony Minessale <anthm@freeswitch.org>
Tue, 1 Jul 2014 17:31:55 +0000 (22:31 +0500)
committerAnthony Minessale <anthm@freeswitch.org>
Tue, 1 Jul 2014 17:32:02 +0000 (22:32 +0500)
src/switch_ivr_bridge.c

index b2f1d56375cb4e5ff4b08840d03981b3e43fab0d..89fa4d933b9f26969cd2370f96af67ca56cccda2 100644 (file)
@@ -1141,10 +1141,18 @@ static switch_status_t signal_bridge_on_hangup(switch_core_session_t *session)
                                                }
                                                switch_channel_hangup(other_channel, switch_channel_get_cause(channel));
                                        } else {
+                                               const char *var;
+
                                                if (!switch_channel_test_flag(channel, CF_ANSWERED)) {
                                                        switch_channel_handle_cause(other_channel, switch_channel_get_cause(channel));
+                                               } 
+
+                                               if (switch_channel_test_flag(channel, CF_ANSWERED) && 
+                                                       (var = switch_channel_get_variable(other_channel, SWITCH_TRANSFER_AFTER_BRIDGE_VARIABLE))) {
+                                                       transfer_after_bridge(other_session, var);
+                                               } else {
+                                                       switch_channel_set_state(other_channel, CS_EXECUTE);
                                                }
-                                               switch_channel_set_state(other_channel, CS_EXECUTE);
                                        }
                                } else {
                                        switch_channel_hangup(other_channel, switch_channel_get_cause(channel));