Hi,

Currently sofia-sip doesn't recognise the UDPTL transport used for T.38 FoIP. It also doesn't recognise RED for redundancy according to RFC2198. I have attached a small patch while will add these.

Regards,
Steve

diff -rU5 sofia-sip.orig/libsofia-sip-ua/sdp/sdp_parse.c sofia-sip/libsofia-sip-ua/sdp/sdp_parse.c
--- sofia-sip.orig/libsofia-sip-ua/sdp/sdp_parse.c	2006-10-03 05:26:58.000000000 +0800
+++ sofia-sip/libsofia-sip-ua/sdp/sdp_parse.c	2006-11-28 21:23:11.000000000 +0800
@@ -1357,10 +1357,12 @@
     m->m_type = sdp_media_control, m->m_type_name = "control";
   else if (strcasecmp(s, "message") == 0)
     m->m_type = sdp_media_message, m->m_type_name = "message";
   else if (strcasecmp(s, "image") == 0)
     m->m_type = sdp_media_image, m->m_type_name = "image";
+  else if (strcasecmp(s, "red") == 0)
+    m->m_type = sdp_media_red, m->m_type_name = "red";
   else
     m->m_type = sdp_media_x, m->m_type_name = s;
 }
 
 void sdp_media_transport(sdp_media_t *m, char const *s)
@@ -1369,10 +1371,12 @@
     m->m_proto = sdp_proto_any, m->m_proto_name = "*";
   else if (strcasecmp(s, "RTP/AVP") == 0)
     m->m_proto = sdp_proto_rtp, m->m_proto_name = "RTP/AVP";
   else if (strcasecmp(s, "RTP/SAVP") == 0)
     m->m_proto = sdp_proto_srtp, m->m_proto_name = "RTP/SAVP";
+  else if (strcasecmp(s, "UDPTL") == 0)
+    m->m_proto = sdp_proto_udptl, m->m_proto_name = "UDPTL";
   else if (strcasecmp(s, "UDP") == 0)
     m->m_proto = sdp_proto_udp, m->m_proto_name = "UDP";
   else if (strcasecmp(s, "TCP") == 0)
     m->m_proto = sdp_proto_tcp, m->m_proto_name = "TCP";
   else if (strcasecmp(s, "TLS") == 0)
diff -rU5 sofia-sip.orig/libsofia-sip-ua/sdp/sdp_print.c sofia-sip/libsofia-sip-ua/sdp/sdp_print.c
--- sofia-sip.orig/libsofia-sip-ua/sdp/sdp_print.c	2006-09-27 19:57:57.000000000 +0800
+++ sofia-sip/libsofia-sip-ua/sdp/sdp_print.c	2006-11-28 21:23:01.000000000 +0800
@@ -576,13 +576,15 @@
     case sdp_media_image  :     media = "image"; break;
     default:                    media = m->m_type_name;
     }
     
     switch (m->m_proto) {
-    case sdp_proto_rtp:   proto = "RTP/AVP"; break;
-    case sdp_proto_udp:   proto = "udp"; break;
     case sdp_proto_tcp:   proto = "tcp"; break;
+    case sdp_proto_udp:   proto = "udp"; break;
+    case sdp_proto_rtp:   proto = "RTP/AVP"; break;
+    case sdp_proto_srtp:  proto = "RTP/SAVP"; break;
+    case sdp_proto_udptl: proto = "UDPTL"; break;
     case sdp_proto_tls:   proto = "tls"; break;
     default:              proto = m->m_proto_name; break;
     }
     
     if (m->m_number_of_ports <= 1)
diff -rU5 sofia-sip.orig/libsofia-sip-ua/sdp/sofia-sip/sdp.h sofia-sip/libsofia-sip-ua/sdp/sofia-sip/sdp.h
--- sofia-sip.orig/libsofia-sip-ua/sdp/sofia-sip/sdp.h	2006-10-03 05:26:58.000000000 +0800
+++ sofia-sip/libsofia-sip-ua/sdp/sofia-sip/sdp.h	2006-11-28 21:23:20.000000000 +0800
@@ -227,21 +227,23 @@
   sdp_media_video,			/**< Video */
   sdp_media_application,		/**< Conferencing */
   sdp_media_data,			/**< Bulk data transfer */
   sdp_media_control,			/**< Additional conference control */
   sdp_media_message,			/**< Messaging sessions*/
-  sdp_media_image			/**< Image browsing sessions for JPIP */
+  sdp_media_image,			/**< Image browsing sessions for JPIP, and T.38 */
+  sdp_media_red				/**< Redundancy */
 } sdp_media_e;
 
 /** Media transport protocol. */
 typedef enum
 {
   sdp_proto_x = 0,			/**< Unknown transport  */
   sdp_proto_tcp = 6,			/**< TCP  */
   sdp_proto_udp = 17,			/**< Plain UDP */
   sdp_proto_rtp = 256,			/**< RTP/AVP */
   sdp_proto_srtp = 257,			/**< RTP/SAVP  */
+  sdp_proto_udptl = 258,			/**< UDPTL  */
   sdp_proto_tls = 511,			/**< TLS over TCP */
   sdp_proto_any = 512		        /**< * wildcard */
 } sdp_proto_e;
 
 /** Session mode. @note Identical to rtp_mode_t. */
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Sofia-sip-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sofia-sip-devel

Reply via email to