bigbluebutton-Github/bigbluebutton-html5
prlanzarin d0ad8afe64 fix(audio): prevent overlapping sessions from gUM-induced timeouts
`getUserMedia` is called by each audio bridge if it hasn't been
triggered during pre-flight screens. This ties gUM to the bridge's
negotiation timers and audio-manager's activation tracking, leading to
two issues:
  - A gUM prompt left unanswered for over 30 seconds can cause an
    incorrect 1010 (negotiation timeout) audio error.
  - If `retryThroughRelay: true`, and a joinAudio timeout occurs due to an
    unanswered gUM prompt, but the user responds while the system retries
    the connection, it can create overlapping audio sessions, resulting in
    mute state inconsistencies when `muteOnStart: true`.

This commit addresses these issues by moving gUM handling to the
audio-manager before any bridge action. This removes gUM from the
negotiation timeout trackers, ensuring that gUM errors are treated as
browser API errors (as expected).

Additionally, audio activation tracking in audio-manager has been updated
to exclude gUM times. Initially, gUM was included to catch unintended
browser-related gUM timeouts (e.g., Chrome bugs), but this skewed the
metric intended for tracking *negotiation times*. With this change,
`secondsToActivateAudio` will now focus solely on negotiation.
2024-10-21 19:19:49 +00:00
..
.vscode
client Add: new connection close error messages (#21392) 2024-10-14 21:23:58 -03:00
imports fix(audio): prevent overlapping sessions from gUM-induced timeouts 2024-10-21 19:19:49 +00:00
private/config Merge pull request #21367 from hiroshisuga/patch-12 2024-10-18 13:18:46 -03:00
public fix: Adjust string for session ending (#21402) 2024-10-21 08:34:06 -03:00
server Add dynamic import config 2024-07-02 17:04:34 -03:00
.eslintignore
.eslintrc.js disable require default props eslint rule 2024-06-11 10:03:42 -03:00
.gitignore Refactor: Make bundle using webpack (#20811) 2024-08-09 13:58:44 -04:00
babel.config.js Refactor: Make bundle using webpack (#20811) 2024-08-09 13:58:44 -04:00
deploy.sh build: move bbb-html5 files from /var/bigbluebutton 2024-09-25 12:39:04 -04:00
jsconfig.json
package-lock.json styles(chat): a new chat UI 2024-10-17 09:03:33 -03:00
package.json styles(chat): a new chat UI 2024-10-17 09:03:33 -03:00
run-dev.sh Add scripts to run html5 from source (#20899) 2024-08-12 09:35:45 -03:00
test-html5.sh
tsconfig.json Refactor: Make bundle using webpack (#20811) 2024-08-09 13:58:44 -04:00
webpack.config.js fix(client): Add a new console class that allow us show extra info passed to log (#21170) 2024-10-04 11:09:41 -03:00