From 30a823c0e4bdc2d17a779134bef2f928a6d8bc1c Mon Sep 17 00:00:00 2001 From: Brian West Date: Fri, 5 Mar 2010 21:41:03 +0000 Subject: [PATCH] MODSOFIA-64 thanks git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16919 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/endpoints/mod_sofia/sofia_glue.c | 25 ++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/mod/endpoints/mod_sofia/sofia_glue.c b/src/mod/endpoints/mod_sofia/sofia_glue.c index 3f8fd15c97..0e9b0b9352 100644 --- a/src/mod/endpoints/mod_sofia/sofia_glue.c +++ b/src/mod/endpoints/mod_sofia/sofia_glue.c @@ -1259,7 +1259,7 @@ void sofia_glue_tech_patch_sdp(private_object_t *tech_pvt) goto end; } - len = (oe - p) + 1; + len = (oe - p); p += len; @@ -1284,10 +1284,31 @@ void sofia_glue_tech_patch_sdp(private_object_t *tech_pvt) tech_pvt->profile->sipip); strncpy(q, o_line, strlen(o_line)); - q += strlen(o_line); + q += strlen(o_line) - 1; } + } else if (!strncmp("s=", p, 2)) { + char *se = strchr(p, '\n'); + switch_size_t len; + + if (se) { + char s_line[1024] = ""; + + if (se >= pe) { + bad = 5; + goto end; + } + + len = (se - p); + p += len; + + snprintf(s_line, sizeof(s_line), "s=%s\n", tech_pvt->profile->username); + + strncpy(q, s_line, strlen(s_line)); + q += strlen(s_line) - 1; + + } } else if (!strncmp("m=audio ", p, 8) || (!strncmp("m=image ", p, 8))) { strncpy(q, p, 8);