]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
small tweak to last commit
authorAnthony Minessale <anthony.minessale@gmail.com>
Thu, 26 Jul 2007 00:51:32 +0000 (00:51 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Thu, 26 Jul 2007 00:51:32 +0000 (00:51 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5546 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/switch_ivr_bridge.c

index 88a20981914e1321852a8494b80731161f7be75a..e711987a7135c1947fcc0a4b7884b5dce72c45fa 100644 (file)
@@ -187,22 +187,23 @@ static void *audio_bridge_thread(switch_thread_t * thread, void *obj)
        msg.from = __FILE__;
        switch_core_session_receive_message(session_a, &msg);
 
+       if (switch_channel_get_state(chan_a) < CS_HANGUP) {
+               if ((app_name = switch_channel_get_variable(chan_a, SWITCH_EXEC_AFTER_BRIDGE_APP_VARIABLE))) {
+                       switch_caller_extension_t *extension = NULL;
+                       if ((extension = switch_caller_extension_new(session_a, app_name, app_name)) == 0) {
+                               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "memory error!\n");
+                               goto end;
+                       }
+                       app_arg = switch_channel_get_variable(chan_a, SWITCH_EXEC_AFTER_BRIDGE_ARG_VARIABLE);
 
-       if ((app_name = switch_channel_get_variable(chan_a, SWITCH_EXEC_AFTER_BRIDGE_APP_VARIABLE))) {
-               switch_caller_extension_t *extension = NULL;
-               if ((extension = switch_caller_extension_new(session_a, app_name, app_name)) == 0) {
-                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "memory error!\n");
-                       goto end;
-               }
-               app_arg = switch_channel_get_variable(chan_a, SWITCH_EXEC_AFTER_BRIDGE_ARG_VARIABLE);
-
-               switch_caller_extension_add_application(session_a, extension, (char *) app_name, app_arg);
-               switch_channel_set_caller_extension(chan_a, extension);
+                       switch_caller_extension_add_application(session_a, extension, (char *) app_name, app_arg);
+                       switch_channel_set_caller_extension(chan_a, extension);
 
-               if (switch_channel_get_state(chan_a) == CS_EXECUTE) {
-                       switch_channel_set_flag(chan_a, CF_RESET);
-               } else {
-                       switch_channel_set_state(chan_a, CS_EXECUTE);
+                       if (switch_channel_get_state(chan_a) == CS_EXECUTE) {
+                               switch_channel_set_flag(chan_a, CF_RESET);
+                       } else {
+                               switch_channel_set_state(chan_a, CS_EXECUTE);
+                       }
                }
        }