Commit Graph

743 Commits

Author SHA1 Message Date
prlanzarin
d6e160a2c3 refactor(audio): remove stale iOS webview polyfills
Shouldn't be necessary anymore
2024-05-03 21:42:36 +00:00
prlanzarin
983b8a85cf fix(audio): improve help modal for listen only scenarios
The audio troubleshooting modal has very microphone-specific strings,
which might confuse users trying to join listen only.

Review the Help screen so that listen only scenarios are more generic.
As a bonus, review the unknownError locale with a more actionable text.
2024-05-03 21:41:06 +00:00
prlanzarin
a748d8ccbb fix(audio): remove listen only retry routines
Listen only has a built-in retry routine on join failures that's
convoluted half-broken. It stems from the Kurento era where it could
fail randomly due to a myriad of reasons.
Production logs indicate that the retry is seldom used nowadays in
mediasoup-based environments. The presence of the retry also breaks
the error troubleshooting modal when actual failures happening, leaving
users in the dark about what's happening.

Remove the listen only retry code from AudioManager and bubble up any
join failure to the callers.
2024-05-03 21:18:44 +00:00
prlanzarin
027d5ad288 fix(audio): handle NotAllowedError in skipCheck:true scenarios
In scenarios where the join audio flow skips echo test, NotAllowedError
(and any other errors) are all being mashed together under a generic
MEDIA_ERROR object.

Properly handle specific errors in audio-manager so they're correctly
render in the audio modal help screen.
2024-05-03 21:15:58 +00:00
Anton Georgiev
0df167180e
Merge pull request #20162 from prlanzarin/u30/fix/ff-pairselection
fix(audio): broken connection stats on Firefox >= 125
2024-05-03 08:53:40 -04:00
Anton Georgiev
70e4ab1f66
Merge pull request #20159 from prlanzarin/u30/fix/onconnectionstatechange-crash-rc
fix(bbb-html5): crash when stopping WebRTC peers
2024-05-03 08:52:28 -04:00
Anton Georgiev
9d99f7f78b
Merge pull request #20156 from prlanzarin/u30/fix/audio-answerer-gum-failure
fix(audio): acquire streams before negotiation when peer is answerer
2024-05-03 08:49:08 -04:00
prlanzarin
20daf56390 fix(audio): broken connection stats on Firefox >= 125
WebRTC-based stats generation in the connection status modal is broken
on Firefox >= 125. A broken type check coupled with a new partially
implemented RTCIceTransport dictionary causes and undefined function
call when fetching the selected candidate pair. Since that error is
unhandled, collection breaks.

Correctly check for the getSelectedCandidatePair method availability in
RTCIceTransport so that it skips to pair inference from getStats if
necessary.
2024-05-02 23:37:44 +00:00
prlanzarin
85cdc7cc2a fix(bbb-html5): crash when stopping WebRTC peers
There's a race condition that may cause a client crash whenever a
connectionstatechange callback is cleaned up in a peer without a
valid peer connection present in our custom RTCPeerConnection wrapper.

Check for peerConnection availability in the WebRtcPeer wrapper before
trying to clean up its connectionstatechange callback.
2024-05-02 22:59:39 +00:00
prlanzarin
00a2ab52a5 fix(audio): acquire streams before negotiation when peer is answerer
When a sendrecv peer acts as the answerer, gUM is only called _after_
the remote offer is received. This is fine, but the error handling runs
different in that scenario in a way that eventual gUM errors are treated
as negotiation errors, leading to inconsistencies when surfacing the
error to end users.

If a peer is acting as answerer and is a transceiver, acquire the local
streams _before_ actual negotiation so that gUM errors are surfaced
correctly (and we spare uneeded negotiation steps).
2024-05-02 22:27:16 +00:00
prlanzarin
d658d81148 fix(audio): minimize redundant audio exit toasts
Audio exit toasts are fired in some redundant situations, e.g.: when the
error help screen is toast.

Change the logic a bit so that it's only fired when the audio help modal
won't be shown, i.e.: when audio had succesfully connected.
2024-05-02 22:09:56 +00:00
Tainan Felipe
527b6d4cbf Merge remote-tracking branch 'upstream/v3.0.x-release' into fix-meeting-end-audio 2024-05-01 14:14:15 -03:00
Tainan Felipe
d5bb06349b Fix: audio not disconnected when user leave the meeting 2024-05-01 14:11:04 -03:00
Tainan Felipe
e4a23feda3 Remove: old code from notes, pads and meeting ended 2024-05-01 09:39:03 -03:00
Tainan Felipe
c2399fa5b3 Merge remote-tracking branch 'upstream/v3.0.x-release' into remove-meteor-server-dependencies-2 2024-04-25 16:41:14 -03:00
Ramón Souza
e8a40aa301 remove makecall 2024-04-25 15:35:05 -03:00
Tainan Felipe
8b7bd55287 Remove: Auth and annotation collections usage 2024-04-25 13:52:07 -03:00
Tainan Felipe
97393f6aa0 Fix: remove user-settings subscription 2024-04-24 11:18:58 -03:00
João Victor
d7c33d988d fix: client settings not persisting 2024-04-11 12:03:25 -03:00
Tainan Felipe
f3465827dd
Migrate meeting collection to graphql (#19853) 2024-03-26 08:57:28 -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
Tainan Felipe
a5f26da361 Merge remote-tracking branch 'upstream/v3.0.x-release' into refactor-voice-user 2024-03-07 14:16:05 -03:00
André Castro
58a0efe708
Migrate auth and settings to graphQL (#19507) 2024-03-06 14:28:18 -03:00
Tainan Felipe
00e055ff6e Refactor: move voice users to graphql 2024-03-06 13:08:32 -03:00
João Victor
91406bdac9 fix: prop types, tooltip options and setting changes 2024-02-16 17:25:43 -03:00
João Victor
69a174b15f fix TS typing 2024-01-30 11:07:10 -03:00
João Victor
3c39dc0b8c migrate userChangedLocalSettings 2024-01-30 10:03:11 -03:00
Ramón Souza
5f3a56c536
Merge pull request #19409 from JoVictorNunes/migrate-mobile-app-modal
Refactor: Migrate mobile app modal component
2024-01-18 13:28:28 -03:00
João Victor Nunes
ad4aed28c6
Remove console.log
Co-authored-by: Ramón Souza <contato@ramonsouza.com>
2024-01-18 13:21:57 -03:00
João Victor
4ab4ba8f58 Refactor: migrate mobile app modal component 2024-01-10 11:35:36 -03:00
Tainan Felipe
0c20ba2d64 Merge remote-tracking branch 'upstream/v3.0.x-release' into audio-migration 2023-12-13 11:03:21 -03:00
Ramón Souza
432b1b85be remove current-user collection 2023-11-30 15:20:12 +01:00
Tainan Felipe
7dfd95cfb2 Merge remote-tracking branch 'upstream/v3.0.x-release' into audio-migration 2023-11-13 10:17:05 -03:00
Ramón Souza
04248475a4 remove cursor stream listener - meteor 2023-10-12 13:30:39 -03:00
Ramón Souza
b3f74c9280 remove unused code 2023-10-11 09:48:10 -03:00
Gustavo Trott
fff883b2b2 Merge 2.7 into 3.0 2023-09-27 08:44:37 -03:00
Tainan Felipe
aa27e8be68 Refactor: migrate audio captions to TS + Graphql 2023-09-21 10:48:00 -03:00
GuiLeme
7829702275 [issue-18408-back-end] - merge upstream 2023-08-30 11:04:55 -03:00
GuiLeme
0aacb12cc8 [issue-18408-back-end] - added disabled download of converted presentation 2023-08-25 11:37:32 -03:00
GuiLeme
2cf6720b5f [issue-18408-back-end] - change name of download original pres 2023-08-25 09:27:01 -03:00
Anton Georgiev
1186db7712 Merge remote-tracking branch 'bbb/v2.6.x-release' into aug22merge 2023-08-24 15:05:20 -04:00
Gustavo Trott
201b6949a3 Resolve conflicts 2023-08-22 15:07:42 -03:00
Anton Georgiev
cb121f7803 fix(html5): backport Replace wasm detection library #18557 to 2.6 2023-08-17 11:16:39 -04:00
Gustavo Trott
d018fd6490 Resolve conflicts 2023-08-16 16:24:34 -03:00
Tiago Jacobs
9e512f9edc
Replace wasm detection library (#18557) 2023-08-15 13:02:59 -03:00
Tiago Jacobs
5cf2293c38
refactor (typescript): fix typescript build errors (#18454) 2023-08-14 17:52:35 -03:00
Ramón Souza
94cb2d5d97 only display reactions bar toggle if reactions are enabled 2023-08-11 10:14:16 -03:00
Paulo Lanzarin
d7e9cb05ee
Merge pull request #18461 from prlanzarin/u27/feat/transparent-listen-only
feat(audio): add experimental transparent listen only mode
2023-08-08 09:39:12 -03:00
prlanzarin
8feb934169 feat(audio): add experimental transparent listen only mode
This is an initial, experimental implementation of the feature proposed in
https://github.com/bigbluebutton/bigbluebutton/issues/14021.

The intention is to phase out the explicit listen only mode with two
overarching goals:
  - Reduce UX friction and increase familiarity: the existence of a separate
  listen only mode is a source of confusion for the majority of users
  Reduce average server-side CPU usage while also making it possible for
  having full audio-only meetings.

The proof-of-concept works based on the assumption that a "many
concurrent active talkers" scenario is both rare and not useful. With
that in mind, this including two server-side triggers:
 - On microphone inactivity (currently mute action that is sustained for
   4 seconds, configurable): FreeSWITCH channels are held (which translates
   to much lower CPU usage, virtually 0%). Receiving channels are switched,
   server side, to a listening mode (SFU, mediasoup).
   * This required an extension to mediasoup two allow re-assigning producers
     to already established consumers. No re-negotiation is done.
 - On microphone activity (currently unmute action, immediate):
   FreeSWITCH channels are unheld, listening mode is deactivated and the
   mute state is updated accordingly (in this order).

This is *off by default*. It needs to be enabled in two places:
  - `/etc/bigbluebutton/bbb-webrtc-sfu/production.yml` ->
    `transparentListenOnly: true`
  - End users:
    * Server wide: `/etc/bigbluebutton/bbb-html5.yml` ->
      `public.media.transparentListenOnly: true`
    * Per user: `userdata-bbb_transparent_listen_only=true`
2023-08-07 19:43:18 -03:00
Gustavo Trott
baba92cb0f Merge 2.7 into Develop 2023-08-04 16:47:23 -03:00