From 300bb301b77466bfacff027b5bb5a65f5fa9f906 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 14 Apr 2009 16:55:10 +0000 Subject: [PATCH] move rtp stats up to where they will be more useful git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13017 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/endpoints/mod_sofia/mod_sofia.c | 3 +++ src/mod/endpoints/mod_sofia/mod_sofia.h | 1 + src/mod/endpoints/mod_sofia/sofia_glue.c | 13 +++++++++++-- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.c b/src/mod/endpoints/mod_sofia/mod_sofia.c index 4e51a241c6..fc3c817129 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.c +++ b/src/mod/endpoints/mod_sofia/mod_sofia.c @@ -411,6 +411,9 @@ switch_status_t sofia_on_hangup(switch_core_session_t *session) *tech_pvt->sofia_private->uuid = '\0'; } + + sofia_glue_set_rtp_stats(tech_pvt); + switch_mutex_unlock(tech_pvt->sofia_mutex); return SWITCH_STATUS_SUCCESS; diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.h b/src/mod/endpoints/mod_sofia/mod_sofia.h index 95a44703af..82b9c2474b 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.h +++ b/src/mod/endpoints/mod_sofia/mod_sofia.h @@ -854,3 +854,4 @@ switch_status_t sofia_set_loglevel(const char *name, int level); int sofia_get_loglevel(const char *name); sofia_cid_type_t sofia_cid_name2type(const char *name); void sofia_glue_tech_set_local_sdp(private_object_t *tech_pvt, const char *sdp_str, switch_bool_t dup); +void sofia_glue_set_rtp_stats(private_object_t *tech_pvt); diff --git a/src/mod/endpoints/mod_sofia/sofia_glue.c b/src/mod/endpoints/mod_sofia/sofia_glue.c index dc1910dea8..8dba858c82 100644 --- a/src/mod/endpoints/mod_sofia/sofia_glue.c +++ b/src/mod/endpoints/mod_sofia/sofia_glue.c @@ -1723,6 +1723,17 @@ static void set_stats(switch_rtp_t *rtp_session, private_object_t *tech_pvt, con } } +void sofia_glue_set_rtp_stats(private_object_t *tech_pvt) +{ + if (tech_pvt->rtp_session) { + set_stats(tech_pvt->rtp_session, tech_pvt, "audio"); + } + + if (tech_pvt->video_rtp_session) { + set_stats(tech_pvt->video_rtp_session, tech_pvt, "video"); + } +} + void sofia_glue_deactivate_rtp(private_object_t *tech_pvt) { int loops = 0; @@ -1734,14 +1745,12 @@ void sofia_glue_deactivate_rtp(private_object_t *tech_pvt) } if (tech_pvt->rtp_session) { - set_stats(tech_pvt->rtp_session, tech_pvt, "audio"); switch_rtp_destroy(&tech_pvt->rtp_session); } else if (tech_pvt->local_sdp_audio_port) { switch_rtp_release_port(tech_pvt->profile->rtpip, tech_pvt->local_sdp_audio_port); } if (tech_pvt->video_rtp_session) { - set_stats(tech_pvt->video_rtp_session, tech_pvt, "video"); switch_rtp_destroy(&tech_pvt->video_rtp_session); } else if (tech_pvt->local_sdp_video_port) { switch_rtp_release_port(tech_pvt->profile->rtpip, tech_pvt->local_sdp_video_port);