Commit Graph

860 Commits

Author SHA1 Message Date
Anton Georgiev
20d4944ce6
Merge pull request #20752 from prlanzarin/u27/fix/tlo-br-ralam-sfu2140
fix(audio): transparent listen only state inconsistencies, build(bbb-webrtc-sfu): v2.14.0
2024-08-01 10:13:41 -04:00
Anton Georgiev
5387fef101
Merge pull request #20703 from danielpetri1/webcam-background-url
feat: Accept custom webcamBackgroundURL
2024-07-23 15:55:56 -04:00
prlanzarin
631d5186e5 feat(audio): add memberId to VoiceStateEvent when applicable
We need the voiceUserId (memberId) in IN_CONFERENCE callState events so
that the SFU can bypass dialplan-level mute states when transferring
between breakout rooms.

Add memberId to VoiceCallStateEvent when applicable. For CHANNEL_STATE
events that do not carry it (RINGING, HANGUP), memberId is an empty
string.
2024-07-23 09:22:50 -03:00
prlanzarin
623c90b19f fix(audio): add callerNum to transparent listen only RPCs
There are some scenarios where transparent listen only toggle RPCs are
directed to multiple different sessions in the SFU, which might cause a
hold-unhold loop because they're all anchored to the userId.

Append the callerNum to transparent listen only toggle RPCs so that they
are directed to the appropriate audio sessions in all cases.
2024-07-23 09:20:57 -03:00
Daniel Petri Rocha
8b6cdc6edf Initial implementation to let slides be passed in the backend 2024-07-18 16:37:02 +00:00
Daniel Petri Rocha
fa0ad14c35
feat(bbb-html5): Ban specific users from the public chat (#20585)
* Initial user lock changes

* Show lock icon
2024-07-17 12:56:33 -04:00
Daniel Petri Rocha
de018453f6 Add webcamBackground parameter 2024-07-09 10:47:12 +00:00
Paul Trudel
b697667364
feat(events): Add user custom data to events.xml (#20566)
* Send custom user data to akka apps

* Add user custom data to registered user

* Add user custom data to user join event

* Store user custom data in Redis

* Rename userCustomData to customParameters

* Rename xml tag to userdata
2024-06-26 11:39:39 -04:00
Gustavo Trott
37d6aa0140 introduce-allowPromoteGuestToModerator27 2024-06-04 11:36:46 -03:00
Lucas Fialho Zawacki
388858000c feat(gladia): Print Gladia errors in the console 2024-02-08 14:50:24 -03:00
Lucas
125d70699b
feat: Initial implementation of Gladia transcriptions to BBB 2.7 (#19091)
* Demo changes

* Revert "feat(captions): no longer writes in the pad"

This reverts commit a76de8c458.

* feat(transcriptoin): Add config options for the transcription backend

* feat(transcription): Add autodetect option to cc chevron

* feat(transcription): Move transcription options into settings modal

* feat(transcription): Set transcription options via userdata

* fix(transcription): Correct userdata for settings transcription params

* feat(transcriptions): options to auto enable caption button

* feat(transcriptions): Option to hide old CC pad funcionality

* fix(transcription): Fix PR comments

* fix(transcription): Refactor updateTranscript to prevent null user and make it more readable

* feat(transcription): bbb_transcription_provider can be set via userdata

* fix(transcription): Use base10 for parseInt

* fix(transcriptions): Fix CC language divider when using webspeech

* fix(transcriptions): Use a default pad in the settings instead of hardcoding 'en'

We still need to use a language pad such as 'en', but in the future we can better
separate these systems.

* fix(transcription): Add a special permission for automatic transcription updates to the pad and restore old per user updates permission

* feature(transcriptions): Include transcriptions submenu and locales

* chore: bump bbb-transcription-controller to v0.2.0

* fix(transcription): Add missing menu files

* fix(transcription): Fix transcription provider options in settings.yml

* fix: setting password for bbb-transcription-controller

* build: add gladia-proxy.log for transcription-controller

* fix(transcriptions): Remove transcript splitting and floor logic from akka apps

* fix(captions): Show long utterances as split captions, show multiple speaker captions

* chore: bump bbb-transcription-controller to 0.2.1

---------

Co-authored-by: Anton Georgiev <anto.georgiev@gmail.com>
2023-11-30 10:10:36 -05:00
GuiLeme
cf472511fc [issue-18449] - changes in review 2023-08-18 10:57:50 -03:00
GuiLeme
3761fc333b [plugin-architecture-implementation] - fix for disable downloadable 2023-08-16 11:18:51 -03:00
GuiLeme
a1746da6fe [issue-18449] - added possibility of download original presentation with original format 2023-08-10 12:18:59 -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
762ae78814 Implements func to Clear all users reaction 2023-07-21 11:10: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
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
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
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
748c7a4a0b Merge branch 'v2.6.x-release' of github.com:bigbluebutton/bigbluebutton into june227 2023-06-02 09:45:34 -04: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
Paulo Lanzarin
5447666c15
Merge branch 'v2.7.x-release' into port-timer 2023-05-26 10:33:38 -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
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
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
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
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
GuiLeme
d2c5b33eec [issue-17839] - back-end part for hide_presentation_on_join issue 2023-05-09 12:01:55 -03:00
GuiLeme
90078aedc7 [issue-17531] - resolve conflicts with 2.7 2023-05-04 08:56:27 -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
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
d19d286811 Adds prop color for voiceUsers create msgs 2023-04-19 12:16:35 -03:00
GuiLeme
90bbb10de6 [issue-17531] - insert tag besides the presentation's name 2023-04-17 09:04:58 -03:00
GuiLeme
536285fc37 [issue-17531] - restored old feature of downloading original presentation 2023-04-14 11:04:24 -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