This PR switches to generating sctp-port based SDP.
It also adds support for parsing sctp-port, but can handle
fallback to old-style sctpmap as well.
Fixes: #1778
The issue was caused by incorrect ordering of the mixedmslabel mline.
sdp-interop is expecting that this mline was the first one but in
reality we were placing it last. This was causing the direction of a
user related m line to be sendrecv instead of sendonly. In certain
situation this issue was causing 2 MediaStreamTracks associated with a
single MediaStream/participant.
This is the first step in adding support for multiple
streams per endpoint. Each source(stream?) needs to have
an identifier. For now always generate the 0 index name
until the machinery for sending more than 1 stream is put
in place.
* send only MSID attribute
* add feature flag for source name signaling
* log a msg if source name signaling is enabled
fix(Jingle) Reverse the order of ssrcs signaled for Firefox.
This fixes an issue where the bridge doesn't forward the HD stream from Firefox to other users in the call. The order of the ssrcs produced by the browser is from Highest resolution to lowest whereas the bridge assumes it to be from lowest to highest as is the case in Chrome and Safari.
fix(JingleSession): Move the ssrc identifier generation to LocalSdpMunger.
When a msid attribute is missing in the 'a=ssrc' line, use the local endpoint id as an indentifier. Move this generation logic to LocalSdpMunger. Also suppress notifying Jicfo of a ssrc change on Firefox when the change is a result of the media being suspended on the jvb connection.
fix(JingleSession): Add a unique identifier for source on Firefox.
In certain cases, when RTCPeerconnection#addTrack is used, the browser doesn't produce the streamid in the 'a=msid' line which is being used by Jicofo as a unique identifier for the associated ssrc. Whenever the msid is missing in the local description, generate an ID using the local endpoint id.
fix(migration): reject the data channel to restart it (#760)
* fix(migration): reject the data channel to restart it
Starting on chrome 63, an error occurs when renegotiating
with the new bridge on bridge migration when the SDP sections
do not match, which occurs when removing the data channel
section. Not doing the double renegotiate prevents the data
channel from being reopened. The way around this, while still
avoing the error, is to reject the data channel section instead
of removing it to trigger a new data channel.
* squash: reword comments
fix(sdp): group ssrcs when converting to jingle (#609)
Ssrcs not grouped together in the jingle element
are not recognized by the bridge. When parsing an
sdp with ssrcs that are not listed consecutively
it is important to still group them together
in the jingle element.
ESLint 4.8.0 discovers a lot of error related to formatting. While I
tried to fix as many of them as possible, a portion of them actually go
against our coding style. In such a case, I've disabled the indent rule
which effectively leaves it as it was before ESLint 4.8.0.
* add support for signaling simulcast for unified plan
1) munge the incoming offer to advertise support for receiving simulcast in unified plan
2) add 3 simulcast encodings via rtp sender
3) inject an ssrc-group line, even when using rids for simulcast (jicofo will rely on this)
* add rid information to the session-accept jingle
* address lenny's feedback
* make firefox simulcast configurable
* fix missing comma