From: Anthony Minessale Date: Fri, 24 Jun 2011 23:28:56 +0000 (-0500) Subject: FS-3362 check for ports that are 0 in sdp and do not bother patching it for these... X-Git-Tag: v1.2-rc1~108^2^2~132 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7cb095190acc648904c03de15956f61bf4aaa400;p=thirdparty%2Ffreeswitch.git FS-3362 check for ports that are 0 in sdp and do not bother patching it for these cases --- diff --git a/src/mod/endpoints/mod_sofia/sofia_glue.c b/src/mod/endpoints/mod_sofia/sofia_glue.c index dce54efb2a..e6a6052c4a 100644 --- a/src/mod/endpoints/mod_sofia/sofia_glue.c +++ b/src/mod/endpoints/mod_sofia/sofia_glue.c @@ -1524,6 +1524,7 @@ void sofia_glue_tech_patch_sdp(private_object_t *tech_pvt) char vport_buf[25] = ""; char *new_sdp; int bad = 0; + int skip_video = 0, skip_audio = 0, skip_image = 0; if (zstr(tech_pvt->local_sdp_str)) { return; @@ -1557,6 +1558,15 @@ void sofia_glue_tech_patch_sdp(private_object_t *tech_pvt) pe = p + strlen(p); qe = q + len - 1; + + if (switch_stristr("m=video 0", p)) { + skip_video = 1; + } else if (switch_stristr("m=audio 0", p)) { + skip_audio = 1; + } else if (switch_stristr("m=image 0", p)) { + skip_image = 1; + } + while (p && *p) { if (p >= pe) { bad = 1; @@ -1648,7 +1658,7 @@ void sofia_glue_tech_patch_sdp(private_object_t *tech_pvt) } - } else if (!strncmp("m=audio ", p, 8) || (!strncmp("m=image ", p, 8))) { + } else if ((!skip_audio && !strncmp("m=audio ", p, 8)) || (!skip_image && !strncmp("m=image ", p, 8))) { strncpy(q, p, 8); p += 8; @@ -1684,7 +1694,7 @@ void sofia_glue_tech_patch_sdp(private_object_t *tech_pvt) has_audio++; - } else if (!strncmp("m=video ", p, 8)) { + } else if (!skip_video && !strncmp("m=video ", p, 8)) { if (!has_video) { sofia_glue_tech_choose_video_port(tech_pvt, 1); tech_pvt->video_rm_encoding = "PROXY-VID";