From bde6badc3cb7c4edb2c66b383e03855fdc3769db Mon Sep 17 00:00:00 2001 From: Jakub Adam Date: Wed, 29 Jun 2011 20:23:26 +0200 Subject: [PATCH] media: when TCP is used as call transport, send "TCP/RTP/AVP" in media name SDP field --- src/core/sdpmsg.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/core/sdpmsg.c b/src/core/sdpmsg.c index baa4f0b3..a35bc16b 100644 --- a/src/core/sdpmsg.c +++ b/src/core/sdpmsg.c @@ -599,6 +599,8 @@ media_to_string(const struct sdpmsg *msg, const struct sdpmedia *media) gchar *attributes_str = NULL; gchar *credentials = NULL; + gboolean uses_tcp_transport = FALSE; + if (media->port != 0) { if (!sipe_strequal(msg->ip, media->ip)) { media_conninfo = g_strdup_printf("c=IN IP4 %s\r\n", media->ip); @@ -609,6 +611,13 @@ media_to_string(const struct sdpmsg *msg, const struct sdpmedia *media) remote_candidates_str = remote_candidates_to_string(media->remote_candidates, msg->ice_version); + if (media->remote_candidates) { + struct sdpcandidate *c = media->remote_candidates->data; + uses_tcp_transport = + c->protocol == SIPE_NETWORK_PROTOCOL_TCP_ACTIVE || + c->protocol == SIPE_NETWORK_PROTOCOL_TCP_PASSIVE; + } + attributes_str = attributes_to_string(media->attributes); credentials = NULL; @@ -623,14 +632,14 @@ media_to_string(const struct sdpmsg *msg, const struct sdpmedia *media) } } - media_str = g_strdup_printf("m=%s %d RTP/AVP%s\r\n" + media_str = g_strdup_printf("m=%s %d %sRTP/AVP%s\r\n" "%s" "%s" "%s" "%s" "%s" "%s", - media->name, media->port, codec_ids_str, + media->name, media->port, uses_tcp_transport ? "TCP/" : "", codec_ids_str, media_conninfo ? media_conninfo : "", candidates_str ? candidates_str : "", remote_candidates_str ? remote_candidates_str : "", -- 2.11.4.GIT