|
|
|
@ -1996,20 +1996,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, "%hu", ps->sfd->fd.localport); |
|
|
|
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, "%hu", ps_rtcp->sfd->fd.localport); |
|
|
|
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, "%hu", ps->sfd->fd.localport); |
|
|
|
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, "%hu", ps_rtcp->sfd->fd.localport); |
|
|
|
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); |
|
|
|
|