From e65075b63f705eaada99e409df95c1bfd6ae4dbf Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Sat, 8 Mar 2008 02:11:21 +0000 Subject: [PATCH] update git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@7841 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/endpoints/mod_sofia/sofia.c | 5 +++++ src/switch_event.c | 4 ++-- src/switch_rtp.c | 8 +++++++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index fb35cd8ce1..b9456ccfe1 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -1920,6 +1920,11 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status, break; case nua_callstate_terminating: + if (session) { + if (!switch_test_flag(tech_pvt, TFLAG_BYE)) { + switch_set_flag_locked(tech_pvt, TFLAG_BYE); + } + } break; case nua_callstate_terminated: if (session) { diff --git a/src/switch_event.c b/src/switch_event.c index 3364da1209..fd37212479 100644 --- a/src/switch_event.c +++ b/src/switch_event.c @@ -411,8 +411,8 @@ SWITCH_DECLARE(switch_status_t) switch_event_init(switch_memory_pool_t *pool) switch_queue_create(&EVENT_QUEUE[0], POOL_COUNT_MAX + 10, THRUNTIME_POOL); switch_queue_create(&EVENT_QUEUE[1], POOL_COUNT_MAX + 10, THRUNTIME_POOL); switch_queue_create(&EVENT_QUEUE[2], POOL_COUNT_MAX + 10, THRUNTIME_POOL); - switch_queue_create(&EVENT_RECYCLE_QUEUE, SWITCH_CORE_QUEUE_LEN, THRUNTIME_POOL); - switch_queue_create(&EVENT_HEADER_RECYCLE_QUEUE, SWITCH_CORE_QUEUE_LEN, THRUNTIME_POOL); + switch_queue_create(&EVENT_RECYCLE_QUEUE, 250000, THRUNTIME_POOL); + switch_queue_create(&EVENT_HEADER_RECYCLE_QUEUE, 250000, THRUNTIME_POOL); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Activate Eventing Engine.\n"); switch_mutex_init(&BLOCK, SWITCH_MUTEX_NESTED, RUNTIME_POOL); diff --git a/src/switch_rtp.c b/src/switch_rtp.c index c55b4da8bf..c0145fbbb5 100644 --- a/src/switch_rtp.c +++ b/src/switch_rtp.c @@ -765,12 +765,17 @@ SWITCH_DECLARE(switch_rtp_t *) switch_rtp_new(const char *rx_host, if (switch_rtp_create(&rtp_session, payload, samples_per_interval, ms_per_packet, flags, timer_name, err, pool) != SWITCH_STATUS_SUCCESS) { goto end; } - + + switch_mutex_lock(rtp_session->flag_mutex); + if (switch_rtp_set_local_address(rtp_session, rx_host, rx_port, err) != SWITCH_STATUS_SUCCESS) { + switch_mutex_unlock(rtp_session->flag_mutex); rtp_session = NULL; + goto end; } if (switch_rtp_set_remote_address(rtp_session, tx_host, tx_port, err) != SWITCH_STATUS_SUCCESS) { + switch_mutex_unlock(rtp_session->flag_mutex); rtp_session = NULL; goto end; } @@ -778,6 +783,7 @@ SWITCH_DECLARE(switch_rtp_t *) switch_rtp_new(const char *rx_host, end: if (rtp_session) { + switch_mutex_unlock(rtp_session->flag_mutex); rtp_session->ready = 2; rtp_session->rx_host = switch_core_strdup(rtp_session->pool, rx_host); rtp_session->rx_port = rx_port;