VOIP for Dummies
The following tutorial describes how to get free phone service with a real phone number. All you need is Raspberry Pi, an old phone plus an Analog Telephone Adapter (ATA), and a Google Voice number. Replace your home phone land line service for free, or maybe just set up some extra phone extensions in your home office as a nerdy project.
Note: Step 1 is no longer valid. Google discontinued support for using Google Voice numbers with the Asterisk VOIP server. You can still search the internet for free direct inward dial numbers, and low cost outward dial numbers to use with Asterisk VOIP.
1) Sign up for a Google Voice number (US only)
If you live in the US, you can get a Google Voice number. It is free to sign up, free to call US and Canadian phone numbers, and has cheap international rates. We like Google Voice because you get a real phone number, so anyone can call you using the plain old telephone system.
2) Setup a Raspberry Pi with the Asterisk telephone server
With a few simple terminal commands, you can setup your Raspberry Pi to be a telephone private branch exchange (PBX) using the open source Asterisk VOIP server. Configuring the server is easy using the FreePBX web interface.
Next, plug in an Analog Telephone Adapter and your old phone becomes an IP phone extension you can connect to your Asterisk server. You can start making free calls to any number in the US and Canada, and inexpensive calls to most numbers around the world.
3) Get a SIP telephone app for your smartphone
This step is optional.
You can also use your smartphone as an extension on your Asterisk PBX. The best free VOIP application available is probably Linphone.
We used the Linphone open source code to make our own app, because we wanted it skinned in red to match our Raspberry Pi.
Resources
Some of the more useful web pages on VOIP