@@ -305,6 +305,11 @@ static pj_status_t sdes_media_create( pjmedia_transport *tp,
305305 /* Get transport protocol and drop any RTCP-FB flag */
306306 rem_proto = pjmedia_sdp_transport_get_proto (& m -> desc .transport );
307307 PJMEDIA_TP_PROTO_TRIM_FLAG (rem_proto , PJMEDIA_TP_PROFILE_RTCP_FB );
308+
309+ /* Drop DTLS proto if crypto is present */
310+ if (pjmedia_sdp_media_find_attr (m , & ID_CRYPTO , NULL ) != NULL )
311+ PJMEDIA_TP_PROTO_TRIM_FLAG (rem_proto , PJMEDIA_TP_PROTO_DTLS );
312+
308313 if (rem_proto != PJMEDIA_TP_PROTO_RTP_AVP &&
309314 rem_proto != PJMEDIA_TP_PROTO_RTP_SAVP )
310315 {
@@ -361,6 +366,12 @@ static pj_status_t sdes_encode_sdp( pjmedia_transport *tp,
361366 /* Get transport protocol and drop any RTCP-FB flag */
362367 proto = pjmedia_sdp_transport_get_proto (& m -> desc .transport );
363368 PJMEDIA_TP_PROTO_TRIM_FLAG (proto , PJMEDIA_TP_PROFILE_RTCP_FB );
369+
370+ /* Drop DTLS proto if crypto is present */
371+ if (!srtp -> offerer_side &&
372+ pjmedia_sdp_media_find_attr (m , & ID_CRYPTO , NULL ) != NULL )
373+ PJMEDIA_TP_PROTO_TRIM_FLAG (proto , PJMEDIA_TP_PROTO_DTLS );
374+
364375 if (proto != PJMEDIA_TP_PROTO_RTP_AVP &&
365376 proto != PJMEDIA_TP_PROTO_RTP_SAVP )
366377 {
@@ -444,6 +455,10 @@ static pj_status_t sdes_encode_sdp( pjmedia_transport *tp,
444455 rem_proto = pjmedia_sdp_transport_get_proto (& m_rem -> desc .transport );
445456 PJMEDIA_TP_PROTO_TRIM_FLAG (rem_proto , PJMEDIA_TP_PROFILE_RTCP_FB );
446457
458+ /* Drop DTLS proto if crypto is present */
459+ if (pjmedia_sdp_media_find_attr (m_rem , & ID_CRYPTO , NULL ) != NULL )
460+ PJMEDIA_TP_PROTO_TRIM_FLAG (rem_proto , PJMEDIA_TP_PROTO_DTLS );
461+
447462 /* Generate transport */
448463 switch (srtp -> setting .use ) {
449464 case PJMEDIA_SRTP_DISABLED :
@@ -662,6 +677,11 @@ static pj_status_t sdes_media_start( pjmedia_transport *tp,
662677 /* Get transport protocol and drop any RTCP-FB flag */
663678 rem_proto = pjmedia_sdp_transport_get_proto (& m_rem -> desc .transport );
664679 PJMEDIA_TP_PROTO_TRIM_FLAG (rem_proto , PJMEDIA_TP_PROFILE_RTCP_FB );
680+
681+ /* Drop DTLS proto if crypto is present */
682+ if (pjmedia_sdp_media_find_attr (m_rem , & ID_CRYPTO , NULL ) != NULL )
683+ PJMEDIA_TP_PROTO_TRIM_FLAG (rem_proto , PJMEDIA_TP_PROTO_DTLS );
684+
665685 if (rem_proto != PJMEDIA_TP_PROTO_RTP_AVP &&
666686 rem_proto != PJMEDIA_TP_PROTO_RTP_SAVP )
667687 {
0 commit comments