# PSTN

The PSTN is the regulated, interconnected telephone network that ordinary numbers live on. Software cannot join it — you buy access from a licensed carrier, per country, under that country's rules. What it gives you is reach to anyone with a phone. What it charges is per minute, narrowband audio, and a signalling channel with almost nothing in it.

- **Status:** Reference
- **Audience:** both
- **Channels:** phone
- **Last verified:** 2026-09-10
- **Canonical:** https://connectbyjbrh.com/docs/technology/pstn/

## What you are actually connecting to

Most of the network has been packet-switched internally for years, but the properties that matter to a software system come from its origins as a circuit-switched, nationally regulated utility. Numbers are allocated under national plans and expressed internationally in E.164 form — a country code, a national number, at most fifteen digits. Interconnection between operators is commercial and regulated. Portability means a number's prefix no longer reliably identifies who carries it.

The practical consequence is that there is no global telephone API, and there will not be one: eligibility for a number, the documentation you must supply to get one, what you may present as calling line identity, and what you may do with an automated call all vary by country. A design that assumes otherwise fails at the second country.

## The constraints a call imposes on software

**Narrowband audio** — The classic voice path is 8 kHz sampled, and consumer-grade at that. A speech model on a phone call is working with materially less signal than the same model on a laptop microphone, which is why phone-call accuracy is never the accuracy in a demo.
**Per-minute cost** — Charged by destination and often asymmetric. Cost belongs on the call record, not in a monthly guess.
**No rich data channel** — A caller can send you digits and speech. There is no structured payload, no attachment, no read receipt.
**Call state is hearsay** — You know what the carrier tells you, when it tells you. A call your system believes is active may have ended two minutes ago.
**Latency is cumulative** — Network transit, jitter buffering and any transcoding all add to the gap before your agent can even begin to think.

> **Note** Because state arrives as provider events, the fastest audit of a phone integration is to read the carrier's own call log beside your own call records. A call marked complete on their side with no row on yours is a bug every time — and it is a bug that charges money while staying invisible in your product.

## Does Connect use the PSTN?

Yes, on every real call. A carrier supplies the PSTN leg — Vobiz on the live account — and inbound and outbound calling both run in production. Connect adds a realtime path on top, where the number is linked at the carrier to a SIP trunk and a speech-to-speech model holds the conversation, but the leg that reaches a human's handset is still the public network.

The provider is deliberately confined. One adapter module knows a carrier's signature scheme, its XML dialect and its webhook shape, and it is the only place a provider's own words appear. The core knows what a line is, what an event means and who may be called when; providers differ there only through a capability table, asked with `telephony.can(...)`. Everything above names no provider at all, and a test asserts that rather than trusting it.

Three things the network can do that this account does not: call recording is a provider capability that is not enabled here; a completed warm handover to a colleague depends on a provider capability that is not enabled either, so an escalation queues rather than completes; and the live carrier carries no SMS at all, which the Phone screen states rather than presenting a message thread that cannot send.

## What this means for expectations

A voice agent is not a chat window with audio attached. The floor on the realtime path is the model's first token plus its end-of-turn detection — **3.3 s median reply on the best measured call**, not the one to two seconds a demo video implies. That floor is a property of the model and the network together, and no setting removes it.

It also means every design question about a phone call is a question about time. What can be said while the caller is still speaking, what must wait, what is worth the round trip — these matter here in a way they never do on email, where a two-second delay is invisible.

## Questions

### Can software place a call without a carrier?

Not to a telephone number. You can carry audio between two internet endpoints with no operator involved, but the moment one end is an ordinary phone, a licensed operator terminates that call and charges for it. Choosing a carrier is therefore a product decision, not an implementation detail.

### Why does a phone call sound worse than a video meeting?

Narrowband audio. A conference tool can negotiate wideband between two computers; a call to a handset is constrained by the oldest link in the path. This affects recognition as much as it affects how a voice sounds — quiet speech, background noise and unfamiliar names all cost more accuracy here.

### Does the number I dial from matter?

Yes, in two ways. Presenting a calling line identity you do not control is prohibited in most jurisdictions, and separately, recipients answer numbers they recognise. Both point at the same practice: call from a number the business genuinely holds and publishes.

## Related

- [DID — a direct inward dialling number](https://connectbyjbrh.com/docs/technology/did/)
- [Telephony carriers](https://connectbyjbrh.com/docs/technology/carrier/)
- [SIP](https://connectbyjbrh.com/docs/technology/sip/)
- [Phone and voice in Connect](https://connectbyjbrh.com/docs/phone/)
- [Designing telephony that does not name its provider](https://connectbyjbrh.com/research/provider-independent-telephony/)

## What this page is based on

- Source pack: phone and voice — `docs-source/sources/PHONE.md` §1, §2 and §12 (the three layers, the audit against the carrier log, what is not available)
- ITU-T Recommendation E.164 — the international public telecommunication numbering plan (https://www.itu.int/rec/T-REC-E.164/en)
- Connect capability registry (`docs-source/facts.py`) — `inbound_call`, `outbound_call`, `call_recording`, `call_transfer`
