Hristo Terezov
e557b2107c
fix(karma): After adding 2nd webpack configuration
před 5 roky
Jaya Allamsetty
2297608140
feat(video-quality): Add a log message for max. height message received from JVB
před 5 roky
Andrei Gavrilescu
a0b8a9c862
feat(TPC): add p2p rtcstats meta info to tpc (#1331)
* add p2p meta info to pc
* fix typos
před 5 roky
Philipp Hancke
b6821ddb65
e2ee: refactor to make it clear when to ratchet
refactor the signature checking to make it clear when we need to ratchet.
This is similar to
https://tools.ietf.org/html/draft-omara-sframe-00#section-4.3.5.1
but we verify the hash before attempting to decrypt.
před 5 roky
Philipp Hancke
85fde1aeae
e2ee: use CTR instead of GCM
following
https://tools.ietf.org/html/draft-omara-sframe-00
but putting the frame metadata into a trailer instead of a header.
We call this JFrame.
Also the key we get from OLM is high entropy so we do not need
to use PBKDF2 but can use HKDF instead. See
https://wiki.developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/deriveKey#HKDF
před 5 roky
Jaya Allamsetty
4126064855
fix(callstats): Go back to enabling callstats on % of users rather than conferences
před 5 roky
Philipp Hancke
cf1305bdd2
e2ee: detect transferable streams
Since we use transferable streams to transfer the streams to the worker
we need to feature detect them as Chrome 86 will launch Insertable Streams
by default without shipping transferable streams yet (status still unclear,
it might still ship too)
See here for the feature detection used:
https://groups.google.com/a/chromium.org/g/blink-dev/c/1LStSgBt6AM/m/hj0odB8pCAAJ
před 5 roky
Jaya Allamsetty
a433ca2dbc
feat(stats): Add the ability to enable callStats only on a certain % of conferences
před 5 roky
damencho
43e7c853b8
fix: Fix ws reconnect piling up previd param.
před 5 roky
Jaya Allamsetty
0b258aa4ba
fix: Do not negotiate H264 when E2EE is enabled
před 5 roky
Jaya Allamsetty
79a88d6434
fix(video-quality): make sure the LD stream is enabled even when requested resolution is lower
This should fix the case when camera is started with 1080p and LD simulcast stream's resolution is 270p but the requested resolution is 180p.
před 5 roky
Saúl Ibarra Corretgé
84288bd2a2
e2ee: update comment
před 5 roky
Saúl Ibarra Corretgé
f761413976
e2ee: avoid CORS issues with the worker bundle
před 5 roky
Aaron van Meerten
a3e9f1c39f
fix: update token doc for tenant details, new prosody (#1316)
před 5 roky
Saúl Ibarra Corretgé
735c30ec4f
e2ee: introduce per-participant randomly generated keys
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.
před 5 roky
Saúl Ibarra Corretgé
5322ddd6b5
e2ee: use a separate bundle for the worker
Avoid having to use a code blob.
před 5 roky
Saúl Ibarra Corretgé
dfd68d486c
xmpp: log JSON message parsing errors
před 5 roky
Saúl Ibarra Corretgé
80ba679eca
xmpp: only parse JSON messages when they actually exist
před 5 roky
Andrei Gavrilescu
ccaeb9f25f
fix(RTCUtils): system audio share multiple desktop
před 5 roky
Paul Tiedtke
fe7d5a7ebf
fix(RTCUtils): Cannot read property 'find' of undefined
This error happens in getCurrentlyAvailableMediaDevices
před 5 roky
Philipp Hancke
92ea388ce9
e2ee: update for latest chrome changes
see https://bugs.chromium.org/p/chromium/issues/detail?id=1119653
We'll probably do similar renaming in the future.
před 5 roky
Jonathan Lennox
94318fce12
feat: Allows jvb to control DTLS/SRTP protection profile. (#1300)
We're pretty sure it's no longer necessary with JVB2; and it costs
half an RTT in setup, and stops us being able to choose which
DTLS/SRTP protection profile to use.
před 5 roky
bgrozev
65df5b1da6
Enable opus/red for the conference even when the browser doesn't support it. (#1309)
* Enable opus/red for the conference even when the browser doesn't support it.
* squash: Remove unused import
před 5 roky
Boris Grozev
4a98a10630
fix: Only advertise opus-red if the browser supports it.
před 5 roky
Boris Grozev
16fe22e9c9
Advertise support for opus/red.
před 5 roky
Jaya Allamsetty
cc6ea8bc03
fix(video-quality): Fix a typo, max. bitrates are always applied on unified plan clients
před 5 roky
paweldomas
376e5176b3
feat(xmpp): resume the connection when online
The XmppConnection will try to resume the connection
only when the internet is online. This speeds up the process
by avoiding unnecessary connect attempts while offline as each
failed attempt increases the backoff delay.
před 5 roky
paweldomas
9018c34f7a
feat: detect broken XMPP WebSocket using ping
If ping timeouts two times in a row (25 seconds total)
the XMPP WebSocket connection will be killed and restarted.
před 5 roky
paweldomas
d0f0e98714
fix(XmppConnection.connected): check the underlying websocket
..readyState to tell if the connection is connected.
před 5 roky
paweldomas
a14a846fb4
fix(XmppConnection): sendIQ2 pass the 'timeout'
před 5 roky
Jaya Allamsetty
7868a6c185
ref(video-quality): Resolve sender operations when RTCRtpSender/RTCRtpSendParameters are not found.
The constraints are applied again after renegotiation is done. This should mitigate a fail case on Safari when the RTCRtpSendParameters are not available until the simulcast streams are added via SDP munging before sLD is called.
před 5 roky
Jaya Allamsetty
19b350df3c
ref(TPC): Do not add/remove video tracks from TPC for unmute/mute case on Safari.
Only add/remove the tracks from the peerconnection so that the camera led turns off on mute.
před 5 roky
Jaya Allamsetty
837996ef8e
ref(unified-plan): Fix unified plan p2p case.
Configure the encodings on FF after the track is added.
před 5 roky
Jaya Allamsetty
10c6136bd5
ref: Calculate the local video stream height constraints based on the current state
před 5 roky
Jaya Allamsetty
71b867233c
feat(video-quality): Implement max bitrates for video on p2p sessions
Calculate the bitrate based on the sender video constraint applied on the track and the bitrates specified for different resolutions.
před 5 roky
paweldomas
d36d72db48
feat: send conference.left analytics event
...which contains conference duration in seconds and
performance stats (currently long tasks).
před 5 roky
paweldomas
a73de37b2b
feat(chrome|safari): stop the video for maxFrameHeight 0
před 5 roky
paweldomas
902f02af8f
fix(tests): source maps for Karma
před 5 roky
paweldomas
ca6b08a775
feat: restart Jingle session on ICE failed
If ICE fails will set the special request restart attribute
in the 'session-terminate' sent to Jicofo in order to restart
the Jingle session.
před 5 roky
paweldomas
4837f304db
fix(xmpp/Caps): features for a user without caps support
If there's no capabilities version mapping to user's jid
still allow to discover features (that's the case for Jicofo).
před 5 roky
paweldomas
3ac00edfd5
ref(IceFailedHandling): use ping instead of networkInfo
Simplifies the logic for delayed ICE failed event by relying
on XMPP ping instead of the networkInfo module to check
if the internet is online.
před 5 roky
paweldomas
4e940127ce
ref: make XMPP ping feature mandatory
There's a plan for using ping to detect XMPP WebSocket
disconnected instead of waiting for timeouts on the network layer.
This also simplifies ICE failed handling logic.
před 5 roky
Jaya Allamsetty
32008711e2
ref(codec): change the logic for determining the preferred/disabled codecs.
Make 'preferH264' and 'disableH264' as deprecated.
před 5 roky
Jaya Allamsetty
c4c20b9126
ref(sdp): Add a more generic option for codec preference
Use 'preferredCodec' and 'disabledCodec' under videoQuality config.js settings for setting codec preferences.
Do not prefer VP9 on Firefox because of https://bugzilla.mozilla.org/show_bug.cgi?id=1633876 .
před 5 roky
Jaya Allamsetty
24097001aa
ref(sdp): Move all instances of a preferred codec up the list in the SDP
Make sdp munging logic for changing codec preferences more generic
Do not negotiate High profile H264 codecs on when RN clients are in the call
před 5 roky
paweldomas
15a89221bc
fix(TCPUtils): set 'sendrecv' only for the local track
When adjusting transceiver direction only the first one
which corresponds to the local track can be set to 'sendrecv'.
před 5 roky
paweldomas
d562bbc1c4
ref(TPCUtils): don't modify encoding.active
...in setMediaTransferActive. The sender video constraints
are controlling the 'encoding.active' flag and this code
would interfere. It's right now not used anyway as P2P is
disabled in the unified mode. If this modification is
necessary we'll add it back when working on unified P2P
in such a way that will play nicely with the sender constraints code.
před 5 roky
paweldomas
666c1400e0
ref(XMPPEvents): remove PEERCONNECTION_READY
před 5 roky
Jaya Allamsetty
353e5715e2
ref(video-quality): handle promise returned by video quality methods
před 5 roky
paweldomas
acb5ff0ab0
ref(TPCUtils): use getLocalTracks
před 5 roky