]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
move rtp stats up to where they will be more useful
authorAnthony Minessale <anthony.minessale@gmail.com>
Tue, 14 Apr 2009 16:55:10 +0000 (16:55 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Tue, 14 Apr 2009 16:55:10 +0000 (16:55 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13017 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/endpoints/mod_sofia/mod_sofia.c
src/mod/endpoints/mod_sofia/mod_sofia.h
src/mod/endpoints/mod_sofia/sofia_glue.c

index 4e51a241c671c68b5e0b04e58abc50f79f4a91b0..fc3c817129aa83b4bf6375222338d63a8e8ad910 100644 (file)
@@ -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;
index 95a44703afa0b4687922969026b10cdc741b1428..82b9c2474bb22b496fe483789df559341e397e5f 100644 (file)
@@ -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);
index dc1910dea8655e5c754c122d0e6d12a9e3011ea9..8dba858c8265ac75b47cc543d578d69142a0d203 100644 (file)
@@ -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);