fix(lobby): Inconsistent state after deny and then approve. (#15226)
* fix(lobby): Inconsistent state after deny and then approve.
Fixes several issues:
- The error on lobby deny is not sticky
- When preJoin is not enabled we were showing conference UI and showing the error, while the participant is denied to enter the meeting.
- There was inconsistent state (after deny we were keeping membersOnly conference state) and when being approved on re-try while being in the meeting, no remote thumbnails are shown although media is flowing.
The scenario is enabling lobby and tryintg to join, denying the first attempt and approving the second one.
* squash: Drop extra hide lobby screen.
* squash: Finish action first before showing the notification.
fix(conference): Make sure join waits for confernce.init.
It was possible that join can be executed before conference.init have even started or we haven't reached the point ot create the initialGUMPromise. This was causing the following issues:
- users stuck on the prejoin screen
- participants join 2+ times in the call (we have been creating more than 1 local participants from a single page).
fix(transcribing): Handle transcriber status changed.
* fix(subtitles): Handle errors to revert to default state.
* fix(transcribing): Handle transcriber status changed.
Drops potential transcribers and hidden participant actions and handling. Expect ljm to detect transcriptions on and off.
* feat(transcriptions): Adds a notification if transcriber leaves abruptly.
* squash: Renames action.
* chore(deps) lib-jitsi-meet@latest
https://github.com/jitsi/lib-jitsi-meet/compare/v1869.0.0+5671c5d6...v1872.0.0+8940b5c9
fix(transcriptions,recording): Allows non moderators with features to dial, record or transcribe. (#15074)
* fix(transcriptions): Uses dial command to invite transcriber.
* fix(transcriptions,recording): Allows non moderators with features to dial, record or transcribe.
* sqaush: Make sure filtering works when only is a moderator.
It works now and without a token and no features, but being moderator.
* squash: Rename constant.
* squash: Checks features first before defaulting to moderator when filtering metadata service.
* squash: Checks features first before defaulting to moderator in UI.
* squash: Fixes lint and one other check.
* squash: Moves more logic to is_feature_allowed.
* squash: Drops unnecessary check.
* squash: Uses constant coming from ljm.
* squash: Toggles back captions button on error.
* squash: Fix comment.
* squash: Reverting back isLiveStreamingButtonVisible.
* squash: Fix imports.
Some middleware functions are declared as async. This wraps next(action) in Promise which will delay the execution of actions and also dispatch will return the its result always as a Promise.
feat(visitors): Handles live conference and queue service. (#14869)
* feat(visitors): Handling of live conference and queue service.
* squash: Small refactor mobile code.
* squash: Drop debug log.
* chore(deps) lib-jitsi-meet@latest
https://github.com/jitsi/lib-jitsi-meet/compare/v1836.0.0+d05325f3...v1839.0.0+ea523fc6
* squash: Adds a count function.
* squash: Drop debug print.
* squash: Skip if queueService is not enabled.
* squash: Avoids double subscribing for visitorsWaiting.
* squash: Fixes lint error.
* squash: Fixes showing dialog.
fix(visitors): Use single GUM for enabling media on promotion.
Before we were using setAudioMuted and setVideoMuted which was effectively using separate GUM calls for audio and video. This was problematic in the case where GUM permissions prompt was displayed because two separate prompts were displayed.
fix(notifications): Adds a 60 secs timeout for bridge channel message. (#14690)
* fix(notifications): Adds a 60 secs timeout for bridge channel message.
Also indicates that audio might get disrupted in addition to video when ssrc-rewriting is enabled.
* squash: decrease the timeout to 15 secs if the data channel doesn't establish at all.
Many of the events are not used at all or used only on one place. For the rest of them the listeners were added 2 times on promoted visitors and not cleaned at all.
fix: Fixes leaving the visitor's meeting on promotion. (#14239)
* fix: Fixes leaving the visitor's meeting on promotion.
This was resulting some colibri websockets reconnects as the state of the previous JitsiConference was not cleaned up.
* squash: Update jsdocs, lint error.