]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-11625: [core]: Do not hangup sessions that have transfer or park after bridge...
authorBrian West <brian@freeswitch.org>
Tue, 22 Jan 2019 22:54:01 +0000 (16:54 -0600)
committerMike Jerris <mike@signalwire.com>
Thu, 6 Jun 2019 15:22:37 +0000 (11:22 -0400)
src/switch_ivr_bridge.c

index 0ab870c6a59ffb228071c888e1d9f1c5c1e8801a..c7fd49674a746eef4678b596de8b8ec73d7bef29 100644 (file)
@@ -1259,7 +1259,20 @@ static switch_status_t uuid_bridge_on_soft_execute(switch_core_session_t *sessio
                        switch_channel_set_state(channel, CS_EXECUTE);
                }
        } else {
-               switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
+               int hup = 1;
+               const char *var;
+               
+               if (switch_true(switch_channel_get_variable(channel, SWITCH_PARK_AFTER_BRIDGE_VARIABLE))) {
+                       switch_ivr_park_session(session);
+                       hup = 0;
+               } else if ((var = switch_channel_get_variable(channel, SWITCH_TRANSFER_AFTER_BRIDGE_VARIABLE))) {
+                       transfer_after_bridge(session, var);
+                       hup = 0;
+               }
+               
+               if (hup) {
+                       switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
+               }
        }
 
  done: