From e11dc4c6118ca41dd2e0e2df51c5fe54412e158a Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Thu, 26 Jul 2007 00:51:32 +0000 Subject: [PATCH] small tweak to last commit git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5546 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/switch_ivr_bridge.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/switch_ivr_bridge.c b/src/switch_ivr_bridge.c index 88a2098191..e711987a71 100644 --- a/src/switch_ivr_bridge.c +++ b/src/switch_ivr_bridge.c @@ -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); + } } }