clean-rose-93923
03/18/2026, 2:58 PMWhatsApp SIP → Kamailio → rtpengine → LiveKit (Cloud) → Browser
• SIP side codec: PCMU (8kHz)
• WebRTC side codec: Opus (48kHz)
• rtpengine handles transcoding (PCMU ↔️ Opus)
LiveKit is cloud-hosted (not self-hosted).
Observed Behavior
From `rtpengine-ctl call info`:
❌ Failing calls
Media (WebRTC side):
172.17.0.4:24998 <> 57.144.41.49:3484
0 packets, 0 bytes, 93 errors
• No RTP received from LiveKit side
• Errors continuously increment
• Call drops after ~20s
⚠️ Partially working calls
Media (WebRTC side):
172.17.0.4:25028 <> 57.144.49.49:3484
494 packets, 34 errors
• Some RTP received
• Audio is intermittent
✅ Working calls
Media (WebRTC side):
172.17.0.4:23068 <> 57.144.49.49:3484
227 packets, 0 errors
• Audio works normally
Key Observation
In all cases, LiveKit is sending media from:
57.144.x.x:3484
This strongly suggests that:
• LiveKit is using a TURN relay
• Instead of a direct ICE host/srflx candidate
Expected Behavior
We expect LiveKit to:
• Prefer direct UDP (host/srflx ICE candidates) when reachable
• Avoid TURN unless strictly necessary
• Even if that's not possible, how to reliably use TURN to relay media
Actual Behavior
LiveKit appears to:
• Prefer or fall back to TURN frequently
• Resulting in:
◦ No RTP flow in some cases
◦ Intermittent audio in others
Impact
• Calls drop after ~20 seconds due to no media
• Unreliable audio experience
• Production impact on SIP-based calling (WhatsApp integration)
Questions
1. Under what conditions does LiveKit Cloud prefer TURN over direct candidates?
2. Is there a way to force or prioritize host/srflx candidates?
3. Could there be regional TURN routing issues causing intermittent RTP failures?
4. Are there any logs or metrics available from LiveKit Cloud to debug ICE candidate selection?
Additional Notes
• No changes were made to:
• Kamailio
• rtpengine
• Network/firewall
• SIP side RTP (WhatsApp ↔️ rtpengine) is always stable
• Issue only occurs on WebRTC (LiveKit) side
• Other SIP calls on same infrastructure are working normally
What We Need
• Guidance on ensuring direct RTP path (no TURN)
• Debugging steps for ICE candidate selection in LiveKit Cloud
• Any known issues with TURN reliability on LiveKit Cloud
Optional Debug Info (can provide if needed)
• Full SDP offer/answer
• ICE candidate pairs
• Packet captures (tcpdump)
• rtpengine logstall-airline-16756
03/18/2026, 2:59 PMclean-rose-93923
03/18/2026, 3:00 PM