Let’s put phone numbers in the DNS system

Why do we still have to deal with phone numbers? Why are we still having to remember long numbers, or having to go and look up the number for a pizza place? Or telling someone our number, and checking they got it right? Or looking up our own number, because we can’t remember it? It’s a pain isn’t it?

When the internet first started, every computer attached to it had a number and people had to remember specific numbers. However, it quickly got to the stage where that was unworkable. Who can remmeber the number for Google is “http://173.194.34.101/“? So we invented the Domain Name System (DNS), which converts a name like “http://google.com” into the right number. (Every computer attached to the internet still has a specific number, but we don’t have to care about that anymore!)

Pretty cool huh? This is a problem we solved for website names decades ago. So why haven’t we solved it for phone numbers yet? Why are we still printing phone books so people can look up numbers of local taxi firms? Why do people still have to ask for their friends phone number’s a second, third or fourth time if they lose their phone? Why isn’t there a system to convert names into numbers for us?

Let’s go for a really quick win here with a simple, open, worldwide, scalable system; let’s just stick phone numbers in a DNS record.

Then you can have a simple Android app – enter a URL:

and get a list:

click on a number to jump to the dialer, check the number, and make your call! Download the app now from the app store or if you don’t have an android phone, there are some PHP scripts that let you play with this online.

Here’s what a DNS entry looks like – a simple country code, number and optional description:

v=phone1 44 3700100222 BBC Scotland

(Detailed instructions on this format are in github.)

One website can have several phone numbers and let the user choose which one, aided by the description. An open system means there are lots of tools people can build on top of this. Reusing DNS means a whole bunch of tricky technical problem are solved for us; uniqueness of names, caching, etc. Subdomain’s can be used so many users can be under one domain (eg jeff@gmail.com can choose to publish his numbers under jeff.gmail.com)

Does this mean numbers have to be public?

Answer #1: Actually, I could publish my work phone on “jamesbaster.co.uk” and my personal phone on “personal.jamesbaster.co.uk”. And yes, that is security through obscurity. Oh noes! But that’s how the current system works. What’s stopping you from calling Brian Cox right this second? Only the fact that you don’t know his number. Once you know his number, there’s no security. You can call him any time of the night or day – or at least until he gets a restraining order.

Answer #2: Well, yeah. But if we can solve the problem for public numbers with such a simple system that would still be fantastic. There are plenty of businesses that would benefit from having their numbers easier to find.

But no-one wants to type a domain name into an app!

The screenshots above are just a demo. What if you were browsing a website on your phone, and you could press the phone button to instantly get a list of numbers for that site to choose from? There are lots of possibilities. Apps could warn the user if it was a premium or international call.

How much are you charging?

It’s all Free and Open Source – both the Android code and some PHP scripts. The only way this will take off is if everyone can get stuck in. Download the app from the Android app store or play with the website.

What next?

Let’s see what people think of this …..please comment or blog/tweet/share if you like it!

(And if it’s popular, there are lots of improvements to be made to the sample apps – more robust parsing, save to address book, documentation on how to use libraries from them in your apps, etc)