...to advertise track's muted state and the video type.
For now, if the source name signaling flag is enabled, both legacy and
new <SourceInfo> element will be used at the same time. This is to be
able to interoperate with legacy clients and start testing the new
format at the same time. Whenever possible <SourceInfo> will be used
as main source of truth with the fallback to legacy <audiomuted/>,
<videomuted/> and <videotype/> elements.
feat: Delays deployment info stats till we get update from backend. (#1770)
* feat: Delays deployment info stats till we get update from backend.
We delay sending this stat till we are connected or fail to connect.
* squash: Make sure we send it on conn fail or when sys message or disco info is received.
ref(JitsiConference) Remove remote tracks from conf before reneg is done.
We do not have to wait for the removal of the ssrcs from the remote description for removing the remote tracks associated with a participant that left the call. This speeds up removal of the participant from call even if the JingleSession modification queue is backed up.
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.
ref(JingleSessionPC) Do not renegotiate on every local source change.
Instead rely on the 'negotiationneeded' event fired by the browser for JVB connection. This makes local source changes faster even if the modification queue is backed up.
* ref(TPC) Configure encodings in one go.
Configure the active state, maxBitrate and degradation preference in one go instead of configuring them separately.
* squash: Address review comments.
* squash: fix a comment.
fix(connectionstatus) Increase the rtc mute timeout for p2p.
Increase the RTC mute timeout from 500ms to 2500ms for p2p connections. This fixes an issue with Chrome tab sharing where the application keeps switching between the avatar and the share contnuously because of a chrome bug https://bugs.chromium.org/p/chromium/issues/detail?id=1258034
fix(iOS15) fix not being able to unmute if "everyone starts muted" is set
We need to make sure the audio track is added to the JVB connection, or we won't
be able to unmute.
Why this happens is a mystery wrapped in an enigma, it started happening with
iOS 15.
Same thing applies to Safari for macOS.
Fixes: https://github.com/jitsi/jitsi-meet/issues/10104
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
There was an error in the pattern match, everything was included in it. In
addition return a boolean in case we succeed in the UA pattern match, since it's
more correct than returning an array with the match.
fix(JitsiConference):2 instances for the same room
If a second JitsiConference instance for the same room is created we were
throwing an error but some listeners were already attached. This commit
makes sure that we throw the error as soon as possible and no listeners
are added.
Instead of logging the full IQs for Jingle messages like session-initiate, source-add and source-remove which can be very long, log just the formatted source information.
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.
ref(JitsiConference): don't crash on wrong oldTrack (#1709)
If oldTrack was not previously in the conference this will
lead to a crash in onLocalTrackRemoved where oldTrack doesn't
have `muteHandler` and `audioLevelHandler` listeners defined.