]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
don't passthru when its proxy media, bypass media or there is no rtp session, fixes seg
authorAnthony Minessale <anthm@freeswitch.org>
Mon, 27 Sep 2010 18:09:03 +0000 (13:09 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Mon, 27 Sep 2010 18:11:51 +0000 (13:11 -0500)
src/mod/endpoints/mod_sofia/sofia_glue.c

index 5892ef552b2d9a9fbad24fa12c623d5cb8bb3036..508fa54aacd4bd8240ae3a6ea87d2069ba6d7aa6 100644 (file)
@@ -3737,6 +3737,11 @@ uint8_t sofia_glue_negotiate_sdp(switch_core_session_t *session, const char *r_s
                                        pass = 0;
                                }
                                
+                               if (switch_channel_test_flag(tech_pvt->channel, CF_PROXY_MODE) || 
+                                       switch_channel_test_flag(tech_pvt->channel, CF_PROXY_MEDIA) || !switch_rtp_ready(tech_pvt->rtp_session)) {
+                                       pass = 0;
+                               }
+                               
                                if (pass && switch_core_session_get_partner(session, &other_session) == SWITCH_STATUS_SUCCESS) {
                                        private_object_t *other_tech_pvt = switch_core_session_get_private(other_session);
                                        switch_core_session_message_t *msg;