Commit Graph

12304 Commits

Author SHA1 Message Date
Anton Georgiev
02bd94a400
Merge pull request #21008 from prlanzarin/u27/feat/ice-restart
feat: add experimental support for ICE restart
2024-09-13 10:24:35 -04:00
Arthur B. Grossi
c7b03ee13d
fix(users-context): phantom user (#20253)
* fix(users-context): add missing logs

* fix(user-persistent-data): collection publication selector for viewers

Fixes the collection's selector when publishing it to viewers.

* fix(users-context): correctly add user persistent data

Changes the logic of the add_user_persistent_data action in users
context, so that the user information already in the context is merged
with the new one. Also, do not flip the logged out status of users added
by user_persisted_data anymore.
2024-09-13 08:49:44 -04:00
Ramón Souza
9a7249492b
Merge pull request #21113 from Scroody/fix-trailing-sign-dial
Fix: Conference PIN (phone dial-in) doesn't show the needed pound sign in popup
2024-09-12 08:56:54 -03:00
André Castro
6587bfb2da
Update bigbluebutton-html5/imports/ui/components/audio/audio-dial/component.jsx
Co-authored-by: Ramón Souza <contato@ramonsouza.com>
2024-09-12 08:55:46 -03:00
André Möller
53ca24493d Fix: Conference PIN (phone dial-in) doesn't show the needed pound sign in popup 2024-09-05 13:54:46 -03:00
prlanzarin
3c4e3de286 feat: add WebRTC stats information to client logs
We should be able to capture  WebRTC stats in some form for post-processing
so that it helps on debugging support requests (and other use cases, e.g.:
improving field trial analysis on test servers).
Although much of WebRTC stats information can be gathered via server side
components, none have logs as structured for proper post-processing as
the client logs - so we're going the client route for now.

Capture WebRTC stats information for audio and screen sharing via:
  - Audio logCodes: new `stats` extraInfo field
    - `audio_joined`
    - `audio_failure`
    - `sfuaudio_error_retry_through_relay`
    - `sfuaudio_error_try_to_reconnect`
  - Screen share logCodes: new `stats` extraInfo field
    - screenshare_presenter_start_success
    - screenshare_viewer_start_success
    - screenshare_broker_failure

Additionally, add an option to periodically capture WebRTC stats information
for all relevant peers. This is disabled by default since the log can be
verbose (and, consequentially, network taxing when using external
logging targets). It can be enabled via `public.stats.logMediaStats` in
settings.yml. The default interval is 30s. The periodic log format is as
follows:
  - logCode: `mediaStats`
  - extraInfo.stats: an aggregated stats object of all peers (equivalent
    to the `Copy` function in the Connection Status modal).
2024-08-27 14:00:26 -03:00
prlanzarin
d2dde8a9b1 feat: add experimental support for ICE restart
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,
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.
2024-08-23 09:59:51 -03:00
Daniel Petri Rocha
6f08344a70
fix: Breakout rooms show incorrect presentation filename (#20947)
* Pass arbitrary filename

* Use shortname as presName in breakout room

* Show selected filename in the room
2024-08-22 13:24:19 -03:00
Gabriel Luiz Porfirio
3dd588d704
test: Backporting timer/stopwatch test to 2.7 (#20954)
* backporting timer test

* adding test on ci
2024-08-21 14:56:06 -03:00
KDSBrowne
466e328477
fix: Ensure size estimate is applied to text shapes while typing (#20809)
* ensure size estimate is applied to text shape while typing

* add comment and comma
2024-08-02 18:47:39 -04:00
Paulo Lanzarin
06d1a74cdc
Merge pull request #20849 from prlanzarin/u27/fix/video-preview-borked-did
fix(video): webcam fails to be loaded on preview when changing profiles
2024-08-02 16:25:28 -03:00
prlanzarin
2c6de02f1c fix(video): webcam fails to be loaded on preview when changing profiles
There's an issue where permission-less sessions of video-preview
fail to change video profiles. Whenever gUM is on prompt mode,
deviceIds are obfuscated, which means getInitialCamera will need to
infer the deviceId based on the current media stream.
Since the virtual bg worker is now called synchronously (e28a595),
it'll be extracted incorrectly from the virtual effect MediaStream
(rather  than the original stream) - which causes getInitialCamera to
use the effect's deviceId rather than the original stream's deviceId.

Guarantee that deviceId inference via MediaStreamTrack uses
BBBVideoStream's originalStream (so that virtual effect streams are
bypassed). Also remove the call to updateDeviceId in getInitialCamera
since it's redundant since commit e28a595.
2024-08-02 13:23:11 -03:00
Ramón Souza
d4ee755a2d
Merge pull request #20831 from JoVictorNunes/fix-slide-snapshot-overflowing-27
fix(presentation): presentation snapshot overflowing the slide [2.7]
2024-08-02 10:02:36 -03:00
prlanzarin
6ec1272a2b fix(video): camera cannot be shared as content
A change in e28a595b52 introduced an issue where the "Share camera as
content" modal always has it's "share" action flagged as disabled. This
is due to a short-circuit introduced in the initial gUM procedure that
does not clear the "disabled" state before exiting.

Properly reset the "disabled" sharing state after the initial gUM in
video-preview when "Share camera as content" is used, thus fixing the
aforementioned issue.
2024-08-01 14:33:52 -03:00
João Victor
450a36d244 fix(presentation): presentation snapshot overflowing the slide 2024-08-01 12:21:38 -03:00
Ramón Souza
31ac4e7b52
Merge pull request #20798 from KDSBrowne/bbb-20621
fix: Improve screen reader accessibility for polling modal
2024-07-31 14:40:19 -03:00
Gustavo Trott
c441b8531a
fix: Dial-in -- add missing webcamBackground prop for dial-in users (#20799) 2024-07-30 11:27:40 -04:00
KDSBrowne
59deebdbcb update poll vote modal with header element for additional screen reader access 2024-07-30 13:04:57 +00:00
João Victor
e28a595b52 enhancement(webcam): custom virtual backgrounds 2024-07-26 16:48:17 -03:00
João Victor Nunes
027115aa14
fix(webcam): client failing to apply virtual background effect (#20777)
* fix(webcam): client failing to apply virtual background effect

* fix: check for already dispatched background

* fix: make webcam start up with last selected virtual background
2024-07-25 15:49:32 -04:00
Ramón Souza
d9cf1a07d9
feat(config): introduce allowPresentationManagementInBreakouts to be able to block breakouts pres uploads (#20769)
* introduce allowUploadNewDocsInBreakouts in settings.yml

* rename property

* change default value and property name
2024-07-24 15:36:29 -04:00
Ramón Souza
9d3b6f0b6c
do not display presentation dropdown on breakout update (#20764) 2024-07-24 13:37:44 -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
Daniel Petri Rocha
4ccc883437 Replace green screen with blank screen, add CORS policy 2024-07-23 10:28:23 +00:00
Ramón Souza
7fbf51054b pass presentation to breakout - frontend 2024-07-19 09:53:31 -03:00
André Castro
4c6e0289d4
Fix: [2.7] Breakout room invitation option missing from user dropdown (#20691)
* Fix: [2.7] Breakout room invitation option missing from user dropdown

* removing unnecessary code

* Translation key re-name

* modal Change
2024-07-17 14:39:09 -03: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
358a5bd901
Update bigbluebutton-html5/imports/ui/services/virtual-background/index.js
Co-authored-by: Anton Georgiev <antobinary@users.noreply.github.com>
2024-07-17 18:49:51 +02:00
Daniel Petri Rocha
864e63ffcc
Remove debug log 2024-07-13 11:26:07 +02:00
Daniel Petri Rocha
f460d54a4e
Remove debug log 2024-07-13 11:23:29 +02:00
Daniel Petri Rocha
cf8f7528d0 Load image in from the URL 2024-07-12 20:06:49 +00:00
Ramón Souza
a46e38fbbe
Merge pull request #20684 from Scroody/i-19354
Fix: Emoji animations are not being turned off by using the slider in settings.
2024-07-11 09:37:20 -03:00
André Möller
da3d8140da Fix: Emoji animations are not being turned off by using the slider in settings. 2024-07-10 16:40:16 -03:00
Ramón Souza
f5665f3bc4
Merge pull request #20669 from JoVictorNunes/issue-20654
fix: external video can be seen through sidebar on mobile
2024-07-10 15:59:11 -03:00
Ramón Souza
0c9e11c0e7
Merge pull request #20673 from Scroody/i-19870
Fix: Breakouts calculation for valid users incorrect
2024-07-10 15:11:45 -03:00
André Möller
fe3b81628f Change of approach 2024-07-10 10:45:08 -03:00
André Möller
ce8bb567a0 Revert "Fix: Breakouts calculation for valid users incorrect"
This reverts commit a86bdc9f1e.
2024-07-10 10:21:12 -03:00
André Möller
a86bdc9f1e Fix: Breakouts calculation for valid users incorrect 2024-07-09 11:11:08 -03:00
Ramón Souza
2ef8b4649f
Merge pull request #20670 from ramonlsouza/issue-20667
fix: Manage Layouts ignores disabledFeatures
2024-07-09 10:34:51 -03:00
Daniel Petri Rocha
a71527a825 Persist webcamBackground in the client 2024-07-09 12:13:50 +00:00
Ramón Souza
59e2609ffa do not display layout button if layouts are disabled 2024-07-09 09:10:06 -03:00
João Victor
a4756314a7 fix: external video can be seen through sidebar on mobile 2024-07-09 08:38:56 -03:00
Ramón Souza
91762178b9 fix grid mode displaying viewers if see other viewers is locked 2024-07-05 10:04:57 -03: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
Anton Georgiev
d3e78e7d1e
Merge pull request #20216 from KDSBrowne/bbb-20200
fix(whiteboard): Disable Duplication Shortcut Key While Drawing
2024-05-15 12:53:00 -04:00
KDSBrowne
cc53fb58f2 fix inconsistent zoom between live session and recording 2024-05-10 20:36:55 +00:00
KDSBrowne
2b6d313c80 disable duplication shortcut key while drawing 2024-05-10 11:35:04 +00:00
Anton Georgiev
0dc21a34d6
Merge pull request #20152 from prlanzarin/u27/fix/Arthurk12-live-1809
fix(bbb-html5): correct parameter type for wake lock log codes
2024-05-02 16:03:57 -04:00
Anton Georgiev
15e857abe5
Merge pull request #20153 from prlanzarin/u27/fix/Arthurk12-live-crashes-1800
fix(bbb-html5): potential crash in Youtube captions toggle
2024-05-02 16:03:04 -04:00