36edc6de12
Plugin (rides next build): - Audio: disable LiveKit auto audio-session config + keep the engine OFF, then configure the session and start the engine ONLY in CXProvider didActivate (stop in didDeactivate). Fixes intermittent dead mic / no audio and the "speaker turns on late" routing. Request mic permission on connect so enabling the engine in didActivate can't block on undetermined permission (SDK #815). - Re-ring blip: a cancel push for a call we already ended/known no longer reports a NEW incoming call (that was the phantom "rings back for a second"); it ends the known call cleanly, and only reports+ends for a truly unknown (cold) call. - Mute display: answer/outgoing reflect muted-by-default on the CallKit screen; setMuted now drives mute THROUGH CallKit so the system screen and the in-app meeting UI stay in sync. - reportIncomingCall: new method to ring CallKit from a WebSocket call event — a 2nd path alongside the VoIP push for when the app is open (push can be delayed); deduped by UUID. Web (deploys now; the WS ring path activates once the build has the new method): - onDmCall/onGroupCall call nativeReportIncoming for native incoming calls. - audioActivated telemetry. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>