Commit Graph

43063 Commits

Author SHA1 Message Date
schrd
5a8217caa9
3.0beta1 clusterfixes (#21132)
* Fix: allow CORS requests to graphql API

In cluster setups the Graphql API endpoints are fetched as a CORS
request. We need to allow that.

* Fix: Allow CORS requests to ping endpoint

In cluster setups the ping is sent directly to the BBB server. So it
needs to allow CORS requests for cluster setups.

* Fix: construct relative API path for cluster setups

* Fix: adjust docs for cluster setup

As bbb-html5 client is static, setup instructions for cluster setup have
to be changed accordingly.

* Fix docs: remove superfluous  ```yaml

This must have been introduced by accident.

---------

Co-authored-by: Daniel Schreiber <daniel.schreiber@hrz.tu-chemnitz.de>
2024-09-25 13:48:17 -04: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
João Victor Nunes
8a106b7887
style(presentation-toast): apply toast styles (#21239)
* style(presentation-toast): apply toast styles

* Update bigbluebutton-html5/imports/ui/components/presentation/component.jsx

---------

Co-authored-by: Ramón Souza <contato@ramonsouza.com>
2024-09-25 12:16:43 -04:00
Gustavo Trott
f70e5a094e
Merge pull request #21258 from gustavotrott/gql-endpoint-userMetadata
gql-server: Introduce an endpoint `/api/rest/userMetadata`
2024-09-25 12:51:07 -03:00
Gustavo Trott
439f0486f7 Introduce an endpoint /api/rest/clientSettings that will be used by the client to fetch userdata info before creating a graphql connection.
It is necessary to fetch props bbb_custom_style and bbb_custom_style_url.
2024-09-25 11:53:02 -03: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
transifex-integration[bot]
98c6931602
Translate en.json in gl (#21252)
100% translated source file: 'en.json'
on 'gl'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-09-25 08:16:49 -04:00
transifex-integration[bot]
6cfc8219e2
Translate en.json in ja (#21253)
100% translated source file: 'en.json'
on 'ja'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-09-25 08:16:22 -04:00
dependabot[bot]
77ab3607da
chore(deps-dev): bump postcss (#21250)
Bumps the npm_and_yarn group with 1 update in the /bbb-learning-dashboard directory: [postcss](https://github.com/postcss/postcss).


Updates `postcss` from 8.4.46 to 8.4.47
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.46...8.4.47)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-24 21:08:22 -04:00
Anton Georgiev
647573cf2d
Merge pull request #21251 from danielpetri1/pdf-export-improvement
fix(bbb-export-annotation): wrong slide orientation with rotated text
2024-09-24 21:05:39 -04:00
danielpetri1
415ad5c0fe Force GhostScript orientation
GhostScript is incorrectly inferring the orientation of a slide by looking at the rotation of SVG elements such as whiteboard text. This PR forces GhostScript to retain the orientation of each page.
2024-09-24 22:10:50 +00:00
KDSBrowne
e54fb07423 add boundry check for creating tl-cameras | updates 2024-09-24 21:24:40 +00:00
dependabot[bot]
ab42d50cdf
chore(deps): bump the npm_and_yarn group across 2 directories with 1 update (#21249)
Bumps the npm_and_yarn group with 1 update in the /bbb-learning-dashboard directory: [postcss](https://github.com/postcss/postcss).
Bumps the npm_and_yarn group with 1 update in the /docs directory: [postcss](https://github.com/postcss/postcss).


Updates `postcss` from 8.4.45 to 8.4.46
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.45...8.4.46)

Updates `postcss` from 8.4.45 to 8.4.47
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.45...8.4.46)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  dependency-group: npm_and_yarn
- dependency-name: postcss
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-24 14:51:31 -04:00
Anton Georgiev
ed93f3ec60
Merge pull request #21247 from danielpetri1/pdf-export-improvement
refactor: Speed improvement for the presentation export
2024-09-24 14:48:08 -04:00
KDSBrowne
7bfb485623 Merge branch 'v3.0.x-release' of https://github.com/bigbluebutton/bigbluebutton into bbb-21035 2024-09-24 18:45:26 +00:00
Anton Georgiev
229a4a0b92
Merge pull request #21187 from JoVictorNunes/app-component-cleanup-0912
refactor: App component cleanup, part 2
2024-09-24 14:42:53 -04:00
Anton Georgiev
575091b4b9
Merge pull request #21245 from ramonlsouza/sonarcloud-set24
refactor: sonarcloud alerts
2024-09-24 13:52:50 -04:00
danielpetri1
82b02e7fd2 Remove slide size probing from bbb-export-annotations 2024-09-24 13:59:01 +00:00
Ramón Souza
8721b4b537
adjust confirmation modal props (#21238) 2024-09-24 09:48:40 -04: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
Ramón Souza
e76b323567 remove unused import 2024-09-24 09:02:35 -03:00
Ramón Souza
128e568531 remove unused prop 2024-09-24 08:55:28 -03:00
Ramón Souza
cf09d183ea remove empty object 2024-09-24 08:52:28 -03:00
Ramón Souza
946ec031fd remove extra argument in function call 2024-09-24 08:49:53 -03:00
Anton Georgiev
b3d1e7dfd1
docs: modify docs for allowPromoteGuestToModerator (#21241)
* docs: modify docs for allowPromoteGuestToModerator

It was backported to BBB 2.7.9 so no longer counted as
introduced in BBB 3.0

* Update docs/docs/data/create.tsx
2024-09-23 19:29:56 -04:00
João Victor Nunes
c380378088
fix(connection): tweak shouldRetry handler logging (#21070)
* fix(connection): tweak shouldRetry handler logging

* fix: Add extraInfo payloads
2024-09-23 19:26:49 -04:00
transifex-integration[bot]
5db8bc3d8f
Translate en.json in el_GR (#21237)
100% translated source file: 'en.json'
on 'el_GR'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-09-23 16:19:33 -04: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
Anton Georgiev
0847134701
Merge pull request #21224 from germanocaumo/fix-whiteboard-partialupdates
fix(whiteboard): partial updates + some fixes
2024-09-23 15:39:14 -04:00
Anton Georgiev
296705d336
build: Bump bbb-playback to 5.1.2 (#21236)
https://github.com/bigbluebutton/bbb-playback/releases/tag/v5.1.2
2024-09-23 14:17:44 -04:00
germanocaumo
0a984347a0 fix(tldraw): restore shapesVersion + customParam 2024-09-23 14:24:22 -03:00
André Castro
3053ddac20
fix(audio/muteToggle): Fix mute loading state on push to talk (#21199) 2024-09-23 11:23:41 -04:00
Ramón Souza
f2054e4df7
fix issue with recording icon not appearing in mobile devices (#21206) 2024-09-23 10:50:44 -04:00
Lucas
af2a24eef4
feat(screenshare): Option to show disabled screenshare button for non presenters (#21082)
* feat(screenshare): Option to show disabled screenshare button for non presenters

* Update bigbluebutton-html5/imports/ui/components/screenshare/service.js

---------

Co-authored-by: Ramón Souza <contato@ramonsouza.com>
2024-09-23 09:51:18 -03:00
danielpetri1
0fcdf7096c Sync lockfile 2024-09-20 21:46:51 +00:00
danielpetri1
26e17c2ad6 Update tldraw version 2024-09-20 21:40:26 +00: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
Paulo Lanzarin
5760fb5648
fix(audio): restore "add more data to audio_joined/failure logs" (#21215)
Commit 26815f4679 was seemingly lost
during a merge in the 3.0.x-release branch. Nothing breaks, but we're
missing the log info originally added via that commit.

Restore the changes in 26815f4679:
  - 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.
2024-09-20 06:37:51 -04:00
Paulo Lanzarin
14c92a3843
feat: add experimental support for ICE restart (#21208)
We currently use full renegotiation for audio, video, and screen sharing
reconnections, which involves re-creating transports and signaling channels
from scratch. While effective in some scenarios, this approach is slow and,
especially with outbound cameras and screen sharing, prone to failures.

To counter that, WebRTC provides a mechanism to restart ICE without needing
to re-create the peer connection. This allows us to avoid full renegotiation
and bypass some server-side signaling limitations. Implementing ICE restart
should make outbound camera/screen sharing reconnections more reliable and
faster.

This commit implements the ICE restart procedure for all WebRTC components'
*outbound* peers. It is based on bbb-webrtc-sfu >= v2.15.0-beta.0, which
added support for ICE restart requests. This feature is *off by default*.
To enable it, adjust the following flags:
- `/etc/bigbluebutton/bbb-webrtc-sfu/production.yml`: `allowIceRestart: true`
- `/etc/bigbluebutton/bbb-html5.yml`: `public.kurento.restartIce`
  * Refer to the inline documentation; this can be enabled on the client side
    per media type.
  * Note: The default max retries for audio is lower than for cameras/screen
    sharing (1 vs 3). This is because the full renegotiation process for audio
    is more reliable, so ICE restart is attempted first, followed by full
    renegotiation if necessary. This approach is less suitable for cameras/
    screen sharing, where longer retry periods for ICE restart make sense
    since full renegotation there is... iffy.

Endpoints that are inbound/`recvonly` only (client's perspective) do *not*
support ICE restart yet. There are two main reasons:
  - Server-side changes are required to support `recvonly` endpoints,
    particularly the proper handling of the server’s `setup` role in the
    its SDPs during an ICE restart. These changes are too broad for now,
    so they are deferred to future releases (SFU@v2.16).
  - Full reconnections for `recvonly` endpoints are currently reliable,
    unlike for `send*` endpoints. ICE restarts could still provide benefits
    for `recvonly` endpoints, but we need the server updates first.
2024-09-20 06:35:32 -04:00
Anton Georgiev
d0af31d980
docs: added link to beta.1 2024-09-20 06:27:30 -04:00
Anton Georgiev
f0d808d71b
chore: Bump release to 3.0.0-beta.2 2024-09-20 06:25:36 -04:00
Paulo Lanzarin
3f4eaf899e
build(bbb-webhooks): v3.2.2 (#21225)
v3.2.2
---
* fix: handle missing checksum in API requests
* fix: cleanup corrupted Redis mappings
* fix: stale meeting mappings due to incorrect inactivity report
* build: express@4.21.0
* build: sinon@19.0.2
2024-09-20 06:11:26 -04:00
João Victor Nunes
c0caa45b67
fix(webcam): do not skip video preview if initial device is already shared (#21209) 2024-09-19 16:30:52 -03:00
germanocaumo
845ccc5ce7 fix(tldraw): group remove updates + fix shape max limit
- We were sending one websocket message for each removed shape, send only one with all IDs.
- The shape limit verification was not always working with rapid updates and if somehow the db got more shapes,
the users couldn't update or delete any shape anymore
- Unnecessary remove shape messages were being sent to the server when going over limit
2024-09-19 16:17:11 -03:00