Commit Graph

94 Commits

Author SHA1 Message Date
Ramón Souza
7c62352079
Merge pull request #20958 from JoVictorNunes/pure-voice-activity-hooks
fix: prevent the whole client from rerendering on voice activity
2024-08-16 09:47:57 -03:00
João Victor
2b6e4b584e fix(voice): reorganize askForConfirmationOnLeave code
- Move askForConfirmationOnLeave into AudioContainer
- Get rid of the unstable useMuteMicrophone hook, which returns a new reference every time the user gets muted/unmuted. Use the stable useToggleVoice hook instead.
2024-08-15 10:34:16 -03:00
prlanzarin
325887e325 feat(audio): rework audio join without listen only
This is a rework of the audio join procedure whithout the explict listen
only separation in mind. It's supposed to be used in conjunction with
the transparent listen only feature so that the distinction between
modes is seamless with minimal server-side impact. An abridged list of
changes:
  - Let the user pick no input device when joining microphone while
    allowing them to set an input device on the fly later on
  - Give the user the option to join audio with no input device whenever
    we fail to obtain input devices, with the option to try re-enabling
    them on the fly later on
  - Add the option to open the audio settings modal (echo test et al)
    via the in-call device selection chevron
  - Rework the SFU audio bridge and its services to support
    adding/removing tracks on the fly without renegotiation
  - Rework the SFU audio bridge and its services to support a new peer
    role called "passive-sendrecv". That role is used by dupled peers
    that have no active input source on start, but might have one later
    on.
  - Remove stale PermissionsOverlay component from the audio modal
  - Rework how permission errors are detected using the Permissions API
  - Rework the local echo test so that it uses a separate media tag
    rather than the remote
  - Add new, separate dialplans that mute/hold FreeSWITCH channels on
    hold based on UA strings. This is orchestrated server-side via
    webrtc-sfu and akka-apps. The basic difference here is that channels
    now join in their desired state rather than waiting for client side
    observers to sync the state up. It also mitigates transparent listen
    only performance edge cases on multiple audio channels joining at
    the same time.

The old, decoupled listen only mode is still present in code while we
validate this new approach. To test this, transparentListenOnly
must be enabled and listen only mode must be disable on audio join so
that the user skips straight through microphone join.
2024-08-15 00:43:28 +00:00
Ramón Souza
96085110a5
refactor: fix sonarcloud alerts (#20604)
* remove unused argument

* fix Do not use "Error" to declare a variable

* fix Do not use "Array" to declare a parameter

* fix React component names must start with an uppercase letter

* adjust error boundary prop type

* add default values for lock settings
2024-06-28 15:58:38 -04:00
João Victor Nunes
9801905960
fix: improve the hooks of voice activity (#20589)
* fix: improve the hooks of voice activity

* Add check for users who haven't talked
2024-06-27 14:31:20 -03:00
João Victor
17b734e642 refactor(core-html5): custom hooks for voice data 2024-06-21 18:45:05 -03:00
Tiago Jacobs
ba02a327e1
Revert "refactor(core-html5): custom hook for voice data" 2024-06-19 14:18:58 -03:00
João Victor
7ede343490 refactor(core-html5): custom hook for voice data 2024-06-18 15:40:14 -03:00
João Victor
7738207fb5 Remove users adapter consumption 2024-06-14 11:35:53 -03:00
João Victor
78958ccf45 Remove meeting adapter consumption 2024-06-14 10:30:48 -03:00
João Victor
8568580ed4 Fix comment 2024-06-13 12:01:34 -03:00
João Victor
af44df46e7 fix: join breakout with audio 2024-06-13 12:00:30 -03:00
João Victor
a20bc0655f refactor: remove withTracker from audio container 2024-06-13 10:54:46 -03:00
Ramón Souza
911f663e27 remove defaultProps from components 2024-06-11 13:10:04 -03:00
João Victor Nunes
06500be757
refactor(storage): replace Tracker.Dependency with observer hook (#20322)
* refactor(storage): replace Tracker.Dependency with observer hook

* fix(storage): set initial value

* refactor(storage): stop using Meteor's Session singleton
2024-06-06 10:50:03 -03:00
Ramón Souza
7514066fc3
fix: Client can't load in certain cases (#20336)
* move settings

* remove meteor cache files
2024-05-29 09:26:11 -04:00
João Victor
fd253d6c2d refactor(settings): remove both Meteor's Tracker.Dependency and all uses in old format 2024-05-17 17:33:52 -03:00
Tainan Felipe
7d7acb8a80 Remove: Breakout room unused code 2024-04-30 16:14:22 -03:00
Tainan Felipe
b40930cc4a Refactor: move captions to graphql 2024-04-16 19:39:29 -03:00
João Victor
7aa4a40c61 improvement: use React context to store current user data 2024-04-04 10:13:27 -03:00
Anton Georgiev
ef300cf28e
chore: Fix typo (found by typos) (port) #19834
Co-authored-by: Stefan Weil <sw@weilnetz.de>
2024-03-18 09:58:53 -04:00
André Castro
58a0efe708
Migrate auth and settings to graphQL (#19507) 2024-03-06 14:28:18 -03:00
João Victor
3c460bb758 fix: prop types, invalid hook call, styled-components prop 2024-02-16 17:32:14 -03:00
João Victor
431511b8da migrate toggleVoice 2024-01-29 11:05:39 -03:00
GuiLeme
6652c00c79 [issue-18736] - fix videoPreview not working 2023-09-11 17:15:21 -03:00
GuiLeme
5eb29e0ab5 [issue-16954] - merge upstream/v2.7.x-release 2023-04-11 11:02:00 -03:00
Ramón Souza
bcd504b749 Merge remote-tracking branch 'upstream/v2.7.x-release' into lodash-radash 2023-04-05 09:42:05 -03:00
GuiLeme
81ae4e9ca6 [issue-16954] - Adjusting modal priorities 2023-03-29 11:08:56 -03:00
GuiLeme
5f3296fdb1 [issue-16954] - last migrations - VideoPreview and drag and drop of background 2023-03-27 12:36:25 -03:00
GuiLeme
c1676004d4 [issue-16954] - migration of audio modal 2023-03-24 12:29:09 -03:00
Ramón Souza
8dbff37a43
Merge pull request #16868 from Arthurk12/bbb/2.6/15716
fix(breakout rooms): video and audio modal appearing for all mods when rejoining
2023-03-16 10:42:16 -03:00
GuiLeme
f7649cdd19 [issue-16872] - Change session logic to event logic 2023-03-13 11:13:56 -03:00
GuiLeme
f711a4ca32 [issue-16872] - Fixed flashing of breakout modal invitation 2023-03-10 16:28:05 -03:00
Arthurk12
774dc136eb fix(breakout rooms): video and audio modal appearing for all mods when rejoining
There was an observer being linked to all breakout rooms that the user has
access to. This logic works for attendees, but not for moderators.
Moderators have access to the list of all breakout rooms, so they were set
with an observer to breakout rooms that they didn't participate, which caused
the audio and video modals to appear everytime the breakout rooms were closed.
So, this commit:
- hangs an breakout rooms' observer only on those mods that have joined any
breakout room. This way, mods that didn't participate in any breakout
room won't be disturbed by the audio and video modal.
- adds an extra check to ensure that the observer will only be run in
non-breakout meetings.
2023-03-01 15:18:12 -03:00
Ramón Souza
5c5433296b replace lodash range, partition and upperFirst 2023-02-22 13:52:18 -03:00
Ramón Souza
1d1375b3cf move modal component to common folder 2022-02-15 15:54:55 +00:00
Mario Jr
9578efbcd3 fix(audio): prevent audio to hang when user is transferred to breakout room
When joining breakouts, we now wait for the bridge to be loaded before
automatically start user's audio.
This problems happens only on fullaudio bridge
2021-11-09 15:04:10 -03:00
Anton Georgiev
6e0c74e02f style: Pulled latest fonts, audio icon swap 2021-10-18 20:26:01 +00:00
Mario Jr
db4158dc30 fix: first audio join in breakout fails with specific config
When listenOnlyMode=false, skipCheck=true and skipCheckOnJoin=true, the
audio tries to start a session more than one time, causing it to fail
at the first one (and reconnect after that).

Now we check if user is already connecting before trying to start a new
audio session.

Added some info in settings.yml for the options related to this commit
Closes #12190
2021-05-04 10:11:33 -03:00
Mario Jr
bf17b385b6 fix: breakout autojoin audio with wrong behavior
When joining/returning breakouts, audio would always connect
with full audio. This can lead to a performance problem, once
all listenonly users would join full audio, increasing the
number of streams in FreeSWITCH.

We now have a consistent behavior, which is:
1 - The choice made by the user in the main room is predominant:
    if mic is active in main room, user will automatically
    join mic in breakout room. When returning from breakout
    room, user will also join with mic again.
2 - Changes made in breakout room won't have effect when
    returning to the main room. This means if user, for example,
    change from listenonly to mic in breakout room, the returning
    will consider the option choosen previously (listenonly) and
    listenonly will be active again in the main room.
3 - If user didn't join audio in the main room, the audio modal
    will be prompted when joining the breakout room (this is
    a special case of (1))


The following is some technicall information:
InputStreamLiveSelector (component.jsx) now calls
'handleLeaveAudio' function, which is the default
function when user leaves audio (also used when
dynamic devices are inactive).

We now store information about user's choice (mic or listenonly)
using local storage, instead of the previous cookie method (this
was triggering some warnings in browser's console).

Also did a small refactoring to match eslint rules.
Fixes #11662.
2021-04-20 14:38:11 -03:00
Mario Jr
951fc0ade8 fix: MEDIA_ERROR when joining room using Firefox
Firefox doesn't create a  device called 'default' and we were trying
to set this when user is joining the room. We don't do this anymore, letting
devices to be changed when there's some user request.

Moved outputDeviceId inputDeviceId information to be managed in bridge
(just like we do with inputDeviceId), we don't store this duplicated
information in audio container anymore.

Fixed the eslint warning in "playAlertSound(url) { ..."

We are safe to let users try to change input/output devices because the
device list is retrieved from enumerateDevices.
2021-04-01 15:53:43 -03:00
Mario Jr
629b6c901c Do not join microphone when user is already in breakout
Fixes #11511
Related to the feature implemented in c451666d52
2021-02-28 17:13:10 -03:00
Ramon Souza
46af7880d6 Merge remote-tracking branch 'upstream/develop' into PR-8696 2021-02-11 09:12:13 -03:00
Mario Jr
f2de2806eb Add setting for enabling/disabling microphone audio filters
As explained in #11143, disabling audio filters is desired in some scenarios.
This basically adds an option for user to disable default constraints.
When user doesn't change this value in Settings > Application, the default
value for each audio constraints is retrieved from settings.yml.
When user changes this value in Settings > Application, audio
filters (AGC, Noise Supression and Echo Cancellation) are all set to
true/false, according to the value selected in the Settings GUI.

To start it simple, we decided to not to add a different setting in the GUI for
each audio contraint. This may be added in the future, though (perhaps in a
dedicated Audio Settings tab)
This is related to #4873
2021-01-29 14:18:15 -03:00
Tainan Felipe
dda7182757 Merge remote-tracking branch 'upstream/develop' into skip-audio-check 2020-08-19 10:24:17 -03:00
Ahmed Omar
e77cfe3755
Apply autoShareWebCam on return from breakout room 2020-05-01 18:09:29 +02:00
Tainan Felipe
c451666d52 WIP Implements skip to audio check in breakout rooms 2020-03-02 17:49:15 -03:00
Anton Georgiev
42d640f3e2 Merge branch 'issue7791-add-support-to-new-parameters-name' of github.com:diegobenetti/bigbluebutton into test-7805 2019-11-05 11:59:00 -05:00
Anton Georgiev
c5856d43c8 moved static code outside of tracker 2019-09-04 14:32:58 -04:00
Joao Siebel
7603c78740 Allow autoShareWebcam even when autoJoin is disabled
close #7902
2019-08-22 17:08:24 -03:00