Skip to main content

Use Telnyx (not Twilio) for new customer voice lines

Status

DECIDED

Context

After migrating the voice platform to LiveKit (2026-03-25), we needed a telephony provider for new customer phone number provisioning. The existing Twilio numbers (toll-free, demo US, demo CA) were staying on Twilio via SIP trunk. The question was which provider to use for net-new customer lines going forward.

Twilio is the incumbent, but it charges $1.15/mo per number and $0.0085/min inbound. It also requires a TwiML-to-SIP bridge for local numbers routing to LiveKit, adding a hop and latency.

Decision

Use Telnyx for all new customer voice line provisioning. Existing Twilio numbers remain on Twilio — no migration. Legacy Twilio trunk ST_Xa3Bp9aixRFP is locked and must never be modified.

FQDN routing uses the LiveKit project ID (not project name): 5u9xu5ysoly.sip.livekit.cloud — this is the locked working config.

Rationale

  • Cost: Telnyx DID costs ~$1/mo + $0.005/min inbound vs Twilio's $1.15/mo + $0.0085/min — roughly 40% cheaper on per-minute charges.
  • Direct SIP: Telnyx connects directly to LiveKit's SIP endpoint without a TwiML bridge. Fewer hops, lower latency, one fewer vendor dependency.
  • US + CA numbers: Telnyx supports both US and Canadian numbers, matching the customer base.
  • First customer validated: +14144007103 (Medhanialem Ethiopian Evangelical Church, Zewdei) was provisioned and confirmed working end-to-end via direct SIP to LiveKit.

Provisioning flow: buy number via Telnyx API → assign to connection 2925081061861885519 → create LiveKit inbound trunk → create dispatch rule → write to church_voice_agents.twilio_phone_number (legacy column name).

Consequences

  • Good: Lower per-minute cost compounds as call volume grows; direct SIP eliminates TwiML bridge reliability risk.
  • Bad: Two telephony vendors to manage (Telnyx for new, Twilio for legacy). Provisioning code must handle both paths.
  • Reversible? Yes — numbers can be ported between providers, though porting takes 2-4 weeks and churches will have printed numbers on bulletins.

Alternatives considered

  • Twilio for new lines — rejected due to higher cost and TwiML bridge requirement for LiveKit integration.
  • Port legacy Twilio numbers to Telnyx — rejected; Twilio numbers are already working and porting risks service disruption for existing customers. No customers are currently on Twilio-provisioned lines (all legacy demo numbers).
  • Runbook: knowledge/runbooks/voice-provisioning.md
  • Related decision: 2026-03-25-voice-platform
  • Memory: ~/.claude/projects/C--dev/memory/project_telnyx_provisioning.md
  • Memory: ~/.claude/projects/C--dev/memory/project_telnyx_working_config.md