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
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
humanizeSeconds.js
ios-webview-audio-polyfills.js
keyCodes.js handle select all shortcut in whiteboard 2023-03-15 11:39:33 -03:00
lineEndings.js
logoutRouteHandler.js
media-stream-utils.js feat(audio): local echo test and audio energy meter 2022-04-11 19:21:56 +00:00
mediaElementPlayRetry.js
mimeTypes.js Enhancement: Virutal backgrounds now accepts webp 2023-04-24 13:56:54 -03:00
regex-weburl.js
sdpUtils.js fix(audio): forcefully disable stereo when using Vosk transcription 2023-04-25 10:10:39 -03:00
slideCalcUtils.js
stats.js feat: add WebRTC stats information to client logs 2024-08-27 14:00:26 -03:00
statuses.js
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