feat: Adds a method that finds the SSRC of a JitsiTrack (#1338)
Adds a JitsiConference.getSsrcByTrack() method that finds the SSRC of a JitsiTrack by its SSRC. This method is currently used to get (and display) the first audio/video SSRC in the GSM popover in Jitsi Meet.
Co-authored-by: George Politis <gp@jitsi.org>
This the second stage in our E2EE journey.
Instead of using a single pre-shared passphrase for deriving the key used for
E2EE, we now establish a secure E2EE communication channel amongst peers.
This channel is implemented using libolm, using XMPP groupchat or JVB channels
as the transport.
Once the secure E2EE channel has been established each participant will generate
a random 32 byte key and exchange it over this channel.
Keys are rotated (well, just re-created at the moment) when a participant joins
or leaves.
fix(safari): override min/max video constraints on safari (#1243)
* fix(safari): override min/max video constraints on safari
Override the constraints on Safari because of the following webkit bug.
https://bugs.webkit.org/show_bug.cgi?id=210932
Camera doesn't start on older macOS versions if min/max constraints are specified.
fix: Uncaught TypeError: CreateListFromArrayLike called on non-object
at o._interceptDoDisconnect (strophe.stream-management.js:207)
at P.Connection._dataRecv (strophe.umd.js:3140)
at I.Bosh._onRequestStateChange (strophe.umd.js:5012)
Update strophejs-plugin-stream-management to fix the crash for
the stacktrace above. It happens only with BOSH.
build: add integration with webpack-bundle-analyzer
Build as follows to build (production) bundle size stats:
npx webpack -p --progress --analyze-bundle
Then open the report:
npx webpack-bundle-analyzer stats.json
It should be provided by the environment, just like on web. This avoids bundling
callstats on web, where it won't be used (we dynamically download it).
This reduces the bundle size from about 1MB to 675KB, almost 40%.