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?