Browse Source

TT#14008 don't try to offer RTCP after previous mux

If an offer is going to a side that is already known to support
rtcp-mux, don't try to offer a fallback RTCP port. Do this by pretending
that rtcp-mux=require is set, which leads to the correct behaviour. This
is needed because the RTCP fallback port might already be closed, so
trying to include it in the offer would require opening a new set of
ports, which is undesirable.

closes #1494

Change-Id: I550bec08379c799cb7dd090a70d090ae47462467
pull/1546/head
Richard Fuchs 3 years ago
parent
commit
3ac4863a94
1 changed files with 7 additions and 2 deletions
  1. +7
    -2
      daemon/call.c

+ 7
- 2
daemon/call.c View File

@ -1977,7 +1977,7 @@ static void __rtcp_mux_set(const struct sdp_ng_flags *flags, struct call_media *
MEDIA_CLEAR(media, RTCP_MUX);
}
static void __rtcp_mux_logic(const struct sdp_ng_flags *flags, struct call_media *media,
static void __rtcp_mux_logic(struct sdp_ng_flags *flags, struct call_media *media,
struct call_media *other_media)
{
if (!flags)
@ -1995,11 +1995,16 @@ static void __rtcp_mux_logic(const struct sdp_ng_flags *flags, struct call_media
if (flags->opmode != OP_OFFER)
return;
/* default is to pass through the client's choice, unless our peer is already
* talking rtcp-mux, then we stick to that */
if (!MEDIA_ISSET(media, RTCP_MUX))
bf_copy_same(&media->media_flags, &other_media->media_flags, MEDIA_FLAG_RTCP_MUX);
else {
// mux already in use - unless we were instructed to do something else,
// keep using it and don't offer a fallback choice: this is needed as the
// fallback port might already be closed
flags->rtcp_mux_require = 1;
}
/* in our offer, we can override the client's choice */
__rtcp_mux_set(flags, media);


Loading…
Cancel
Save