[Freeswitch-svn] [commit] r8538 - freeswitch/trunk/src/mod/endpoints/mod_sofia

Freeswitch SVN anthm at freeswitch.org
Fri May 23 08:39:35 EDT 2008


Author: anthm
Date: Fri May 23 08:39:35 2008
New Revision: 8538

Modified:
   freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c

Log:
rewrite video port too

Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c	(original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c	Fri May 23 08:39:35 2008
@@ -777,7 +777,7 @@
 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 @@
 	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 @@
 			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++;



More information about the Freeswitch-svn mailing list