I am building a Voice AI Receptionist using the LiveKit Agents framework (Python). My agent successfully registers with LiveKit Cloud, but it never receives any jobs—not from incoming phone calls, and not even from manually created rooms. I need help figuring out why the dispatch isn’t happening.
1. Environment & Deployment
-
Agent SDK:
livekit-agents==1.6.7,livekit-protocol==1.1.21(Python 3.12) -
Hosting: Deployed on Fly.io (Frankfurt region) using Docker.
-
Worker Status: The agent starts successfully and registers as a worker without errors.
json
{"message": "registered worker", "level": "INFO", "name": "livekit.agents", "agent_name": "agent", "url": "wss://voice-receptionist-zv7b196f.livekit.cloud", "region": "Germany 2", "protocol": 17}
2. LiveKit Cloud Configuration I have purchased a LiveKit Phone Number (+1 240 231 5244) and configured the routing:
- SIP Inbound Trunk: Contains the phone number
+12402315244. Allowed addresses set to0.0.0.0/0. No authentication set. - SIP Dispatch Rule:
- Type:
Individual - Linked to the Trunk ID.
- Room Config explicitly specifies
Agent: agent.
- Type:
- Phone Number Routing: The Phone Number is explicitly set to route to Agent
agent(and I also tried routing it to the Dispatch Rule).
3. The Problem When I call the Phone Number (+1 240 231 5244) from my mobile phone, the phone just rings indefinitely. Looking at the Fly.io logs for the agent, there is absolutely zero activity after registered worker. No JobContext is created, no participant joins.
4. Troubleshooting Steps Taken To isolate the issue, I bypassed the Phone Number and manually created a Room via the LiveKit Server API, explicitly requesting the agent:
python
agent_dispatch = ad_pb.RoomAgentDispatch(agent_name='agent')
req = room_pb.CreateRoomRequest(name='test-room', empty_timeout=120, agents=[agent_dispatch])
room = await lk.room.create_room(req)
Even with a manually created room, the agent does not join. list_participants returns 0.
5. Questions
- Is there a limitation on the Free Tier that prevents Agent Dispatch or Phone Numbers from routing to self-hosted workers?
- Is there a hidden setting in the Cloud Dashboard required to “enable” routing to registered workers?
- Could the region mismatch (Worker in
Germany 2, Phone Number is US-based) be causing the dispatch to fail silently?
Any guidance on why the Cloud is not dispatching jobs to the registered worker would be greatly appreciated. Thank you!