diff --git a/libs/sofia-sip/libsofia-sip-ua/sdp/sdp.c b/libs/sofia-sip/libsofia-sip-ua/sdp/sdp.c index 3718764718..9b46dd09fd 100644 --- a/libs/sofia-sip/libsofia-sip-ua/sdp/sdp.c +++ b/libs/sofia-sip/libsofia-sip-ua/sdp/sdp.c @@ -1831,7 +1831,7 @@ int sdp_media_uses_rtp(sdp_media_t const *m) { return m && (m->m_proto == sdp_proto_rtp || - m->m_proto == sdp_proto_srtp || + m->m_proto == sdp_proto_srtp || m->m_proto == sdp_proto_extended_srtp || (m->m_proto == sdp_proto_x && m->m_proto_name && su_casenmatch(m->m_proto_name, "RTP/", 4))); } diff --git a/libs/sofia-sip/libsofia-sip-ua/sdp/sdp_parse.c b/libs/sofia-sip/libsofia-sip-ua/sdp/sdp_parse.c index 027544a00a..8422510d83 100644 --- a/libs/sofia-sip/libsofia-sip-ua/sdp/sdp_parse.c +++ b/libs/sofia-sip/libsofia-sip-ua/sdp/sdp_parse.c @@ -1386,6 +1386,8 @@ void sdp_media_transport(sdp_media_t *m, char const *s) m->m_proto = sdp_proto_rtp, m->m_proto_name = "RTP/AVP"; else if (su_casematch(s, "RTP/SAVP")) m->m_proto = sdp_proto_srtp, m->m_proto_name = "RTP/SAVP"; + else if (su_casematch(s, "RTP/SAVPF")) + m->m_proto = sdp_proto_extended_srtp, m->m_proto_name = "RTP/SAVPF"; else if (su_casematch(s, "udptl")) /* Lower case - be compatible with people living by T.38 examples */ m->m_proto = sdp_proto_udptl, m->m_proto_name = "udptl"; @@ -1406,7 +1408,7 @@ void sdp_media_transport(sdp_media_t *m, char const *s) /** Check if media uses RTP as its transport protocol. */ int sdp_media_has_rtp(sdp_media_t const *m) { - return m && (m->m_proto == sdp_proto_rtp || m->m_proto == sdp_proto_srtp); + return m && (m->m_proto == sdp_proto_rtp || m->m_proto == sdp_proto_srtp || m->m_proto == sdp_proto_extended_srtp); } #define RTPMAP(pt, encoding, rate, params) \ diff --git a/libs/sofia-sip/libsofia-sip-ua/sdp/sdp_print.c b/libs/sofia-sip/libsofia-sip-ua/sdp/sdp_print.c index 87c706b27c..c912dd3b59 100644 --- a/libs/sofia-sip/libsofia-sip-ua/sdp/sdp_print.c +++ b/libs/sofia-sip/libsofia-sip-ua/sdp/sdp_print.c @@ -590,6 +590,7 @@ static void print_media(sdp_printer_t *p, 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_extended_srtp: proto = "RTP/SAVPF"; break; case sdp_proto_udptl: proto = "udptl"; break; case sdp_proto_msrp: proto = "TCP/MSRP"; break; case sdp_proto_msrps: proto = "TCP/TLS/MSRP"; break; diff --git a/libs/sofia-sip/libsofia-sip-ua/sdp/sofia-sip/sdp.h b/libs/sofia-sip/libsofia-sip-ua/sdp/sofia-sip/sdp.h index e4af3836a3..e39911221a 100644 --- a/libs/sofia-sip/libsofia-sip-ua/sdp/sofia-sip/sdp.h +++ b/libs/sofia-sip/libsofia-sip-ua/sdp/sofia-sip/sdp.h @@ -245,6 +245,7 @@ typedef enum sdp_proto_udptl = 258, /**< UDPTL. @NEW_1_12_4. */ sdp_proto_msrp = 259, /**< TCP/MSRP @NEW_MSRP*/ sdp_proto_msrps = 260, /**< TCP/TLS/MSRP @NEW_MSRP*/ + sdp_proto_extended_srtp = 261, /** WEBRTC */ sdp_proto_tls = 511, /**< TLS over TCP */ sdp_proto_any = 512 /**< * wildcard */ } sdp_proto_e;