Commit Graph

712 Commits

Author SHA1 Message Date
Joao Victor
380e2009d3 fix: unexpected blurred effect 2021-12-03 09:49:32 -03:00
Ramón Souza
16fd642e33 interrupt connection proccess if audio modal is closed 2021-12-03 11:45:07 +00:00
prlanzarin
da6ab02122 chore: add forceRelayOnFirefox option (false by default)
- forceRelayOnFirefox: whether TURN/relay usage should be forced to work
around Firefox's lack of support for regular nomination when dealing with
ICE-litee peers (e.g.: mediasoup).
  * See: https://bugzilla.mozilla.org/show_bug.cgi?id=1034964
- iOS endpoints are ignored from the trigger because _all_ iOS browsers
  are either native WebKit or WKWebView based (so they shouldn't be affected)
2021-11-30 20:31:12 +00:00
Maxim Khlobystov
b7cf670aec Remove the support for iframe postMessage API (recording and self-muting) 2021-11-29 22:53:12 +00:00
João Victor
0a80af51d9 fix: settings state restore 2021-11-25 10:22:53 -03:00
Anton Georgiev
5162b4c403
Merge pull request #13679 from JoVictorNunes/issue-13241
fix: virtual background not kept when switching from breakout to main room
2021-11-19 15:11:21 -05:00
João Victor
6524f70941 support for storing multiple virtual backgrounds 2021-11-19 08:10:24 -03:00
Anton Georgiev
542db847ff
Merge pull request #13574 from Tainan404/smooth-reconnection-25
Improve data structure to not break on reconnections
2021-11-17 15:55:21 -05:00
Ramón Souza
4207502db1 remove unused imports/exports 2021-11-17 12:26:26 +00:00
Mario Jr
9578efbcd3 fix(audio): prevent audio to hang when user is transferred to breakout room
When joining breakouts, we now wait for the bridge to be loaded before
automatically start user's audio.
This problems happens only on fullaudio bridge
2021-11-09 15:04:10 -03:00
Mario Jr
a719f8f5e4 fix(audio): update fullaudio bridge according to sonar's checks 2021-11-09 12:10:44 -03:00
Mario Jr
70815fad4f feat(audio): add meta param for selecting fullaudio bridge
This can be passed through API. For example, for setting fullaudio bridge, you
can pass the param "meta_fullaudio-bridge=fullaudio"
2021-11-09 12:09:36 -03:00
Mario Jr
f9dbefe764 feat(audio): basic funcionality for fullaudio bridge
This commit allows user to join/leave audio using the fullaudio bridge.
This is still under development, but to use this now we must set values of
skipCheck to false, and defaultFullAudioBridge to fullaudio. This
depends on newest version of bbb-webrtc-sfu
2021-11-09 12:09:18 -03:00
Mario Jr
42778adeaf feat(audio): add base code for fullaudio bridge
This bridge will work with bbb-webrtc-sfu to handle microphone audio.
2021-11-09 12:08:45 -03:00
Mario Jr
cf2d595f12 fix(audio): correctly retrieve Object class from bridge module 2021-11-09 12:08:31 -03:00
Mario Jr
5c85f4c5b2 fix(audio): promisify loadBridges function
New bridges were being loaded with undefined value, since we didn't
wait for this to fully load before instantiating it
2021-11-09 12:08:25 -03:00
Mario Jr
86ef834476 fix(audio): bridges can be dynamically imported
Added bridge whitelist , to allow bridge modules to be dynamically imported.
2021-11-09 12:08:18 -03:00
Mario Jr
7e218c3eca feat(audio): add bridge configurable scheme
we are now able to switch between audio bridges, by selecting it in
config files.
2021-11-09 12:08:09 -03:00
Mario Jr
b70e330109 Merge branch 'develop' into allow-chrome-in-ios 2021-11-03 14:39:44 -03:00
Tainan Felipe
f5eef03f3f Improve data structure to not break on reconnections 2021-11-03 14:37:54 -03:00
Tainan Felipe
3e7d88586e Enhances authToken validation to solely use Meteor.call 2021-10-28 15:16:16 -03:00
Mario Jr
c1c0a2341f Merge branch 'develop' into allow-chrome-in-ios 2021-10-28 13:38:18 -03:00
Mario Jr
35cac1eb8e fix(video): typo in iOS detection
No big problems caused by typo so far, once isSafari flag was being used
to validate supported devices (safari is always used in iOS)
2021-10-27 11:28:52 -03:00
Anton Georgiev
1622425cbc Merge branch 'develop' of github.com:bigbluebutton/bigbluebutton into 2.4-into-develop 2021-10-22 19:12:58 +00:00
Anton Georgiev
6e0c74e02f style: Pulled latest fonts, audio icon swap 2021-10-18 20:26:01 +00:00
Anton Georgiev
24d672a832 Merge branch 'v2.4.x-release' of github.com:bigbluebutton/bigbluebutton into merge-24-dev 2021-10-14 15:13:17 +00:00
Tainan Felipe
1de8e0779d Add server side reactivity to publications 2021-10-13 15:00:52 -03:00
Anton Georgiev
17bf52fe5b
Merge pull request #13279 from prlanzarin/u24-trash-stratum
chore(virtual-backgrounds): cleanup and update tflite resources
2021-10-04 10:30:33 -04:00
Mario Jr
7ed1cbfc30 Merge branch 'v2.4.x-release' into fix-13242 2021-09-29 09:20:58 -03:00
prlanzarin
1cb412529d feat(webrtc): add EXPERIMENTAL option to disable ICE candidate signaling
ICE lite servers (eg mediasoup) dont need candidates signaled out-of-band; neither does KMS in certain scenarios

Disable their signaling saves us some ticks in bbb-webrtc-sfu and some bandwidth all around
2021-09-24 17:24:06 +00:00
prlanzarin
46f281ec6b chore(virtual-backgrounds): move tensorflow wrappers to compatibility 2021-09-23 17:06:42 +00:00
prlanzarin
42b53749f1 chore(virtual-backgrounds): update tflite backends wrappers and WASMs
Use the latest version in the volcomix repo

Add coments to the wrappers stating which changes we did manually in them
2021-09-23 14:46:33 +00:00
Anton Georgiev
7c11600518
Merge pull request #13266 from mariogasparoni/dynamic-bridges
feat(audio): add bridge configurable scheme
2021-09-22 16:00:46 -04:00
Tainan Felipe
543b57dff5 Improve readability 2021-09-22 11:52:01 -03:00
Tainan Felipe
6a480a4946 Implements collection hooks to chat context 2021-09-22 11:51:50 -03:00
prlanzarin
9574548e22 refactor(virtual-backgrounds): remove unused tflite resources 2021-09-22 12:27:59 +00:00
Mario Jr
1c08fc852a fix(audio): audio controls crash when ending call during brekout audio transfer
Restored the old behavior when ending breakout rooms while user is in the
breakout audio transfer, which is to the trigger the reconnection to the audio
in the main room.
This behavior could be improved by (instead of reconnecting) transfering user
back to the main room, but this requires some changes in akka-apps/fsesl
which can be treated in a different issue.

Closes #13242
2021-09-21 11:22:05 -03:00
Mario Jr
7d3a03854e fix(audio): correctly retrieve Object class from bridge module 2021-09-09 10:15:06 -03:00
Mario Jr
da92122a90 fix(audio): promisify loadBridges function
New bridges were being loaded with undefined value, since we didn't
wait for this to fully load before instantiating it
2021-09-08 16:24:15 -03:00
Mario Jr
b74e4c6ca5 fix(audio): bridges can be dynamically imported
Added bridge whitelist , to allow bridge modules to be dynamically imported.
2021-09-01 13:22:43 -03:00
Mario Jr
4fcd051223 feat(audio): add bridge configurable scheme
we are now able to switch between audio bridges, by selecting it in
config files.
2021-08-31 15:50:53 -03:00
prlanzarin
fe5e86052a refactor(html5): media server adapter config is undefined by default
Undefined by default means that the governing configuration is in bbb-webrtc-sfu

Also add some inline docs in settings.yml about the media server adapter configs
2021-08-31 01:58:51 +00:00
prlanzarin
58a8e99195 feat: add media server configuration via metadata
Applies to video, listen only and screen sharing

New metadata values: media-server-video, media-server-listenonly, media-server-screenshare; parameter is a String
2021-08-31 00:39:45 +00:00
prlanzarin
c57fb0b388 feat(audio): add media server adapter config for listen only in bbb-html5
Allows configuring, via bbb-html5, which media server adapter will be used by listen only; server wide
2021-08-31 00:24:41 +00:00
prlanzarin
86a715dc15 feat(screenshare): add media server adapter config in bbb-html5
Allows configuring, via bbb-html5, which media server adapter will be used by screen sharing; server wide
2021-08-31 00:19:51 +00:00
Anton Georgiev
bc8b3ff691
Merge pull request #13104 from antobinary/merge-aug30
chore: Merge 2.3.13 into develop
2021-08-30 14:14:29 -04:00
Anton Georgiev
4ecb24b4fa Merge branch 'v2.3.x-release' of github.com:bigbluebutton/bigbluebutton into merge-aug30 2021-08-30 18:11:16 +00:00
KDSBrowne
3844890ad7 fix screen reader announcement of toasts in firefox 2021-08-29 23:43:20 +00:00
Mario Jr
8997b68a3c Support firefox and other browser in network stats monitor
For browsers that don't support headerBytesSent in RTCOutboundRtpStreamStats
neither headerBytesReceived in RTCInboundRtpStreamStats, we are now able
to calculate upload and download rates.
We are also able to get transportStats information for browsers that
don't support iceTransport attribute of RTCDtlsTransport.
2021-08-25 16:27:46 -03:00
Mario Jr
00e01c1872 add screenshare's peer information to video stats in connection status modal
Added support for getStats in screenshare's service. This works similar
to the getStats for video provider, and the information retrieved from
screenshare is added to the video information for cameras.
2021-08-23 12:36:01 -03:00
Mario Jr
148704cdec fix docs for getStats in audio and video services 2021-08-23 11:07:12 -03:00
Mario Jr
a4f7447b65 Add information about using turn in audio stats
This information is also retrieved when copying data to clipboard
2021-08-17 16:54:49 -03:00
Mario Jr
65e6e70d24 update audio-manager docs for getStats and related functions 2021-08-13 09:46:19 -03:00
Mario Jr
cf366e5090 Get user and audio data, shows it and allows it to be copied to clipboard
Using getStats api and peer information to retrieve upload/download rates
and transport information
2021-08-12 16:39:04 -03:00
prlanzarin
54d04fdb77 refactor(listen-only): let the server generate subscriber offers 2021-08-12 13:45:18 +00:00
prlanzarin
387c453076 refactor(screnshare): let the server generate subscriber offers 2021-08-12 13:45:04 +00:00
prlanzarin
455fb8426f feat(sfu): add both ways negotiation to SFU broker 2021-08-11 19:35:16 +00:00
Max Franke
21ff6c545a style(virtual-backgrounds): disabled when env. is not supported
Disabled virtual backgrounds for not supported
devices, changing the label text.
2021-08-06 13:14:04 +00:00
prlanzarin
e15aa2054f fix(virtual-backgrounds): disable on Safari
Safari is not properly supported with this feature (yet)
2021-07-27 17:14:15 +00:00
prlanzarin
9071ba8bc4 refactor(virtual-backgrounds): re-organize virtual background code
Changes (maybe not a complete list):
  - Disable virtualbgs by default
  - Move the virtualbg selector in video-preview to the side below the
profile selection
  - Restore old video-preview sizes
  - Add a wrapper class for MediaStreams (BBBVideoStream)
  - Centralize virtualbg services and business logic code into BBBVideoStream
  - Refactor and centralize virtualbg constant fetching
  - Refactor and centralize virtualbg config fetching
  - Organize virtualbg type definitions
  - Remove added states in video-provider to prevent further bloat
  - Remove added states in video-preview to prevent further bloat
  - Lock virtual bg switching while video-preview itself is locked
  - Add proper virtualbg error surfacing via toasts
  - Refactor iOS availability detection to use centralized UA checker
  - Avoid calling gUM when toggling virtualbgs on/off
  - Make virtualbg video-list-item action a toggle instead of a
state-aware action
  - Make virtualbg switching work in video-preview for cameras that are
already shared. Especially useful when there are multiple source
cameras, and will be important in the near future
  - Add Derivative Work notices in files that are partially copied from
jitsi-meet
  - Simplify track replacing in video-provider
  - Split video-preview UI code for virtualbgs into a separate functional component
2021-07-22 18:53:42 +00:00
Bartu Bazna
9f791a8892 Squashed virtual background commits 2021-07-21 20:00:19 +00:00
Anton Georgiev
472c9a6107 Merge branch 'v2.3.x-release' of github.com:bigbluebutton/bigbluebutton into 237-into-develop 2021-07-20 15:21:21 +00:00
Joao Siebel
6906b927af Fix race condition that caused the client to get stuck with the three dots on join 2021-07-15 14:01:21 -03:00
Mario Jr
9dbfc41dac Merge branch 'v2.3.x-release' into develop 2021-07-14 09:29:38 -03:00
Mario Jr
4e1eb7318d chore(audio): add audio join time in extraInfo of server log 2021-07-09 13:43:43 -03:00
Anton Georgiev
b9cc633286 Merge branch 'v2.3.x-release' of github.com:bigbluebutton/bigbluebutton into merge-2.3.5-into-develop 2021-07-06 19:36:19 +00:00
Anton Georgiev
0150862eb1
Merge pull request #12705 from mariogasparoni/feat-trickle-ice-mic
feat(audio): use kurento's trickle-ice to improve mic negotiation
2021-07-02 17:44:05 -04:00
Mario Jr
c4abd274e8 feat(audio): add option for enabling/disabling kms's trickle for mic 2021-07-02 12:51:00 -03:00
Ramon Souza
36c9176b3d always get token info from current connectionId 2021-07-02 10:33:17 -03:00
Mario Jr
287c4eb682 feat(audio): use kurento's trickle-ice to improve mic negotiation
Here's what we do when user activates mic:
1 - When we do something similar to listenonly's joining process
until we find a valid candidate-pair. The information about this
local candidate is store.
2 - We then start a new userAgent, and as soon as browser finds
a candidate with the same local ip address, we leave only this
candidate in the SDP and send this to FreeSWITCH. SDP should
contain only a single candidate.
3 - The rest of signaling process is basically the same.
2021-07-01 16:26:44 -03:00
Pedro Beschorner Marin
068b82b1fa refactor(connection status): remove legacy monitor
Remove parts of a previous connection monitor.

To add some context (as far as my memory goes) to the multiple connection
monitor features the product has, `stats` (currently named `connection status`)
was introduced at the Flash client back in ~2016. @fcecagno and I did it
as a BigBlueButton's Summit activity. Our work was squashed into a single
commit in 92554f8b3e :).

I'm not sure about the whole story behind `network information` (the late
connection monitor added to the HTML5 client) but I assume it should work
as a collector for a bunch of different connectivity monitors. I remember
when it was introduced but I don't know why it wasn't adopted. My best guess
would be because of some performance issues the `user list` had back then.

To follow on why `connection status` replaced `network information` at the
HTML5 client, when I did the `multiple webcams` feature I had to refactor
a big chunk of the `video provider` (#8374). Something that wasn't really
helping there was the adaptation of `stats` that was made to show local
feedback for each webcam connection. Although this feature wasn't being
used anymore, `network information` did rely on that to build up data. With
this monitor gone I assumed it was my responsibility to provide an alternative
so I promoted Mconf's port of the Flash `stats` monitor to BigBlueButton's
HTML5 client (#8579).

Well, that's my perspective on how things went for those features. If
anyone would like to correct me on something or add something else on
that history I would appreciate to know.
2021-06-13 14:02:46 -03:00
Ramon Souza
3c41c6fd83 lint + cleanup 2021-05-27 15:12:49 -03:00
Ramon Souza
94436d2630 chat alerts refactor 2021-05-27 14:46:27 -03:00
prlanzarin
84cbda75a3 feat(screenshare): add screen bitrate config in bbb-html5 2021-04-24 19:12:59 +00:00
Anton Georgiev
36b67971ee
Merge pull request #12054 from mariogasparoni/fix-12023-and-other-two-fixes
fix: mic selection (firefox/all browsers) and muted alert when mic is changed
2021-04-20 13:40:54 -04:00
Anton Georgiev
5566941ad1
Merge pull request #12003 from ramonlsouza/issue-11985
Fix join webcam breakout room
2021-04-16 10:46:04 -04:00
Mario Jr
e8d59ed14a fix: mic selection (firefox/all browsers) and muted alert when mic is changed
This commit contains three fixes: one already reported and two detected
during the investigation of the solution.
This started as a fix for firefox (#12023), but i also fixed the muted
alert/banner when device changes: the banner wasn't detecting device changes,
unless audio was deactived/actived.

There's another fix for the microphone stream: we now keep sender's track
disabled if it was already disabled for the sender's track of the previous
selected device.

Also did small refactor for eslint checking.

Some technical information: in sip bridge (bridge/sip.js), setInputStream and
liveChangeInputDevice function were both fully turned into promises, which
guarantees we have everything ready when it resolves to the respective values.
This helps AudioManager (audio-manager/index.js) to sequentially sets and
tracks the state of the current microphone stream (inputStream), when calling
liveChangeInputDevice function: we first set the current stream to null,
creats a new one and then set it to the newly created value - this is needed
because MutedAlert (muted-alert/component.jsx) can then gracefully
allocate/deallocate the cloned stream when it is set to a non-null/null value
(the cloned stream is used for speech detection with hark).
In MutedAlert we also make sure to enable the cloned stream's audio
tracks, just in case the user change the device when muted (audio track is
disabled in this case), which also leaves the cloned stream muted (we then
enable the track to allow speech detection).

Closes #12023
2021-04-16 10:45:40 -03:00
Anton Georgiev
f51c1a23bb
Merge pull request #11992 from ramonlsouza/fix-chat-alerts
Fix chat alerts
2021-04-13 08:48:39 -04:00
Ramon Souza
e7366485aa removing unused imports 2021-04-13 08:43:08 -03:00
Ramon Souza
32dec42264 fix join webcam breakout room 2021-04-12 15:59:43 -03:00
Ramon Souza
d90e889394 fix active poll refresh crash 2021-04-12 13:57:02 -03:00
Ramon Souza
f6b70600d0 fix chat alerts 2021-04-12 08:16:57 -03:00
Mario Jr
951fc0ade8 fix: MEDIA_ERROR when joining room using Firefox
Firefox doesn't create a  device called 'default' and we were trying
to set this when user is joining the room. We don't do this anymore, letting
devices to be changed when there's some user request.

Moved outputDeviceId inputDeviceId information to be managed in bridge
(just like we do with inputDeviceId), we don't store this duplicated
information in audio container anymore.

Fixed the eslint warning in "playAlertSound(url) { ..."

We are safe to let users try to change input/output devices because the
device list is retrieved from enumerateDevices.
2021-04-01 15:53:43 -03:00
Anton Georgiev
6695f7a119
Merge pull request #11813 from mariogasparoni/merge-update-pr-10129
Update and some improvements on PR #10129 - dynamic change audio device
2021-03-30 13:50:30 -04:00
Joao Siebel
c1503a2931 Remove banned users structure and handle reasonCode in validateAuthToken 2021-03-30 10:09:25 -03:00
Mario Jr
60378e8c63 Merge branch 'develop' into merge-update-pr-10129 2021-03-29 19:07:27 -03:00
Mario Jr
cddca95ad1 Fixes and improvements on pr #10129 - dynamic change audio device
Allow listenonly users to change output devices
Fixed dynamic audio device change for firefox
Fixed shortcuts for audio join/leave
Show (with a bold font) the current selected device
[performance] Prevent calling mediaDevices.enumerateDevices every time we render
the selector. This adds a delay (~200ms, on my chrome setup) to render this component
[performance] Do not call enumerateDevices to search for new devices, instead we listen on mediaDevices.deviceChange event
Small refactoring and fixed a few errors that were being throw in browser's console
Fixed device selection when this is done in audio-settings modal
Fallback to default device when current device is removed
Truncate device name length
Renamed "Input","Output" labels to "Microphone","Speakers", respectively
Update eslint rule for accessKey
2021-03-29 18:55:17 -03:00
Mario Jr
cec88c996d Merge remote-tracking branch 'tainan/issue-9723' into merge-update-pr-10129 2021-03-29 18:52:12 -03:00
Mario Jr
af4f9dbf26 Merge branch 'v2.2.x-release' into merge-2.2-develop 2021-03-23 17:10:28 -03:00
Joao Siebel
4d759ad63c Prevent logged out user tp spam validateAuthToken 2021-03-22 09:37:17 -03:00
Anton Georgiev
e673fb2cf4
Merge pull request #11630 from prlanzarin/u23-sculptor
listenonly,video-provider,screenshare: remove ICE gathering pre-flight check
2021-03-12 12:58:43 -05:00
Anton Georgiev
6d6e1885dd
Merge pull request #11632 from prlanzarin/u23-car-song
listen only: remove the old silent audio autoplay workaround (#11115)
2021-03-12 05:35:12 -05:00
prlanzarin
da0a3c36af listen only: remove the old silent audio autoplay workaround
The underlying webkit autoplay issues were properly tackled a long time ago now; this thing isnt needed anymore

Also took the liberty to remove the whole create listen only stream thing because it`s useless
2021-03-12 03:39:12 +00:00
prlanzarin
ab17b10c38 listenonly,video-provider,screenshare: remove ICE gathering pre-flight check 2021-03-12 02:51:45 +00:00
prlanzarin
7eb91f9273 Merge branch 'u22-screenshare18102020' of https://github.com/prlanzarin/bigbluebutton-1 into u23-ilgiardino 2021-03-11 18:49:14 +00: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
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
228bad03d5 Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into march4-merge 2021-03-04 21:25:47 +00:00
Mario Jr
fc1401ab53 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-02-26 15:52:11 -03:00
Mario Jr
ad23e9c0af Cleanup joinedAudioOnly state when user disconnects or reconnect microphone
Fixes #11490
2021-02-26 15:05:17 -03:00
Mario Jr
404d65d7a4 Recover mute state for moderator when returning from breakout's audio transfer
Fixes #11489
2021-02-25 15:38:41 -03: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
55e8de4357 Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into feb18-merge 2021-02-18 20:33:19 +00:00
Anton Georgiev
3aa3591f12
Merge pull request #10291 from Tainan404/issue-8545
Store the changed and default settings in different variables
2021-02-16 14:49:53 -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
Tainan Felipe
e99825f60a Merge remote-tracking branch 'upstream/develop' into develop+pr10919+pr10838 2021-02-09 10:40:39 -03:00
prlanzarin
e0e22733dd video-provider,screenshare: consider a stream unhealthy only when the peer fails
Done to avoid false positives where the stream would transition to the unhealthy UI state (or flicker between states) due to disconnected also triggering it, which is not fatal. Disconnected has to be used alongside getStats heuristics, which I removed due to issues with it, so I´m hardening the transition to fatal states only
2021-02-05 19:54:05 -03:00
Tainan Felipe
9cf483d18f Change message getter 2021-02-03 17:49:58 -03:00
Mario Jr
b582b1ca78 Correctly return MediaStream object when calling audio-manager's inputStream
This was missed in recent audio/sip.js changes.
MediaStream is now returned from SIP.js
Related to #10733
2021-01-29 19:05:51 -03:00
Mario Jr
f2de2806eb 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-29 14:18:15 -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
9a916878f9 sfu: split broker errors into different classes
Will be used in subsequent changes to allow us to compose them into error normalization procedures
2021-01-13 09:05:12 -03:00
prlanzarin
6f16154035 screenshare: logging/trailing lines cleanup 2021-01-13 09:04:46 -03:00
Anton Georgiev
3e3f3236cc correct path to silence.mp3 2021-01-06 15:55:01 +00:00
Anton Georgiev
c1ffced27d Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into develop 2020-12-17 21:14:29 +00:00
prlanzarin
569ace358b screenshare: improve reconnection procedures and error logging in kurento/sfu bridge 2020-12-15 17:45:20 +00:00
prlanzarin
e57daf55db [screenshare] Add new SFU screen sharing negotiation broker
A replacement to the old kurento-extension script which is to be considered legacy code
2020-12-09 18:46:30 +00:00
prlanzarin
d6fdd79412 sfu-base-broker: add beforeunload listener to avoid logging false positive errors 2020-12-08 20:19:03 +00: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
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
f34826718d include instanceId in resources url 2020-11-30 16:09:35 +00:00
Joao Siebel
be8421db3c Merge remote-tracking branch 'upstream/develop' into connection-manager 2020-10-21 13:57:17 -03:00
Anton Georgiev
0c7ead1916 Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into oct16-merge 2020-10-21 14:48:02 +00: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
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
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
adcb05b1ec
Merge pull request #10612 from jfsiebel/improve-logs
Improve  log in/authentication logs
2020-10-09 13:43:09 -04:00
Anton Georgiev
41cab38e87 Added allowDefaultLogoutUrl config to optionally ignore non-custom logoutUrl 2020-10-08 05:15:05 -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
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
Joao Siebel
78ead44d17 Fix reconnection flow 2020-10-01 14:31:38 -03:00
Joao Siebel
db7164253d Prevent repeated setUserId 2020-09-29 18:02:03 -03:00
Anton Georgiev
3ddf834de0
Merge pull request #10549 from jfsiebel/prevent-multiple-on-close-handler-attach
Prevent multiple on close handler attach
2020-09-29 12:57:55 -04:00
Anton Georgiev
64efa67412
Merge pull request #10548 from jfsiebel/rework-session-token-check
Add extra check for sessionToken
2020-09-29 12:39:02 -04:00
Joao Siebel
6919498234 Prevent multiple attaches on socket close for the same user 2020-09-29 09:57:31 -03:00
Joao Siebel
b0f2abad8b Prevent user who logout from meeting to join again using the same sessionToken
also move this and banned user check to a different method.
2020-09-29 09:33:15 -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
Joao Siebel
a3cf7cd98e Prevent validateAuthToken spamming.
If an ejected user tries to enter in the meeting using the current url
html5 client keep trying to validate that user, but without success
causing a validateAuthToken message spam until the connection times out.
2020-09-21 15:50:54 -03:00
Joao Siebel
b2adffa4c2 Merge remote-tracking branch 'upstream/develop' into connection-manager 2020-09-18 16:30:20 -03:00
Anton Georgiev
377dc27a8d Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into 09-16-merge 2020-09-17 14:37:28 +00: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
Joao Siebel
ac0a014571 WIP onClose 2020-09-10 08:49:22 -03: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
Joao Siebel
6e4e0a510a Merge branch 'remove-user-on-exit' into connection-manager 2020-09-08 16:36:01 -03:00
Joao Siebel
4be9bc4c94 Adjust publishers to use auth-token-validation collection 2020-09-01 13:31:11 -03:00
Joao Siebel
b8f42ac712 Create ClientConnections structure and auth-token-validation collection 2020-09-01 09:07:56 -03: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
Joao Siebel
f33bd10640 Remove user from collection when leaves 2020-08-19 13:22:43 -03:00
Tainan Felipe
7fcdcafb30 Store the changed and default settings in different variables 2020-08-19 09:36:05 -03:00
Anton Georgiev
5be5aed1d9 Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into merge-2020-08-12 2020-08-12 17:12:58 +00: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
Tainan Felipe
0ba6ff5cf6 Merge remote-tracking branch 'upstream/develop' into issue-9723 2020-07-27 17:02:44 -03:00
Tainan Felipe
2c61d5ee75 Add input/output dynamic audio change 2020-07-27 16:49:26 -03:00
prlanzarin
1dbafffa26 audio: make listen only call timeout configurable 2020-07-09 18:02:18 +00:00
Pedro Beschorner Marin
526f79e8f2 Merge remote-tracking branch 'bigbluebutton/v2.2.x-release' into bigbluebutton/develop 2020-06-30 18:15:18 -03:00
Anton Georgiev
ff1357cbbd
Revert "Improve audio reconnection for muted users for 2.2" 2020-06-22 16:28:22 -04:00
Anton Georgiev
aed4d648a9
Merge pull request #9780 from Tainan404/fix-audio-reconnect-2.2
Improve audio reconnection for muted users for 2.2
2020-06-19 16:58:55 -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
Joao Siebel
38bad0a9d8 Remove button in ErrorScreen component 2020-06-19 09:49:07 -03:00
Joao Siebel
6ac739732c Remove button in error screen when user was banned 2020-06-18 12:12:22 -03:00
Joao Siebel
492acd6b5c Add a warn when a banned user tries to join the meeting 2020-06-12 16:51:22 -03:00
Joao Siebel
45f99fed8b Prevent banned user from trying to validate auth token multiple times. close #9798 2020-06-12 13:24:11 -03:00
Tainan Felipe
e540d6e46d set user as muted in audio reconnection 2020-06-05 09:41:48 -03:00
Anton Georgiev
ac6fd2824c
Merge branch 'develop' into 2.3-audio-stats 2020-05-26 12:36:15 -04:00
Anton Georgiev
c9e996de21 Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into merge-2.2-into-develop 2020-05-25 17:32:24 +00:00
Joao Siebel
7d9f4c70ad Prevent userChangedLocalSettings call failing at start 2020-05-22 13:54:00 -03:00
Anton Georgiev
3754d0ab6f Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into merge-2.2-into-master-feb-28-2020 2020-02-28 17:47:06 -05:00
Anton Georgiev
4b0452d1fd Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into feb14-merge-2.2-into-master 2020-02-14 21:43:35 +00:00
Anton Georgiev
72cb9ae8e0 bind publisher for presentation-upload-token 2020-02-07 17:11:06 -05:00
Anton Georgiev
a8f4827af8 utilize Meteor connection id instead of trusting client side meetingId, userId 2020-02-06 15:48:16 -05:00
Pedro Beschorner Marin
1103663d86 Monitoring audio WebRTC stats 2020-01-28 10:07:21 -03:00
Pedro Beschorner Marin
5c71e2d0bb Included new getStats monitor for audio and video 2019-12-10 09:07:06 -03:00
Joao Siebel
88fad50233 WIP streamer stuff 2019-12-06 14:46:58 -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
c8a695f873 added "fields:{...}", removed most mapUser (part 2) 2019-08-28 16:34:15 -04:00
Anton Georgiev
892336632f added "fields:{...}", removed most mapUser 2019-08-28 16:32:55 -04:00
Anton Georgiev
5b9c835513
Merge pull request #7882 from prlanzarin/2.2-ap-ui
Add UI prompts when autoplay is blocked for video/screenshare/listen only
2019-08-14 15:24:16 -04:00
Chad Pilkey
9ebc3083c3 improve the failed Meteor call log 2019-08-13 10:52:25 -07:00
KDSBrowne
723c0114a3 Merge branch 'master' of https://github.com/bigbluebutton/bigbluebutton into who-is-typing 2019-08-06 16:57:55 +00:00
Anton Georgiev
4aad0a35a2
Merge pull request #7853 from jfsiebel/save-local-settings
Save local settings in a different collection
2019-08-06 12:50:24 -04:00
prlanzarin
9942dd0aa2 Merge remote-tracking branch 'upstream/master' into 2.2-ap-ui 2019-08-02 21:36:44 +00:00
prlanzarin
8d65ce565d Add UI prompts when autoplay is blocked for video/screenshare/listen only 2019-08-02 21:32:42 +00:00
KDSBrowne
8a51a099d8 add users-typing collection 2019-08-02 18:18:33 +00:00
Joao Siebel
44c660cf48 remove lock from local settings 2019-08-02 10:15:50 -03:00
Joao Siebel
b06274c58a add document projection 2019-08-02 09:06:27 -03:00
Anton Georgiev
e22d61b2e1 removed .log() function in favour of logger 2019-08-01 12:47:45 -04:00
Anton Georgiev
4bc5799c01 attempt to capture & log more info on client errors 2019-07-31 08:30:34 -04:00
Joao Siebel
d556661873 save settings in a collection. close #7774 2019-07-29 11:17:38 -03: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
ad0a520ca2
Update index.js 2019-07-19 10:24:53 -04:00
Anton Georgiev
43482bae08 do not log clientInfo with each log, just the joinhandler one 2019-07-18 21:39:59 +00:00
Anton Georgiev
8a09ce80f9 skip saving viewParticipantsWebcams in collection 2019-07-12 21:44:27 +00:00
Anton Georgiev
73e9b6d70f prevents client freeze on race condition when customUserSettings set 2019-07-12 18:59:56 +00:00
Anton Georgiev
aaf9810589 handle default value for isBreakoutUser property for dummy users 2019-07-04 21:58:30 +00:00
Joao Siebel
18670fdaf2 Merge remote-tracking branch 'upstream/master' into reconnection-improvement 2019-07-04 15:09:06 -03:00
Anton Georgiev
15a834f4b8 prepend sessionToken to uniqueClientSession 2019-07-02 21:15:32 +00:00
Anton Georgiev
b74d3d9bb0 correct logger.warning to .warn 2019-07-02 16:54:10 +00:00
Anton Georgiev
fb1c294312 Merge branch 'master' of github.com:bigbluebutton/bigbluebutton into logging-structure 2019-07-02 15:41:57 +00:00
Anton Georgiev
d35341d59f added Auth.uniqueClientSession to correlate logs with a reload unique string 2019-06-28 21:47:18 +00:00
Anton Georgiev
3fcb95ab44 log structure {logCode, extraInfo}, comment 2019-06-28 21:45:50 +00:00
Anton Georgiev
a66aa70707
Merge branch 'master' into issue7325-autoswaplayout-screenshare 2019-06-26 12:40:30 -04:00
Diego Benetti
f383ccb8cc Fixes client to obey custom parameter autoSwapLayout 2019-06-24 18:01:54 -03:00
Joao Siebel
512ceaa8e0 Merge remote-tracking branch 'upstream/master' into reconnection-improvement 2019-06-21 15:03:37 -03:00
Anton Georgiev
5fb0c10ea6
Merge branch 'master' into issue-7556 2019-06-21 10:44:32 -04:00
Joao Siebel
63a2df07cb Merge remote-tracking branch 'upstream/master' into parameterize-network-monitoring-threshold 2019-06-13 09:21:17 -03: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
Joao Siebel
16f20db001 parameterize the packet lost threshold 2019-06-12 17:27:49 -03:00
Joao Siebel
c6c8ca400b Merge remote-tracking branch 'upstream/master' into reconnection-improvement 2019-06-12 15:56:14 -03:00
Joao Siebel
7f7845c47b disable some UI actions when meteor is down 2019-06-12 15:40:58 -03:00
Tainan Felipe
d948a6a008 Add toast for webcam lock suggestion 2019-06-12 15:03:23 -03:00
Anton Georgiev
96e9f57d84
Merge pull request #7497 from Tainan404/issue-7343
Add context to manage locksettings
2019-06-11 15:45:15 -04:00
Tainan Felipe
d9fb477c3a Apply lock if viewer is presenter 2019-06-11 16:35:07 -03:00
Joao Siebel
e924ea08cc Merge remote-tracking branch 'upstream/master' into reconnection-improvement 2019-06-05 17:22:30 -03:00
Chad Pilkey
854aa8019b bump audio leave log level 2019-06-04 11:16:43 -07:00
Joao Siebel
178e3104e4 prevent makeCall when user is not connected 2019-06-03 11:15:52 -03:00
Anton Georgiev
2cb20a1bf1 revert #7440 due to causing #7502 join stuck 2019-05-31 17:31:23 +00:00
Tainan Felipe
5e9f1a1ac6 Add in which breakout room the user joined 2019-05-27 11:28:25 -03:00
Joao Siebel
7397f13396 add log every time the user connection change 2019-05-24 17:10:43 -03:00
Joao Siebel
8ba90b2121 Merge remote-tracking branch 'upstream/master' into network-indicator 2019-05-23 15:42:38 -03:00
Joao Siebel
a2d2dc332f fix a problem with local stream and update the code 2019-05-23 15:25:31 -03:00
Diego Benetti
4c70da35c3 Verifies if subscription already exists before calling subscribe 2019-05-14 17:13:15 -03:00
Joao Siebel
fea22d5eef add flag to enable monitoring, correct who can see network problems and update logic 2019-05-09 18:25:29 -03:00
Joao Siebel
ae7c16f15d update code flow 2019-05-08 11:17:02 -03:00
Joao Siebel
5ad451cfff prevent unnecessary network information update 2019-04-23 09:02:15 -03:00
Joao Siebel
c98db398fc Merge remote-tracking branch 'upstream/master' into network-indicator 2019-04-22 09:18:02 -03:00