quick-mouse-53034
03/09/2026, 10:37 PM<ws://localhost:7880>.
• For Tavus I need a public URL (right?) so Tavus’s cloud can join the room. I tried exposing LiveKit with ngrok (wss://...<http://ngrok-free.dev|ngrok-free.dev>) and passing that URL to avatar.start(livekit_url=...).
What went wrong
I set LiveKit config rtc/node_ip to the ngrok hostname (is it needed at all?). That led to “invalid address rewrite mapping” and negotiation failed for all participants (browser, agent, tavus-avatar-agent). I’ve since removed node_ip so the browser works again when connecting to localhost.
• My understanding: ngrok only does TCP/WebSocket; WebRTC media is UDP, so Tavus can’t actually get media through ngrok. So locally, Tavus never gets a proper WebRTC path.
What I’m trying to achieve
1. Local dev: A way to test the Tavus plugin from my machine (even if it’s limited), and/or clarity that full Tavus testing really needs a publicly reachable LiveKit node (e.g. GCP).
2. Production (GCP): Correct LiveKit config (e.g. node_ip, use_external_ip, any LB/NAT considerations) so that both the web client and Tavus can connect when LiveKit is behind a GCP load balancer.
Questions:
• Recommended way to try the Tavus plugin locally?
• For GCP + load balancer, what’s the right RTC/node configuration so the server advertises the correct WebRTC endpoint for both browser and Tavus (e.g. node_ip, external IP, UDP port range exposure)?tall-airline-16756
03/09/2026, 10:37 PM