thousands-dream-91102
03/17/2026, 7:32 AMtall-airline-16756
03/17/2026, 7:32 AMtall-airline-16756
03/17/2026, 7:32 AMlivekit-server, `signal`/`gateway`, SFU pods, turn/relay pods, etc.
2. How is LiveKit exposed externally?
◦ Using a Kubernetes Service of type LoadBalancer, NodePort, external NGINX/ingress, or a hostNetwork configuration?
1. Are you using any TURN servers (coturn) or relay/proxy services? If yes, are they running inside the cluster or externally?
2. What networking/CNI plugin does your EKS cluster use (AWS VPC CNI, Calico, Cilium, etc.)?
3. What exact symptom do you see when voice “is not coming”?
◦ No audio at all, one-way audio, or connection failures?
◦ Any client-side errors or logs (browser console, WebRTC stats, LiveKit SDK logs)?
1. Server-side logs:
◦ Do livekit-server or related pods show errors or warnings after the IP change? If so, please share relevant log lines or error messages.
1. Are clients able to connect to the room and see other participants’ presence/metadata, but just audio is missing? Or do connections fail entirely?
2. After changing node IPs, did you update any of these items:
◦ Kubernetes Service endpoints or externalIPs
◦ Ingress/LoadBalancer target settings or security group rules
◦ DNS records or certificates that point to the nodes
1. Any NAT, firewall, or security-group rules that reference the old IPs and might block RTP/UDP ports (commonly 10000–20000 for media) or TCP signaling ports?
Quick checks you can run now (these commonly reveal the issue):
• Verify that the LoadBalancer/ingress targets include the new node IPs.
• Check that the nodes’ security groups / network ACLs allow UDP traffic on the media port range and TCP for signaling.
• Confirm TURN/relay configuration (if used) is reachable from clients and the livekit server.
• Inspect livekit-server logs for ICE/DTLS/transport negotiation failures or TURN allocation errors.
• Collect a browser/client WebRTC getStats report showing ICE candidate pairs and packet counters to see whether RTP packets are being sent/received.
If you share answers to the questions above and any relevant logs or client errors, I’ll suggest targeted next steps to restore voice quickly.
, with interactive elementschilly-kilobyte-2475
03/17/2026, 8:41 AMtall-airline-16756
03/17/2026, 8:42 AMgetStats() summary showing ICE candidates and selected pair)?
◦ Do ICE candidates include private node IPs only, public IPs, or TURN addresses?
1. TURN / relay
◦ Are you running a TURN server (coturn or similar)? Is it inside the private subnet or external?
◦ Is LiveKit configured to use that TURN server? Is the SIP side using it for media relaying?
◦ Can clients reach the TURN server on its UDP/TCP ports from their networks?
1. rtpengine / Kamailio setup
◦ Is rtpengine handling RTP media relay between SIP and LiveKit? If so, are rtpengine logs showing RTP packets being sent and received?
◦ Are the RTP proxy IPs configured correctly in Kamailio/rtpengine and matching the node IPs after your change?
1. Network / ports
◦ What UDP/TCP port ranges are you using for RTP on rtpengine and LiveKit? (Commonly UDP 10000–20000)
◦ Are the EKS nodes’ security groups and VPC NACLs allowing those UDP ports and RTP directions?
◦ After the private IP change, did you update any static IP references (rtpengine advertised IP, externalIP, LoadBalancer targets, or SIP contact/SDP fields)?
1. Logs and errors
◦ Do livekit-server logs show ICE/DTLS/TLS errors, ICE timeouts, or TURN allocation failures? Please paste a few relevant log lines around the time of a silent call.
◦ Any rtpengine logs showing packet counts, errors, or “no media” warnings?
◦ Any browser/client console errors relating to DTLS handshake, ICE state “connected” vs “completed”, or codec negotiation?
1. Call symptom specifics
◦ Is it one-way (agent hears user but user silent) or both-way silent?
◦ Are you seeing RTP byte/packet counters increase on either side? (rtpengine / LiveKit stats)
◦ Do participants appear “connected” in LiveKit and can send/receive data messages, but audio packets are zero?
Immediate checks you can run now
1. From a pod or node, try UDP packet tests to the other side on the RTP port range (e.g., nc -u or socat) to confirm connectivity.
2. Check rtpengine stats or use tcpdump on rtpengine and livekit-server pods to confirm whether RTP packets arrive on the expected interfaces/ports.
3. Confirm ICE selected pair in the client getStats() — if no candidate pair with RTP bytes is selected, ICE/media handshake failed.
4. Verify that rtpengine/coturn advertise the correct external/private IPs in their configs after the IP change.
5. Temporarily open RTP port ranges in security groups and run a test call to see if audio returns (helps confirm network block).
What I can do next for you
• If you paste snippets of:
◦ livekit-server ICE/DTLS logs around the call,
◦ rtpengine logs showing RTP activity for that call,
◦ a short getStats() ICE candidate/selected pair output from the client,
I’ll review them and point to the exact failing component and config to change.
If you prefer, tell me whether the silence is one-way or two-way right now and share which of these you can collect quickly (logs, getStats, tcpdump). I’ll give step-by-step commands to gather the exact traces.
, with interactive elements