The audio troubleshooting modal has very microphone-specific strings,
which might confuse users trying to join listen only.
Review the Help screen so that listen only scenarios are more generic.
As a bonus, review the unknownError locale with a more actionable text.
Listen only has a built-in retry routine on join failures that's
convoluted half-broken. It stems from the Kurento era where it could
fail randomly due to a myriad of reasons.
Production logs indicate that the retry is seldom used nowadays in
mediasoup-based environments. The presence of the retry also breaks
the error troubleshooting modal when actual failures happening, leaving
users in the dark about what's happening.
Remove the listen only retry code from AudioManager and bubble up any
join failure to the callers.
In scenarios where the join audio flow skips echo test, NotAllowedError
(and any other errors) are all being mashed together under a generic
MEDIA_ERROR object.
Properly handle specific errors in audio-manager so they're correctly
render in the audio modal help screen.
- Adds a new Help view for unknown error codes
- Correctly detect NotAllowedError (permissions) - they are currently
being treated like unknown errors in the Help modal
- Rephrase NotAllowedError help text; make it more succint and direct
- Rephrase the unknown error help text; make it more succint and direct
- Add error code and message to that view
- Add public.media.audioTroubleshootingLinks to allow referencing KB
links on the Help modal
- See inline docs
The ErrorBoundary component has a generic log message that is not
overridable and will aggregate errors from different components. The
ideal scenario is that log tags are configurable so that errors can be
filtered for in log post-processing.
Add the logMetadata: { logCode, logMessage } prop to the ErrorBoundary
component so that log tags are configurable. Default tags are
maintained.
Add specific log metadatas for the client startup error boundary
(logCode: 'app_startup_crash') and the user connection error boundary
(logCode: 'app_crash').
Mobile users have no way to change I/O devices after joining audio.
The removal of the audio options chevron in mobile browsers was supposed
to be replaced by something else - in this case, by the dedicated
leave/join audio button. That didn't happen, leave/join audio button
retained the old behavior.
Review device selection in mobile endpoints via two UI/UX changes:
- Fix an styling issue where the mute and listen only buttons were
crammed together
- Restore the device selection chevron/icon in mobile endpoints
- Override the leave/join button action in mobile endpoints so that it
opens the device selection contextual menu, which also includes the
"Leave audio" option. This retains the old behavior (leaving audio)
while also providing an way for users to change devices mid-call in
mobile browsers.