}
if (switch_core_session_thread_launch(session) != SWITCH_STATUS_SUCCESS) {
- if (!switch_core_session_running(session)) {
+ if (!switch_core_session_running(session) && !switch_core_session_started(session)) {
nua_handle_bind(nh, NULL);
sofia_private_free(sofia_private);
switch_core_session_destroy(&session);
nua_respond(nh, 503, "Maximum Calls In Progress", SIPTAG_RETRY_AFTER_STR("300"), TAG_END());
- }
+ }
goto end;
}
}
- if (!(tech_pvt = (private_object_t *) switch_core_session_alloc(session, sizeof(private_object_t)))) {
- switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_CRIT, "Hey where is my memory pool?\n");
- switch_core_session_destroy(&session);
- goto end;
- }
-
+ tech_pvt = (private_object_t *) switch_core_session_alloc(session, sizeof(private_object_t));
tech_pvt->channel = channel;
switch_mutex_init(&tech_pvt->flag_mutex, SWITCH_MUTEX_NESTED, switch_core_session_get_pool(session));