Show HN: Baby's first international landline
wip.tfHi HN,
As a weekend project, I hacked together a physical phone, a Raspberry Pi running Asterisk and Twilio, to let toddlers safely make international calls.
I’ve documented the setup in this write-up and published the code + Ansible playbooks on GitHub so others can replicate it.
I built this so kids of expats can easily stay in touch with family on other continents.
Would love feedback from anyone who’s worked on something similar or tries building this themselves!
writeup: https://wip.tf/posts/telefonefix-building-babys-first-intern... github repos: - https://github.com/nbr23/ansible-role-telefonefix - https://github.com/nbr23/allo-wed
I couldn't help but smile when I read about building an international landline system with the patience of "raising a child"! This analogy of complex technology to the process of raising a life is so resonant - from the first "cry" (dial tone) to the first toddler steps (stable communication), every troubleshooting is like soothing a fussy baby. If all technical documentation were written with such warmth, the world would have many more happy engineers
One sidenote is that the Twilio part is harder than it looks. Not because of technical factors, but because of the paid requirement. Twilio refused to take my money and upgrade me to a paid account, even though they forced me to go to their confusing KYC procedure, where they asked me many times to provide the same set of documents. Support was useless, it looked like an AI bot repeating the same thing, but this was before the widespread usage of AI bots.
Eventually I gave up and went to Telnyx, which had a better KYC process and actual humans behind support that could resolve any quirks with KYC. Apparently not being born where you live breaks a lot of the automation behind some of these processes, go figure.
I'm not sure if they've changed the process since your issues (hopefully) - I was using their trial and when it expired had to go through the KYC process. They under-promised by saying two working days to reach out, but everything was wrapped up within an hour and done over email.
I nearly moved away from Twilio having read the negative feedback, but my personal experience so far was very prompt support.
Hey, that's good to hear. Was it a recent experience for you? Maybe they heard some of the feedback and acted on it.
This encourages me to revisit them, not because I'm unhappy with my current provider, but rather because Twilio offers what I need (a number that can receive and send SMS) in regions where my current provider doesn't.
This was last week.
I ought to caveat that from a KYC perspective, I likely would have been 'easy' since my career history involves many well-known companies and the requested account was for a UK company that has been running for nearly 20 years.
Though I'm no longer personally in the UK. Microsoft on the other hand: It was impossible for me to open up an Azure account even with their Customer Support. Suspect I will have to use Tailscale to bypass overly rigid geographical controls.
After what Twilio did to Authy users I'd be very reluctant to use them for anything unless they were the only choice.
I really like this... except you should add a special case for 911. I strongly believe that all phones, and anything that looks like phones, should be able to dial out in an emergency.
Obviously, this can raise its own problems -- you'll have to train the kids not to randomly dial 911! -- but you never know what circumstances might exist where someone in a panic reaches for the nearest phone.
Kari's Law [0] is relevant here. Not strictly applicable as this is not a MLTS (phone line multiplexer), but very much in line with the spirit of the law as it was adopted after a child was unable to dial 911 from a motel phone.
[0] https://www.fcc.gov/mlts-911-requirements
Also if you want to test dial 911 I’ve been told you can schedule a test call with you local dispatch!
I setup a phone system with Asterisk for fun a while ago and I avoided emergency calls because I didn’t know how to safely test it
You can, but you should prefer dialling 933 which will use the same routing infrastructure, and reads out the address that 911/933 believes is associated with your connection. Does not take time away from a human dispatcher so should always be preferred unless there is a critical reason to test 911.
Dialing 933 tests call routing and address reporting when dialing 933, but 911 and 933 are not the same number.
And one might assume that it should work the same....and it may in fact be the same once a call reaches the greater telephone network.
But calling 933 does not necessarily test 911 call routing as it relates to a specific pile of local gear.
So sure: One should call 933 as an informal test and make sure it produces a good report.
One should -also- call 911 and make sure that works correctly and that the result of a call is a good report, too (after calling the local non-emergency number for the PSAP and making arrangements).
It's perfectly acceptable, OK, and appreciated (by PSAP operators and supervisors alike) to ensure that 911 calling is tested and working, end-to-end, upon the implementation of any particular telephone system. (But again, please let them know about it, first.)
Lives do sometimes rely on 911 calls working properly, and an untested system is at best an unproven mystery.
Please test it. "It -should- work fine!" is not good enough.
Oh this sounds much better, thank you!
Hmmm, I wonder if something like this applies to testing emergency-apps on my smartphone.
Unlike a landline, it's harder to say where it ends up or who'll get angry at you for "testing".
Very interesting.
I had a similar problem a few years back with a technophobe Grandma who wouldn't use whatsapp and a stingy aunt who'd moved to the states.
Used a Fritz!Box as it'll act as a DECT<->SIP server so my grandma could keep picking up her usual handset. Had a rule which matched the aunt's phone number so it got bounced via my FreeSwitch server rather than her PSTN, and some least-cost routing rules to pick a US based provider SIP provider with a +01 PSTN number so my aunt saw the incoming call looking local and could ring back if necessary at a cheap rate.
Honestly, the weird technical abominations we come up with to try and serve family members. The same Grandma went through a phase of falling, not being able to get up and then waiting hours for an ambulance to arrive. Would she tell the family? Would she sod. Was her regional ambulance service still dispatching jobs via pager message? You betcha. Did this end up with an SDR, POCSAG decoder and a regx looking for her postcode? Absolutely not; why would you ask such a thing?
This is using Twilio, but given there's an Asterisk server behind, you can actually use any VoIP provider that allows outgoing calls over SIP right? Depending on the country you live in and/or where you want to call, you might get simpler & cheaper options (although for emergency service if you want to have it, which I think is important unless there's an alternative way to call emergencies around, it's more complicated).
Nice project! Another route you might consider is flashing a small custom firmware on the Grandstream HT80x so the logic runs directly on the ATA instead of on the Pi/Asterisk side.
I wrote a tool that can extract and repack Grandstream firmware (https://github.com/BigNerd95/Grandstream-Firmware-HT802/tree...).
For example, I made a simple ARM patch that intercepts incoming caller IDs and triggers a bash script to decide what to do, in my case it checks a spam-lookup service and returns 0 or 1 so the ATA either rings or rejects the call.
This seems neat. I have some minor stuff I'd like an ATA to do differently [1], and maybe I can make it work with this, if I get motivated!
[1] I don't quite remember what I wanted to do, so that's the first part! But I have a telephone controlled gate, with 3-pair wiring, and right now I'm using two pair for phone inbound and outbound, and one pair I can't use... If I can get the ATA to interface well enough with just one pair to the gate, then I can use two pair for ethernet, and I don't need to use a modem to interface with the gate over the phoneline.
I cant remember the circumstances, it might have involved an RMA with grandstream, but I vaguely recall this tool saving my bacon at one point.
For some reason I thought it was for toddlers to call other toddlers. I think if you were looking for a feature to add, it would be to let kids call their friends. Could lead to some cute moments :)
Oh yes then monetize the recordings! (Sorry, Silicon Valley PTSA kicking in)
Just play an advert instead of a ringtone! The user is motivated to listen!
I’ve also been looking at setting up a dumb phone for my kids, but haven’t thought to go the rPi Twilio route.
There’s an existing product that seems to have some mindshare in the space: https://tincan.kids/
Basically $100 for the phone, plus $10/mo to call arbitrary numbers. My main concern here is the company goes belly-up and you’re left with a phone-shaped brick.
Another option I considered was a cheap unlimited SIM coupled with a GSM “desk phone” e.g. https://www.amazon.com/Generic-Wireless-Telephone-Cordless-8...
The problem here is there’s no way to filter inbound calls. The last thing I want is spammers ringing the house phone in the middle of the night.
That Tin Can device has infiltrated (in a good way, what a fun idea!) my oldest kids’ social circle at elementary school. Most of his friends are requesting one for Christmas and we’re planning on getting our kid one as well.
Really hoping the idea lasts, lots of good memories of dialing friends on our landline growing up and chatting casually.
Now if only it could replicate the dread of calling a crush’s house and her dad picking up the phone…
Found a post from Twilio using the same tech stack in 2013! What a trip. Cool project!
https://news.ycombinator.com/item?id=5409914
This is a great project writeup, I did something _very_ similar for my son. (HT802, asterisk, twilio, calling relatives) With all of the NAT involved I could never get sjsip to work properly so I ended up having to use the old sip module, but looking at yours makes me want to revisit it.
Once you have asterisk set up and running, it becomes easy to also set up all sorts of other extensions like "check the weather" / "tell a joke" / "check the train statuses". I put up some code for it here: https://github.com/mnutt/rotary
If you want this as a ready to go product - https://tincan.kids/ and disable 911 if international.
Or a magic Jack. Cheap as hell
I love everything about this. I've often thought families that wanted to extend their network between trusted friends could set up a literal private branch exchange (aka PBX) with only their friends as fellow members.You have a way for people to call each other without handing kids a smart phone and can also avoid the inevitable costs and unwanted calls associated with real land lines.
almost if like they could be regional, for people within the same area... and there'd be a book with everyone's numbers...
This is awesome!
Would it be possible to ditch Twilio and build it as a peer-to-peer system though? Or does that always require a coordination server?
I would love a way to make an IP phone that just lets my kids call their friends on their phones, and no-one else. I will take a look!
I just setup the same HT801 but I used SIP-domains and twilio services/functions instead of SIP trunk and asterisk. I'll make sure to reply again once I have a write up.
Nice work!
Great work! Thank you for sharing this. I'm looking forward to making one just like this too.
This is so cool! Mine is too young but I was planning to hack on something similar when they’re of age. Thanks for the inspiration!
I gotta say. I miss landlines.
Hardest part of this is getting a twilio account that actually works.
One of the worst service providers ive ever had to work with.
That explains the pricing. I've been looking for a cheap way to get a SIP/VOIP connection, so the kid and I can play with some old phones she's been gifted. I really want to make one or two of them work, so she can do internal calls at home, and maybe call grandmam.
It's easy enough to get a VOIP account with a local company, but the pricing is just insane. I really wish I could find an ATA solution that can do internal call and use a SIM to call out. They exist, but the prices rather high.
If you’re in the US just get a magic jack
>only permit calls to be made to an adult-controlled set of numbers timezones and “awake/asleep” schedules, to avoid calling Europe at their 1am prevent inbound calls entirely
This is interesting. Was there a serious issue while using a regular landline?
As a former toddler myself, I think that the worst I got up to was calling the radio station and giving bad traffic tips.
My overseas family had such a long number, stored in a book in my grandmothers handwriting, that theres little chance I would have connected and woken them up.
Is this designed to counter a specific threat model?
> Was there a serious issue while using a regular landline?
So a few other issues with landlines, in other countries:
1) Crazy expensive.
2) You can't sign-up for one anymore.
3) They may no longer be available. The cables have already been removed in some parts of Denmark.
In a lot of places a "landline" is:
a) a phone using the ITU protocols, connecting to the router over ATM, or
b) a straight up SIP / VOIP phone which just happens to be operated by your ISP, but which could, in principle, work anywhere, as long as it was connected to the internet, or
c) a cell phone in a landline-like enclosure, perhaps with a carrier-side restriction that prevents its SIM card from working outside its intended local area.
That is pretty interesting, because I figured that maybe that would solve my issue of trying to get a cheap "landline". Sadly no. My ISP also doesn't want to do VOIP. They have the product, but doesn't sign up new customers.
Voip is a classic loss maker for ISPs.
Right up there with email servers and DNS.
It increases their attack surface and support costs without any real bottom line benefit.
I suspect I will be adding IPTV to that list in 5 years too.
For arguments sake lets include voip in there under landline.
> My overseas family had such a long number, stored in a book in my grandmothers handwriting, that theres little chance I would have connected and woken them up.
The article is about a phone with one button per person, so the thing that stopped you from doing this is not applicable. You now have a toddler who can press a button whenever they want and dial someone - you don't see how a child who doesn't understand timezones etc. might cause a problem here?
... Do you not see a toddler dialing random numbers as anything but a nuisance to the people whose numbers they happened to dial? Or waste emergency services' time? (their numbers are intentionally easy to dial, and likely more recognisable being repeated in media even to the young after all)
It feels like you're forcing other people to take the effort of dealing with your child in that situation.
There's another thread here where they are talking about the necessity to make emergency services numbers available anyway, because kids are often the people who make the crucial phone call when a parent has an accident. And its doubtful that the parent is going to collapse, push an ansible update to his project, and then have the kid dial emergency.
Theres potential for nuisance, but not one that seemed like a big threat for that whole period where toddlers routinely had access to phones.
I asked because I am interested in whats happening, maybe they have a unique situation/environment that requires this. Maybe they have phone jockey kids who mastered the technique.
uhmm...
>>> As a weekend project, I hacked together a physical phone, a Raspberry Pi running Asterisk and Twilio, to let toddlers safely make international calls.
how often do toddlers make international calls???
It's right there in the post:
> I built this so kids of expats can easily stay in touch with family on other continents.
Just think of families fleeing from war or persecution. This isn't rare by any measure, unfortunately.
that probably depends how many close family members they have abroad.
Ahem. Some people never heard of immigration/emigration?
(The system is valuable for adults too, if some of your relatives live in a country which blocks Whatsapp and other voice calling apps, like Russia or China).
[dead]
[dead]