Commit Graph

2271 Commits

Author SHA1 Message Date
Gustavo Trott
a6ffe1350f
Merge pull request #21102 from gustavotrott/clone-user-session
feat (bbb-web): Implements session duplication with `getJoinUrl` endpoint
2024-09-27 11:33:47 -03:00
Ramón Souza
b8a84b6276
fix: poll results always on first page (#21268) 2024-09-26 16:59:24 -03:00
Gustavo Trott
e70f18be6b
Merge branch 'v3.0.x-release' into clone-user-session 2024-09-26 13:32:22 -03:00
Gustavo Trott
0721bfac75
Merge pull request #21259 from antobinary/move-html5
build: move bbb-html5 files from /var/bigbluebutton
2024-09-25 16:58:29 -03:00
Gustavo Trott
cce7ef8ec2
Merge pull request #21256 from gustavotrott/fix-akka-apps-failing
fix (akka-apps): Improve user joining flow and others
2024-09-25 13:51:56 -03:00
Anton Georgiev
488d78742d build: move bbb-html5 files from /var/bigbluebutton
Closes https://github.com/bigbluebutton/bigbluebutton/issues/21161
As suggested by @danimo the client files for bbb-html5
are not variable/dynamic content and are a better fit for /usr/share
than for /var/bigbluebutton (where they'd also be in the way of
recording files)
2024-09-25 12:39:04 -04:00
Anton Georgiev
6f5482dae3
Merge pull request #21139 from danielpetri1/show-poll-result-in-bbb-playback
refactor(bbb-html5): Remove custom poll shape
2024-09-25 10:39:56 -04:00
Gustavo Trott
df1cb7d7a0 Improve presentation insertion to prevent duplicates.
Previously, we checked if a presentation existed before inserting it into the database. However, concurrent checks sometimes led to race conditions where the same presentation was inserted twice, causing errors and blocking subsequent page additions. This update removes the existence check and directly attempts to insert the presentation using an "IF NOT EXISTS" clause. This streamlines the process, enhances performance, and prevents ID duplication errors.
2024-09-25 10:10:50 -03:00
Gustavo Trott
eda341aab5 Increase Pekko message timeout for the /userInfo endpoint to prevent timeouts when fetching user information. During high load or cold starts, establishing connections between actors can exceed 2 seconds. This change avoids such issues by extending the timeout.
Also added more details to middleware logs to clarify reasons for user authorization failures, making debugging easier.
2024-09-25 10:05:29 -03:00
Gustavo Trott
e5fcdce396 Refactor user join handler (in akka-apps) to refresh Hasura role before setting joined=true in the database.
Ensure that the GraphQL reconnection—and thus the user's Hasura role update from `bbb_client_not_in_meeting` to `bbb_client`—occurs before the client is informed they've joined (`joined=true`). This prevents a race condition where the client might send GraphQL queries before having the necessary permissions, as only `bbb_client` can perform most queries. By updating the role first, we guarantee the client can successfully execute queries after joining.
2024-09-25 09:56:37 -03:00
danielpetri1
82b02e7fd2 Remove slide size probing from bbb-export-annotations 2024-09-24 13:59:01 +00:00
Gustavo Trott
394f01bf9f resolve conflicts 2024-09-24 10:07:46 -03:00
Gustavo Trott
02bdd3c703 Renames the param Revoke to Replace, once it will better explain the reason the previous session is being invalidated
Starts supporting the param enforceLayout, a subsequent PR will finish and document it
Starts supporting user-session-metadata, a subsequent PR will finish and document it
2024-09-24 09:40:00 -03:00
Anton Georgiev
919ae4cb00
Merge branch 'v3.0.x-release' into show-poll-result-in-bbb-playback 2024-09-23 16:06:42 -04:00
danielpetri1
6fa4595b2d Merge branch 'v3.0.x-release' into show-poll-result-in-bbb-playback 2024-09-20 21:26:41 +00:00
danielpetri1
5aeacf115e Position poll in the bottom-right corner 2024-09-20 13:39:31 +00:00
germanocaumo
f7468b6fc2 fix(tldraw): only send diffs updates to server
When a shape is changed, the full shape objcect was being transmitted to the server again.
Do a diff to only send what changed (similarly  as it was in tldraw v1) to save upload bw.

TODO:
Draw segments diffs (array) is still not working, so all the segments are still being sent every time.
2024-09-19 12:38:57 -03:00
Gustavo Trott
e92293993a Merge remote-tracking branch 'upstream/v3.0.x-release' into clone-user-session 2024-09-18 10:05:04 -03:00
Gustavo Trott
69ebbf782f
Merge pull request #21142 from gustavotrott/bkroom-joined-flag-fix
fix (akka-apps): graphql flag `breakoutRoom.hasJoined` is not accurate
2024-09-11 09:17:04 -03:00
danielpetri1
346e96c04e Refactor poll values 2024-09-10 15:28:04 +00:00
danielpetri1
7110652176 Publish the poll to the whiteboard 2024-09-10 14:28:03 +00:00
Gustavo Trott
b141ab40b0 fix: graphql flag breakoutRoom.hasJoined is not accurate 2024-09-10 09:44:58 -03:00
Ramón Souza
0a6dac83b5 adjusts backend so chat lock is ignored for moderators 2024-09-09 13:46:08 -03:00
Gustavo Trott
96f9325ef2 Add userLockSettings to allow disablePublicChat for individual users
This commit introduces `userLockSettings`, which includes an option to set `disablePublicChat` for specific users, rather than only for all locked viewers as before. This implementation covers the backend and GraphQL portions; the frontend changes will be addressed in a separate PR.

This is a port of #20585, originally implemented for version 2.7 using the old architecture with MongoDB.
2024-09-05 18:04:25 -03:00
Gustavo Trott
4ea48b3333 This update allows duplicating a user session via the getJoinUrl endpoint. The generated link will create a new sessionToken while retaining the same userId. This setup enables two devices be represented as a single user on the user list, making it particularly useful for scenarios like transferring a session from a computer to a mobile device.
Additionally, the mobile app can use this feature to render the whiteboard inside an iframe with the same `userId`.

By setting the parameter `revokePreviousSession=true`, a new `sessionToken` will be generated, and the previous session will be revoked when the new device connects. This is useful for transferring a session to another device and automatically closing the previous session.
2024-09-04 21:22:49 -03:00
danielpetri1
fbe99626ff Add new poll shape attributes 2024-09-03 16:19:56 +00:00
Anton Georgiev
dda1682c37
Merge pull request #21016 from prlanzarin/u30/feat/dial-in-guest-config
feat: make guest policy configurable for dial-in endpoints
2024-08-28 16:42:27 -04:00
Anton Georgiev
6e3b83bd60
Merge pull request #20917 from prlanzarin/u30/feat/fs-rec-splitter
feat: add option to split audio recording in multiple files by duration
2024-08-28 16:41:10 -04:00
Gustavo Trott
1cc67a82c8
Merge pull request #21042 from gustavotrott/refactor-isOnline
refactor (gql-server): Introduce flag `currentlyInMeeting` (replacing `isOnline`)
2024-08-28 14:33:52 -03:00
Gustavo Trott
af06562e02 Introduce flag currentlyInMeeting (replacing isOnline) 2024-08-28 11:08:30 -03:00
Gustavo Trott
c56955c842
Merge pull request #21025 from gustavotrott/learning-dashboard-reactions
Refactor Learning Dashboard to use Reactions instead of EmojiStatus
2024-08-27 21:40:57 -03:00
Gustavo Trott
c2b70eb006 validate current away status before setting it (again) 2024-08-26 16:26:03 -03:00
Gustavo Trott
736c9a130f refactor learning dashboard to use Reactions instead of Emojis 2024-08-26 13:40:17 -03:00
danielpetri1
f5443d37a8 Pass poll shapes to tldraw.json 2024-08-24 17:34:45 +00:00
prlanzarin
dd1cf00dd2 feat: make guest policy optional for dial-in in akka-apps
Dial-in endpoints currently follow the same guest approval process as regular
users. While this is correct for default installations, it complicates the join
procedure in setups where approval is managed externally, such as with pre-
configured conference PIN codes. Another relevant scenario is when call
origination is done from BBB, rather than as an inbound call.

This commit makes the enforcement of the guest policy for dial-in/external
endpoints optional in akka-apps. The default behavior remains unchanged
(enforce). This provides more flexibility for the dial-in mechanism, allowing
for smoother handling of the scenarios mentioned above.
2024-08-23 14:54:31 +00:00
João Victor Nunes
fe67566334
[3.0] feat: Accept custom webcamBackgroundURL (#20920)
* [3.0] feat: Accept custom webcamBackgroundURL

* docs: webcamBackgroundURL

* test: Update virtual background thumbnail image

* fix: tweak error logs for the webcamBackgroundURL fetching procedure

* test: Update virtual background thumbnail image

* fix(logging): do not specify null extraInfo object

Co-authored-by: Paulo Lanzarin <4529051+prlanzarin@users.noreply.github.com>

* fix(logging): extract fields from error object for building extraInfo object

Co-authored-by: Paulo Lanzarin <4529051+prlanzarin@users.noreply.github.com>

---------

Co-authored-by: Paulo Lanzarin <4529051+prlanzarin@users.noreply.github.com>
2024-08-23 09:04:56 -03:00
Átila
c48e93e00c
feat(darklogo): port customDarkLogo (#20922) 2024-08-21 14:58:32 -03:00
prlanzarin
4f6e16f8e3 feat(audio): dynamic muteOnStart based on audio user count
The current default setting of muteOnStart=false can lead to performance
issues in larger rooms, especially with the "transparent listen only
mode" and LiveKit, as proven by load testing. In contrast,
muteOnStart=true helps mitigate these issues but complicates the entry
process for smaller meetings, such as 1-on-1 sessions or small classes.
Additionally, the ability to override muteOnStart via the API can create
scalability issues if not managed properly.

Add a new akka-apps flag `voiceConf.muteOnStartThreshold` which acts as
a trigger that forces muteOnStart=true when the number of audio
participants reaches the configured threshold. 0 means no threshold
(disabled).

This trigger overrides any API parameter or static configurations
related to muteOnStart, as well as the client's meeting mute actions.
Pending:
  - Remove MeetingStatus.meetingMute state side effects from the client's
    "Mute all" and "Mute all except presenter" actions. They should no
    longer alter the meeting mute state once this becomes default (just
    mute users instead).
2024-08-15 00:43:36 +00:00
prlanzarin
583eb2014e fix(audio): change unmute/unhold flow to work around FS unmute stutter
FS has an intermittent issue where unmuting a HELD channel sometimes
takes significantly (seconds) longer than usual.
conference <XYZ> unmute <WVU> simply gets stuck with no FS_API response,
which delays the unmute action whenever transparent listen only is
active.

Apparently, unholding the channel PRIOR TO unmuting works around the
issue - at least it could not be reproduced with the scenario at hand.
The unmute API already triggered an unhold in FS internally, which is
the reason why this was not done beforehand. The aforementioned issue is
way worse than an extra "redudant" API call, though.

Always unhold audio channels manually _before_ unmuting.
2024-08-15 00:43:35 +00:00
prlanzarin
196a12cff4 fix(audio): stuck unmute due to borked callerId(Num)
FreeSWITCH incorrectly generates callerNum headers in its ESL events
when specific, special characters are in place. e.g.:
w_etc_0-bbbID-User;Semi (notice the semicolon) will be generated by
FS as w_etc_0-bbbID-User (everything after the semicolon is ignored).
This breaks callerId comparision for session matching in a few places -
one of the is the unmute/unhold toggle control.

Compare callerNum as prefixes instead of exact strings to match those
scenarios.
This is a temporary fix; we should review callerNum generation in the
future (use Caller-Id-Name in FSESL), as well as stop relying on it
for session matching (use UUIDs and/or client session numbers instead).
Both of these are more involved changes, though.
2024-08-15 00:43:33 +00:00
prlanzarin
c10c0a7258 fix(audio): users unable to join audio when mic lock setting is active
Whenever both microphone lock settings and transparent listen are
active, users fail to join audio due to an oversight in the audio join
permission procedure. It's denying users from *joining* audio if they're
locked, even though they should only be prevented from *unmuting*
themselves.

Change the permission checks for audio join to allow users even when
they're locked. Use the lock setting to force the muteOnStart flag for
locked users instead.
2024-08-15 00:43:32 +00:00
prlanzarin
ceff20ff21 fix(audio): always send unhold
Alway send the unhold command since it doesn't change flip the state
(contrary to the uuid_hold toggle command).

It's not idempotent, though - so always update the internal hold state
to prevent state mismatches preventing channels from being unheld.
2024-08-15 00:43:32 +00:00
prlanzarin
f49c63fa09 fix(audio): do not send FSESL hold cmd if already on hold
This is an edge case with the uuid_hold command being used through
FSESL or fsapi where holding only works via the uuid_hold <toggle>
subcommand, which may cause the channel to be the opposite of what
we want.

Do not execute if the command is asking for the channel to be HELD
and the channel is already HELD.
2024-08-15 00:43:30 +00:00
prlanzarin
5b5653fead fix(audio): only enforce hold on mute state mismatch if !muted
There's a routine that's supposed to enforce the channel hold state if
mute and hold states are mismatched. This should only happen in case the
user is unmuted and the channel is held to avoid leaving an user without
inbound or outbound audio by accident. The routine currently checks for
the oppositve scenario as well (muted=true,hold=false), which should not
be enforced because of special scenarios (e.g.: audio-only breakout room
transfers, which have their transparent LO mechanism disabled).

Only enforce hold on muted state mismatch IF muted == false.
2024-08-15 00:43:29 +00:00
prlanzarin
c6ca6d5c45 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-08-15 00:43:29 +00: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
prlanzarin
cf293fe7fd feat(audio): channel threshold for transparent listen only activation
Transparent listen only is currently only worth it for meetings with a
number of duplex audio channels larger than a certain value (dependant
on system performance). That is due to the fact that global audio
bridges created for the mechanism also use significant CPU (roughly the
same as an unheld duplex channel), which means it's cost is usually
offset only once there are enough potential channels to be held in a
conference.

This commit adds a new optional feature that introduces some dynamicity
for the mechanism: it'll only be triggered after at least
@voiceConf.transparentListenOnlyThreshold number of muted duplex
audio channels are present in a conference.
The default is 0 (always trigger transparent listen only if the general
mechanism is activated).
2024-08-15 00:43:27 +00:00
germanocaumo
4514649c4f feat: adds option to split audio recording in multiple files by length
FreeSWITCH sometimes drop frames in very long recordings generating
a raw file smaller than the total time recorded. The other issue is the
occasional drifiting.

This adds option to split audio recording in multiple files by
duration to avoid this problem in setups that are prone to it. Disabled
by default.
2024-08-13 14:31:54 +00:00
Tainan Felipe
4d6f4b3ded
Refactor: Make bundle using webpack (#20811)
* Refactor: Make bundle using webpack

* Fix: restore after install codes and a few settings

* Fix: build script folder permission

* Refactor: Remove support to async import on audio bridges

* Upgrade npm using nvm

* Avoid questions on npm ci execution

* Let npm ci install dev dependencies (as we need the build tools here)

* Fix: enconding

* Fix: old lock files

* Remove: bbb-config dependency to bbb-html5 service, bbb-html5 isn't a service anymore

* Fix: TS errors

* Fix: eslint

* Fix: chat styles

* npm install with "lockfileVersion": 3 (newer npm)

* build: allow nodejs 22

* node 22; drop meteor from CI and bbb-conf

* TEMP: use bbb-install without mongo but with node 22 and newer image

* build: relax nodejs condition to not trip 22.6

* build: ensure dir /usr/share/bigbluebutton/nginx exists

* init sites-available/bbb; drop disable-transparent-

* nginx complaining of missing file and ;

* TMP: print status of services

* WIP: tweak nginx location to debug

* Fix: webcam widgets alignments

* akka-apps -- update location of settings.yml

* build: add locales path for nginx

* docs and config changes for removal of meteor

* Fix: build encoding and locales enpoint folder path

* build: set wss url for media

* Add: Enable minimizer and modify to Terser

* Fix: TS errors

---------

Co-authored-by: Tiago Jacobs <tiago.jacobs@gmail.com>
Co-authored-by: Anton Georgiev <anto.georgiev@gmail.com>
Co-authored-by: Anton Georgiev <antobinary@users.noreply.github.com>
2024-08-09 13:58:44 -04:00
Arthur B. Grossi
d2132484b4
feat(plugins): server command send chat message (#20781)
* feat(plugins): add chat server command and chat message type `plugin`

This commit adds the required code for the plugins SDK's chat server
command `CHAT_SEND_MESSAGE`, which allows plugins to send chat
messages. Messages sent by plugins are identified by the message
type `plugin` and belong to the user (senderID) of the client that
sent it. Plugin messages are not displayed by the client itself because
these messages are meant to be custom-rendered by plugins, typically by
the plugin that sent them.

* feat(plugins): add message metadata

Plugin name and plugin custom metadata are stored in message's metadata,
so plugins need it to identify messages when applying custom render.

* feat(chat): removes specific code for plugin messages

Removes specific akka messages, handlers and routes for plugin messages
and adds metadata parameter in `GroupChatMsgFromUser`.

* feat(chat): adds option parameter to mutation

Adds optional parameter `metadata` to the already existing mutation
`chatSendMessage` and use this mutation for plugin chat server command.

* feat(chat): rendering of plugin messages

This commit implements the correct rendering of plugin messages, which
is:
- Plugin messages with metadata attribute `custom` set to true are not
  rendered by the client, and are meant to be custom-rendered by
  plugins.
- Plugin messages with metadata attribute `custom` set to false are
  rendered by the client as being sent by the user that triggered it.

* Update sdk version to v0.0.56

* update sdk version to v0.0.57
2024-08-07 15:59:30 -04:00
Anton Georgiev
20f1ce2441
Merge pull request #20860 from ramonlsouza/port-breakout-changes
Port breakouts enhancements from 2.7.10 to 3.0
2024-08-06 16:46:34 -04:00
Daniel Petri Rocha
254b1fab6d Initial implementation to let slides be passed in the backend 2024-08-05 09:30:53 -03:00
Gustavo Trott
2073b07c5c Remove unused ValidateConnAuthTokenSysMsg 2024-08-02 15:51:57 -03:00
Gustavo Trott
8623443704 Remove unused GetUsersMeetingReqMsg 2024-08-02 15:08:42 -03:00
Gustavo Trott
180ed6890b Remove unused ValidateAuthToken flow and messages 2024-08-02 15:02:54 -03:00
Gustavo Trott
19fb38fb53
Merge branch 'v3.0.x-release' into common-msg-remove-unused-msgs 2024-07-31 14:33:51 -03:00
Gustavo Trott
c4201e0edd
Merge pull request #20793 from gustavotrott/akka-timer-refactor
refactor (akka-apps): Routine to reset finished Timers
2024-07-31 14:31:15 -03:00
Gustavo Trott
ef8b7eb301 Merge remote-tracking branch 'upstream/v3.0.x-release' into common-msg-remove-unused-msgs 2024-07-31 11:19:11 -03:00
Gustavo Trott
407b85a3d4 Remove unused SYNC CLIENT messages 2024-07-31 11:17:22 -03:00
Gustavo Trott
fbf148dcd2 Remove unused SyncGetMeetingInfoRespMsg 2024-07-31 10:47:34 -03:00
Gustavo Trott
aa2bc871df Remove ununsed MeetingTimeRemainingUpdateEvtMsg and BreakoutRoomsTimeRemainingUpdateEvtMsg 2024-07-31 10:42:56 -03:00
Gustavo Trott
ce3811939c Remove unused UpdateBreakoutUsersEvtMsg 2024-07-31 10:19:09 -03:00
Gustavo Trott
94e64bb0a0 Remove unused UpdateRecordingTimerEvtMsg 2024-07-31 09:33:31 -03:00
Gustavo Trott
75cffd840c Remove unused DisconnectClientSysMsg msg 2024-07-31 09:18:34 -03:00
Gustavo Trott
df6b86cd72 Remove unused EndAndKickAllSysMsg 2024-07-30 11:36:53 -03:00
Gustavo Trott
aba8f3eff2 Remove unused DisconnectClientSysMsg msg 2024-07-30 10:09:50 -03:00
Gustavo Trott
fa02d92766 Routine to purge old meetings from graphql database 2024-07-29 11:09:21 -03:00
Gustavo Trott
efb7bcf887 Routine to reset finished Timer 2024-07-29 10:29:30 -03:00
Gustavo Trott
b6753e40d6 fix: gql permission wrong for auto assigned presenter 2024-07-23 13:19:08 -03:00
Gustavo Trott
c6b9ab35ae
refactor: Remove old userStatus Emoji (#20717)
* Remove old userStatus Emoji

* tweak docs

* fix bkroom errors
2024-07-18 08:58:38 -04:00
Gustavo Trott
1683f4c3fe
refactor: Rename all customParameters references to userMetadata or userdata (#20692)
* Rename all customParameters references to userMetadata

* fix linter error

* Update docs/docs/development/api.md

Co-authored-by: Anton Georgiev <antobinary@users.noreply.github.com>

* Update bigbluebutton-html5/imports/ui/components/settings-loader/component.tsx

---------

Co-authored-by: Anton Georgiev <antobinary@users.noreply.github.com>
2024-07-16 13:40:49 -04:00
Ramón Souza
c1c2910b24
Merge pull request #20659 from JoVictorNunes/issue-20651
feat(whiteboard): add option to `disabledFeatures` for infinite whiteboard
2024-07-15 15:27:56 -03:00
Gustavo Trott
7a03136d02
Merge pull request #20686 from gustavotrott/gql-server-auth-session
refactor (graphql): Big refactor on Graphql authentication
2024-07-10 20:17:23 -03:00
Gustavo Trott
25bc81ea1b remove comments 2024-07-10 18:53:14 -03:00
Gustavo Trott
d7b3fc5b89 akka-apps: set scheduler to clean up Graphql info after 1 hour 2024-07-10 18:47:44 -03:00
Gustavo Trott
2c2d595212 Big refactor on Graphql authentication 2024-07-10 18:30:01 -03:00
Ramón Souza
e8a796379d
Merge pull request #20633 from JoVictorNunes/issue-20611
fix: inconsistencies in presentation upload toast
2024-07-10 17:38:08 -03:00
João Victor
e26b408d42 feat(whiteboard): add option in disabledFeatures for infinite whiteboard 2024-07-08 10:18:26 -03:00
Anton Georgiev
abeb12146b
Merge pull request #20480 from KDSBrowne/v30-enable-whiteboard-infinite-canvas
feat(whiteboard): Add infinite whiteboard for presentation slides
2024-07-05 17:54:55 -04:00
KDSBrowne
c341ea44f8 update canvas names to whiteboard 2024-07-05 20:13:30 +00:00
Guilherme Pereira Leme
ccb2e74bc1
feat(plugin): Added sendGenericDataForLearningAnalyticsDashboard for plugins (#20628)
* [data-channel-analytics-options]  - Added data-channel analytics and record options and added a parameter options for the useDataChannel function

* Update bigbluebutton-html5/public/locales/en.json

Co-authored-by: Gustavo Trott <gustavo@trott.com.br>

* [data-channel-analytics-options] -created new sendDataAnalytics for plugin and change presentation toolbar button

* [data-channel-analytics-options]  - QUICK FIX

* [update-data-channel-function] - fix action metadata

* [data-channel-analytics-options] - changes in review

* [data-channel-analytics-options]  - changes in review

* [captionLocale] - Changes in review

* [data-channel-analytics-options]  - update SDK

* [data-channel-analytics-options]  Changes in review

* [data-channel-analytics-options] - changes in review

* [data-channel-analytics-options] - changes in review

* [data-channel-analytics-options] - changes in review

* Refactor learning dashboard json structure with genericData

* fix typo

* [data-channel-analytics-options] - changes according to new json structure

* changes in review

---------

Co-authored-by: Anton Georgiev <antobinary@users.noreply.github.com>
Co-authored-by: Gustavo Trott <gustavo@trott.com.br>
2024-07-05 16:49:45 -03:00
Ramón Souza
977a3512ec
fix permission for download presentation (#20643) 2024-07-05 13:01:24 -04:00
Tainan Felipe
0e7fe3c688
Change: improve client connection status (#20630) 2024-07-04 17:26:09 -03:00
Gustavo Trott
134b207f94
refactor: Remove Hasura database-updates and move them to Gql-Actions (#20634) 2024-07-04 17:00:06 -03:00
João Victor
52cda64bf1 fix: inconsistencies in presentation upload toast 2024-07-04 13:41:33 -03:00
KDSBrowne
f024995f98 Restore default slide position after disabling infinite wb 2024-07-03 17:15:39 +00:00
KDSBrowne
687ee36d29 add functionality to enable infinite whiteboard 2024-07-03 17:14:47 +00:00
Gustavo Trott
f5c9650f24
refactor: Add TRACE logs for graphql-actions (#20614) 2024-06-30 15:34:22 -03:00
Gustavo Trott
ed38da065c
fix break error (#20612) 2024-06-28 17:35:21 -03:00
Gustavo Trott
f5e8917eb0
Remove unnecessary imports (#20598) 2024-06-28 16:50:30 -03:00
Paul Trudel
6dd1eabe92
feat(events): Store user data in Redis for use in event.xml (#20593) 2024-06-28 09:28:03 -04:00
Gustavo Trott
be39d7b24b
refactor (akka-apps): Make all inserts into the database thought batches instead of individual inserts (#20594) 2024-06-27 18:53:46 -03:00
Gustavo Trott
3402edcb5b
Introduce gql user_voice_activity_stream (#20557) 2024-06-20 14:33:11 -03:00
Gustavo Trott
d67346366c clear mouse cursors on disable multi-whiteboard 2024-06-19 10:40:09 -03:00
Guilherme Leme
1d9b28133e [update-data-channel-function] - change sender to creator naming in data-channel 2024-06-18 17:46:17 -03:00
Guilherme Leme
8a04c8a4aa Merge remote-tracking branch 'upstream/v3.0.x-release' into update-data-channel-function 2024-06-18 13:42:34 -03:00
Gustavo Trott
a27cd6cdb2
Merge pull request #20518 from GuiLeme/plugin-server-commands
feat(plugins): new server-command for typed-captions plugin
2024-06-18 13:33:16 -03:00
Guilherme Leme
57389c351e [plugin-server-commands] - changes in review 2024-06-18 12:01:46 -03:00
Guilherme Leme
8464fca7da [update-data-channel-function] - changes permissioning name 2024-06-18 11:24:49 -03:00
Guilherme Leme
41eb2c34e3 [update-data-channel-function] - merge upstream 2024-06-18 10:25:02 -03:00