Bird SIP trunk → LiveKit integration for inbound PSTN calls (room routing + call control questions)

I’m building a POS-based calling system and evaluating a setup with:

  • Bird for PSTN (inbound calls, numbers, call control)

  • LiveKit for SIP trunk + WebRTC (agent-side audio in a web app)

Planned flow

  1. Bird receives an inbound call

  2. Backend resolves store/tenant and creates a LiveKit room

  3. Agent joins the room via web app (WebRTC)

  4. Bird bridges the call to LiveKit via SIP trunk

  5. SIP participant joins the same room → audio flows


Questions / potential blockers

1. SIP → room routing

  • What’s the recommended way to map an incoming SIP call to a specific LiveKit room?

  • Can this be done reliably using:

    • Request-URI

    • Custom SIP headers

  • Any known limitations here?

2. SIP trunk setup

  • Any known issues using non-documented providers (like Bird) with LiveKit SIP?

  • Anything specific to watch for in terms of IP allowlisting or RTP/audio flow?

3. Call control timing

  • Is it reasonable to delay SIP bridging until the agent joins?

  • Or is it better to accept SIP immediately and handle waiting inside the room?

4. Concurrency

  • Any constraints or best practices for handling multiple simultaneous SIP calls (one room per call)?

5. Real-world gotchas

  • Any issues you’ve seen in production with:

    • One-way audio

    • SIP negotiation edge cases

    • Room dispatch behavior


Would really appreciate any guidance or real-world experience before I proceed further with this approach.

Wow, this is the first time I’ve seen someone raise an issue related to Bird. I assume you mean https://bird.com/?

What’s the recommended way to map an incoming SIP call to a specific LiveKit room?

Call to room mapping is done via Dispatch rule. I recommend a unique room per call. Have a look at this doc you can setup your dispatch rules here Sign in | LiveKit Cloud but you need to setup your inbound SIP trunk first.

Any known issues using non-documented providers (like Bird) with LiveKit SIP?

I’ve not tried with Bird and SIP but as long as they are a SIP trunk it should work fine. I’ve seen a lot of different SIP gateways used and generally it is not really an issue (besides the common run of the mill SIP issues).

Any constraints or best practices for handling multiple simultaneous SIP calls (one room per call)?

This is the recommend method, one room per call.