From dadace9a937045436ddb4b1756131a5292789e9b Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Fri, 15 Feb 2008 16:15:32 +0000 Subject: [PATCH] update git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@7619 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/endpoints/mod_dingaling/mod_dingaling.c | 2 +- src/mod/endpoints/mod_sofia/sofia_glue.c | 7 ++++++- src/switch_rtp.c | 4 ---- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/mod/endpoints/mod_dingaling/mod_dingaling.c b/src/mod/endpoints/mod_dingaling/mod_dingaling.c index 41237d8937..a147e3dd25 100644 --- a/src/mod/endpoints/mod_dingaling/mod_dingaling.c +++ b/src/mod/endpoints/mod_dingaling/mod_dingaling.c @@ -1230,7 +1230,7 @@ static switch_status_t channel_on_hangup(switch_core_session_t *session) ldl_session_destroy(&tech_pvt->dlsession); } - if (switch_rtp_ready(tech_pvt->rtp_session)) { + if (tech_pvt->rtp_session) { switch_rtp_destroy(&tech_pvt->rtp_session); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "NUKE RTP\n"); tech_pvt->rtp_session = NULL; diff --git a/src/mod/endpoints/mod_sofia/sofia_glue.c b/src/mod/endpoints/mod_sofia/sofia_glue.c index 46869e0fa4..fb54ac43a7 100644 --- a/src/mod/endpoints/mod_sofia/sofia_glue.c +++ b/src/mod/endpoints/mod_sofia/sofia_glue.c @@ -1003,11 +1003,16 @@ void sofia_glue_deactivate_rtp(private_object_t *tech_pvt) switch_yield(10000); loops++; } + } + + if (tech_pvt->rtp_session) { switch_rtp_destroy(&tech_pvt->rtp_session); } - if (switch_rtp_ready(tech_pvt->video_rtp_session)) { + + if (tech_pvt->video_rtp_session) { switch_rtp_destroy(&tech_pvt->video_rtp_session); } + } switch_status_t sofia_glue_tech_set_video_codec(private_object_t *tech_pvt, int force) diff --git a/src/switch_rtp.c b/src/switch_rtp.c index 8362021008..de8ce690be 100644 --- a/src/switch_rtp.c +++ b/src/switch_rtp.c @@ -843,19 +843,15 @@ SWITCH_DECLARE(void) switch_rtp_destroy(switch_rtp_t **rtp_session) } if (switch_test_flag((*rtp_session), SWITCH_RTP_FLAG_SECURE_SEND)) { - switch_mutex_lock((*rtp_session)->flag_mutex); srtp_dealloc((*rtp_session)->send_ctx); (*rtp_session)->send_ctx = NULL; switch_clear_flag((*rtp_session), SWITCH_RTP_FLAG_SECURE_SEND); - switch_mutex_unlock((*rtp_session)->flag_mutex); } if (switch_test_flag((*rtp_session), SWITCH_RTP_FLAG_SECURE_RECV)) { - switch_mutex_lock((*rtp_session)->flag_mutex); srtp_dealloc((*rtp_session)->recv_ctx); (*rtp_session)->recv_ctx = NULL; switch_clear_flag((*rtp_session), SWITCH_RTP_FLAG_SECURE_RECV); - switch_mutex_unlock((*rtp_session)->flag_mutex); } if ((*rtp_session)->timer.timer_interface) {