Commit Graph

4902 Commits

Author SHA1 Message Date
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
Mario Jr
97c76900cb Add setting for enabling/disabling microphone audio filters
As explained in #11143, disabling audio filters is desired in some scenarios.
This basically adds an option for user to disable default constraints.
When user doesn't change this value in Settings > Application, the default
value for each audio constraints is retrieved from settings.yml.
When user changes this value in Settings > Application, audio
filters (AGC, Noise Supression and Echo Cancellation) are all set to
true/false, according to the value selected in the Settings GUI.

To start it simple, we decided to not to add a different setting in the GUI for
each audio contraint. This may be added in the future, though (perhaps in a
dedicated Audio Settings tab)
This is related to #4873
2021-01-22 16:30:42 -03:00
Joao Siebel
bb831e0442 Modify throttle interval to be a const variable 2021-01-21 14:05:59 -03:00
Joao Siebel
8f36ac3586 Add throttle to startUserTyping function 2021-01-21 13:05:41 -03:00
Joao Siebel
fa0fd8a054 Add configurable process interval for cursor and annotations 2021-01-20 11:36:40 -03:00
Anton Georgiev
0ba3aa713a
Merge pull request #10912 from lkiesow/16x9
Improve 16x9 Support
2021-01-18 16:05:01 -05:00
Pedro Beschorner Marin
cc9b552e2a Fix stream stop for multiple webcams
Video provider's service for local stream control was wrongly setting the disconnected
state when a multiple webcam user tried to stop a single cam. The `stopVideo` method
was inconsistent when called multiple times for the same `cameraId`.

Included a better testing scope for event dispatching and disconnected state handling.
2021-01-12 13:24:40 -03:00
Pedro Beschorner Marin
4e370d28ec Add timeout at video's preview modal
Some browsers seem to (occasionally) not return the getUserMedia promise call and the
user gets stuck in this state unable to share her/his webcam.

Since enumerateDevices still works even on a gUM rejection this includes a racing
timeout that skips gUM. Configured at settings `gUMTimeout`.

Reproduced with Windows 10 Chrome 87.
2020-12-22 20:10:19 +00:00
Pedro Beschorner Marin
c8ace18f85 Enumerate devices even if first getUserMedia fails
The first getUserMedia was not supposed to be considered critical to the whole
video preview flow.

Scenarios where the user has multiple media sources and one of them was already
in use or had some malfunction problem were forcing a global skip at the video
preview modal even if one of them was available to be used.
2020-12-22 19:26:28 +00:00
Pedro Beschorner Marin
f6217308dd Refactor video preview getUserMedia preview error handler 2020-12-22 19:26:23 +00:00
Pedro Beschorner Marin
dced6bd2b8 Add missing getUserMedia errors
Collected from https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia
2020-12-22 19:25:48 +00:00
Pedro Beschorner Marin
62d491c8e4 Refactor video preview getUserMedia device error handler 2020-12-21 20:54:21 +00:00
CristianSilvaGrosseli
0c4f903c39 use placeholder in the logger.error method return in the video-preview component. fix wrong file permission. 2020-12-21 20:53:56 +00:00
CristianSilvaGrosseli
d8ed8f2570 use correct pattern in video-preview's handleGUMError method. 2020-12-21 20:53:12 +00:00
CristianSilvaGrosseli
ffd1063332 video-preview component's handleGUMError method rehabilitation. 2020-12-21 20:52:15 +00:00
Anton Georgiev
6d258ac223
Merge pull request #10925 from lkiesow/mirror-cameras
Allow mirroring individual webcams
2020-11-30 11:14:22 -05:00
Lars Kiesow
74efe8735b
Allow mirroring individual webcams
BigBlueButton already allows mirroring the users own webcam as a global
setting set by administrators. Users have no way of choosing this on
their own.

This patch turns this functionality into a user setting for all webcams.
Every camera menu now gets a “mirror” entry.

The global setting is still used as a default value, keeping the current
behavior as it is to not confuse users.
2020-11-29 20:54:01 +01:00
Lars Kiesow
b8fc94c722
Improve 16x9 Support
This is a very simple patch improving the support for 16x9 cameras.

In mixed mode – if 4x3 and 16x9 cameras are present – everything looks
like it did before but if only 16x9 (or wider) cameras are present,
BigBlueButton will drop the letter boxes and show a 16x9 video
container.
2020-11-27 01:28:21 +01:00
Lucas Zawacki
7c704c78c1 PeerTube player, first version 2020-11-26 17:33:08 -03:00
Mario Jr
9a2fcd27e0 Revert "Prevent Error 1006 when user has two or more occurrences of ':' (colon) in your name"
This reverts commit 0a601359bb.
2020-11-20 00:23:43 -03:00
Anton Georgiev
dedaea5ad2 who-is-talking - do not allow mute in breakouts 2020-11-19 14:14:37 -05:00
Mario Jr
8822819900 Filter 'name' field in user's search
This is a part of #10848, as discussed in https://github.com/bigbluebutton/bigbluebutton/pull/10848#discussion_r525480434
2020-11-18 10:40:15 -03:00
Mario Jr
0a601359bb Prevent Error 1006 when user has two or more occurrences of ':' (colon) in your name
This happens because FreeSWITCH is not able to parse the "From" header when it has multiple occurrences of ':'. So user is not able to join audio.
To fix, we now changed the "callerId" to use the base64 value of the user name, instead of directly using user's input (the callerId format keeps being a triple like this: <user_id>-bbbID-<base64_encoded_name>).
Once this callerIdName is encoded at the same point it is generated, there shouldn't be server side effects for changing this value; except for those places where the callerName is retrieved by splitting this triple (such as the voice talking-indicator, as described below).
Updated the talking-indicator to retrieve the username from User's object, instead of retrieving from the one username generated by splitting the callerId triple.
This problem also happens in versions <= 2.2.26.
2020-11-17 15:31:43 -03:00
Mario Jr
1b1a055d37 Fix audio modal buttons (MIC/LISTEN) not working after audio error
When user joins audio and for some reason an error (such as 1001, 1002,...), happens, the user is not able to click "Mic" and "Listen Only Buttons"; except if the audio window is closed and oppened again.
2020-11-17 15:31:42 -03:00
Fred Dixon
97da7d6023
Merge pull request #10704 from KDSBrowne/2.2-upload-modal-error-bound
Add error boundary to presentation upload modal
2020-11-06 16:40:50 -05:00
Richard Alam
e28bba42fc
Merge pull request #10742 from KDSBrowne/2.2-issue-10705
Prevent users from sending multiple votes per poll
2020-11-06 16:33:56 -05:00
KDSBrowne
7c690ab22c fix presentation downloadable tooltip msg 2020-10-30 13:00:07 +00:00
KDSBrowne
d2cb02b3bd prevent users from being able to send more than 1 poll vote 2020-10-28 18:33:09 +00:00
Zh4rsiest
3f13f4eca4 Changing isIphone value
The component expects a boolean but isIphone property return an array ["Iphone"] if the user is from an iPhone
2020-10-23 12:37:43 -03:00
Zh4rsiest
1b7a672a1b Updating variables in container
They both return an array with ["Iphone"] if you're from an iphone but the component expects bool variables.
2020-10-23 12:37:18 -03:00
KDSBrowne
e116396481 add error boundry to presentation upload modal 2020-10-22 13:00:09 +00:00
Lucas Zawacki
7efcd3b87e Dont include extra dot in instructure media url 2020-10-21 14:00:51 -03:00
Anton Georgiev
70eb028da9
Merge pull request #10667 from jfsiebel/improve-streamer-and-error-logs
Improve annotations and cursor streamer logs
2020-10-16 14:42:05 -04:00
Joao Siebel
109c18beb0 Improve annotations and cursor streamer logs, also add a type info for some logs in authentication process
and rollback some attempts to fix multiple leaving end call.
2020-10-16 10:30:50 -03:00
Mario Jr
df67d2e680 Better handling audio reconnection
When getting disconnected with 1001 ("websocket closed unexpectedly" error) we were creating a new SIP session, therefore a new FreeSWITCH channel.
While reconnecting the socket, instead of closing the SIP session, we keep it alive during reconnection (audio should keep working in the meantime). When reconnected we keep using this same session (avoiding the creation of an extra one).
We also better handle WebSocket error codes from SIP.js.
FF immediately closes websocket when unloading page, so we now to stop user agent when 'beforeunload' event is triggered, to avoid leaving open sessions in FreeSWITCH when user leaves page.
2020-10-15 11:24:23 -03:00
Fred Dixon
0ae5d29b25
Merge pull request #10625 from lfzawacki/v2.2.x-release
Make instructuremedia regexp more general
2020-10-09 17:15:01 -04:00
Anton Georgiev
1ee7946d38
Merge pull request #10615 from antobinary/09-30-libs
Added allowDefaultLogoutUrl config to optionally ignore non-custom logoutUrl
2020-10-09 17:14:36 -04:00
Anton Georgiev
e200cba6c8 utilize a simpler way to drop the protocol for comparison 2020-10-09 17:10:12 -04:00
Lucas Zawacki
19d24cbb60 Make instructuremedia regexp more general 2020-10-09 18:09:35 -03:00
Anton Georgiev
1ffad034f7 Revert "compare the true URLs, ignore protocols"
This reverts commit 3bb6b70d90.
2020-10-09 16:54:34 -04:00
Anton Georgiev
3bb6b70d90 compare the true URLs, ignore protocols 2020-10-09 14:30:41 -04:00
Anton Georgiev
adcb05b1ec
Merge pull request #10612 from jfsiebel/improve-logs
Improve  log in/authentication logs
2020-10-09 13:43:09 -04:00
Anton Georgiev
bf555dc047
Merge pull request #10564 from KDSBrowne/2.2-publishVote-error
Fix exception while invoking method 'publishVote'
2020-10-09 13:36:21 -04:00
KDSBrowne
9827664efc fix textArea width / height sent from client 2020-10-09 14:20:22 +00:00
Anton Georgiev
41cab38e87 Added allowDefaultLogoutUrl config to optionally ignore non-custom logoutUrl 2020-10-08 05:15:05 -04:00
Anton Georgiev
38b51ea359
Merge pull request #10561 from antobinary/09-30
[Backport] Allow Samsung and Yandex browsers
2020-10-07 15:50:26 -04:00
Joao Siebel
14388ec922 Improve logs for a better debug/understanding of problems related to authentication and log in process 2020-10-07 16:50:17 -03:00
Pedro Beschorner Marin
6b87491796 Check if DOMMatrix exists before cursor coordinate transform
Cursor coordinates are calculated using the presentation SVG object
DOMMatrix. When getting this matrix, some browsers (Firefox at least)
responds it as null if the svg object does not have a visible area.

This adds a check before trying to transform the cursor coordinates
using the matrix inverse so we avoid calling a method from a null object.
If there isn't a DOMMatrix to be used as reference, returns a simple out of
bounds SVGPoint (-1, -1)
2020-10-07 15:07:23 -03:00
Anton Georgiev
e65498e978
Merge pull request #10602 from KDSBrowne/2.2-sharecam-sr-label
Fix share webcam button label for screen readers
2020-10-07 09:04:32 -04:00
Anton Georgiev
1363f8e1e5
Merge pull request #10607 from pedrobmarin/breakout-join-audio-ui
Fix the UI state on breakout room audio join
2020-10-07 09:02:10 -04:00