]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
don't honor park_after_bridge or transfer_after_bridge if CF_REDIRECT or CF_TRANSFER...
authorMathieu Rene <mrene@avgs.ca>
Mon, 13 Aug 2012 17:39:29 +0000 (13:39 -0400)
committerMathieu Rene <mrene@avgs.ca>
Mon, 13 Aug 2012 17:39:29 +0000 (13:39 -0400)
src/switch_ivr_bridge.c

index 4af0dbb8ff4bd9d102d2d8a864f6ecc9c154a723..bc5c24e5f085fd989d6b3a03a0a86edef237a503 100644 (file)
@@ -654,9 +654,11 @@ static switch_status_t audio_bridge_on_exchange_media(switch_core_session_t *ses
 
        state = switch_channel_get_state(channel);
 
-       if (state < CS_HANGUP && switch_true(switch_channel_get_variable(channel, SWITCH_PARK_AFTER_BRIDGE_VARIABLE))) {
+       if (state < CS_HANGUP && !switch_channel_test_flag(channel, CF_TRANSFER) && !switch_channel_test_flag(channel, CF_REDIRECT) &&
+               switch_true(switch_channel_get_variable(channel, SWITCH_PARK_AFTER_BRIDGE_VARIABLE))) {
                switch_ivr_park_session(session);
-       } else if (state < CS_HANGUP && (var = switch_channel_get_variable(channel, SWITCH_TRANSFER_AFTER_BRIDGE_VARIABLE))) {
+       } else if (state < CS_HANGUP && !switch_channel_test_flag(channel, CF_TRANSFER) && !switch_channel_test_flag(channel, CF_REDIRECT) && 
+                         (var = switch_channel_get_variable(channel, SWITCH_TRANSFER_AFTER_BRIDGE_VARIABLE))) {
                transfer_after_bridge(session, var);
        } else {
                if (!switch_channel_test_flag(channel, CF_TRANSFER) && !switch_channel_test_flag(channel, CF_REDIRECT) &&