Inbound SIP calls from Asterisk keep ringing - no 200 OK sent

This question originally came up in our Slack community and the thread has been consolidated here for long-term reference.

I’m facing issues with inbound SIP integration between Asterisk and LiveKit SIP.

I’ve created the inbound_trunk.json with correct IP addresses and numbers, plus dispatch rules and agent configuration. Asterisk is properly configured.

When I originate a call from Asterisk:

  • It keeps ringing continuously on the Asterisk side
  • On LiveKit side, my agent gets triggered and starts generating streams
  • PCAP shows no 200 OK / ACK message

If the SIP session isn’t accepted, how is the agent getting triggered?

Make sure you have your SIP trunk and dispatch rules properly registered in LiveKit/Redis.

Check your setup with these commands:

lk sip inbound list

This should show your trunk configuration:

┌─────────────────┬───────────────┬─────────┬──────────────────┐
│ SipTrunkID      │ Name          │ Numbers │ Authentication   │
├─────────────────┼───────────────┼─────────┼──────────────────┤
│ ST_xxx          │ AsteriskTrunk │ 1000    │ livekit / ****   │
└─────────────────┴───────────────┴─────────┴──────────────────┘
lk sip dispatch list

Also verify you have a project set up:

lk project add agent-tools \
  --url http://localhost:7880 \
  --api-key devkey \
  --api-secret secret \
  --default

The agent triggering while calls ring suggests the dispatch is working but SIP signaling completion is failing. Check that your Asterisk and LiveKit SIP configurations match (codec support, authentication, etc.).

We have similar issues. can someone help. new to live kit. We’re using LiveKit Cloud with Twilio SIP for inbound calls. The SIP caller joins the LiveKit room successfully, but our voice agent never receives the dispatch job.

Setup

  • **Platform:** LiveKit Cloud
  • **Agent:** Node.js, deployed via `lk agent deploy`
  • **Packages:** `@livekit/agents` 1.0.44, `livekit-server-sdk` 2.15.0
  • **SIP:** Twilio → LiveKit SIP trunk, `SipDispatchRuleIndividual` with `roomPrefix`
  • **Agent name:** `emma-agent` (matches in both SIP rule and ServerOptions)

What we’ve tried

  1. **roomConfig.agents** — SIP rule with `RoomAgentDispatch` (`agentName: “emma-agent”`, metadata). Agent never receives jobs.
  2. **Explicit createDispatch()** — `AgentDispatchClient.createDispatch()` on `room_started` webhook. API returns success, but agent doesn’t join.
  3. **Auto-dispatch** — Removed `agentName` from ServerOptions. Agent still doesn’t join.

Observed behavior

  • **Webhook logs:** SIP dispatch rule created → Room started → `participant_joined: sip_+1…` → Twilio call answered → `participant_left` → `room_finished`
  • **Agent logs:** Agent starts, logs “registered worker”, but no “received job request” during calls
  • **LiveKit session list:** 1 participant (SIP caller only); agent never appears

SIP rule creation (Node.js)

await sipClient.createSipDispatchRule(
{ type: ‘individual’, roomPrefix: `inbound-${callSessionId}-` },
{
name: ruleName,
trunkIds: [sipTrunkId],
roomConfig: new RoomConfiguration({
agents: [
new RoomAgentDispatch({
agentName: ‘emma-agent’,
metadata: dispatchMetadata,
}),
],
}),
}
);

Agent worker

cli.runApp(new ServerOptions({
agent: agentPath,
agentName: ‘emma-agent’,
}));

**Question **

For LiveKit Cloud + Twilio SIP inbound, what is the correct way to get the agent to receive jobs? Is there a known issue with roomConfig.agents not dispatching to agents on Cloud, or a different configuration we should use?