Subject: Registered worker never receives jobs (Phone Number & Manual Room) – Free Tier Limitation?

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 to 0.0.0.0/0. No authentication set.
  • SIP Dispatch Rule:
    • Type: Individual
    • Linked to the Trunk ID.
    • Room Config explicitly specifies Agent: agent.
  • 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

  1. Is there a limitation on the Free Tier that prevents Agent Dispatch or Phone Numbers from routing to self-hosted workers?
  2. Is there a hidden setting in the Cloud Dashboard required to “enable” routing to registered workers?
  3. 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!

On the free tier you should be able to:

  • Purchase a number
  • Define a dispatch rule
  • Host an agent (or self-host)
  • Have the agent answer the call you make to your phone number

Here is one session to that number: https://cloud.livekit.io/projects/p_/sessions/RM_oUZpY7Q47vND/events

I see the agent joining the room (served from your self-hosted agent), but the agent leaves 2 seconds later.
It looks like everything is OK with your telephony set-up, but your agent is not answering the call and the session continues to ring. I’m not sure why, but something is going wrong in your agent, and you should be able to find the answer in your agent logs, which I don’t have access to.

Alternatively, I see you deployed a cloud agent, possibly as part of your debugging. You could deploy a cloud agent based on the voice agent starter and that should also handle the call. Take care with agent names, if you do this, it probably makes sense to use a different name ‘agent2’ and change your dispatch rule to match.