fix(JitsiConference): decline P2P offer if should not be in P2P
The client will reject P2P session-initiate if the conditions which
allow for P2P session to start are not met(there more or less than 2
human participants in the call).
We had several reports that googSuspendBelowMinBitrate misbehaves, we had been running for a while with that disabled for the bridge, but it was causing problems and for p2p.
fix(JingleSessionPC): no media flowing after ICE restart
If DTLS fingerprint remains unchanged after ice-restart there will be no
media flow even thought the ICE connection will be re-established.
That's because JVB has all layers re-initialized from scratch, but
the WebRTC stack will keep the current state of the DTLS layer.
Reset the DTLS layer by setting an all zeros fingerprint on the hacky
offer/answer cycle which is currently done in order to reset the data
channels and the sequence number counters on the RTP receivers.
Partially reverts 24bda8e and uses domain/roomname to report to cs.
To be sure we always report room name in small case and as mobile and jigasi report this way it will take time for them to adopt which leads to wrong stats.
Refactors the "connection status duration" analytics event. (#957)
This commit refactors 592f72a63c. It adds
the video type in the event and it also does a better job at managing
and properly cleaning up the state map.
feat(xmpp): allow setting resource on room jid (#940)
This functionality is being brought back for apps
that use ljm for its prosody logic but not for
video conferencing, ie Jitsi-Meet Spot. The desired
use is for Spot-TVs to be identifiable by their
jid alone and for the resource to be the part
that identifies them.
Always uses 8 hex digits for the MUC nickname/endpoint ID. (#921)
* Always uses 8 hex digits for the MUC nickname/endpoint ID.
* squash: Fix a comment and add the full JID to the log.
* squash: Fixes the compilation and style.
They contain no information about the failure (this is available in the onclose
event) and the event references the WS object itself, which causes hangs on
mobile.
fix(caps): validate sha before caching features (#917)
Attempts to fix this race condition:
1. Web client joins a conference.
2. Electron client joins the same conference.
3. Web client requests capabilities of Electron
using version 1111.
4. Electron adds remote control capability,
settings its version to 2222.
5. Electron responds to web client's requests
but with features of 2222.
6. Web client caches request under 1111.
7. Any future calls to get features for a client
with version 1111 will incorrect include the
remote control capability.
fix(presence): send latest presence on conference join (#920)
Attempts to fix the following issue:
1. Electron user starts the conference join process.
2. Electron user adds remote control capability and
attempts to send presence.
3. Electron user presence send is blocked because the
conference has not been joined.
4. Electron user joins the conference.
5. The remote control capability is not emitted until
some other presence change triggers another
presence send. Until then, other uses will not see
remote control option available for the electron
user.
* Updates kicked event to inform local and remote kicks and who it affects
* Parses actor from MuteIQ and adds participant info to mute track event.
* Fixes emitting both events.
* Fixes comments.