Commit Graph

6360 Commits

Author SHA1 Message Date
Mario Jr
7858ba94ba Avoid setting empty/undefined constraint
This removes the console warning about invalid constraint
2021-01-25 23:45:27 -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
Paulo Lanzarin
1f3d487ecc
Merge pull request #11142 from pedrobmarin/fix-multiple-webcam-stop-all
Fix stream stop for multiple webcams
2021-01-12 17:35:10 -03:00
Mario Jr
92708da447 Allow audio constraints to be changed in bbb-html5's settings.yml
In some scenarios, there's no need for the browser to apply such audio filters. For example, when user's microphone already does audio filtering (echo cancellation, noise supression ...).
This commit doens't change the current behavior (filters still follow browser's default config): admins need to uncomment/set these values if disabling/enabling specific filters if desired.
This is related to #4873
2021-01-12 14:42:27 -03: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
Joao Siebel
3ad269c24c Check if metrics are enabled 2020-12-15 16:20:32 -03:00
Joao Siebel
c5b8f30f5d Add option to generate heapdump file and improve metrics 2020-12-15 13:10:39 -03:00
Anton Georgiev
9a04087c12
Merge pull request #11006 from mariogasparoni/v2.2.x-release
Add keep alive message to audio's websocket
2020-12-11 10:41:33 -05:00
Joao Siebel
b07b200a2f Prevent calling function when parameters are undefined 2020-12-11 11:24:03 -03:00
Mario Jr
6113113af9 Add option to disable traceSip logs
Audio client logs already cover audio session progress the way we need.
This avoids keepAlive and other unnecessary messages to be logged in browser's console.
If setting is not present, default value is set to false.
2020-12-11 00:31:10 -03:00
Mario Jr
c65fa2b350 Add keep alive message to audio's websocket
This was added as an option (websocketKeepAliveInterval), which is the interval to send keep alive messages.
Setting websocketKeepAliveInterval to 0 disables the keep alive, producing the same old behavior.
This helps avoid websocket disconnection due to socket inactivity, preventing it to unnecessarily reconnect.
Also, sometimes reconnect fails and error 1005 is triggered.
Fixes problems reported in #10985.
Also reduces occurrences of error 1005.
2020-12-10 23:48:01 -03:00
Joao Siebel
ec2cb2dbde Chek for queueMetrics 2020-12-10 14:07:46 -03:00
Joao Siebel
5b0d6c59e6 Code clean up 2020-12-10 14:05:22 -03:00
Joao Siebel
e9d05454ea Remvoe console 2020-12-10 13:52:25 -03:00
Joao Siebel
bf5a45d303 Create Metrics class 2020-12-10 12:07:06 -03:00
Joao Siebel
d6a1f1a454 Change processing start time 2020-12-09 15:06:25 -03:00
Joao Siebel
029c42c1e5 Add processing time metrics 2020-12-09 14:24:41 -03:00
Anton Georgiev
675d440fa6
Merge pull request #10996 from jfsiebel/fix-sync-chat-msgs
Prevent exception when there is no message to sync
2020-12-09 11:30:09 -05:00
Anton Georgiev
a97bb541af
Merge pull request #10945 from prlanzarin/u22-lov18102020
[listenonly] Rewrite SFU/Kurento listen only bridge
2020-12-09 11:29:07 -05:00
Joao Siebel
dd8c3fafc1 Prevent exception when there is no message to sync 2020-12-09 10:33:01 -03:00
prlanzarin
d6fdd79412 sfu-base-broker: add beforeunload listener to avoid logging false positive errors 2020-12-08 20:19:03 +00:00
Joao Siebel
b532673691 Move metric function 2020-12-08 10:49:07 -03:00
Joao Siebel
0ec8576209 Fix multiple write listeners 2020-12-08 09:37:59 -03:00
Joao Siebel
829591ffc7 Implement redis metrics object 2020-12-07 17:57:33 -03:00
Joao Siebel
fc1b06c3e7 Add try/catch in custom send function 2020-12-03 15:07:24 -03:00
Joao Siebel
5d95e5ca1d Add try/catch to heartbeat function 2020-12-02 16:43:34 -03:00
Joao Siebel
d9a046fba9 Log uncaught errors in node 2020-12-02 16:06:42 -03:00
Anton Georgiev
a5ea33b2b8
Merge pull request #10934 from jfsiebel/throttle-bulk-add-msg
Add bulk chat message insert and optimize chat message insert
2020-12-01 15:28:13 -05:00
prlanzarin
218c6a6549 [audio-manager] Add bridge name to callback logging and fix listen only audio exit 2020-12-01 18:24:24 +00:00
prlanzarin
1bef5f37a6 [sip.js] Annotate every audio-manager callback call with a bridge name identifier
Useful when parsing logs to split errors by bridge type
2020-12-01 18:23:14 +00:00
prlanzarin
338e8f8291 [listenonly] Rewrite listen only SFU/Kurento bridge
Fixed listen only reconnection handling

Added proper error handling; now all errors have proper mapped codes which are funneled through to audio-manager logger and should be easier to gauge types of errors

Fixed botched reconnection error rejection, audio modal shouldnt be stuck anymore when it fails

Remove every tie that listen only bridge had to kurento-extension
2020-12-01 18:19:31 +00:00
prlanzarin
0077a83ef5 [html5/webrtc] Add a centralized util to load and play a media element with proper error handling
To be used with bbb-webrtc-sfu based media brokers
2020-12-01 18:10:17 +00:00
prlanzarin
a7559a6b7d [listenonly] Add new SFU listen only negotiation broker
A replacement to the old kurento-extension script which is to be considered legacy code
2020-12-01 18:09:10 +00:00
prlanzarin
a49aa0a1ca [html5/webrtc] Added proper error handling in bbb-webrtc-sfu base broker
Moved bbb-webrtc-sfu utilitaries to properly named folder

Logging improvements to base broker

Added onerror/onstart/onended callback interfaces to base broker
2020-12-01 18:06:50 +00:00
prlanzarin
b86b7323e7 [html5/webrtc] Add base class for an isolated webrtc-sfu signalling broker
Extracts most of the common bbb-webrtc-sfu WebSocket setup, handshaking and message broker procedures that was scattered among HTML5 components (video, screenshare and listen only) into a base class suitable for inheritance
2020-12-01 17:13:34 +00:00
prlanzarin
9875876b5e media: add a webrtc service utilitary to propagate peer state changes 2020-12-01 17:12:39 +00:00
Anton Georgiev
e62710298d
Fix typo 2020-11-30 15:59:12 -05:00
Joao Siebel
c0f42a3c07 Add missing semicolon 2020-11-30 17:11:57 -03:00