]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
add sanity check to launch threads that catch hangup and are not in a thread to make...
authorAnthony Minessale <anthm@freeswitch.org>
Fri, 23 Apr 2010 17:14:37 +0000 (12:14 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Fri, 23 Apr 2010 17:14:37 +0000 (12:14 -0500)
src/switch_channel.c

index 345d4e791a5ec3a6c5ab430e20156e268e350f67..acefec30dcbdaceedf4053ee891df0445d6087fe 100644 (file)
@@ -2108,6 +2108,11 @@ SWITCH_DECLARE(switch_channel_state_t) switch_channel_perform_hangup(switch_chan
                switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, switch_channel_get_uuid(channel), SWITCH_LOG_NOTICE, "Hangup %s [%s] [%s]\n",
                                                  channel->name, state_names[last_state], switch_channel_cause2str(channel->hangup_cause));
 
+
+               if (!switch_core_session_running(channel->session)) {
+                       switch_core_session_thread_launch(channel->session);
+               }
+
                if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_HANGUP) == SWITCH_STATUS_SUCCESS) {
                        switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Hangup-Cause", switch_channel_cause2str(hangup_cause));
                        switch_channel_event_set_data(channel, event);