From b5973144022bbc749b2d0a0d4bb8201e9aa7b3f7 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Fri, 23 May 2008 12:39:35 +0000 Subject: [PATCH] rewrite video port too git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@8538 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/endpoints/mod_sofia/sofia_glue.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/mod/endpoints/mod_sofia/sofia_glue.c b/src/mod/endpoints/mod_sofia/sofia_glue.c index e52a4d7a13..7dc3a62381 100644 --- a/src/mod/endpoints/mod_sofia/sofia_glue.c +++ b/src/mod/endpoints/mod_sofia/sofia_glue.c @@ -777,7 +777,7 @@ switch_status_t sofia_glue_tech_proxy_remote_addr(private_object_t *tech_pvt) void sofia_glue_tech_patch_sdp(private_object_t *tech_pvt) { switch_size_t len; - char *p, *q, *ip_ptr = NULL, *port_ptr = NULL; + char *p, *q, *ip_ptr = NULL, *port_ptr = NULL, *vport_ptr = NULL; int x; if (switch_strlen_zero(tech_pvt->local_sdp_str)) { @@ -798,6 +798,10 @@ void sofia_glue_tech_patch_sdp(private_object_t *tech_pvt) if ((p = (char *)switch_stristr("m=audio ", tech_pvt->local_sdp_str))) { port_ptr = p + 8; } + + if ((p = (char *)switch_stristr("m=video ", tech_pvt->local_sdp_str))) { + vport_ptr = p + 8; + } if (!(ip_ptr && port_ptr)) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s SDP has no audio in it.\n%s\n", @@ -840,6 +844,16 @@ void sofia_glue_tech_patch_sdp(private_object_t *tech_pvt) while(p && *p && (*p >= '0' && *p <= '9')) { p++; } + } else if (vport_ptr && p == vport_ptr) { + char port_buf[25] = ""; + + switch_snprintf(port_buf, sizeof(port_buf), "%u", tech_pvt->adv_sdp_video_port); + strncpy(q, port_buf, strlen(port_buf)); + q += strlen(port_buf); + x = 0; + while(p && *p && (*p >= '0' && *p <= '9')) { + p++; + } } *q++ = *p++;