Commit Graph

115 Commits

Author SHA1 Message Date
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
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
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
prlanzarin
218c6a6549 [audio-manager] Add bridge name to callback logging and fix listen only audio exit 2020-12-01 18:24:24 +00:00
Mario Jr
a7ab00e3e9 Fix wrong skipCheck handling
We now let sip.js handle getUserMedia calls, same should happen when skipCheck is active.
Solves #10652.
2020-10-14 23:30:08 -03:00
Mario Jr
e9e436378a Correctly set audio input/output devices
When refusing ("thumbs down" button) echo test, user is able to select a different input device. This should work fine for chrome, firefox and safari (once user grants permission when asked by html5client).
For output devices, we depend on setSinkId function, which is enabled by default on current chrome release (2020) but not in Firefox (user needs to enable "setSinkId in about:config page). This implementation is listed as (?) in MDN.
In other words, output device selection should work out of the box for chrome, only.
When selecting an outputDevice, all alert sounds (hangup, screenshare , polling, etc) also goes to the same output device.
This solves #10592
2020-10-06 20:37:55 -03:00
Mario Jr
619ffa0ec1 Port SIP.js to 0.17.1 release
This considerably changes the way we process audio signaling and start audio elements in user's browser.
We now avoid using AudioContext element for both microphone and listenonly calls, once it is unstable for some iOS devices (cracky audio, user stops hearing audio after a while).
Increased default value for listenOnlyCallTimeout: this avoids activating FreeSWITCH's fallback when ICE negotiation takes longer than 15sec (tested on DO).
Increased listenonly logs.
This fixes #8133 #10388
2020-09-25 20:26:22 -03:00
prlanzarin
b0ccaf330f audio-manager: shortcut on setSenderTrackEnabled when in listen only mode 2020-09-11 23:06:56 +00:00
prlanzarin
e994680e14 audio-manager: refactor client-side mute/unmute 2020-09-10 14:50:50 +00:00
prlanzarin
2315208887 Remove explicit mute/unmute calls from toggle and leave them only for the voice state tracker
Should increase client-server mute state consistency
2020-09-09 18:08:11 +00:00
prlanzarin
59221530df Add a client-side mute via the sender track corresponding to the mute state
The mic mute is done client side via the track`s enabled flag, which generates silent when false. This still tracks the server/freeswitch mute state, so server-side mutes will be reproduced in the client
2020-09-09 17:03:27 +00:00
Pedro Beschorner Marin
0971edfcb6 Include voice user's upsert to changes observer
We noticed that the mute action button wasn't being consistent when
using muteOnStart as meeting configuration.

Included the addition of the voice user object to the collection as
an event to also be observed.
2020-08-26 18:37:04 -03:00
prlanzarin
dac3259c48 Merge remote-tracking branch 'pedrobmarin/bbb-multiple-webcams' into upstream-2.2-vpeg-base 2020-08-05 14:20:58 +00:00
prlanzarin
1dbafffa26 audio: make listen only call timeout configurable 2020-07-09 18:02:18 +00:00
Anton Georgiev
ff1357cbbd
Revert "Improve audio reconnection for muted users for 2.2" 2020-06-22 16:28:22 -04:00
Anton Georgiev
16189780c8
Update bigbluebutton-html5/imports/ui/services/audio-manager/index.js 2020-06-19 16:58:41 -04:00
Tainan Felipe
9fa1986611 Add implicit toggle for toggle voice call 2020-06-19 17:07:11 -03:00
Tainan Felipe
e540d6e46d set user as muted in audio reconnection 2020-06-05 09:41:48 -03:00
Pedro Beschorner Marin
5c71e2d0bb Included new getStats monitor for audio and video 2019-12-10 09:07:06 -03:00
Chad Pilkey
7218f36e44 listen only logging improvements 2019-12-02 14:15:46 -08:00
Anton Georgiev
2d2c09e914 Replaced "Audio Error" with a template literal of the error 2019-11-27 13:47:40 +00:00
prlanzarin
b52214f0b5 Make some imports use absolute paths
Some more linting as well
2019-11-14 19:07:35 +00:00
prlanzarin
215f79f383 Account for mDNS candidates on gUM fallback for recvonly peers
Also added some client logging for those cases

Moved video-provider gUM fallback detection to be used only on recvonly streams
2019-11-14 16:35:56 +00:00
KDSBrowne
4fd06509e4 fix chrome on ios error being displayed incorrectly 2019-10-01 14:28:06 +00:00
KDSBrowne
89853dc026 move microphone error codes to const 2019-09-30 14:54:34 +00:00
KDSBrowne
636f49cd5d add error messages for getUserMedia failing with mic 2019-09-27 13:52:29 +00:00
Chad Pilkey
f471b1e2b9
Merge pull request #8072 from prlanzarin/2.2-abort-play
Fixes to client-side screenshare/listen only code and log improvements
2019-09-06 18:37:22 -04:00
prlanzarin
c8a88148e1 Improve log message for screenshare/listen only/autoplay and harden media play with retries 2019-09-06 18:58:22 +00:00
Chad Pilkey
35595a18ba fix microphone failure code 2019-09-06 09:35:55 -07:00
Chad Pilkey
304bb2c103
Merge pull request #8030 from antobinary/chat-ids-2
Reduced client load via slight refactor
2019-09-05 13:23:37 -04:00
Chad Pilkey
b33e247f44 change audio error code log property 2019-09-04 11:16:14 -07:00
Anton Georgiev
892336632f added "fields:{...}", removed most mapUser 2019-08-28 16:32:55 -04:00
prlanzarin
8d65ce565d Add UI prompts when autoplay is blocked for video/screenshare/listen only 2019-08-02 21:32:42 +00:00
KDSBrowne
afcc2095a4 remove capitalization from webkitAudioContext 2019-07-26 14:52:39 +00:00
KDSBrowne
4fba9978d3 add audio logs (join/leave/mute/unmute) / fix lint issues 2019-07-25 18:41:24 +00:00
Anton Georgiev
b74d3d9bb0 correct logger.warning to .warn 2019-07-02 16:54:10 +00:00
Anton Georgiev
3fcb95ab44 log structure {logCode, extraInfo}, comment 2019-06-28 21:45:50 +00:00
Fred Dixon
2c617fed7b
Merge pull request #7610 from capilkey/ipv4-audio-fallback
IPv4 FS audio fallback, auto-reconnect, and fixed input select
2019-06-12 19:41:15 -04:00
Chad Pilkey
cc7513279e IPv4 FS audio fallback, auto-reconnect, and fixed input select 2019-06-12 21:01:20 +00:00
Chad Pilkey
854aa8019b bump audio leave log level 2019-06-04 11:16:43 -07:00
Anton Georgiev
12eefb7785 pass additional properties in logline 2019-04-17 19:40:08 +00:00
KDSBrowne
fcbbd0dab5 add default icon parameter to notify() 2019-04-12 13:55:14 +00:00
KDSBrowne
b91229e393 add fix for issue #7096 2019-04-11 22:53:57 +00:00
Anton Georgiev
8380875e70 remove Verto code 2019-03-08 19:41:19 +00:00
Chad Pilkey
89b8189087 html5 sipjs bridge has useful errors now 2019-02-20 13:58:37 -08:00
Maxim Khlobystov
b86a990612 Add logCode and build number to log messages 2019-02-01 14:12:06 -05:00
gustavotrott
c21bb693b4 Store in session if can generate ice candidates, change timeout to 5secs, display error msgs 2019-01-14 22:45:32 -02:00
Gustavo Trott
a875b0b386 Undo changes in askDevicesPermissions 2019-01-14 12:41:44 -02:00
Gustavo Trott
fdf50b3ab7 Validade if Safari can send ICE Candidates before open RTC to receive video 2019-01-10 21:24:25 -02:00
Gustavo Trott
219cad3234 Verify if Safari can generate iceCandidates else askDevicesPermission 2019-01-10 19:25:23 -02:00