ref(XmppConnection): enable XMPP resume by default if supported
The XMPP stream resumption will enable automatically if supported by
Prosody on Websocket connections. Pass the 'enableWebsocketResume'
config option set to 'false' to disable.
Websocket keep alive is HTTP GET request sent on the service URL passed
to Strophe. It is used to keep the stick tables alive. The feature comes
in enabled by default whenever Websocket are used. Pass
'websocketKeepAlive' config option set to -1 to disable.
See the code for more details about the default interval value.
ref(JingleSessionPC): send source update upon reconnect
Given that the XMPP connection is able to reconnect after a drop, now
the jingle session needs to hold off any updates that have to be sent
while the signalling is down. Send the update upon reconnect to sync
Jicofo and JVB with the client's source description.
fix(XmppConnection): use status instead of the connected field
The connected flag is flipped to true as soon as transport connection is
established by Strophe(such as WebSocket TCP), but it doesn't mean that
the connection is ready to send stanzas yet.
This prevents from accessing Strophe internals directly and allows to
block 'send' calls while disconnected. The latter breaks the stream
resume logic by putting stanzas onto the send queue.
TODO make jitsi strophe plugins use the XmppConnection wrapper whenever
possible instead of interacting with the Strophe.Connection directly.
This way it's easier to figure out which parts of the disconnect method are about
cleaning up the connection and the reasons on why it's important can be put in
the JDoc of this method.
Apply max bitrate of 500Kbps on desktop streams and set the contentHint attribute on the track to 'detail'. (#992)
Enable/disable this feature using 'capScreenshareBitrate' testing flag in config.js and send analytics
events to Amplitude to indicate which type of screensharing is enabled.
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).
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.
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.