Two fixes pulled from today's QA:
1. activateListenerAudio() existed in the page but was orphaned —
never called from anywhere after a prior refactor. Wire it back
via flagAudioBlocked(): when attachSfuTrack's play() promise
rejects (Firefox Android autoplay block past the entry gesture
window), set audioPlaybackBlocked=true, show a warn notice "Audio
paused by browser. Tap anywhere to resume." and arm a single
document-level click/touchstart listener. First tap fires
activateListenerAudio() inside the gesture, retries play() on
every paused element (rtc + stream), clears the notice.
Telemetry that exposed this: phone showed
`rtc[3110] rs=4 ns=1 pa=1 ct=0.00` — element had data, network
idle, paused, never started playing. No recovery path until the
user reloaded.
Scoped — the document-click handler is armed only while the flag
is true, removed on first tap. Doesn't add noise to working
sessions (which was why the prior tap-anywhere was reverted).
2. Kick clears sessionStorage[ACTIVE_CALL_KEY]. The confirm() text
says "they can rejoin" — but that means MANUALLY (type the code,
click enter), not automatically on a hard-refresh / bfcache
restore via auto-rejoin. Fox 2026-06-04: "we have auto-join on
the phone that is kicked just rejoins". Closes that loophole;
victim can still re-enter manually.