Commit Graph

10275 Commits

Author SHA1 Message Date
Joao Victor
dbafb610d5 fix: whiteboard access avatar icon in RTL mode 2022-07-22 10:16:57 -03:00
Ramón Souza
9c8c580db2
Merge pull request #15424 from prlanzarin/u26/fix/layout-ss-calc
fix(layout): set external-video/screen share initial states on all layouts
2022-07-22 13:12:31 +01:00
Joao Victor
ce7f35b3db fix: checkbox and remove button alignment in RTL languages 2022-07-21 17:30:25 -03:00
Anton Georgiev
d7bdc324a0 chore: pull BBB 2.5.4+ into 2.6 2022-07-21 20:25:31 +00:00
Joao Victor
e59e3b68af fix: header alignment 2022-07-21 17:20:03 -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
prlanzarin
8f77f4cd1f fix(layout): set external-video/screen share initial states on all layouts
Only smart layout takes screen sharing/external video states in account
when populating its initial state. The others don't, and that causes
some weird issues when switching back-and-forth between layout types due
to their input states becoming inconsistent - ie having an active screen
sharing and transitioning from Smart -> Custom would mark it as false
(due to its absence from the initial state) and pollute its state for
subsequent layouts.

This commit guarantees those features are taken into account when
populating initial input states for Focus On*/Custom layouts.
2022-07-21 18:07:49 +00: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
Gabriel Porfirio
94cfa3c084 WIP: Adding notification to waiting users list 2022-07-21 14:07:19 -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
KDSBrowne
9234dee077 fix viewer wb crash switching to rtl 2022-07-20 19:54:23 +00:00
KDSBrowne
db41932fe7 update render wb condition | add operator 2022-07-20 19:20:46 +00:00
KDSBrowne
21f2a441ee update editable whiteboard component key 2022-07-20 19:03:26 +00:00
KDSBrowne
9d8ce2215d remove key prop 2022-07-20 18:51:50 +00:00
KDSBrowne
fb63975a7e fix viewer WB crash when resizing 2022-07-20 18:50:13 +00:00
prlanzarin
6c8b097eba fix: add option to disable transcription in mobile, extend support check
Mobile endpoints are flaky with the WebSpeechAPI:
  - iOS versions that support it are borking our outbound audio when it's
    enabled
  - Android speech recognition has flaky locale detection and speech
    transcription
Additionally: the support check is not checking the WebSpeechAPI
availability properly, so older devices (eg iOS 12) are flagged as
supported even though they aren't.

This commit adds a configuration flag (public.audioCaptions.mobile) to
control transcription availability on mobile. False by default.
Also extends the setSpeechVoices support check and
hasSpeechRecognitionSupport method to prevent false positives.
2022-07-20 17:20:54 +00:00
Arthurk12
e93b9739de style(captions): adds border to toggle button 2022-07-20 17:20:53 +00:00
Max Franke
75eef650e6 feat(audio-captions): reallocate button from mobile
Remove CC button toggle in the action bar only in mobile.
Add a new CC button toggle in settings dropdown only to mobile.
2022-07-20 17:20:53 +00:00
Arthurk12
c96b53093c feat(captions): adds locale settings
Adds two new flags to the settings file which change the way the locale
flag is used:

- forceLocale: (true/false) => If true, enforces the transcription
  language to be the locale content field and jumps the language
selector
  in audio modal.
- defaultSelectLocale: (true/false) => If true, the default selected
  value in the dropdown language selector in audio modal will be defined
  by the locale content field.

In any case, if the locale flag holds an invalid value, it defaults to
disabled.
2022-07-20 17:20:53 +00:00
Arthurk12
da9adca229 fix(captions): talking indicator icon
Prevents the speech recognition from being initialized when the closed
captions feature is disabled.
2022-07-20 17:20:52 +00:00
Pedro Beschorner Marin
d553ca65cf feat(captions): use navigator language
If not set to use the default language, try to select the navigator
language as speech default locale.
2022-07-20 17:20:52 +00:00
Pedro Beschorner Marin
116c0d9a49 fix(captions): filter duplicated languages
Avoid multiple instances of the same language at the voices data.
2022-07-20 17:20:52 +00: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
aa7f2abae2 feat(captions): talking users' floor
Associate the floor status with the talking users to improve feedback
on automated closed captions.
2022-07-20 17:20:51 +00:00
Pedro Beschorner Marin
1064aab84d style(captions): add background alpha
Add some transparency to the background color.
2022-07-20 17:20:51 +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
df184b542c feat(captions): add unsupported warning
Add a disclaimer for users on browsers that do not provide speech synthesis'
voices.
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
d00909751a refactor(captions): change getVoices routine
In some cases, `getVoices` returns an empty array even if the browser's vendor
has full support for speech synthesis. Add a trigger call to initiate the
voices fetching process.

As drafted, `getVoices` can be an asynchronous call and monitoring it
depends on the support of a `voiceschanged` event. Although many of the
main vendors support voices, this event is not (yet) by Safari.

https://wicg.github.io/speech-api/#dom-speechsynthesis-getvoices
https://wicg.github.io/speech-api/#eventdef-speechsynthesis-voiceschanged
https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis/voiceschanged_event
2022-07-20 17:20:50 +00:00
Pedro Beschorner Marin
d6dc66f57e feat(captions): language selector
Replace the checkbox with a selector up with 3 languages: en-US, es-ES and pt-BR.

Add setting option to enable by default with predetermined locale.
2022-07-20 17:20:50 +00:00
Pedro Beschorner Marin
5671bd7d3c fix(captions): check for voices
Avoid enable audio transcription if the browser's vendor does not provide
voices data.

This should prevent false positives for browsers such as Chromium and
Brave.
2022-07-20 17:20:49 +00:00
Pedro Beschorner Marin
e131925370 style(captions): font-family fallback
Add extra `sans` alternatives
2022-07-20 17:20:49 +00:00
Pedro Beschorner Marin
d688a2572f fix(captions): remove padding when no content
Avoid rendering the captions wrapper's padding when there's no data to
be displayed at the live feedback.
2022-07-20 17:20:49 +00:00
Pedro Beschorner Marin
f726cb0ad5 refactor(captions): UX improvements
Parse the audio transcript before broadcasting it's content back to the
client and the recording actor. Limiting by 8 words per line and max of
2 lines to avoid CPU intensive operations over this recurring event.

Replace Calibri font family with Verdana to improve character spacing,
add relative sizing to the text content and a background padding.
2022-07-20 17:20:49 +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
0bc730b3e3 refactor(captions): improve recovery
Use the user's talking state to trigger a speech API recovery after long
periods of silence.
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
Joao Victor
a1ed921039 fix: breakout remaining time label 2022-07-20 12:22:46 -03: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
KDSBrowne
100bfcfb86 update fullscreen element check 2022-07-19 10:51:59 +00:00
KDSBrowne
ed55d58b01 handle cursor positions for video focus 2022-07-19 03:37:47 +00:00
KDSBrowne
47303757de handle cursor position for fullscreen presentation 2022-07-19 01:23:10 +00:00
Ramón Souza
f083bb9a20
Merge pull request #15273 from JoVictorNunes/issue-15272
fix: apply presentation 'isCurrent' changes to local state
2022-07-18 21:19:20 +01:00
Ramón Souza
2fd65dfc1c
Merge pull request #15099 from schrd/fix-issue-14982
Fix: only show breakout room in user list when user is in breakout room
2022-07-18 21:17:17 +01:00
Anton B
944e0b2981 test: add audio tests 2022-07-15 17:54:16 -03:00
Joao Victor
0ac69cba0a fix: comparison to render custom buttons 2022-07-15 17:16:33 -03:00
Joao Victor
34aaf07fed Merge branch v2.6.x-release into virtual-backgrounds-skeleton-preview 2022-07-15 17:14:16 -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
prlanzarin
d06ae5ce40 fix: add default gUM factory to new peer wrapper
For scenarios such as preview-less camera sharing, old echo test
2022-07-15 17:07:15 +00:00
Anton Georgiev
f2e25768c7
Merge pull request #15390 from ramonlsouza/merge25-26-jul14
chore: Merge v2.5.3 into v2.6
2022-07-15 11:43:17 -04:00
Ramon Souza
83d9feb9c0 fix missing import in audio controls 2022-07-15 11:41:11 -03:00
prlanzarin
cd9b8ccef4 fix: handle Firefox stream cleanup edge case (peer.js)
Firefox doesn't fire the ended evt/onended callback for live
 MediaStreamTrack(s). We rely on that event.

 Manually emit the ended event which works with the onended callback
 when a track is stopped
2022-07-15 14:25:37 +00:00
Ramon Souza
d08ff18add Merge remote-tracking branch 'upstream/v2.6.x-release' into merge25-26-jul14 2022-07-15 11:12:25 -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
prlanzarin
6a4ceac61f refactor(webcam): swap kurento-utils for the new peer wrapper 2022-07-15 14:00:12 +00:00
prlanzarin
7281475271 feat: add new peer wrapper to phase out kurento-utils
kurento-utils is unmaintained. It's served us well, but its age
shows.  We need to transition to something else if we want to
have better  maintainability and include simulcast, multistream, ...

This introduces a simplified/leaner wrapper kit that's almost
API-compatible with what we use right now - so widespread changes
are minimal). It's easier to maintain/read/transition from. This
can be read as an intermediate step to transitioning to
something definitive (ie mediasoup-client).
2022-07-15 13:51:03 +00:00
Ramón Souza
267a6f5c9c
Merge pull request #15203 from ramonlsouza/improve-ghost-button-border
style: improve ghost buttons border in low density display
2022-07-15 12:06:59 +01:00
Ramón Souza
da848e990a
Merge pull request #15320 from gabriellpr/dark-light-buttons
Styling light and dark buttons
2022-07-13 21:03:46 +01:00
gabriellpr
1c2f9e9cd9
Update styles.js 2022-07-13 16:35:02 -03:00
Paulo Lanzarin
3e8ccd370d
Merge pull request #15375 from prlanzarin/u26/fix/local-echo-gUM-block
fix(audio): block audio join while gUM isn't resolved (local echo)
2022-07-13 15:57:02 -03:00
gabriellpr
49f12c43af
Merge branch 'v2.6.x-release' into dark-light-buttons 2022-07-13 15:36:31 -03:00
prlanzarin
27896e74e6 fix(audio): block audio join while gUM isn't resolved (local echo)
The new local echo view doesn't block the "Join audio" button while
awaiting for getUserMedia permission to be granted/denied. That may
cause unexpected behavior when unattentive users just click "Join audio"
without granting or denying gUM.

This commit accounts for gUM resolution when deciding whether to block
the "Join audio" button. It also includes an extra "isConnecting" check
to it to avoid spam-clicking issues.
2022-07-13 14:35:37 +00:00
Ramón Souza
04386dfcd5
Merge pull request #15212 from gabriellpr/styling-buttons
style: Revised styles for our secondary buttons
2022-07-13 15:22:49 +01:00
Ramón Souza
a0f80e0efb
Merge pull request #15353 from gabriellpr/contrast-record-indicator
Improving contrast on recording indicator
2022-07-13 15:20:36 +01:00
prlanzarin
7b76d2e88f fix: change local echo Stop hearing locale to Stop audio feedback 2022-07-13 13:59:49 +00:00
Anton Georgiev
1393e4a7de
Merge pull request #15352 from germanocaumo/tldraw-z-f
fix(tldraw): initial/viewer zoom fixes + presToolbar height
2022-07-13 09:42:36 -04:00
Anton Georgiev
70c084bfdb
Merge pull request #15300 from JoVictorNunes/fix-focus-loss-Jun-30
fix: disable Tldraw autofocus
2022-07-13 09:39:06 -04:00
Paulo Lanzarin
64af188f1b
Merge pull request #15371 from prlanzarin/u26/fix/webcam-oninactive
fix(webcam): handle stream inactivation/gUM revocations
2022-07-13 10:37:36 -03:00
Anton Georgiev
20762cfac6
Merge pull request #15310 from germanocaumo/tldraw-production-fix
fix(tldraw): fix shapes not persisting in production +
2022-07-13 09:36:44 -04:00
prlanzarin
029c957b22 fix(webcam): handle stream inactivation/gUM revocations
The 'inactive' event is fired whenever the stream gets inactive (ie it
cannot be used anymore), and there are scenarios where that is
unexpected behavior and must be handled accordingly.
The main example of that is when gUM permissions are revoked by the user
via the browser's permission management panel.
Since MediaStream/Track inactive events aren't being handled in such
scenarios, what actually happens is that the camera just freezes without
further indication why.

This commit handles those scenarios in both video-preview and
video-provider by:
  - 1) correctly stopping the camera (provider)
  - 2) surfacing a toast (provider) or error indication (preview)
2022-07-12 22:03:01 +00:00
prlanzarin
e93440e15a refactor(webcam): fix linter errors in BBBVideoStream 2022-07-12 17:50:16 +00:00
Daniel Petri Rocha
5f98290413 Add presentationWithAnnotationDownload, exportPresentationWithAnnotation to disabledFeatures 2022-07-12 18:58:56 +02:00
prlanzarin
fba2c88494 fix(audio): make hearing a transient prop in local-echo
Prevents annoying console exceptions in dev mode
2022-07-12 16:37:36 +00:00
Joao Victor
cca17f9def fix(chat): property access 2022-07-12 10:25:50 -03:00
Anton Georgiev
40a8034070
Merge pull request #15313 from antonbsa/test-fixes-v2.6
test: Fix v2.6 tests
2022-07-11 18:21:33 -04:00
Anton B
d00699561f fix data-test props to same quote type 2022-07-11 17:35:14 -03:00
Max Franke
70bf69182a fix(audio): prevent race condition when joining audio
Sometimes the handler that listens for the state change in the callState is
not updated correctly.
In these rare cases, the state of the callstate changes directly to in_conference,
not taking the expected path: call_started -> in_echo_test -> in_conference
2022-07-11 14:09:43 -03:00
Joao Victor
2f78edddf3 fix: add suport for disabling upload of custom backgrounds through custom parameter 2022-07-08 17:01:57 -03:00
Gabriel Porfirio
aecc5fa710 WIP: improving contrast on recording indicator 2022-07-08 14:39:14 -03:00
gabriellpr
17a1bc086f
Update styles.js 2022-07-08 13:53:30 -03:00
germanocaumo
0c75b3ce02 fix(tldraw): correctly get toolbar height
This solves the problem where the toolbar is not counted in the slide area space, so the presentation would stay behind the toolbar when zoomed out
2022-07-08 15:45:55 +00:00
Joao Victor
8809ff3a65 fix: add missing activity date in drag & drop handler 2022-07-08 12:26:01 -03:00
Joao Victor
915ffce3c6 improvement: sort buttons by recently used/uploaded 2022-07-08 12:16:37 -03:00
germanocaumo
217fd6c06e fix(tldraw): wrong initial/viewer zoom
Fixes a case when the presentation is just uploaded and a wrong initial zoom was set.
Also fix viewer zoom not correclty adjusting to the area size when zoomed out.
2022-07-08 15:06:00 +00:00
Joao Victor
f8ec4ef640 refactor: virtual background context 2022-07-07 18:59:30 -03:00
Max Franke
52e27e8030 feat(emoji-picker): dynamic filter emojis
Configure filtered emojis via settings.yml
Emojis can be filtered by their unicodes
2022-07-07 13:12:35 -03:00
gabriellpr
f848d31014 modifying specific buttons
removing border and implementing box-shadow

adding transparent border

passing styles to common buttons

adding secundary color to component

updating color components
2022-07-07 10:45:54 -03:00
prlanzarin
a6861a16d5 fix: don`t ignore settings.yml virtualBackgrounds.enabled config 2022-07-07 12:37:32 +00:00
Ramón Souza
1b03b1fd50
Merge pull request #15301 from KDSBrowne/z-26-rtl-cursor
Fix RTL Cursor Position on Whiteboard
2022-07-06 21:40:19 +01:00
KDSBrowne
046518abe5 handle cursor positions for smart layout 2022-07-06 20:03:04 +00:00
Joao Victor
8481103e47 improvement(virtual background): loading skeleton, custom backgrounds in video preview modal 2022-07-06 16:03:55 -03:00
Mario Junior
72854de683
Merge pull request #15295 from iMDT/v2.6.x-mobile
feat (mobile screenshare): Add replacement webRTC methods for screenshare and full audio in mobile (when running in BigBlueButtonMobile app)
2022-07-06 15:46:25 -03:00
KDSBrowne
42acca2124 handle cursor position for all custom layout orientations 2022-07-06 17:17:05 +00:00
Anton B
d6f32f3422 Merge remote-tracking branch 'upstream/v2.6.x-release' into test-fixes-v2.6 2022-07-06 11:07:00 -03:00