Commit Graph

7959 Commits

Author SHA1 Message Date
Pedro Beschorner Marin
1aa7685dcc Refactor Etherpad API calls
Isolate most Pad related functions and secure shared notes and closed
captions creation to only when there is a reachable Etherpad server
configured.
2021-03-29 18:35:33 -03:00
Anton Georgiev
4e74fcf1b8 Updated versions of npm packages for bbb-html5 2021-03-18 19:30:11 +00:00
prlanzarin
d4d391b2c2 html5, kurento-utils: update js.merge to v2.1.1 (was v1.2.0) 2021-03-18 14:47:36 -03:00
prlanzarin
efd0ff2ff1 html5, kurento-utils: update UAParser to v0.7.24 (was v0.7.17) 2021-03-18 14:05:27 -03:00
Mario Jr
1a75800dd8 Observe both added and changed events when user joins
Depending on the sequence of events on the server, user sometimes is
added to the users collection with the name information, and sometimes this
information is updated in a second moment. Once we need the username
to show the push notification, we observe changes on this field for both
added and changed event.

Closes #11307
2021-03-10 16:34:43 -03:00
Anton Georgiev
acbdf831f2
Merge pull request #11601 from mariogasparoni/backport-11533-to-2.2
Fix audio and push alerts for user join
2021-03-10 07:56:47 -05:00
Mario Jr
9c92c14a6e Fix audio and push alerts for user join
When validating tokens, the dummyUser created at the beginning is set
with validated=true. This means there won't be the state change that used
to occur from validated:false to validated:true (which detects the moment
joined the meeting) , therefore the alert code that expects for this change
won't run.
To fix this for audio alerts, we now detect when user join by observing
additions in Users's collection. This is actually good because we start
observing this only once (in componentDidMount), differently we used to do,
by calling this every time the tracker was activated.

To distinguish between the user addition that initially populates user's
collection from those that happens after user join (which are the ones we
want), we store the initial state (at componentDidMount) and compare it
with new additions. If the user added is present at the initial state,
then it is an addition to populates the collection, otherwise this is a real
user addition (happened after user joined the meeting)

Partially fixes #11399
2021-03-09 21:40:27 -03:00
Mario Jr
3b6b9523fc Update breakout audio transfer states when user leave mic
When leaving audio/reconnecting , we must update breakout audio transfer
state.

Related to the issue #11333
2021-03-08 15:01:10 -03:00
Mario Jr
1c7c1d5076 Change breakout-audio-transfer-status function signature
We now update breakout'a audio transfer status by using an object
2021-03-08 14:55:15 -03:00
Mario Jr
ff6cba8d53 Store information about user status during breakout room audio transfer
Currently this information is lost everytime breakout-room component is
unmounted, causing the panel to shows wrong information during next renders
Fixes #11333
2021-03-08 14:55:05 -03:00
Mario Jr
209b06db2e Avoid setting an unknown input deviceId
Without 'exact' match, the browser fallbacks to the default inputDeviceId

This prevents the error (input device error)  when breakout is ended and we try
to skipCheck the microphone when user returns to main room (assuming the
user had the microphone active before joining breakout room).
2021-03-05 00:33:54 -03:00
Mario Jr
39780c6a50 Do not try to recover mute state when joining listenonly
Prevent toggleMute api call to be called for listenonly
This has no effect to the end user, but avoids unnecessary server calls
2021-03-05 00:23:20 -03:00
Mario Jr
c0625e2ee1 Cleanup joinedAudioOnly state when user disconnects or reconnect microphone
Fixes #11490
2021-03-05 00:06:19 -03:00
Mario Jr
e16566de9d Recover mute state for moderator when returning from breakout's audio transfer
Fixes #11489
2021-03-05 00:02:31 -03:00
Anton Georgiev
6c238dd240
Merge pull request #11537 from antobinary/backport-11477
Update handleClick condition (fix text-area for FireFox)
2021-03-02 15:02:02 -05:00
KDSBrowne
ccf12c268e update handleClick condition (fix text-area for FireFox) 2021-03-02 14:55:51 -05:00
Anton Georgiev
eba2d0ab58
Merge pull request #11535 from pedrobmarin/etherpad-patch
Rework padIds and turn bbb-web pad aware
2021-03-02 14:48:34 -05:00
Anton Georgiev
9848672775
Bumped up copyright year to 2021. Closes #11519 2021-03-02 14:20:27 -05:00
Anton Georgiev
382e661b92 disable customHeartbeat #10826 2021-02-24 13:00:59 -05:00
Mario Jr
2e92de8010 Clean up HTMLAudioElement used for notification sounds
After ending the notification playback, we set the ".src" property to null, which immediately stop the internal player of mobile browser (tested on Chrome for Android -  device list is on #11458).
For the specific list of devices, this prevents the internal buffer error "-61" described in #11458.
Fixes #11458.
2021-02-23 11:12:37 -03:00
Anton Georgiev
d5e7f5cf67
Merge pull request #11339 from basisbit/v2.2.x-release
Enable video-pagination and cameraQualityThresholds by default
2021-02-17 18:37:40 -05:00
Mario Jr
b7216dd100 Preserve mutestatus when disconnecting/reconnecting microphone
After audio reconnection, a muted user would have it's microphone unmuted by default, unless muteOnStart is set to true. This fix this problem.
Fixes #9016
2021-02-11 23:55:34 -03:00
Pedro Beschorner Marin
09b39a8d63 Add extra pad validation
Associate pads with meetings so session validation is restricted to the
meeting's valid session tokens.

Meteor will dispatch new redis events on shared notes and closed captions
pads creation. This event will go through apps and reach web to populate
a new meeting's pad collection that contains all valid pad id's for that
session. Nginx will use this collection to check if the user's session token
belongs to the pad's authorized users.

Besides these modifications, an extra change will be needed at notes.nginx.
Location /pad/p/ needs to change it's auth_request:

from /bigbluebutton/connection/checkAuthorization;
to /bigbluebutton/connection/validatePad;
2021-02-10 13:37:04 -03:00
Anton Georgiev
fa89646188
Merge pull request #11363 from lfzawacki/insecure-video-urls
Don't validate insecure http urls for external video to prevent browser errors
2021-02-09 14:04:12 -05:00
Lucas Zawacki
7216619811 Don't validate insecure http urls for external video to prevent browser errors 2021-02-09 15:24:21 -03:00
Joao Siebel
0e79203119 Clear screenshare collection when meeting has ended while screensharing 2021-02-09 14:26:43 -03:00
Pedro Beschorner Marin
c0a7f9cd92 Replace FNV32a pad's id generator with salted SHA1
When managing Etherpad's pads, Meteor makes API calls to initiate the closed captions
and shared notes modules. The pad id was being mapped to a shorter id than the meeting
id because of a Etherpad lenght limitation.

Changed to something less guessable.
2021-02-09 12:59:59 -03:00
Anton Georgiev
6b3c97037f Clear meeting-time-remaining collection 2021-02-09 11:23:51 -03:00
Joao Siebel
2eb8abcba9 Clear guestUsers, voiceCallStates and whiteboard-multi-user collections on meeting end 2021-02-09 09:30:09 -03:00
basisbit
d5c9cc38e7
disable video-pagination for desktop view users by default
also adjusted moderator mobile video-pagination as suggested by @prlanzarin
2021-02-08 18:13:26 +01:00
basisbit
5af1f1cd81
Enable video-pagination and cameraQualityThresholds by default
One of the main issues in 2.2.x problem reports currently in the wild in social media and in the bbb admin groups seems to be that people turn a couple of webcams on and the clients or the server already can't handle it any more. In most cases, enabling video-pagination for mobile devices and also cameraQualityThresholds already "solves" the problem and makes it possible for much more students to attend online-class as well as raise acceptance of using BBB instead of other commercial services.
Even after promoting these new settings for weeks, many BBB operators still don't know of them and are surprised and happy once they enable it.
This change contians rather high values so that admins see that these features exist, but typical use cases which might not want video-pagination enabled (typical 28people school class) are still not "annoyed".
2021-02-08 15:44:01 +01:00
Anton Georgiev
abb44a7949 Set default cursorInterval to 150ms (was 40ms) 2021-01-28 09:42:36 -05:00
Anton Georgiev
b2c702417c
Merge pull request #11216 from werk21/9101_add_poll_abstention
9101 add poll abstention
2021-01-27 11:57:15 -05:00
Anton Georgiev
aae4d1567d
Merge pull request #11232 from prlanzarin/u22-lv521012021
video-provider: fix inconsistent client state when a webcam being shared times out
2021-01-27 11:29:16 -05:00
Anton Georgiev
28eb93ebaa
Merge pull request #11244 from antobinary/bbb-11197
Update axios to 0.21.1
2021-01-27 11:24:50 -05:00
Anton Georgiev
07b4142a27 update axios to resolve security vuln 2021-01-27 11:19:59 -05:00
Joao Siebel
31552f6c78 Add heapdump threshold in settings 2021-01-27 11:04:49 -03:00
Anton Georgiev
12a6b73ba0
Merge pull request #11240 from antobinary/bbb-11197
Prevent open textarea blocking dropdown menus
2021-01-26 17:16:03 -05:00
KDSBrowne
47e2f12b74 prevent open textarea blocking dropdown menus 2021-01-26 17:13:18 -05:00
Anton Georgiev
991d978f77
Merge pull request #11230 from prlanzarin/u22-poodlepower25012021
audio: fix talking-indicator mute debounce
2021-01-26 16:55:10 -05:00
Anton Georgiev
e2f821d780
Merge pull request #11229 from prlanzarin/u22-revert10912
video-provider: Revert "Improve 16x9 Support"
2021-01-26 16:51:03 -05:00
Anton Georgiev
28fc33462d
Merge pull request #11228 from prlanzarin/u22-frameshift26012021
video-provider: make video-list-item actions dropdown keys unique
2021-01-26 16:50:01 -05:00
Anton Georgiev
5e365d138f
Merge pull request #11231 from prlanzarin/u22-drc25012021
audio: add a configurable throttle to action-bar`s mute toggle
2021-01-26 16:49:13 -05:00
Mario Jr
b753ef5d8d Fix wrong path in settings for audio constraints
Using now 'application' instead of old 'audio' path
2021-01-26 14:12:18 -03:00
prlanzarin
c57941dbdb video-provider: make video-list-item actions dropdown keys unique
When multiple actions were bolted in the dropdown (mirror, focus), keys were getting duplicated with cameraId. Make them unique based on the action`s name
2021-01-26 12:32:27 -03:00
prlanzarin
32e7ddeaf7 Revert "Improve 16x9 Support"
This reverts commit b8fc94c722.
2021-01-26 12:03:11 -03:00
prlanzarin
c37c3d0c7b video-provider: fix inconsistent client state when a webcam being shared timed out (1020)
Recent fix to the stop all cameras behaviour exposed a bug where the local camera connecting state wasnt being cleared up when a camera timed out before being successfully shared
2021-01-26 11:49:39 -03:00
prlanzarin
234efd289a audio: add a configurable throttle to action-bar`s mute toggle
Default value is 300ms, with default trailing/leading. Set toggleMuteThrottleTime to 0 to restore old behaviour
2021-01-26 11:47:48 -03:00
prlanzarin
a8f817555d audio: fix talking-indicator mute debounce
The debounce method argument was being passed wrong (its supposed to be a method, not a function call), thus spewing exceptions in the console and rendering the debounce virtually ineffective
2021-01-26 11:44:45 -03:00
Mario Jr
7858ba94ba Avoid setting empty/undefined constraint
This removes the console warning about invalid constraint
2021-01-25 23:45:27 -03:00