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
-
Bird receives an inbound call
-
Backend resolves store/tenant and creates a LiveKit room
-
Agent joins the room via web app (WebRTC)
-
Bird bridges the call to LiveKit via SIP trunk
-
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.