Commit Graph

39637 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
Anton Georgiev
11ac9d2184
Merge pull request #21036 from prlanzarin/u27/feat/rtc-logs-info
feat: add WebRTC stats information to client logs
2024-09-11 16:30:59 -04:00
transifex-integration[bot]
6b2970078d
Updates for project BigBlueButton v2.7 HTML5 client and language cs_CZ (#21087)
* Translate en.json in cs_CZ

100% translated source file: 'en.json'
on 'cs_CZ'.

---------

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-09-09 08:51:50 -04: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
Anton Georgiev
87e8371e8d
docs: fix name for notifyRecordingIsOn create parameter [2.7] (#21078) 2024-08-30 12:39:17 -04:00
Anton Georgiev
81aefc3c85
docs: escape non mdx compliant characters (#21072) 2024-08-30 10:59:55 -04:00
transifex-integration[bot]
68992285c4
Translate en.json in gl (#21046)
100% translated source file: 'en.json'
on 'gl'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-08-28 13:17:45 -04: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
Anton Georgiev
d64c9bbedf
fix: bigbluebutton-tests/playwright/package.json & bigbluebutton-tests/playwright/package-lock.json to reduce vulnerabilities (#20939)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-AXIOS-7361793

Co-authored-by: snyk-bot <snyk-bot@snyk.io>
2024-08-27 08:59:26 -04:00
Jesus Federico
60e3f554a9
fix: bigbluebutton-tests/puppeteer/package.json & bigbluebutton-tests/puppeteer/package-lock.json to reduce vulnerabilities (#20945)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-AXIOS-7361793

Co-authored-by: snyk-bot <snyk-bot@snyk.io>
2024-08-27 08:56:53 -04:00
Jesus Federico
e62e6e3504
fix: bbb-export-annotations/package.json & bbb-export-annotations/package-lock.json to reduce vulnerabilities (#20946)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-AXIOS-7361793

Co-authored-by: snyk-bot <snyk-bot@snyk.io>
2024-08-27 08:56:08 -04:00
transifex-integration[bot]
2dc12fc04e
Updates for project BigBlueButton v2.7 HTML5 client and language hu_HU (#20968)
* Translate en.json in hu_HU

100% translated source file: 'en.json'
on 'hu_HU'.

* Translate en.json in hu_HU

100% translated source file: 'en.json'
on 'hu_HU'.

---------

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-08-27 08:54:36 -04:00
transifex-integration[bot]
d7d09e2f67
Translate en.json in ru (#20976)
100% translated source file: 'en.json'
on 'ru'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-08-27 08:54:03 -04:00
transifex-integration[bot]
ac06f09fe7
Translate en.json in ca (#21013)
100% translated source file: 'en.json'
on 'ca'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-08-27 08:53:06 -04: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
prlanzarin
d47c19c4a7 build(bbb-webrtc-sfu): v2.15.0-beta.0
v2.15.0-beta.0
---
* feat: add restartIce support for video/screenshare modules
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
Paulo Lanzarin
1484f516d0
Merge pull request #20998 from bigbluebutton/bbb27sfu2142
[2.7] build(bbb-webrtc-sfu): v2.14.2
2024-08-21 19:56:47 -03:00
Paulo Lanzarin
8be32a7bf3
build(bbb-webrtc-sfu): v2.14.2
v2.14.2
---
* refactor(audio): set FLOWING logs to INFO level
* build(mediasoup): v3.14.11
2024-08-21 16:18:16 -03:00
Gabriel Luiz Porfirio
f66f07d177
test: Backport share camera as content test to 2.7 (#20964)
* backport camera as content test

* add test to ci
2024-08-21 14:56:39 -03:00
Gabriel Luiz Porfirio
7a8abd0127
backport disable self-view test (#20982) 2024-08-21 14:56:21 -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
Gabriel Luiz Porfirio
ff0b2f33b6
test: removing temporally external video test from ci (#20955)
* removing external video test from ci, adds @flaky flag
2024-08-20 13:36:57 -03:00
Paulo Lanzarin
7371aa6c18
Merge pull request #20921 from prlanzarin/u27/fix/tlo-unhold-unmute-delay
fix(audio): change unmute/unhold flow to work around FS unmute stutter
2024-08-15 12:37:29 -03:00
Anton Barboza de Sá
36b5a16c15
docs: Testing plan update (what's new features) (#20913)
* docs: update test links on release notes and spec files

* docs: add tests for 'what's new on 2.7' features

* Update docs/docs/testing/release-testing.md

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

* test: pass the bbb version in the doc links

---------

Co-authored-by: Anton Georgiev <antobinary@users.noreply.github.com>
2024-08-14 09:50:03 -04:00
Anton Georgiev
562a13f527
chore: update link to which locales are supported by Gladia (#20925) 2024-08-13 13:44:20 -04:00
prlanzarin
cf6202c572 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-13 13:18:22 -03:00
prlanzarin
e6e1f28036 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-13 13:18:21 -03:00
transifex-integration[bot]
b4a11facd4
Translate en.json in ja (#20903)
100% translated source file: 'en.json'
on 'ja'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-08-12 13:02:12 -04:00
Anton Georgiev
ea7867340f
fix: docs/package.json & docs/package-lock.json to reduce vulnerabilities (#20900)
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-INFLIGHT-6095116

Co-authored-by: snyk-bot <snyk-bot@snyk.io>
2024-08-12 13:01:51 -04:00
transifex-integration[bot]
07c0433ba0
Translate en.json in pt_BR (#20881)
100% translated source file: 'en.json'
on 'pt_BR'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-08-09 11:16:59 -04:00
Anton Georgiev
a642391caf
docs: added a link to 2.7.12 2024-08-07 16:46:41 -04:00
Daniel Petri Rocha
656cdb44cf
fix(bbb-export-annotations): Handle text rendering issue (#20857)
* Handle error when imagemagick fails to render

* Update bbb-export-annotations/workers/process.js

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

* Update bbb-export-annotations/workers/process.js

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

* Add more detailed logs

---------

Co-authored-by: Anton Georgiev <antobinary@users.noreply.github.com>
2024-08-06 16:21:45 -04:00
transifex-integration[bot]
352f3ebd58
Translate en.json in tr (#20854)
100% translated source file: 'en.json'
on 'tr'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-08-06 13:03:22 -04:00
transifex-integration[bot]
565a8bfcd4
Translate en.json in et (#20865)
100% translated source file: 'en.json'
on 'et'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2024-08-06 13:00:14 -04:00
Anton Georgiev
cf966e396b
chore: Bump release to 2.7.12 2024-08-02 19:31:05 -04: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
Anton Georgiev
3eb3e345af
docs: fix name of errorRedirectUrl in api docs (#20839) 2024-08-01 16:27:58 -04:00
Anton Georgiev
ca18587289
docs: remove extra entry for webcamBackgroundURL (#20838) 2024-08-01 16:27:43 -04:00
Paulo Lanzarin
f85bc7f976
Merge pull request #20832 from prlanzarin/u27/fix/broken-present-camera
fix(video): camera cannot be shared as content
2024-08-01 15:09:30 -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
Paulo Lanzarin
894515ddb6
Merge pull request #20829 from bigbluebutton/u27sfu2141
build(bbb-webrtc-sfu): v2.14.1
2024-08-01 12:43:07 -03:00
João Victor
450a36d244 fix(presentation): presentation snapshot overflowing the slide 2024-08-01 12:21:38 -03:00
Paulo Lanzarin
3282f230a9
build(bbb-webrtc-sfu): v2.14.1
v2.14.1
---
* fix(screenshare): presenter/viewer stop logs on all scenarios
* refactor(screenshare): add presenter data to viewer logs
* refactor(video): add video negotiation and flowing logs
* build(mediasoup): 3.14.9
2024-08-01 12:02:54 -03:00