0688a46604
Two fixes for call connectivity: 1. ICE candidate buffering: Candidates arriving before the WebRTC session exists (callee ringing) or before remote description is set (caller waiting for answer) are now queued in pendingIceCandidates and flushed once setRemoteDescription is called. This was the root cause of calls getting stuck at "Connecting" — ICE candidates were silently dropped. 2. Stale event filter: All signaling events older than 30 seconds are discarded in CallManager.onSignalingEvent() to prevent old cached events from triggering phantom calls. Also: removed cleanup() from WebRTC onDisconnected callback to avoid double-cleanup race with the CallManager state observer. https://claude.ai/code/session_017hZm7yu7CzmcQgZGSaqSXS