bigbluebutton-Github/bigbluebutton-html5/imports/utils
prlanzarin 3c4e3de286 feat: add WebRTC stats information to client logs
We should be able to capture  WebRTC stats in some form for post-processing
so that it helps on debugging support requests (and other use cases, e.g.:
improving field trial analysis on test servers).
Although much of WebRTC stats information can be gathered via server side
components, none have logs as structured for proper post-processing as
the client logs - so we're going the client route for now.

Capture WebRTC stats information for audio and screen sharing via:
  - Audio logCodes: new `stats` extraInfo field
    - `audio_joined`
    - `audio_failure`
    - `sfuaudio_error_retry_through_relay`
    - `sfuaudio_error_try_to_reconnect`
  - Screen share logCodes: new `stats` extraInfo field
    - screenshare_presenter_start_success
    - screenshare_viewer_start_success
    - screenshare_broker_failure

Additionally, add an option to periodically capture WebRTC stats information
for all relevant peers. This is disabled by default since the log can be
verbose (and, consequentially, network taxing when using external
logging targets). It can be enabled via `public.stats.logMediaStats` in
settings.yml. The default interval is 30s. The periodic log format is as
follows:
  - logCode: `mediaStats`
  - extraInfo.stats: an aggregated stats object of all peers (equivalent
    to the `Copy` function in the Connection Status modal).
2024-08-27 14:00:26 -03:00
..
array-utils.js adjust defaultsDeep merge 2023-03-01 16:48:08 -03:00
browserInfo.js fix: crash due to invalid UA version number in WKWebView 2024-04-12 14:06:44 -03:00
caseInsensitiveReducer.js Make typed poll responses grouping case insensitive 2021-03-23 06:30:37 +00:00
debounce.js add comment about debounce function 2023-08-09 15:42:21 -03:00
deviceInfo.js fix: remove legacy iOS UA checks that borked camera sharing in iPads 2023-05-15 13:22:52 -03:00
dom-utils.js fix chat resizing in RTL 2022-07-25 16:53:19 -03:00
fetchStunTurnServers.js replace lodash each and groupBy 2023-02-17 14:39:52 -03:00
hexInt.js Moved hex_to_int and int_to_hex functions to imports/utils 2017-09-21 16:52:43 -07:00
humanizeSeconds.js solve error in nav-bar component 2017-10-23 14:26:56 -02:00
ios-webview-audio-polyfills.js Merge branch 'master' of https://github.com/bigbluebutton/bigbluebutton into 2.2-add-create-br-to-manage-user-menu 2019-01-21 17:02:18 +00:00
keyCodes.js handle select all shortcut in whiteboard 2023-03-15 11:39:33 -03:00
lineEndings.js PR review fixes 2017-09-06 12:36:52 -07:00
logoutRouteHandler.js Added allowDefaultLogoutUrl config to optionally ignore non-custom logoutUrl 2020-10-08 05:15:05 -04:00
media-stream-utils.js feat(audio): local echo test and audio energy meter 2022-04-11 19:21:56 +00:00
mediaElementPlayRetry.js Improve log message for screenshare/listen only/autoplay and harden media play with retries 2019-09-06 18:58:22 +00:00
mimeTypes.js Enhancement: Virutal backgrounds now accepts webp 2023-04-24 13:56:54 -03:00
regex-weburl.js PR review fixes 2017-09-06 12:36:52 -07:00
sdpUtils.js fix(audio): forcefully disable stereo when using Vosk transcription 2023-04-25 10:10:39 -03:00
slideCalcUtils.js pan/zoom and cursor refactor for better performance 2019-07-25 15:55:25 -07:00
stats.js feat: add WebRTC stats information to client logs 2024-08-27 14:00:26 -03:00
statuses.js fix reported bugs / impliment suggested changes 2018-07-11 20:08:22 +00:00
string-utils.js replace lodash uniqueId 2023-02-23 11:23:51 -03:00
throttle.js improve throttle function 2023-11-01 17:36:46 -03:00