From e2a031d38c68aa2a7665f29fd45852e9b100a984 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Wed, 1 Jul 2015 13:35:40 -0400 Subject: [PATCH] MT#13737 don't add a=rtcp for non-RTP protocols Conflicts: daemon/sdp.c --- daemon/sdp.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/daemon/sdp.c b/daemon/sdp.c index ef00efa0e..94652b51e 100644 --- a/daemon/sdp.c +++ b/daemon/sdp.c @@ -1959,20 +1959,24 @@ int sdp_replace(struct sdp_chopper *chop, GQueue *sessions, struct call_monologu else chopper_append_c(chop, "a=inactive\r\n"); - if (MEDIA_ISSET(call_media, RTCP_MUX) && flags->opmode == OP_ANSWER) { - chopper_append_c(chop, "a=rtcp:"); - chopper_append_printf(chop, "%u", ps->selected_sfd->socket.local.port); - chopper_append_c(chop, "\r\na=rtcp-mux\r\n"); - ps_rtcp = NULL; - } - else if (ps_rtcp && !flags->ice_force_relay) { - chopper_append_c(chop, "a=rtcp:"); - chopper_append_printf(chop, "%u", ps_rtcp->selected_sfd->socket.local.port); - if (!MEDIA_ISSET(call_media, RTCP_MUX)) - chopper_append_c(chop, "\r\n"); - else + if (call_media->protocol && call_media->protocol->rtp) { + if (MEDIA_ISSET(call_media, RTCP_MUX) && flags->opmode == OP_ANSWER) { + chopper_append_c(chop, "a=rtcp:"); + chopper_append_printf(chop, "%u", ps->selected_sfd->socket.local.port); chopper_append_c(chop, "\r\na=rtcp-mux\r\n"); + ps_rtcp = NULL; + } + else if (ps_rtcp && !flags->ice_force_relay) { + chopper_append_c(chop, "a=rtcp:"); + chopper_append_printf(chop, "%u", ps_rtcp->selected_sfd->socket.local.port); + if (!MEDIA_ISSET(call_media, RTCP_MUX)) + chopper_append_c(chop, "\r\n"); + else + chopper_append_c(chop, "\r\na=rtcp-mux\r\n"); + } } + else + ps_rtcp = NULL; insert_crypto(call_media, chop); insert_dtls(call_media, chop);