Commit Graph

895 Commits

Author SHA1 Message Date
Arthurk12
cc2f509c7c Refactored timer design 2023-05-18 15:29:33 -03:00
Pedro Beschorner Marin
2f104eafc8 Syncing time offset between client and server 2023-05-18 15:29:32 -03:00
Pedro Beschorner Marin
4d8f7070de Add timer alarm 2023-05-18 15:29:32 -03:00
Pedro Beschorner Marin
5463a4a423 Stopwatch handlers 2023-05-18 15:29:31 -03:00
Arthurk12
953a3d3548 Timer first commit 2023-05-18 15:29:31 -03:00
Anton Georgiev
510c94cfa7 Merge branch 'v2.6.x-release' of github.com:bigbluebutton/bigbluebutton into may16-merge 2023-05-16 13:35:47 -04:00
Ramón Souza
af23ce542e
Merge pull request #17702 from Scroody/virtual-backgound-accepts-webp
feat (html5): Virtual backgrounds now accepts webp format
2023-05-15 17:06:41 -03:00
Anton Georgiev
4e851a7571 Merge branch 'v2.6.x-release' of github.com:bigbluebutton/bigbluebutton into merge-267-27 2023-05-15 11:51:17 -04:00
Paulo Lanzarin
6326a81123
feat(audio): microphone bridge set to mediasoup by default
The initial goal is for this to be default in 2.7.
Set it as default early in the cycle so folks can test it for longer.

If there's any deal-breaking issue with it nearing release we can just flip back to the old (2.6, FS/SIP.js) default.
2023-05-10 16:01:45 -03:00
Arthurk12
33c9abd874 requested changes 2023-05-09 17:21:47 -03:00
Carlos
8f8bfc8903 feat(camera as content): port to BBB
Enables the presenter to share a camera in the presentation area.
The shared camera automatically uses a pre-defined, fixed and hidden camera.
Profile defined in the settings.yml file.
It is currently using the screenshare's backend.
2023-05-09 17:21:46 -03:00
Lucas Fialho Zawacki
fcb6b94787 feature(reactions): Flags to enable new/old status button and to position it centered or to the right 2023-04-28 14:10:27 -03:00
André Castro
2c52c1a596
Merge branch 'v2.6.x-release' into I-17465 2023-04-27 19:25:56 -03:00
Lucas Fialho Zawacki
2a3e2d4993 feat(user-actions): enabled option in settings.yml 2023-04-27 18:37:18 -03:00
Max Franke
fbcc611bd9 feat(interactions): add new interactions button
Interactions button is a button that stays in action bar.
Integrates several features in just one place: user-reaction, raise hand,
user-status (away/not away), toggle question panel.
2023-04-27 13:57:40 -03:00
Max Franke
d28b93a586 feat(reactions): add user reaction
add user-reaction collection
add emoji picker for user reaction in the user list
add options to enable/disable user-reaction
add a way to pass style to emoji-picker component
2023-04-27 11:54:11 -03:00
Diego Benetti
2767bee67c Enables transfer button to be displayed in tablets 2023-04-26 14:30:25 +00:00
Lucas Fialho Zawacki
6979432c36 feat(transcription): Server side open source transcriptions 2023-04-24 18:23:34 -03:00
Ramón Souza
af8556e026 Merge remote-tracking branch 'upstream/v2.6.x-release' into 26-27-apr24 2023-04-24 17:15:47 -03:00
andre-imdt
df9d11180f Enhancement: Virutal backgrounds now accepts webp 2023-04-24 13:56:54 -03:00
KDSBrowne
d0d3862708 Merge branch 'v2.6.x-release' of https://github.com/bigbluebutton/bigbluebutton into bbb-hover-tools 2023-04-13 17:45:39 +00:00
Scroody
e3477b5e42 Fix: Restore on update 2023-04-13 10:56:54 -03:00
GuiLeme
5eb29e0ab5 [issue-16954] - merge upstream/v2.7.x-release 2023-04-11 11:02:00 -03:00
Anton Georgiev
1eb1b1dec7
fix: Update docs links settings.yml (backport of #17433 by @code-Gambler) 2023-04-11 09:18:56 -04:00
GuiLeme
9c581d3858 [issue-16954] - fix blue screen when joining a session 2023-04-11 10:05:49 -03:00
Anton Georgiev
e2dc7da98a
Merge pull request #16828 from prlanzarin/u27/fix/ss-cam-reconn
fix: re-connection improvements for cameras and screen sharing
2023-04-05 16:13:01 -04:00
KDSBrowne
72adc96dbe add autohide option for whitboard toolbars 2023-03-26 22:08:09 +00:00
zhem0004
5fdd91ba67
Add new setting to enable/disable extra guest policy Allow buttons (#17034)
* add new setting to enable/disable extra guest policy buttons
2023-03-14 14:39:37 -04:00
Ramón Souza
f72b6dae94
remove oldMinimizeButton from settings file 2023-03-10 09:05:13 -03:00
prlanzarin
3bddbb96cf fix(video): signaling and reconnection edge cases
There are still a bunch of edge cases and issues with reconnection
scenarios for video:
  - Signaling socket refuses to reconnect once maxRetries expire
  - Race conditions on local stream attachment: local camera wouldn't be
    correctly rendered _if_ the attached stream existed _without_ video
    tracks yet
  - Video tracks leak on local streams when replacing them (virtual bgs)
  - Completely ignoring Meteor state when trying to reconnect cameras
  - Streams aren't proactively stopped when the signaling socket dies
  - Outbound request queues aren't isolated by stream nor are they
    flushed when a newer peer with the same ID is created
  - Server originated negotiation errors won't trigger a local peer
    cleanup - thus leaving dangling peers that take way too long to
    reconnect

This commit fixes or improves all of the aforementioned issues, +:
  - Remove unused arguments in the peer (client->SFU) 'start' request
  - Prevent crashes when trying to render video-list-items without user
    data (which might happen on re-connections)
2023-03-08 15:49:35 -03:00
prlanzarin
afa2908ded fix(screenshare): better reconnection timers and UI for abrupt failures
Reconnection timers are far too long for abrupt failures because we
are waiting the original timeouts to elapse (30-60s) before trying it
again - even if a connection worked N-sessions back in that session's
history. The ideal thing to have is another intermediate, smaller and
fixed reconnection timer for sessions that had a working screen share
at least once.
The UI is also not being updated to the reconnecting state on negotiation
failures.

* Add an intermediate reconnection timer for abrupt failures set to 8s.
  This should improve reconnection times.
* Lower default connection timers values (base 20s down from 30s, max
  25s down from 60s)
* Set screen share UI to reconnecting on abrupt failures as well - we
  were only tracking ICE states prior to this, not negotiation errors
2023-03-08 15:48:30 -03:00
prlanzarin
a83f3b675e fix(video): add proper signaling WS heartbeat, +
video-provider's current ping-pong is as good as nothing in 2.5+. We
were counting on Meteor's (and consequently the component's mount state)
before 2.5 to act as a "heartbeat" as far as the socket is concerned.
The ping-pong served only to sustain traffic for finnicky,
traffic-dependant firewall.
Since 2.5, the component's state is _kind of_ detached from Meteor's -
which means it won't unmount when Meteor disconnects. That causes the
video-provider websocket to lose its borrowed heartbeat and leads to a
bunch of reconnectiong inconsistencies, the worst of them being a stuck,
useless signaling socket that will cause cameras not to work until a
client refresh.

This commit does the following:
  - Implements actual heartbeat checks to trigger signaling socket
    reconnects when necessary, all within the scope of video-provider
  - Remove borked, eons old 'offline'/'online' event handlers: they were
    causing unnecessary camera drops AND causing video-provider to
    generate a stuck signaling socket
  - Properly catch WebSockets.send errors
2023-03-08 15:46:51 -03:00
GuiLeme
9fb2c32384 [issue-16734] - refactor hidePresentation to hidePresentationOnJoin 2023-02-17 14:59:39 -03:00
Ramón Souza
616d615e94 increase default value for max number of annotations per slide 2023-02-08 15:02:59 -03:00
Ramón Souza
f605ce7ae2 add comment 2023-02-02 16:59:38 -03:00
Ramón Souza
25800ee92b limits the number of annotations per slide 2023-02-02 16:47:16 -03:00
Anton Georgiev
6b4c46f750
Merge pull request #16107 from schrd/local-echo-delay
fix(audio): add delay for loopback test
2023-01-24 13:55:26 -05:00
Guilherme Pereira Leme
06519d81a2
changes in review
Co-authored-by: Gustavo Trott <gustavo@trott.com.br>
2023-01-24 08:20:01 -03:00
Daniel Schreiber
cc21f1598b Copy in fixups from review
thanks @prlanzarin for reviewing:
https://github.com/bigbluebutton/bigbluebutton/pull/16107#pullrequestreview-1241137609
2023-01-23 20:31:53 +01:00
GuiLeme
8dd5c12d8f [patch-default-configs-breakout] - refactor 2023-01-23 12:35:43 -03:00
Anton Georgiev
7e75a851eb
Merge pull request #16468 from GuiLeme/issue-16141
feat(config): Default values for checkbox in breakout rooms modal
2023-01-20 09:16:39 -05:00
Ramón Souza
58e36357d1
Merge pull request #16072 from Tainan404/remove-speed-bump-notes
fix: add delay for shared note true unmount
2023-01-19 11:51:19 -03:00
Ramón Souza
c666f9ecf4
keep "script" font as default 2023-01-18 08:25:32 -03:00
Tainan Felipe
4022d4a0f6 add delay for shared note true unmount 2023-01-17 14:50:41 -03:00
Daniel Petri Rocha
164f00187d Take disabledFeatures into account 2023-01-17 18:02:44 +01:00
Joao Victor
44896106b9 feat(whiteboard): configurable text tool font family 2023-01-16 08:40:42 -03:00
GuiLeme
21145a8e70 [issue-16141] - implemented new configs for checkboxes in breakout rooms modal 2023-01-13 17:37:42 -03:00
Anton Georgiev
3a74c2bec1 Merge branch 'v2.5.x-release' of github.com:bigbluebutton/bigbluebutton into merge-2510-to-26 2023-01-05 18:30:09 +00:00
Anton Georgiev
4504e5b846
chore: Updated the copyright year to 2023 2023-01-05 09:44:24 -05:00
Daniel Schreiber
4347ff2e3b Re-add option to disable enforce relay webrtc traffic for Firefox
There may be other bridges may not need to force relay traffic on
firefox as @prlanzarin pointed out. So set the default to a
configuration that works out of the box but leave other choices for the
operator.

The option is moved from kurento namespace to media next to the general
forceRelay option.
2023-01-03 23:21:25 +01:00
Daniel Schreiber
74f37db4fa Get rid of forceRelayOnFirefox
Firefox has a buggy ICE implementation and needs WebRTC media traffic to
be routed through a turn server to work reliably with mediasoup.

Use the information fetched by the STUN API to determine if the operator
has configured a turn server. If there is one force firefox to use it.

Closes #16164
2022-12-18 23:17:14 +01:00
Ramón Souza
55ae884f5f
Merge branch 'v2.6.x-release' into ask-before-leave 2022-12-06 09:04:28 -03:00
Ramón Souza
31f20b08b5 add max characters limit to sticky notes 2022-11-23 14:03:20 -03:00
Gustavo Trott
531241d269
feat: Button to transfer user to mobile App (#15183)
* Provide a link to transfer user to mobile App
* show menu option only if appStoreLink is present and it is not running on mobile app already
2022-11-15 09:49:24 -03:00
Gustavo Trott
50010ea528
Merge pull request #15894 from JoVictorNunes/shared-notes-on-media 2022-11-10 11:44:28 -03:00
Ramón Souza
cdc2bc7e04
Merge pull request #15770 from JoVictorNunes/store-webcam-microphone
improvement: share audio and video setup among different sessions
2022-11-09 10:37:52 -03:00
Daniel Schreiber
c42fa1ca77 Add config option for html5 settings storage
When BBB is run as a single node or in a scaleout setup with a cluster
proxy in front (see https://docs.bigbluebutton.org/admin/clusterproxy.html) it
is useful to store client settings in browser localStorage instead of
sessionStorage. If localStorage is configured then the client will keep seetings
like notifications for user joining, chat etc across meetings.

It is not advisable to set the setting to `local` in a setup of multiple BBB
nodes without a cluster proxy in front of it because this would lead to
unexpected behaviour at users. The browser would store settings for each server
and for users it would look like BBB is sometimes store the settings and
sometimes not.

It adds the new setting

```yaml
public:
  app:
    userSettingsStorage: (session|local)
```
2022-11-09 09:00:03 -03:00
Joao Victor
9680c0a5ab Add config for disabling the option 2022-10-27 17:04:12 -03:00
Lucas Fialho Zawacki
d53c8d90a2 Option to hide waiting users icon when no pending users 2022-10-14 15:20:06 -03:00
Lucas Fialho Zawacki
a2bc96fe35 Ask for confirmation before closing meeting window 2022-10-13 16:41:43 -03:00
Lucas Fialho Zawacki
d4a424c1e6 Option to hide waiting users icon when no pending users 2022-10-11 16:17:03 -03:00
Ramón Souza
045e2ec95d
Merge pull request #15740 from JoVictorNunes/issue-15712
fix: add config to disable emoji sort on click
2022-09-29 10:32:07 -03:00
Ramón Souza
e1095869c9
Merge pull request #15665 from ramonlsouza/add-locale-format
Support @ notation for localization files
2022-09-29 10:23:08 -03:00
Ramón Souza
6963bc0db4 Merge remote-tracking branch 'upstream/v2.6.x-release' into add-locale-format 2022-09-28 14:32:01 -03:00
Ramón Souza
a01049996b set disableWebsocketFallback default true 2022-09-27 16:23:27 -03:00
Joao Victor
862c9fb64d fix: add config to disable emoji sort on click 2022-09-27 15:47:39 -03:00
Ramón Souza
2b0971e2c8 Merge tag 'v2.5.6' into merge-256-26 2022-09-26 09:17:59 -03:00
Ramón Souza
f5b912d5ef move config to public.app 2022-09-21 13:16:25 -03:00
Ramón Souza
6d1463e03b add disableWebsocketFallback settings 2022-09-21 11:03:21 -03:00
Ramón Souza
ab50d4d60e add settings 2022-09-16 13:01:07 -03:00
Ramón Souza
83c9e644b1 add settings 2022-09-16 11:56:56 -03:00
Ramón Souza
c6c65c4aa0 add support to xx@xxxx localization files 2022-09-08 11:47:41 -03:00
Ramón Souza
4e46284a3b
Merge pull request #15603 from JoVictorNunes/camera-brightness
feat(camera): set camera brightness
2022-08-31 17:00:34 -03:00
Joao Victor
c7b4f8bc66 chore/fix: update react-intl to 6.1.0 and add config to disable fallback 2022-08-30 09:32:21 -03:00
Joao Victor
2dd5a73601 chore: update react-intl to 6.1.0 2022-08-29 17:25:43 -03:00
Joao Victor
396f5320a4 feat(camera): set camera brightness 2022-08-26 11:50:46 -03: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
Ramón Souza
9cfc3e7edd
Merge pull request #15343 from frankemax/dynamic-filter-emojis
feat(emoji-picker): dynamically filter emojis
2022-08-04 09:42:56 -03:00
Gustavo Trott
acb0465266
Merge pull request #15412 from JoVictorNunes/export-presentation 2022-07-26 17:49:09 -03: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
9642d0431a chore(captions): adds a description to settings 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
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
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
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
cff1c087a8 feat: front-end support for exporting presentations with annotations 2022-07-19 16:36:00 -03:00
prlanzarin
6a4ceac61f refactor(webcam): swap kurento-utils for the new peer wrapper 2022-07-15 14:00:12 +00: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
prlanzarin
f85442bc72 chore(audio): enable local echo test and volume meter by default
See https://github.com/bigbluebutton/bigbluebutton/pull/14736
2022-06-28 22:26:07 +00:00
Joao Victor
2a1401f2ae Merge remote-tracking branch v2.6.x-release into virtual-background-upload 2022-06-01 16:50:29 -03:00
Joao Victor
4840543701 fix: move config key to public.virtualBackgrounds (Settings.yml) 2022-06-01 14:23:00 -03:00
Max Franke
4cf98010a9 feat(message-form): add emoji button 2022-05-24 14:20:55 -03:00
Ramón Souza
32469846f8
Merge pull request #14989 from gabriellpr/emoji-chat
feat(chat): Auto convert text to emoji
2022-05-13 18:47:26 +01:00
Joao Victor
a7e5869c91 feat(video): upload of own webcam virtual background 2022-05-10 14:17:16 -03:00
Ramon Souza
0d3a5326fc Merge remote-tracking branch 'upstream/v2.5.x-release' into 25260-may10 2022-05-10 10:53:00 -03:00
gabriellpr
d97631cc40 auto convert to emoji 2022-05-10 09:47:51 -03:00
prlanzarin
e93176238a feat(audio): add sipjsAllowMdns option to control mDNS filtering in SIP.js
FreeSWITCH has mDNS resolution capabilities as of 1.10.7. Having the filtering
configurable in the client allows us to field trial whether we should keep that
on or off. The default is still to filter them out because FreeSWITCH does not
resolve mDNS candidates by default (ice_resolve_candidate in switch.conf.xml).
2022-05-06 13:38:44 +00:00
Mario Junior
dced094ad7
Merge pull request #14833 from lfzawacki/develop-bbb
New Layout code and push layout states for camera position, size, focus and presentation minize
2022-05-04 16:51:06 -03:00
Ramón Souza
50b3eceb46
Merge pull request #14912 from ramonlsouza/issue-14909
Breakout rooms: have multiple "remaining time" notifications
2022-05-03 13:12:54 +01:00
Joao Victor
34503251cf refactor: poll component - merge both auto optioning and file drag&drop into one single thing 2022-04-29 12:04:45 -03:00