Carrier selection for a multi-tenant receptionist. Twilio wins despite being the most expensive, because at SMB volume the price spread is noise and account-suspension risk is the real differentiator when you are carrying other businesses’ phone numbers.

Twilio Media Streams — Constraints to Design Around

ConstraintValueImplication
Codecμ-law 8kHz onlyDrives the whole STT and TTS vendor filter — native μ-law support is mandatory or you transcode every frame
Streams per callONE bidirectional streamNo side-channel; everything multiplexes through one WebSocket
DTMFinbound-only on bidirectional streamsCannot send DTMF back over the media stream

These are hard constraints, not defaults. The single-bidi-stream limit in particular means any “listen on a second stream for X” design is off the table.

Pricing — The Spread Is Noise at SMB Volume

Carrier$/min all-inNotes
Plivo$0.006Streaming included free
SignalWire$0.0066
Telnyx$0.0097See trap below
Twilio$0.0129inbound 0.0044; $1.15/mo per number

The spread is 14 per month at SMB volume

Twilio costs roughly 2x Plivo per minute. On a small-business call volume that is a ~$8/month difference. This is not a number worth optimizing against operational risk.

Telnyx pricing trap — the headline $0.0032 is not what you pay

Telnyx advertises **0.0097 because:

  • Call Control adds $0.002 (additive, not included)
  • Media streaming adds another $0.0035

Any comparison table quoting $0.0032 for Telnyx is comparing a bare-minutes rate against other carriers’ all-in rates.

The Real Differentiator: Account-Suspension Risk

You are carrying other businesses' phone numbers

A suspension doesn’t degrade your service — it takes every tenant’s phone line offline simultaneously, with no recovery path you control. For a receptionist product this is an existential failure, not an incident.

CarrierSuspension riskEvidence
TwilioLOWESTMature compliance and support org
SignalWireMEDIUM-HIGH for small accounts
PlivoMEDIUMTicket-only support — no escalation path during an outage
TelnyxHIGHFCC proposed ~0.06 negative balances

The Telnyx detail is worth reading twice: accounts suspended within minutes over six-cent negative balances. Combined with an active FCC KYC enforcement action, that is a vendor whose compliance posture is currently under pressure and whose automated enforcement is hair-trigger.

This single factor justifies staying on the most expensive carrier

$8/month buys the lowest probability that every tenant’s phone number goes dark at once. That is the correct trade.

Carrier RTT — Not a Reason to Switch

CarrierRTT p50RTT p95
Telnyx71ms118ms
Twilio89ms161ms
Vonage94ms152ms

These numbers are published on Telnyx's own site — discount accordingly

[vendor, self-serving]. Telnyx publishing a benchmark in which Telnyx wins is not independent evidence.

Even taking them at face value: the 18ms p50 delta between Telnyx and Twilio is not worth switching carriers for, against a ~1,048ms total loop (voice-agent-latency-budget-2026-07-21). It’s under 2% of the budget.

Co-location beats carrier choice

Putting the server in us-east-1, near Twilio’s us1 media servers, matters more than which carrier you pick. Network path length to the media server is a bigger lever than the carrier’s internal RTT, and it’s entirely under your control.

Twilio ConversationRelay — AVOID

$0.07/min on top of voice minutes — ~5.5x the DIY cost

And that’s the less important problem.

ConversationRelay is a text-only WebSocket. No raw audio in either direction. That means:

  • ❌ No custom VAD
  • ❌ No custom endpointing
  • ❌ No barge-in control
  • ❌ No DSP of any kind

Every single lever this project depends on — the 480ms orchestration residual, custom turn detection, digit-string endpointing — is unreachable through ConversationRelay by construction. It is architecturally incompatible with the thesis of the build, and it costs 5.5x more.

It joins the managed platforms in the “cannot host your own VAD” bucket, but is worse than most of them because it doesn’t even expose audio.

Decision

Twilio Media Streams, raw bidirectional WebSocket, server co-located in us-east-1.

CriterionWeightWinner
Suspension riskdecisiveTwilio
Pricenegligible at SMB volumePlivo (irrelevant)
RTTnegligible (18ms of ~1,048ms)Telnyx (irrelevant, self-reported)
Support escalation pathhighTwilio (Plivo is ticket-only)

Revisit only if per-minute carrier cost becomes a material fraction of COGS — i.e. at volumes far above the build-vs-buy break-even, at which point an enterprise agreement is on the table anyway.

Sources

  • Twilio Media Streams docs — μ-law 8k, single bidi stream, DTMF inbound-only [vendor]
  • Twilio, Plivo, SignalWire, Telnyx pricing pages [vendor]
  • FCC proposed forfeiture against Telnyx (~$4.5M, KYC violations) [regulatory]
  • Telnyx user reports — suspension over $0.06 negative balance [user reports]
  • Telnyx-published carrier RTT comparison [vendor, self-serving]
  • Twilio ConversationRelay docs and pricing [vendor]