Commit Graph

1904 Commits

Author SHA1 Message Date
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
5d94bfd8b0
Merge pull request #18404 from paultrudel/migrate-slide-positions
refactor (graphql-server): Migrate slide-positions data
2023-08-04 22:27:41 -03:00
GuiLeme
ce22c1894d [issue-18446] - fix download of original presentation 2023-08-04 17:38:17 -03:00
Paul Trudel
6ba58c3c86 Move size scale calculation to Postgres 2023-08-03 20:14:38 +00:00
Paul Trudel
5f9545997c Only update slide data for a single slide 2023-08-03 15:40:10 +00:00
Paul Trudel
2874a41e32 Removed slideId column from presPage table 2023-08-03 12:50:20 +00:00
Paul Trudel
1af618dd2e Removed podId column from presPage table 2023-08-03 12:17:47 +00:00
Gustavo Trott
424ec2021c Add points to start and stop recording 2023-07-28 16:28:03 -03:00
Gustavo Trott
ae1b854b3c Add endpoint meeting_recording to graphql 2023-07-28 16:13:01 -03:00
Paul Trudel
14775e32eb Store page resize in postgres 2023-07-28 18:01:53 +00:00
Paul Trudel
8373eefdc3 Store slide position data in postgres 2023-07-27 19:10:51 +00:00
Paul Trudel
e61edbdfcc Update pres_page table on move and resize 2023-07-26 18:34:19 +00:00
Paul Trudel
ec9deb1e67 Added podId, width, and height, columns to postgres 2023-07-26 13:53:15 +00:00
Gustavo Trott
185e48d36c Merge remote-tracking branch 'upstream/v2.7.x-release' into develop 2023-07-21 17:17:52 -03:00
Gustavo Trott
762ae78814 Implements func to Clear all users reaction 2023-07-21 11:10:10 -03:00
Gustavo Trott
4a346aae4e Fix btn Show Welcome Msgs bugs 2023-07-19 11:16:57 -03:00
Gustavo Trott
21f1ed9f27 Merge 2.7 into Develop 2023-07-14 17:42:13 -03:00
Anton Georgiev
cd9f93be44 Merge remote-tracking branch 'bbb/v2.6.x-release' into merge-july12 2023-07-12 15:59:46 -04:00
Gustavo Trott
300ffee642
Merge pull request #18284 from hiroshisuga/patch-5
[fix] Cannot pick an escaping student who knows he will be picked next
2023-07-10 11:48:38 -03:00
hiroshisuga
90f4541fe2
Repick when only nobody to be picked 2023-07-08 20:32:00 +09:00
Tainan Felipe
f2e0fd43e9
Refactor: Make all chat area use graphql (#18122)
* Refactor: Make all chat area use graphql

* Fix: large space between welcome msg and chat list

* Fix: missing file

* add pending status and fix system messages

* Add: mark messages as seen in chat

* Refactor: Move char opening logic to inside of chat panel

* Refactor message and mark as seen

* Add Recharts to package.json and fix miss data

* Implements clear-chat function on graphql

* Make system message sticky

* Add clear message support and fix user is typing

* FIx chat unread and scroll not following the tail

* Change: make unread messages be marked by message and fix throttle

* Don't show restore welcome message when the welcome message isn't set

* Fix: scroll not following the tail properly

* Fix: previous page last sender not working

* Fix: scroll loading all messages

* Fix messaga not marked as read

---------

Co-authored-by: Gustavo Trott <gustavo@trott.com.br>
2023-07-07 17:46:36 -03:00
hiroshisuga
4ba826c6aa
Update SelectRandomViewerReqMsgHdlr.scala 2023-07-06 10:14:08 +09:00
Gustavo Trott
99c2719fea Fix some conflicts on updating graphql-database 2023-07-05 19:01:48 -03:00
Gustavo Trott
e31ae5d7de Include speechLocale to graphql 2023-07-05 10:05:25 -03:00
Gustavo Trott
4be594d8db Remove color from collection userVoice 2023-07-05 08:50:08 -03:00
Gustavo Trott
89c628e5d6 Add bk sendInvitationToModerators to graphql 2023-06-29 16:52:59 -03:00
Gustavo Trott
a7cd1c5232 Merge 2.7 into Develop 2023-06-29 16:27:10 -03:00
Gustavo Trott
c8867fadb5
Merge pull request #18197 from Scroody/I-18127
Allow dynamic control on moderators invitation for breakouts
2023-06-29 13:39:26 -03:00
Gustavo Trott
e497cd5cd8 Implements guest props and others to graphql 2023-06-28 23:08:03 -03:00
Gustavo Trott
5681e88c60 Merge 2.7 into Develop 2023-06-26 17:21:01 -03:00
Ramón Souza
574b187645
Merge pull request #18130 from Scroody/I-18101
Client change: List the option to download presentation with annotations even if there are no annotations
2023-06-26 16:27:58 -03:00
Gustavo Trott
714de811b2
Update PresPresentationDAO.scala
Use `compactPrint` to store json instead of `prettyPrint`.
2023-06-26 09:56:17 -03:00
Gustavo Trott
74c81e080b Provide presentation data through graphql 2023-06-26 09:46:54 -03:00
Gustavo Trott
5761094388 graphql - Remove generation of join Links for breakout assignments 2023-06-23 11:23:41 -03:00
Ramón Souza
af670883c1 remove unused code 2023-06-22 15:35:40 -03:00
Ramón Souza
ae1e6079e1 rename includeMods -> sendInviteToModerators 2023-06-22 13:55:23 -03:00
Gustavo Trott
6ba4aad05a
Merge branch 'v2.7.x-release' into user-raiseHand-away-flags 2023-06-22 08:27:20 -03:00
Anton Georgiev
43b96b47c4
Merge pull request #17724 from lfzawacki/v2.7.x-release
feat: Implement automatic closed captions using an open transcription server
2023-06-22 05:25:14 -04:00
Ramón Souza
56d16f0330 back-end part 2023-06-21 16:47:28 -03:00
Anton Georgiev
ce24a1a6c2
Merge pull request #18163 from Scroody/I-18137
feat(config): Disable timer feature
2023-06-21 14:33:20 -04:00
Gustavo Trott
2b167786b5 Introduces breakoutRooms to graphql 2023-06-21 12:32:53 -03:00
GuiLeme
0c5f8aa1f0 [issue-18021-back-end] - Changes in review and fix to support screenshare disabled and cameraAsContent enabled 2023-06-16 17:48:52 -03:00
GuiLeme
ac210ca39c [I-18101-back-end-tweak] - back-end portion - minor tweak 2023-06-16 13:52:44 -03:00
GuiLeme
ef1b00fe7f [I-18101-back-end-tweak] - back-end portion - review changes 2023-06-16 12:22:14 -03:00
GuiLeme
f36ffbe949 [I-18101-back-end] - back-end portion 2023-06-16 09:24:50 -03:00
Anton Georgiev
d8cc9f0e61 fix: missing comma after conflict resolving 2023-06-15 16:01:05 -04:00
GuiLeme
48ebf3150d [issue-18021-back-end] - Back-end portion of disabled camera as content 2023-06-15 10:24:28 -03:00
GuiLeme
8c5c1728ee [I-18137-back-end] - Back-end implementation for disabledTimer 2023-06-14 17:19:40 -03:00
danielpetri1
84e797e8ee Fix double file separator glitch 2023-06-14 13:48:46 +00:00
Gustavo Trott
60e5fe6a53 Introduces Timer data to graphql 2023-06-13 11:44:51 -03:00
danielpetri1
40d990d8a6 Fix original presentation download link in cluster setups 2023-06-12 14:57:24 +00:00
Gustavo Trott
22a2c8ce7c Merge remote-tracking branch 'upstream/v2.7.x-release' into graphql-timer 2023-06-12 10:06:22 -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
Gustavo Trott
8263dd17ca Introduces flags user.away and user.raiseHand 2023-06-07 22:10:07 -03:00
Ramón Souza
22b02ead28 Merge remote-tracking branch 'upstream/v2.7.x-release' into 16120 2023-06-06 08:45:29 -03:00
Anton Georgiev
70b3220f41 Merge branch 'v2.7.x-release' of github.com:bigbluebutton/bigbluebutton into june5-27 2023-06-05 17:09:35 -04:00
Anton Georgiev
748c7a4a0b Merge branch 'v2.6.x-release' of github.com:bigbluebutton/bigbluebutton into june227 2023-06-02 09:45:34 -04:00
Arthurk12
ad8759ed1b feat(timer): add recording events
Adds recording events to each timer message(except CreateTimerPubMsg).
2023-06-02 09:12:44 -03:00
Arthurk12
1431e76bfe feat(timer): add fields to the activate message
Adds fields(stopwatch, running, time, accumulated, track) to the
activate timer message response in order to be able to log them in the
events.xml file.
2023-06-02 09:12:43 -03:00
prlanzarin
4d1aa87a88 feat: only record media while meeting is being actively recorded
Only record media (microphone, webcams and screens) while meeting is
being actively recorded (ie an user has enabled recording in the
conference). If the conference's recording is paused, media capture will
stop as well (with appropriate recording events).

A bigbluebutton.properties/API#create parameter called
`recordFullDurationMedia` is added to control this behavior. The default
is false (only capture while recording is active). Setting it to `true`
enables the current (legacy) behavior: always capture media if the
meeting's `recorded` prop is true.
2023-05-31 16:36:11 -03:00
Gustavo Trott
6186ef99ad Support camera as content using graphql 2023-05-30 10:01:32 -03:00
Gustavo Trott
c873504bec Rename UserLocalSettingsDAO 2023-05-29 13:51:06 -03:00
Gustavo Trott
ff39f1b250 Introduces graphql user-localSettings 2023-05-29 13:49:36 -03:00
Gustavo Trott
51bdcededc Merge 2.7 into develop 2023-05-26 10:50:39 -03:00
Paulo Lanzarin
5447666c15
Merge branch 'v2.7.x-release' into port-timer 2023-05-26 10:33:38 -03:00
Gustavo Trott
624137f19b Send presentation to chat in graphql 2023-05-26 09:38:11 -03:00
Paulo Lanzarin
171c7a6587
Merge branch 'v2.7.x-release' into v2.7.x-release 2023-05-26 09:27:14 -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
196d2c1e0a feat(reactions): sync expiration with akka
Currently, the reactions are cleared on mongo based on the expire time.
So to sync its state with akka, an observer is atattched to the user
reactions collection and whenever a reaction is removed because of the
expiration time, akka is notified with message 'UserReactionTimeExpiredCmdMsg'.
2023-05-25 17:32:27 -03:00
Gustavo Trott
d1a60157e5 Insert Poll result as Chat msg in graphql 2023-05-24 10:56:22 -03:00
Arthurk12
3efdbd9012 feat(reactions): add akka messages to clear all emojis status
Adds two new messages which clear the users emoji statuses. This messages
enables this task to be done in a single call, instead of triggering one
method call for each user.
'ClearAllUsersEmojiCmdMsg' is sent from meteor to akka and updates all the
emoji states in the users model.
'ClearedAllUsersEmojiEvtMsg' is sent from akka to meteor. This triggers the
 mongo collection update.
2023-05-24 10:49:42 -03:00
Gustavo Trott
ed2c94eaea Add externalVideo and screenshare to Graphql 2023-05-23 09:09:38 -03:00
Gustavo Trott
0fa28dd5d1 Include welcomeMsg to graphql and set permissions 2023-05-19 15:28:20 -03:00
Gustavo Trott
8e2f2f3000 Clear code 2023-05-19 13:49:24 -03:00
Gustavo Trott
cf92e73f11 Add Polls to postgres/graphql 2023-05-19 13:47:00 -03:00
Arthurk12
f13217607e feat(timer): add model and messages to akka apps
This commit makes the messages of the timer feature to be proxied by
akka-apps and also adds a timer model that is updated based on these
messages.
Moving the timer panel opening logic to the timer button component in
the navigation panel was a consequence of these changes.
2023-05-18 15:29:42 -03:00
GuiLeme
1b26302745 [issue-17531] - merge upstream/v2.7.x-release 2023-05-16 15:30:15 -03:00
Gustavo Trott
e5f31e2f0b Add user customParameters to graphql 2023-05-15 17:21:36 -03:00
Ramón Souza
dcef3e3d7b
Merge pull request #17845 from ramonlsouza/issue-17839
fix: ignore restore on update for first load of initial presentation
2023-05-15 13:41:27 -03:00
GuiLeme
9710c00b3d [issue-17531] - changes in review 2023-05-15 10:58:22 -03:00
Guilherme Pereira Leme
47a1dba829
Update akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/presentationpod/MakePresentationDownloadReqMsgHdlr.scala
Changes in review

Co-authored-by: Gustavo Trott <gustavo@trott.com.br>
2023-05-12 12:45:37 -03:00
GuiLeme
89eafc6315 [issue-17531] - changes in review 2023-05-12 12:40:07 -03:00
GuiLeme
4c2806a018 [issue-17531] - changes in review and ES-lint fixes 2023-05-11 18:06:48 -03:00
Gustavo Trott
290a41baa1
Merge pull request #17762 from GuiLeme/chat-list-migration
refactor: Chat list migration to graphql structure
2023-05-11 17:13:19 -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
8cb98d99fd
Merge pull request #17842 from paultrudel/akka-randomness-fix
fix(sec): Switched PRNG to secure PRNG
2023-05-09 11:18:21 -04:00
GuiLeme
d2c5b33eec [issue-17839] - back-end part for hide_presentation_on_join issue 2023-05-09 12:01:55 -03:00
GuiLeme
7a43191cd1 [graphql-chatlist-migration] - quick fix suggestion 2023-05-05 10:48:14 -03:00
GuiLeme
4676b74203 [chat-list-migration] - Back-end suggestion 2023-05-05 09:02:44 -03:00
GuiLeme
90078aedc7 [issue-17531] - resolve conflicts with 2.7 2023-05-04 08:56:27 -03:00
GuiLeme
f650ade561 [issue-17531] - prevent user from exporting annotations when there is no annotation 2023-05-04 08:48:32 -03:00
GuiLeme
f03c01399f [issue-17531] - added ConvertedPresentationName to be referenced when getting the link to downloading the original file 2023-05-02 11:14:40 -03:00
Gustavo Trott
39ac6d14f6 Revert database to config name 2023-05-02 10:28:11 -03:00
Gustavo Trott
13b871f4d5 Alter graphql database name to bbb_graphql 2023-05-02 10:00:51 -03:00
GuiLeme
a695ddf40d [chat-list-migration] - Remove debug logs 2023-04-27 18:05:51 -03:00
GuiLeme
c10cc1d01b [chat-list-migration] - Resolve open two times the same private chat problem 2023-04-27 17:52:42 -03:00
Paul Trudel
2e1635900b Removed logs for auth token validation 2023-04-27 20:51:17 +00:00
Gustavo Trott
a204980a6a Create new flag visible to chat_user 2023-04-26 16:19:58 -03:00
Paul Trudel
1b5015211e Change registeredUser joined to false after leave 2023-04-26 15:41:29 +00:00
Gustavo Trott
8d0583e160 Explain what pg columns of user mean 2023-04-25 15:50:23 -03:00
Gustavo Trott
694ebd1e35 Introduces new flags disconnected (replacing leftFlag) and expired 2023-04-25 15:41:37 -03:00
Lucas Fialho Zawacki
4400cc68c8 feat(captions): Add SetUserSpeechLocaleMsg files 2023-04-25 10:05:16 -03:00
Lucas Fialho Zawacki
fee6ff026a feat(captions): Use setUserSpeechLocale as an akka event and catch it in the transcription manager 2023-04-25 09:54:34 -03:00
Lucas Fialho Zawacki
6979432c36 feat(transcription): Server side open source transcriptions 2023-04-24 18:23:34 -03:00
Gustavo Trott
768c4224a1 Resolve conflicts with 2.7 upstream 2023-04-24 18:02:06 -03:00
Gustavo Trott
9ff8d0aee9 Include new column user.hasDrawPermissionOnCurrentPage and triggers to populate it, to improve performance of the userlist orderBy 2023-04-20 09:49:16 -03:00
GuiLeme
6e05e3ca51 [issue-17131] - Suggestions in review and some change of behavior 2023-04-20 08:48:43 -03:00
Gustavo Trott
d19d286811 Adds prop color for voiceUsers create msgs 2023-04-19 12:16:35 -03:00
Paul Trudel
0528604839 Switched PRNG to secure PRNG 2023-04-17 19:35:02 +00:00
GuiLeme
13e37e61c3 [issue-17531] - removing logs for debbug 2023-04-17 09:44:56 -03:00
GuiLeme
90bbb10de6 [issue-17531] - insert tag besides the presentation's name 2023-04-17 09:04:58 -03:00
Gustavo Trott
e3a2e4b01a Store sessionToken in akka-apps (in order to invalidate connections in graphql-middleware) 2023-04-14 15:48:10 -03:00
Gustavo Trott
b9c0909b2a Introduces redis msg InvalidateUserGraphqlConnectionSysMsg that will be listened by graphql-middleware 2023-04-14 13:38:15 -03:00
GuiLeme
536285fc37 [issue-17531] - restored old feature of downloading original presentation 2023-04-14 11:04:24 -03:00
Gustavo Trott
8270bf1612 Update users policies in real-time in Postgres/Hasura 2023-04-14 09:11:56 -03:00
Gustavo Trott
63bc1593d5 Apply locksettings-hideUserList as validation on fetch users in Hasura 2023-04-12 11:07:54 -03:00
Gustavo Trott
36ba5ddc76 Add lockSettings options to graphql Hasura 2023-04-10 15:52:19 -03:00
Gustavo Trott
0b2bf8f68b Akka-apps will set mobile flag instead of Meteor 2023-04-06 17:43:57 -03:00
Gustavo Trott
0630fb05ea Moves user color picker to akka-apps instead of meteor-backend 2023-04-06 16:39:05 -03:00
Gustavo Trott
93c52542ae Clear codes related to Scala/Slick 2023-04-05 16:47:14 -03:00
Gustavo Trott
be4bac6037 Merge with v2.7.x-release 2023-04-05 15:05:16 -03:00
Gustavo Trott
3cf7be926c Introduces userTyping, user_connectionStatus and other flags to Postgres/Hasura 2023-04-05 13:56:22 -03:00
Gustavo Trott
94111058e5 Set userId as PK for user_voice table (user has only one mic, following Meteor current logic) 2023-04-04 09:02:41 -03:00
Gustavo Trott
d13613fb7d Include cursor data to Pg/Hasura and other fixes 2023-04-03 17:23:30 -03:00
Gustavo Trott
a31f3fe057 Set current presentation in Postgres/Hasura 2023-04-03 10:46:47 -03:00
Gustavo Trott
e85620d7a9 Add presentation collections to Hasura/Postgres 2023-03-31 17:46:17 -03:00
germanocaumo
e326955f90 fix(recording): crash on redisrecorderactor when poll is published
We were trying to save a poll result shape before it was converted to tldraw style, which was not compatible.
2023-03-29 22:43:18 +00:00
Gustavo Trott
2b58f246ee Create relationship for chat->user 2023-03-29 12:06:48 -03:00
Gustavo Trott
7f88d2efa4 Add Chat collections to Hasura/Postgres 2023-03-29 09:55:41 -03:00
Gustavo Trott
52fd6d3ad5 Insert Meeting props to database/Hasura 2023-03-24 13:33:08 -03:00
Gustavo Trott
b2bc0c838d Include more data to (Postgres/Hasura) graphql-server 2023-03-16 13:56:32 -03:00
Gustavo Trott
f641b71b4a Adjusts to run graphql client 2023-03-11 12:11:50 -03:00
Gustavo Trott
42711ac5ae Initial implementation of Postgres data and Hasura 2023-03-08 12:23:45 -03:00
Guilherme Pereira Leme
48853d483d
[issue-16734] - changes in review
Co-authored-by: Gustavo Trott <gustavo@trott.com.br>
2023-02-27 14:59:51 -03:00
GuiLeme
cfdff618fc [issue-16734] - Changes in review 2023-02-27 12:45:04 -03:00
GuiLeme
661ab05bfa [issue-16734] - changes in review 2023-02-24 12:52:01 -03:00
GuiLeme
d47d586f0e [issue-16734] - refactor disabledFeatures presentationArea to just presentation 2023-02-22 17:16:43 -03:00
GuiLeme
421717a817 [issue-16734] - patch for error handling 2023-02-21 08:41:05 -03:00
GuiLeme
3e6bb32a45 Merge remote-tracking branch 'upstream/v2.6.x-release' into issue-13867 2023-02-08 11:41:10 -03:00
Bohdan Zhemelinskyi
ffb8aaf616 fix dial-in guest join 2023-02-03 17:02:28 +00:00
GuiLeme
ce50e00cef [issue-13867] - remove and related settings 2023-01-31 10:30:55 -03:00
Paul Trudel
4fb221c613 Removed unused import 2023-01-26 19:36:34 +00:00
Paul Trudel
cda9c06da4 Added some additional logs for user authentiction and purging 2023-01-26 19:25:36 +00:00
Gustavo Trott
f121418355 Improvements to choose filename of captured content 2023-01-18 20:51:06 -03:00
Daniel Petri Rocha
2ecd3d6a80 Use prop as filename 2023-01-17 00:10:13 +01:00
Daniel Petri Rocha
a6b589a069 Add captured filename as breakout property 2023-01-16 23:00:27 +01:00
Daniel Petri Rocha
e15e17c307 Prevent toast from waiting forever when no presentation is set 2023-01-14 19:03:07 +01:00