From 7cb095190acc648904c03de15956f61bf4aaa400 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Fri, 24 Jun 2011 18:28:56 -0500 Subject: [PATCH] FS-3362 check for ports that are 0 in sdp and do not bother patching it for these cases --- src/mod/endpoints/mod_sofia/sofia_glue.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) 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";