Question about enabling and disabling bundle/rtcp-mux

672 views
Skip to first unread message

Anand Sivaram

unread,
Feb 13, 2016, 8:31:21 AM2/13/16
to meetech...@googlegroups.com
Dear All,

I was trying to understand bundle/rtcp-mux of WebRTC.  While doing that, I was thinking about disabling bundle/rtcp-mux in Janus for my understanding.  Noticed the following in Janus.

Janus version: 2016/01/26 7196766724d4219e727bae0b10600cf70539a4a3
OS: Debian GNU/Linux Sid
Browser: Google Chrome 48.0.2564.109 on Debian GNU/Linux
Plugin: Streaming demo using test_gstreamer_1.sh

1) * Regardless of --force-bundle, --force-rtcp-mux options, Janus always sets
"a=group:BUNDLE" and "a=rtcp-mux" in the outgoing SDP from Janus.

2) Since Janus is sending with bundle/rtcp-mux, Google Chrome answers with
bundle/rtcp-mux enabled and the session is becoming with bundle/rtcp-mux.

3) Just to validate this, in janus_sdp_merge() function of sdp.c, I commented out the lines 798:814 and  1035:1036, that is
  g_strlcat(sdp, "a=group:BUNDLE", JANUS_BUFSIZE);
  ...
  g_strlcat(sdp, "\r\n", JANUS_BUFSIZE);

and
        g_snprintf(buffer, 512, "a=rtcp-mux\r\n");
        g_strlcat(sdp, buffer, JANUS_BUFSIZE);

After having done this change, the streaming plugin is working with bundle/rtcp-mux disabled.  I could see 2 RTP and 2 RTCP ports getting utilized with corresponding 4 different DTLS handshakes.

My question is whether this is the expected behaviour?  Is there any way to control Janus so that it does not include bundle/rtcp-mux in the outgoing SDP settings?

Thanks and Regards

Anand

Lorenzo Miniero

unread,
Feb 13, 2016, 3:40:47 PM2/13/16
to meetecho-janus
It is the expected behaviour. I don't see the point of providing an option to turn them off: not using them is less efficient, and we negotiate them there to support clients that may or may not support them (if they don't, they don't negotiate it instead and so we both fall back). All browsers do support this at the moment, which is why we have an option to do the other way around, that is force them to be used instead (which reduces the number of port allocations and candidates being gathered).

L.

Anand Sivaram

unread,
Feb 14, 2016, 2:02:54 AM2/14/16
to meetecho-janus
Make sense.  Just wanted to be clear.  Thanks a lot Lorenzo for the explanation.

Thanks and Regards

Anand
Reply all
Reply to author
Forward
0 new messages