Commit Graph

772 Commits

Author SHA1 Message Date
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
Paulo Lanzarin
5ddf3155c7
Merge pull request #18407 from prlanzarin/u27/fix/audio-retry-timeout-logs
feat(audio): add retryThroughRelay, +...
2023-08-03 15:50:04 -03:00
Ramón Souza
df8e9e9440 split disabled download of presentation params 2023-07-31 17:03:29 -03:00
prlanzarin
26815f4679 chore(audio): add more data to audio_joined/failure logs
Add secondsToActivateAudio, inputDeviceId, outputDeviceId and isListenOnly
to audio_joined.extraInfo

Add inputDeviceId, outputDeviceId and isListenOnly to
audio_failure.extraInfo

Add a try-catch to the device enforcement procedure triggered by
onAudioJoin - it may throw and block the modal.
2023-07-31 11:39:24 -03:00
Gustavo Trott
3758dd89e2 Merge 2.7 into Develop 2023-07-31 11:24:25 -03:00
Tainan Felipe
9869ee7f2b Refactor: actions bar audio button 2023-07-24 15:56:40 -03:00
Anton Georgiev
6b76d9aa66 Merge remote-tracking branch 'bbb/v2.6.x-release' into merge-july-21 2023-07-21 16:24:45 -04:00
GuiLeme
6fb701045a [issue-18259] - fix join audio in breakout room 2023-07-17 09:14:23 -03:00
André Castro
e5268887bd
removing duplicates 2023-06-16 12:13:07 -03:00
André Castro
5af5151219
Merge branch 'v2.7.x-release' into I-18137 2023-06-15 11:50:02 -03:00
André Castro
c1cd4f6c84
Update index.js 2023-06-15 11:24:23 -03:00
Scroody
53fcfd9101 Resolving issues 2023-06-14 16:47:57 -03:00
Scroody
450cbe5451 Client: Timer added as disabled feature 2023-06-13 15:54:16 -03:00
Scroody
294fda2c6f Client: Camera as content as conent added to disabled features 2023-06-13 11:25:09 -03:00
Anton Georgiev
c8b0437df3
Merge pull request #18133 from GuiLeme/port-timer-with-events-suggestions
feat(timer): Port timer (Mconf) with events suggestions
2023-06-08 15:56:10 -04:00
GuiLeme
2cf46e4d05 [port-timer-with-events-suggestions] - made review suggestions 2023-06-08 16:37:32 -03:00
Ramón Souza
d31e56b3fd rename parameter, fix props 2023-06-07 09:35:56 -03:00
Samuel Weirich
ef64c17c3b Add disabled feature snapshot current slide 2023-06-07 08:55:13 -03:00
Paulo Lanzarin
0e8dc2a0cc
Merge pull request #17847 from prlanzarin/u27/feat/fullaudio-bridge-userdata
feat(audio): add userdata-bbb_fullaudio_bridge
2023-05-31 17:07:57 -03:00
prlanzarin
80414a9cc4 feat(audio): add userdata-bbb_fullaudio_bridge
Allows controlling which audio bridge should be used, per user
2023-05-31 17:07:10 -03:00
Paulo Lanzarin
5447666c15
Merge branch 'v2.7.x-release' into port-timer 2023-05-26 10:33:38 -03:00
Anton Georgiev
4948731fe7
Merge pull request #17764 from lfzawacki/reactions-port
feat: Port Mconf Reactions into BBB 2.7
2023-05-26 08:05:02 -04:00
Anton Georgiev
1a1f442d5a
Merge pull request #17746 from Carloshsc/port-present-webcam-27
feat(camera as content): present webcam
2023-05-26 08:01:40 -04:00
prlanzarin
7c77fc7433 Merge remote-tracking branch 'origin/v2.7.x-release' into reactions-port 2023-05-25 19:54:01 -03:00
Arthurk12
701206ee80 feat(reactions): add to disabledFeatures 2023-05-25 18:05:50 -03:00
Carlos Henrique
0659f15211 fix(disabledFeatures) add timer
"disableFeatures=timer"
2023-05-18 15:29:41 -03:00
Scroody
4a6d1258ae Requested changes made and fix of deactivating mutiple cams 2023-05-17 11:30:06 -03:00
Scroody
8272b487f3 Testing 2023-05-16 14:39:56 -03:00
Arthurk12
e902f2ee27 feat(screenshare): add contentType field
This commit adds a contentType field in the back-end components of the
screenshare feature in order to accomodate the new 'camera as content'
feature.
2023-05-09 17:21:47 -03:00
Anton Georgiev
72c575b911 Merge branch 'v2.6.x-release' of github.com:bigbluebutton/bigbluebutton into merge-apr-6 2023-04-06 11:50:26 -04:00
Anton Georgiev
e2dc7da98a
Merge pull request #16828 from prlanzarin/u27/fix/ss-cam-reconn
fix: re-connection improvements for cameras and screen sharing
2023-04-05 16:13:01 -04:00
prlanzarin
c81a7e70f2 fix: properly check constraints before creating transceivers in peer.js
In peer.js offer generation method, the provided constraitns are only
being type checked. It needs a value check when the constraint is a
boolean.

This commit should prevent useless transceivers from being added when
explictly specifying audio/video as `false`
2023-04-05 13:30:30 -03:00
prlanzarin
be6a23a003 feat: add option to force/extend gathering window in SFU components
There's an edge case in finnicky networks where ALG-like firewalls
tamper with USE-CANDIDATE STUN packets and, consequently, bork ICE-lite
connectivity establishment. The odd part is that client-side gathering
seems to complete if intermediate STUN bindings work (before the final
USE-CANDIDATE), which may cause the peer not to generate relay
candidates == connectivity fails.

This adds the `public.kurento.gatheringTimeout` option to forcefully extend
the candidate gathering window in peers that act as offerers. The
behavior is as follows: if the flag is set (ms), the peer will wait
either the gathering completed stage or, _at most_,
public.kurento.gatheringTimeout ms before proceeding with calls chained
to setLocalDescription.

This option is disabled by default and intentionally ommited from the
base settings.yml file as to not encourage its use. Don't use it unless
you know what you're doing :).
2023-04-05 13:22:38 -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
Tainan Felipe
470937bf6f Refactor: Migrate users for the Meteor 3.0 api 2023-03-20 16:35:52 -03:00
Anton Georgiev
2c5cd8f2a0 Merge branch 'v2.6.x-release' of github.com:bigbluebutton/bigbluebutton into merge-26-27 2023-03-10 13:03:56 -05:00
germanocaumo
d09f2681d9 refactor(html5): presentation/whiteboard/cursor code cleanup and linting 2023-03-10 11:30:46 +00:00
prlanzarin
3bddbb96cf fix(video): signaling and reconnection edge cases
There are still a bunch of edge cases and issues with reconnection
scenarios for video:
  - Signaling socket refuses to reconnect once maxRetries expire
  - Race conditions on local stream attachment: local camera wouldn't be
    correctly rendered _if_ the attached stream existed _without_ video
    tracks yet
  - Video tracks leak on local streams when replacing them (virtual bgs)
  - Completely ignoring Meteor state when trying to reconnect cameras
  - Streams aren't proactively stopped when the signaling socket dies
  - Outbound request queues aren't isolated by stream nor are they
    flushed when a newer peer with the same ID is created
  - Server originated negotiation errors won't trigger a local peer
    cleanup - thus leaving dangling peers that take way too long to
    reconnect

This commit fixes or improves all of the aforementioned issues, +:
  - Remove unused arguments in the peer (client->SFU) 'start' request
  - Prevent crashes when trying to render video-list-items without user
    data (which might happen on re-connections)
2023-03-08 15:49:35 -03:00
prlanzarin
5ee0ff9af2 fix(screenshare): add proper signaling heartbeat, +
Same rationale as in video-provider's commit
(34fa37ae4f092af4a5aef0cf01d96c033d97473c).

This commit does the following:
  - Implement actual heartbeat checks to trigger reconnects when
    necessary
  - Properly catch and log WebSocket.send errors
2023-03-08 15:46:55 -03:00
Ramón Souza
3c376e112d
Merge pull request #16936 from ramonlsouza/not-logged-redirect
fix: return logoutUrl on logout even if the user is not logged in
2023-03-07 13:03:20 -03:00
Ramón Souza
4aeb406aaf
Merge pull request #16754 from Scroody/i-16640
fix: Banned user sees message upon return attempt (before - only blue screen)
2023-03-07 13:03:00 -03:00
Ramón Souza
5846312f93 return logoutUrl even if the user is not logged in 2023-03-07 09:38:57 -03:00
imdt
23c6217e1c Error now identyfied and treated. 2023-03-01 15:51:33 -03:00
Ramón Souza
41c187d93e Merge remote-tracking branch 'upstream/v2.6.x-release' into lodash-radash 2023-03-01 15:19:12 -03:00
Tainan Felipe
264f6bae04 Migrate the breakout room backend to new async api 2023-02-23 16:42:21 -03:00
Ramón Souza
ba9c414989 replace lodash isEqual and isEmpty 2023-02-23 10:27:16 -03:00
Ramón Souza
470e41ca28 check for array and object in storage/setItem 2023-02-23 09:30:52 -03:00
GuiLeme
d47d586f0e [issue-16734] - refactor disabledFeatures presentationArea to just presentation 2023-02-22 17:16:43 -03:00
Ramón Souza
8dbd39be75 replace lodash isObject and isString 2023-02-21 10:24:40 -03:00
GuiLeme
cbe3e88938 [issue-16734] - Implemented new disabledFeature presentationArea 2023-02-17 12:44:36 -03:00
Guilherme Pereira Leme
455a11d1fb
Update bigbluebutton-html5/imports/ui/services/auth/index.js
changes in review

Co-authored-by: Gustavo Trott <gustavo@trott.com.br>
2023-01-20 09:39:11 -03:00
GuiLeme
8af6c547f2 [issue-16284] - Changes in review 2023-01-20 08:44:21 -03:00
GuiLeme
6f5053d492 [issue-16284] - Changes in review 2023-01-19 11:32:00 -03:00
GuiLeme
7bb03551b1 [issue-16284] - changed behavior of not showing anything when user is moved out a breakout 2023-01-19 09:21:28 -03:00
GuiLeme
2e0a85f268 [issue-16284] - tweaked minor problems and fixed blue screen when changing breakout rooms 2023-01-17 11:30:25 -03:00
GuiLeme
78b165ed7c Merge remote-tracking branch 'upstream/v2.6.x-release' into disabled-transcriptions 2023-01-09 10:58:25 -03:00
GuiLeme
f67f530b32 [disabled-transcription] - Renamed audioCaptions to liveTranscription (for disabledFeatures) 2023-01-09 10:47:22 -03:00
Daniel Schreiber
4347ff2e3b Re-add option to disable enforce relay webrtc traffic for Firefox
There may be other bridges may not need to force relay traffic on
firefox as @prlanzarin pointed out. So set the default to a
configuration that works out of the box but leave other choices for the
operator.

The option is moved from kurento namespace to media next to the general
forceRelay option.
2023-01-03 23:21:25 +01:00
Daniel Schreiber
74f37db4fa Get rid of forceRelayOnFirefox
Firefox has a buggy ICE implementation and needs WebRTC media traffic to
be routed through a turn server to work reliably with mediasoup.

Use the information fetched by the STUN API to determine if the operator
has configured a turn server. If there is one force firefox to use it.

Closes #16164
2022-12-18 23:17:14 +01:00
GuiLeme
b4afec689e [disabled-transcription] - Created new disabledFeature audioCaptions 2022-12-16 17:04:14 -03:00
Ramón Souza
064b554dfd Merge remote-tracking branch 'upstream/v2.5.x-release' into merge-2526-dec14 2022-12-14 13:23:11 -03:00
Ramón Souza
1fda877450
Merge pull request #15929 from prlanzarin/u25/fix/cam-reconn-issues
fix: guarantee cleanup of stale data on re-subscriptions
2022-12-13 13:12:41 -03:00
Gustavo Trott
531241d269
feat: Button to transfer user to mobile App (#15183)
* Provide a link to transfer user to mobile App
* show menu option only if appStoreLink is present and it is not running on mobile app already
2022-11-15 09:49:24 -03:00
Tiago Jacobs
a412371688
Merge pull request #15968 from iMDT/fix-screenshare-in-26
(fix:screenshare) fixes screenshare using BigBlueButton-Tablet app
2022-11-09 16:34:43 -03:00
Ramón Souza
cdc2bc7e04
Merge pull request #15770 from JoVictorNunes/store-webcam-microphone
improvement: share audio and video setup among different sessions
2022-11-09 10:37:52 -03:00
Daniel Schreiber
c42fa1ca77 Add config option for html5 settings storage
When BBB is run as a single node or in a scaleout setup with a cluster
proxy in front (see https://docs.bigbluebutton.org/admin/clusterproxy.html) it
is useful to store client settings in browser localStorage instead of
sessionStorage. If localStorage is configured then the client will keep seetings
like notifications for user joining, chat etc across meetings.

It is not advisable to set the setting to `local` in a setup of multiple BBB
nodes without a cluster proxy in front of it because this would lead to
unexpected behaviour at users. The browser would store settings for each server
and for users it would look like BBB is sometimes store the settings and
sometimes not.

It adds the new setting

```yaml
public:
  app:
    userSettingsStorage: (session|local)
```
2022-11-09 09:00:03 -03:00
Tiago Daniel Jacobs
07f4ba1dce Fix screenshare in BigBlueButton-tablet app 2022-11-08 22:50:16 -03:00
Ramón Souza
13b2d8791d
Merge pull request #15814 from danimo/fix/15803
fix: spelling errors in session keys
2022-11-04 13:15:59 -03:00
Joao Victor
f1007fb7b6 Use the new config option from #15413 - A centralized way of defining which storage to use (Session or Local) 2022-11-03 17:57:54 -03:00
Gustavo Trott
09697948e1
Merge pull request #15708 from danielpetri1/breakout-upload-ui 2022-10-31 08:29:56 -03:00
Ramón Souza
8d0316ed31
Merge pull request #15747 from JoVictorNunes/issue-15713
improvement: add internationalization singleton
2022-10-28 13:24:03 -03:00
prlanzarin
401ddc4014 fix: guarantee cleanup of stale data on re-subscriptions
Currently, collection cleanup code is only run when an added event
is received from the server. Where that fails is in scenarios where
a server-side collection turns empty while an affected users is
disconnected - and then reconnects. There's no removed (or updated)
event so no cleanup code is run and you have stale data.

This commit guarantees a stale data check is run whenever a subscription
is established again. The `added` check was also maintained, although
I'm not too sure anymore it's is still needed. That may need to be
revisited.
2022-10-28 13:37:41 +00:00