]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
only hack sdp in proxy or bypass
authorAnthony Minessale <anthony.minessale@gmail.com>
Fri, 22 Jan 2010 22:17:17 +0000 (22:17 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Fri, 22 Jan 2010 22:17:17 +0000 (22:17 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16472 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/endpoints/mod_sofia/sofia.c

index 0b13178b13637f859b9aa82826d8ad24fa090026..17b364ffcbf7665c3d12efa6222ad0103a41f097 100644 (file)
@@ -3958,17 +3958,22 @@ static void sofia_handle_sip_i_state(switch_core_session_t *session, int status,
                r_sdp = tech_pvt->last_sdp_str;
        }
        
-       /* This marr in our code brought to you by people who can't read........*/
-       if (profile->ndlb & PFLAG_NDLB_ALLOW_BAD_IANANAME && r_sdp && (p = (char *) switch_stristr("g729a/8000", r_sdp))) {
-               p += 4;
-               *p++ = '/';
-               *p++ = '8';
-               *p++ = '0';
-               *p++ = '0';
-               *p++ = '0';
-               *p++ = ' ';
+       if ((channel && (switch_channel_test_flag(channel, CF_PROXY_MODE) || switch_channel_test_flag(channel, CF_PROXY_MEDIA))) || 
+               (sofia_test_flag(profile, TFLAG_INB_NOMEDIA) || sofia_test_flag(profile, TFLAG_PROXY_MEDIA))) {
+
+               /* This marr in our code brought to you by people who can't read........*/
+               if (profile->ndlb & PFLAG_NDLB_ALLOW_BAD_IANANAME && r_sdp && (p = (char *) switch_stristr("g729a/8000", r_sdp))) {
+                       p += 4;
+                       *p++ = '/';
+                       *p++ = '8';
+                       *p++ = '0';
+                       *p++ = '0';
+                       *p++ = '0';
+                       *p++ = ' ';
+               }
        }
 
+
        if (ss_state == nua_callstate_terminated) {
 
                if ((status == 300 || status == 302 || status == 305) && session) {