feat: Adds wait for host prosody module and handling it.
While the host arrives all other participants are waiting in lobby and once the host arrives lobby is destroyed and the participants join the call.
Adds reading some other fields in jwt to extract email.
Introduces tokenLogoutUrl to be used for logout.
feat: Drops connection on prejoin screen. (#13538)
* feat: Drops connection on prejoin screen.
Refactors connection logic to reuse already existing logic from mobile. Connection is now established just before joining the room.
Fixes some authentication logic with Login and Logout button in Profile tab.
* squash: Drops createInitialLocalTracksAndConnect as it no longer connects.
* squash: Shows an error on mobile and redirects to default.
* squash: Fixes review comments.
* squash: Fixes joining with prejoin disabled.
* squash: Fixes adding initial local tracks.
* squash: Fixes comments.
* squash: Drop no longer used method.
* squash: Fixes old web code imported into mobile builds.
* squash: Drop unused prop.
* squash: Drops recoverable flag on REDIRECT.
* squash: Drops unused variable and fix connection access.
* squash: Xmpp connect returns promise again.
* squash: Execute xmpp connect and creating local tracks in parallel.
* squash: Moves notification about problem jwt.
* squash: Moves startConference to conference.js for the no prejoin case.
And move the startConference in prejoin feature for the prejoin case.
* squash: Fix passing filtered tracks when starting conference with no prejoin.
* squash: Fix clearing listeners on connection established.
Keeps mobile behaviour after merging web and mobile.
* squash: Drops unused code.
fix(visitors): Leave and disconnect before connecting. (#13362)
* fix(visitors): Leave and disconnect before connecting.
The finally was causing the disconnect to be executed after the connect method.
* squash: disconnect and on error.
* squash: updates ljm with a fix that can break strophe listeners.
* ref(conference) Simplify track creation.
If gUM fails, we do not have to retry gUM with mic only and camera only constraints. gUM has come a long way and this is not needed anymore.
* ref(conference) Filter tracks that are added to conference.
* squash: Address review comments
* fix(prejoin): Display the exact gUM error in prejoin.
* squash: Address review comments
ref(keyboard-shortcuts) refactor keyboard shortcuts to use redux (#13260)
* ref(keyboard-shortcuts) refactor keyboard shortcuts to use redux
fix unsynced default value between config flag and local storage
* code review
* fix build
fix: Handles max occupants reached from a visitor node.
When we receive the error from a visitor node, we need to restore the previous configuration, reconnect to the main prosody and be ready to try to rejoin again (from prejoin screen).
feat(visitors): Updates mobile to handle redirected conf error. (#13110)
* feat(visitors): Updates mobile to handle redirected conf error.
* squash: Center the buttons when iAmVisitor.
* squash: Enables chat in visitor mode.
* feat: Prints the used lib-jitsi-meet.
* feat: Shows a notification when joining as a visitor.
* fix(notifications): display and fix styles for notifications in tile view
---------
Co-authored-by: Calin-Teodor <calin.chitu@8x8.com>
fix(visitors): Visitor updates - request to participate (#13106)
* fix(visitors): Updates docs and instructions.
* fix(visitors): Show counter only for main participants.
* fix(visitors): Skip showing the label even for 0 visitors.
It was showing 0 when visitor count down back to 0.
* feat(visitors): Small optimization for jid.split calls.
* fix: Fix skipping properties changed received before conference joined.
* fix(visitors): Propagates newly joined participants to visitor nodes.
* feat(visitors): When iAmVisitor is set, subtract visitor from participants count.
* feat(visitors): Visitors request to participate impl.
Adds option for auto promotion setting which is the only one available at the moment.
* squash: Fix comments.
* squash: Fix default case when vnode is missing.
fix(useVideoStream): a crash after GUM failure (#13040)
Fixes a crash which happens after GUM fails without any
track previosuly created.
Steps to reproduce:
1. Join a meeting without camera.
2. Disable camera access permissions in the browser.
3. Try to use the camera button.
Use a fixed set of remote tracks for a call based on the ssrc-limit set in jvb config. When this feature is enabled, JVB will signal the audio and video SSRCs and their owner/endpoint info using a bridge channel message. For audio, the mappings are determined based on the energy rankings on the audio sources present in the call and for video, the mappings are calculated based on the video sources the client requests through the video receiver constraints.
Remote tracks are then created/remapped by the client based on these mappings.
* Added track_owner_changed action
* Skip track-based large-video selection in rewriting mode.
* Register OWNER_CHANGED handler at track level.
* feat(participants) Add source info to participants in redux.
With ssrc-rewriting, the receiver constraints need to be generated using the source info received in presence. Currently they are generated from the track info in redux but with ssrc-rewriting, remote sources are not signaled and therefore created until they are being requested through receiver constraints.
Co-authored-by: James A <jqdrqgnq@users.noreply.github.com>
fix(conference) Fixes an issue where first unmute with disableInitialGUM=true was resulting in user staying muted.
When device list changes, create a new track with the preferred device only if the user is unmuted. If the user is audio/video muted, remove the existing track from conference. A new track will be created and replaced automatically when the user unmutes. Also since screensharing is a separate source, always check for updated camera devices.
Remove legacy signaling and legacy SS mode. (#12499)
* fix(connection-status): remove unused participant connectionStatus.
Always use trackStreamingStatus now that legacy endpoint based signaling has been removed.
* remove the check for source-name signaling.
Default to source-name signaling always.
* Remove the check for multi-stream mode.
Make that the default mode and remove the support for legacy SS mode.
* Remove presenter mode.
* update latest@lib-jitsi-meet
fix(audio-only) Do not create a new track for audio-only changes.
Now that screenshare is permitted when a user is in audio-only mode, do not create a new video track if it doesn't exist when audio-only mode is automatically disabled. New tracks should only be prompted by user action such a camera unmute or start screenshare. Fixes https://github.com/jitsi/jitsi-meet/issues/11460.
refactor(multi-stream) refactor virtual screenshare creation and support plan-b clients (#11445)
* fix(multi-stream) update selector to find ss track by videoType or mediaType
* ref(multi-stream) move fake ss creation logic and support video type changed
* refactor(multi-stream) decouple sending and receiving multiple screenshare streams
* fix(multi-stream) fix receiver constraints with signaling and without multi-stream
* fix(mutli-stream) ensure plan b original SS thumbnail displays avatar
* fix(multi-stream) show fake SS for plan b sender
* refactor(multi-stream) poc for moving SS creation to state listener
* remove reference to fake SS creation
* fix lint errors
* rename to virtual screenshare participants
* fix minor bugs
* rename participant subscriber to specify web support only