Livekit Support?

Anybody used SIP to forward to a livekit Siptrunk? I added the sip number in the settings,
VoIP : xxxxx.sip.livekit.cloud/john
I can’t remove the /john but this didnt work, but I dont think thats a problem.

When i call my flynumber i get a “busy” Signal and I see “status fail, reason not found” in my call history. On livekit I don’t see any connection attempt.
Thanks for hints!

1 Like

Hi @Bernhard_Schelling,

We just tested forwarding to a LiveKit SIP trunk from our side and it works fine — so the problem is on the LiveKit config side, not FlyNumber (but you do have to change the FlyNumber settings).

1. Change the username from john to your FlyNumber in E.164

In the FlyNumber VoIP settings you want:

  • Host: xxxxx.sip.livekit.cloud
  • Username / details: the FlyNumber itself in E.164 format — e.g. +17185301799 for a US number, or +34930521234 for a Spanish one

So the resulting URI becomes [email protected]not john@….

The reason: LiveKit’s inbound trunk matches incoming calls against the To: user in the SIP INVITE, and it expects the DID in E.164. john won’t match anything on their side, which is exactly why you’re seeing:

status fail, reason not found

That’s LiveKit responding with 404 Not Found. It also explains why you don’t see any connection attempt on the LiveKit dashboard — the INVITE is rejected at the trunk level before it ever reaches a dispatch rule.

2. On LiveKit, create an inbound trunk that includes your FlyNumber

Easiest way is through the LiveKit Cloud dashboard: Telephony → SIP trunks → Create new trunk → Trunk details tab. Set Trunk direction to Inbound, and put your FlyNumber in E.164 in the Numbers field (comma-separated if multiple). Leave Allowed addresses empty unless you actually want to IP-restrict.

Or via JSON editor / API:

{
  "trunk": {
    "name": "FlyNumber inbound",
    "numbers": ["+17185301799"]
  }
}

If numbers doesn’t include the DID you’re calling (and isn’t empty for wildcard), LiveKit will 404 it every time.

3. On LiveKit, create a Dispatch Rule — this is also required

Even with a valid trunk, LiveKit won’t route the call anywhere unless a dispatch rule tells it which room to send it to. Same dashboard: Telephony → Dispatch rules → Create new dispatch rule. Rule type Individual with a room prefix like call- is fine for most setups — each caller lands in a unique room.

Or via JSON:

{
  "name": "My dispatch rule",
  "rule": {
    "dispatchRuleIndividual": {
      "roomPrefix": "call-"
    }
  }
}

Without any dispatch rule the call gets accepted by the trunk and then dropped because it has nowhere to go.

On TLS and IP whitelisting:

  • TLS is not required unless you explicitly enabled secure trunking on your LiveKit trunk. Default UDP/5060 works out of the box.
  • IP whitelisting is not required unless you set an allowed_addresses restriction on your LiveKit inbound trunk. If you did, our outbound IPs are listed here: Set to VoIP | The FlyNumber Docs

So the checklist on LiveKit’s side is: inbound trunk with your DID in numbers + a dispatch rule + (eventually) an agent to actually answer. Once those three are in place you should start seeing the call hit your dashboard.

If it still fails after that, send us the timestamp and we’ll look up the exact SIP response headers LiveKit returned.

Wow that’s a super helpful and detailed response :grin:

I’ll try to sort it out and keep you posted!

Muchas gracias!!!

YES IT WORKS!
So basically all I had to do was to change the “Details” entry on “Forwarding Details”:

VOIP
Protocol SIP
Host: xxx.sip.livekit.cloud
Details: (+34…) - the Full Flynumber

Livekit support, you made my day :slight_smile:

1 Like

Very glad to hear @Bernhard_Schelling and appreciate the feedback.

If anyone else comes across issues with LiveKit, we added a section to our docs on this:

Thanks again.