3e8aaad68c
The plugin now carries the call media NATIVELY: on answer it connects the LiveKit Room from the VoIP payload's url+token and publishes the mic; outgoing calls connect via reportOutgoingCall(url,token). CallKit stays ACTIVE for the whole call (foregrounds the app, keeps it alive) — the mic works because LiveKit's audio runs natively and coordinates with CallKit (unlike WebKit's WebRTC). setMuted -> setMicrophone; end -> disconnect. Removed the handoff hack. NOT testable yet: still need (a) WebView to stop joining the room for native calls (one connection per identity) and drive outgoing via reportOutgoingCall, and (b) server lifecycle endpoints for native calls (answered/ended), since native media bypasses our mesh/WS signaling. LiveKit Swift API authored without a local compile — expect a build iteration or two. Don't build/flip CALLKIT_ENABLED yet. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>