A programmable home phone for a spare Raspberry Pi. Known callers ring the whole house. Everyone else meets the doorman.
The lobby
Six digits. Or ten seconds of silence, and the doorman decides for you.
When the phone rings
Like any quality doorman, every caller is checked against the list. Favored guests are automatiically allowed to ring the house phones. Their numbers formatted and fashioned into a universal form first to prevent confusion. Which makes sure grandma never has to meet the bouncer (unless you want her to).
For Known Callers
“Welcome, I’ll connect you.”
Every handset in the house rings at once. The first to answer gets the call. Classic Landline. No extensions needed. No spam callers.
Everyone Else
“Welcome to the phone lobby. Please dial an extension.”
These callers get ten seconds to start dialing an extension. Valid extension rings that room. Silence, or wrong guess, gets “Good day.” and a click.
Ten seconds sounds generous until you watch someone read a number off a card. The window is ten seconds to the first digit, then three between digits — so a confident caller is through in two seconds and a fumbling one still gets a fair shot.
A six-digit code exposed to the phone network is a million combinations: ample against a person, thin against a machine that can redial. So after three failed calls in an hour, a number skips the greeting entirely and goes straight to “Good day.” — no prompt, no dial window, nothing to work against.
How is the fit
The Pi registers outbound to a VoIP provider, and incoming calls ride that registration back in. No port forwarding, no inbound firewall rules, no dynamic DNS. The only connection crossing your network edge is one the Pi opened itself.
Asterisk does SIP, RTP, and tone detection, because it is very good at
those and there is no reason to write them again. Everything about
who gets in lives in doorman: one static Go
binary, talking to Asterisk over loopback. One call is one goroutine,
and a caller hanging up cancels a context that unwinds the whole
thing.
It is also its own operations tool. It will tell you what your configuration adds up to, show you how a caller ID normalises, and hand a language model the entire config surface as JSON Schema.
Beyond the lobby
Once the handsets are registered, they get the toolkit a small office PBX has had for thirty years. It turns out to be a remarkably good fit for a house.
Ring the kids’ room for three cycles, escalate to the adults for four more, then take a message. Per extension.
A named schedule like school-night, referenced by any extension. Between 20:30 and 07:00 that line does not ring at all.
Dial 500 and every handset opens at once. Dinner is ready without shouting up the stairs.
Park a call on 700 in the kitchen, pick it up from the office. The house behaves like a small hotel.
Dial 600 and everyone who joins is in the same room. An extension can drop an outside caller straight into it.
BLF hints, so the lamp on your handset tells you the office is already on a call before you pick up.
Per-mailbox, with the message delivered to email. Message-waiting lamps follow whichever box you point a phone at.
Because a silent hold is indistinguishable from a dropped call.
The greeting is a folder of audio. Drop in another pack and a Victorian doorman, a bureaucrat, or a ship’s computer meets your strangers instead.
An afternoon, roughly
In that order, and confirm each before climbing. A failure low down explains every symptom above it, which is why the runbook is written as a ladder rather than a checklist.
Create a sub-account with a VoIP provider, point a DID at it, and turn on E911. A couple of dollars a month, and the one line item worth not skipping on a house phone.
apt install asterisk, copy the config from the repo, restart. Confirm the trunk registered before going further — everything above this rung depends on it.
Render the prompts once on a workstation with piper and copy the WAVs across. The Pi never synthesises speech, so a broken speech service can never make the phone unreachable.
Write who is known and what rings, run doorman check, and enable the service. Edits go live within a second, and a file that fails validation is discarded rather than applied.
What to buy
doorman has no opinion about brands. Anything that
registers over SIP works, so buy on ergonomics and price. The type
matters more than the model: wired desk phones never surprise you,
DECT is the right answer for cordless, and an ATA means the phones
already in your house may need nothing bought at all.
For the Pi itself, one choice is worth being rigid about: use wired Ethernet. Wi-Fi jitter on the box handling audio is the difference between a clear call and someone sounding underwater. Then put it on a small UPS — a house phone that dies in a power cut is worse than none, because you thought you had one.
The most headroom. Wants active cooling and the 5 V/5 A supply.
The sweet spot. 2 GB is ample, and a PoE HAT fits so one cable does power and network.
The cheapest that still has wired Ethernet — which matters more than the model.
What this was built and tested against.
Compact and portable. Same family, smaller.
Puts analog phones you already own on the lobby — an existing cordless base, or a 1950s rotary. Two ports, so two handset entries. Usually the cheapest way to cover rooms, and the most fun.
Carries several DP7xx handsets, each registering as its own SIP account — one entry per handset, exactly like a desk phone.
Pairs to the DP752. Buy one per room.
W70B base plus a W73H handset. The straightforward place to start.
Same, with a second handset in the box — cheaper than adding one later.
W70B base plus the ruggedised W59R — the one to pick if it is going to get dropped.
Two rugged handsets.
Three handsets — the cheapest route to a whole-house cordless set.
Entry desk phone. The P is PoE, so one cable carries power and network.
Same family, the higher tier of the two.
The W is built-in Wi-Fi, for a room with no Ethernet drop. Prefer the P anywhere you have a cable.
Very common, well built, cheap. A safe default.
About as cheap as this gets while still being pleasant to use.
The classic four-line workhorse, and abundant secondhand. Factory-reset anything used — it may still be provisioned to its last owner.
Disclosure. The Amazon links above are affiliate links
— buy through one and the project earns a commission at no cost to
you. Nothing here is sponsored and no vendor has paid for placement. Be
aware of the obvious bias anyway: everything with a link earns
something, so the honest guidance is the part that does not.
doorman works with any SIP endpoint, the ATA above may mean
buying nothing at all, and a free softphone will test your whole ringer
ladder before you spend a cent.