Minimum required
Recommended for best performance
- All hosts: UDP 50000–60000 for WebRTC media
- All hosts: TCP 7881 for WebRTC TCP fallback
Tips
- Enable UDP hole-punching where supported
- Avoid symmetric NAT configurations when possible
- UDP is strongly recommended for low-latency performance; TCP fallback degrades quality
Wildcard alternatives
If your firewall doesn’t support wildcards like*.livekit.cloud, consult LiveKit’s firewall documentation using subdomain heygen-feapbkvq.
Troubleshooting
Verify browser compatibility
Run the WebRTC browser test on the client’s machine. It checks that the browser supports the APIs LiveAvatar needs and that nothing is blocking them. Confirm the following are not blocked:- Camera and microphone permissions — a session requires the browser to grant media device access. Blocked or denied permissions prevent media from flowing.
- WebRTC — some privacy extensions, enterprise policies, or browser flags disable WebRTC entirely.
- Insecure context — getUserMedia and WebRTC require HTTPS (or
localhost). Pages served over plain HTTP cannot start a session.
Verify end-to-end connection
If the firewall and browser checks pass but sessions still fail, walk the full connection path manually. Each step isolates where the failure occurs.1
Create a session token
Use your API key to request a session token. See Create Session Token.The response returns a
session_id and session_token. A failure here points to an API key or request issue, not a network one.2
Start a session
Use the session token to start the session. See Start Session.On success, the response returns
livekit_url and livekit_client_token for the created WebRTC room.3
Test the WebRTC room connection
Pass the
livekit_url and livekit_client_token from the previous step to the connection tester to confirm the client can reach the WebRTC room.If the connection fails or the test shows degraded results, the firewall is likely blocking the required hosts, ports, or UDP media. Re-check the Minimum required hosts and ports above.