Commit Graph

2501 Commits

Author SHA1 Message Date
Joao Victor
912b7cf70c improvement: add setExitReason method 2022-10-07 09:15:00 -03:00
Joao Victor
b77cab92bd fix: log the reason why the user is leaving. --- logout: user requested logout --- disconnection: user is being removed for disconnection reasons 2022-10-06 15:58:41 -03:00
Joao Victor
7e8cee7340 improvement: error screen messages 2022-10-05 11:30:12 -03:00
germanocaumo
d770a7df8c fix(whiteboard): only call annotation upsert in one frontend instance
We were calling upsert in the Annotations collection for the same annotation in all frontend instances, this could lead to the same annotation being inserted
multiple times with different ids due to concurrency.

Added the html5InstanceId of the original request to the redis message so we can use it to only call upsert in one instance.
2022-09-28 12:03:59 +00:00
prlanzarin
0f24e5634d fix(audio): bypass overconstrained errors in SFU-based audio 2022-09-15 20:42:43 +00:00
prlanzarin
b3eebbb926 fix(audio): retry gUM without pre-set deviceIds on OverconstrainedError(s)
There are some situations where previously set deviceIds (
local/session storage) may become stale. This causes an unexpected
behavior where audio is temporarily borked until the user clears their
local storage.
This issue has been seen more recently on Safari endpoints when switching
back-and-forth breakout rooms in environments running under iframes.
Also seen randomly on endpoints with virtual input devices.

This centralizes audio gUM calling into a single method that retries the
gUM procedure without pre-set deviceIds only if the initial call fails
due with an OverconstrainedError - hopefully circumventing the issue.
2022-09-15 19:25:30 +00:00
Paulo Lanzarin
9c4707b56d
Merge pull request #15582 from prlanzarin/u26/refactor/mic-inout-logs-26
fix(audio): review in/out device management and switching
2022-09-09 09:22:40 -03:00
Gustavo Trott
f7f20f3e2e
Merge pull request #15251 from ramonlsouza/issue-15001 2022-09-02 09:44:10 -03:00
Anton Georgiev
85a9138ac6
Merge pull request #15618 from ramonlsouza/breakout-fix-26
fix: adjust breakout publisher
2022-08-30 20:28:33 -04:00
Ramón Souza
470f491352
Merge pull request #15583 from germanocaumo/tldraw-viewbox-sync
fix(tldraw): sync viewed area between presenter/viewers +
2022-08-30 17:00:14 -03:00
Ramón Souza
ee6eb01d04 adjust breakout publisher 2022-08-30 16:24:01 -03:00
Ramón Souza
e7107f87a7
Merge pull request #15598 from ramonlsouza/merge-2526-aug25
chore: Merge v2.5.5 into v2.6
2022-08-29 15:58:53 -03:00
Ramón Souza
033a23e336 restore needed imports 2022-08-26 14:30:40 -03:00
Ramón Souza
62f8ab3cb2 Merge remote-tracking branch 'upstream/v2.6.x-release' into pr-15460-aug26 2022-08-26 14:05:45 -03:00
Ramón Souza
609d43157a Merge tag 'v2.5.5' into merge-2526-aug25 2022-08-25 14:33:44 -03:00
prlanzarin
bf802ced4c fix(audio): check if backup stream exists before trying to clean it up 2022-08-25 17:14:41 +00:00
prlanzarin
36bce51363 refactor(audio): remove unused imports from sip.js bridge 2022-08-24 13:28:32 +00:00
prlanzarin
89e814d570 fix(audio): centralize device change code, add rollbacks, surface errors
There's no rollback procedure in case a device switch fails right now,
nor does the code entrypoints that call the switching procedures wait
for resolution or failure before marking the new device as chosen. That
may cause inconsistent states in a couple of ways:
  - No rollback: switch fails, audio is still on but no actual
    microphone input is being transmitted
  - Not waiting for resolutions: inconsistent chosen devices on failures
Device switching errors are also not surfaced to the end user

This commit:
  - Adds device rollback and proper resolution/failure response
    awaits to try and make the state a bit more consistent.
  - Centralizes the input device switching code to be reused between
    different bridges
  - Centralizes device ID state management in audio-manager to try and
    mantain them a bit more consistent across the board
  - Surface device switching failures to the end user
  - Guarantee device IDs are set to the session storage on all
    appropriate scenarios
2022-08-24 13:28:27 +00:00
GuiLeme
d9de398d90 [fix-page-count-exeed] - Forwarded temporaryPresentationId to front-end and refactor it's name 2022-08-22 15:00:27 -03:00
germanocaumo
c948f39392 Merge branch 'v2.6.x-release' of https://github.com/bigbluebutton/bigbluebutton into tldraw-viewbox-sync 2022-08-22 15:47:51 +00:00
germanocaumo
7bf8668f23 Merge branch 'v2.6.x-release' of https://github.com/bigbluebutton/bigbluebutton into tldraw-viewbox-sync 2022-08-18 18:41:27 +00:00
prlanzarin
325eb03696 fix(webcam): properly flatten videoStream on meteor sync call 2022-08-17 16:04:02 +00:00
germanocaumo
d4b8bdce7e fix(tldraw): sync viewed area between presenter/viewers +
- Return to the ResizeAndMoveSlide event to do pan&zoom, respecting the viewed width and height ratio
- Defaults zoom in toolbar to 100% like before to be more consistent
- Fit to width and Reset Zoom is back (fit tho width still has some sync problems)
- Fix to not change to first page when presenter reloads page
2022-08-16 12:12:43 +00:00
prlanzarin
0e162f1cda feat: configurable DSCP marking for WebRTC media
RTCRTPSender exposes DSCP marking via `networkPriority` in the encodings
configuration dictionaries. That should allow us to control
QoS priorities for different media streams, eg audio with higher network
priority than video. The only browser that implements that right
now is Chromium.

To use this, the public.app.media.networkPriorities configuration in
settings.yml. Audio, camera and screenshare priorities can be controlled
separately. For further info on the possible values, see:
  - https://www.w3.org/TR/webrtc-priority/
  - https://datatracker.ietf.org/doc/html/rfc8837#section-5
2022-08-15 21:24:05 +00:00
Daniel Petri Rocha
3529fe9f28 Rename parameters; hide download button and label when disabled 2022-08-02 15:53:40 +02:00
Gabriel Porfirio
8198953f30 removing unused imports 2022-07-28 16:50:31 -03:00
Ramón Souza
ccce085aed Merge remote-tracking branch 'upstream/v2.6.x-release' into issue-15001 2022-07-27 09:49:19 -03:00
Gustavo Trott
acb0465266
Merge pull request #15412 from JoVictorNunes/export-presentation 2022-07-26 17:49:09 -03:00
Daniel Petri Rocha
6ac3040d4a Fix multiple pres. export; include PresId in NewPresAnnFileAvailable msg. 2022-07-26 15:19:23 +02:00
Joao Victor
07434d238c refactor: toast notification rework 2022-07-25 18:56:26 -03:00
Joao Victor
24e78a1864 fix: 1 minute threshold for each slide 2022-07-25 10:33:23 -03:00
Joao Victor
e32eeec9a2 improvement: query selector 2022-07-25 09:35:08 -03:00
Joao Victor
9f0999f623 fix: rename exported presentation default filename 2022-07-25 09:19:39 -03:00
Joao Victor
e3062f2da7 fix: increase exporting threshold to 1 minute 2022-07-21 16:40:52 -03:00
Joao Victor
2f623a2731 fix: better log message when setting exporting status 2022-07-21 16:39:19 -03:00
Paulo Lanzarin
34a3c2be49
Merge pull request #15408 from prlanzarin/u26/fix/audio-reconn-stuck
refactor(audio): log VoiceUser cleanup on User remove and centralize it
2022-07-21 15:06:41 -03:00
Joao Victor
854dcf5a93 fix: use Meteor bindings for both setTimeout and clearTimeout 2022-07-21 10:49:36 -03:00
Gustavo Trott
59ddf3e8e3 broadcast NewPresAnnFileAvailableMsg to html5 2022-07-20 20:20:32 -03:00
Pedro Beschorner Marin
51eeb092b3 refactor(captions): configurable languages
Move the language collection to the HTML settings file. This data defines
the available languages available for the speech API.

These language tags are used to filter SpeechSynthesis' API `getVoices`
result. Tags must use BCP 47 format.

https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisVoice/lang
2022-07-20 17:20:52 +00:00
Pedro Beschorner Marin
b52c67d7a7 feat(captions): first pass on recording
Add the main server-side adapter for using the legacy closed captions
recording process with the audio captions data.
2022-07-20 17:20:52 +00:00
Pedro Beschorner Marin
fb48e61d6d feat(captions): add talking indicator feedback
Inform other users about who are the current talkers with the speech
recognition enabled.
2022-07-20 17:20:51 +00:00
Pedro Beschorner Marin
307ab6ea40 feat(captions): add author avatar
Include captions' author avatar at the live feedback to improve identification.
2022-07-20 17:20:50 +00:00
Pedro Beschorner Marin
75969ec93c feat(captions): audio captions app
Add a server-side app for the audio captions feature and record proto-events
for this data.

As it is, only behaves as a pass-through module. The idea is to include all
the business intelligence in this app.
2022-07-20 17:20:48 +00:00
Pedro Beschorner Marin
944edf2ccf feat(captions): web speech prototype
Hardcoded pt-BR prototype for closed captions generated by the browser's
WebSpeech API.
2022-07-20 17:20:48 +00:00
prlanzarin
d23189d1ed refactor(audio): log VoiceUser cleanup on User remove and centralize it
There's a VoiceUser cleanup procedure bound to the User's cleanup
routine in Meteor's server-side. That cleanup is _silent_ and does not
use a dedicated modifier from voice-user et al, which is not
straightforward and might waste a few minutes of understanding what's
happening when debugging audio collections.

This commit centralizes that cleanup in a new clearVoiceUser modifier in
voice-user as well as logs when it works.
2022-07-20 12:13:37 +00:00
Joao Victor
cff1c087a8 feat: front-end support for exporting presentations with annotations 2022-07-19 16:36:00 -03:00
Paulo Lanzarin
a156db25e4
Merge pull request #15358 from frankemax/fix-audio-infinite-joining
fix(audio): prevent race condition when joining audio
2022-07-15 15:24:14 -03:00
Paulo Lanzarin
383fe89653
Merge pull request #15364 from prlanzarin/u26/refactor/kutils-kboom
refactor: remove kurento-utils-js
2022-07-15 14:53:10 -03:00
Ramon Souza
db5ac1428a Merge tag 'v2.5.3' into merge25-26-jul14 2022-07-15 11:08:02 -03:00
prlanzarin
45049cbd65 refactor: swap kurento-utils for new peer wrapper in screen sharing and audio 2022-07-15 14:00:12 +00:00