What do you do if you don’t want to pay $30 or more for basic phone service? If you have no form of broadband then your option is a cell phone. I had other concerns in addition the cost of the phone service – I wanted an inexpensive way for the my mother-in-law (suegra in Spanish) to be able to call my wife and vice-versa. What to do?
Unless you’ve been living under a rock, you may have heard of Voice over IP. It’s a way of taking your voice and instead of converting it into electrical signals and putting it on a conventional phone line, an extra step is taken and the electrical version of your voice is converted into ones and zeroes, in other words, its digitized. This digital version of your voice is then sent out over your broadband connection, more commonly a cable modem, and out onto the Internet. This is where there are a couple of variations of VoIP service – the first is a ‘canned’ service such as Vonage, where the service terminates the call at a standard POTS (plain old telephone service) line at the call recipient; the second is a commercial VoIP call termination service where you as a user have to set up your end of the service. Being a geek and all, I opted for the second version.
In order to use a commercial VoIP termination service, you have to have some way to connect – I have Comcast High-Speed and that works pretty well. Next you need a way to convert your voice to the digital form that’s required for VoIP. I’m using something called Asterisk , a free open-source VoIP server, in particular, the astlinux distribution. This distribution of BSD Unix is stripped down and dedicated to the Asterisk VoIP service and is in turn based on the nice m0n0wall firewall open source project. The main factor for me was that it is small enough to fit on a 64MB compact flash module, mine is installed on a 128MB Sandisk module. Once the server boots up off the CF module, everything runs in memory so you don’t have to worry about the life cycle of the CF. This particular server is running on a PIII 800MHz, 256MB, single board computer with no moving parts, not even a fan.
Attached to the network I have a Uniden UIP-200 SIP (Session Initiation Protocol) phone in my ‘home office’ and a Linksys/Sipura Analog Telephone Adapter (ATA). The ATA attaches to the network using SIP like the Uniden phone, but unlike a phone it attaches to my house phone lines. (Note: if you ever plan on doing this make sure you disconnect the house lines from the phone service at your phone service demarc so you don’t damage your ATA.) Our existing house Uniden wireless phone set is still connected to the house wiring so using the ATA we can make and receive calls through the Asterisk phone server. In the future I’ll be wiring up another SIP phone in the garage so I can use it as a intercom and make calls if need be.
In order to get calls from my Asterisk system to the outside world the call must pass through a Public Switched Telephone Network gateway to be terminated. Asterisk has two ways to connect to the outside world – using SIP or with Inter-Asterisk Exchange (IAX2). The main difference between the two is that IAX2 is designed as a trunking protocol, i.e., multiple calls per connection, and the main difference: IAX2 passes through a NAT firewall on one port. There are a multitude of options in the VoIP world for this type of service, I went through a lot of research and tested a couple of services before I settled on Junction Networks . I selected IAX2 termination and set up my account. The neat thing about VoIP is that you can have several numbers terminate at one trunk. What I’ve done is created two DID numbers, one in Phoenix and one here in Tucson.
So by now you’re probably wondering “What’s the payoff?” Price. I have a local phone number in Phoenix that my in-laws can call with no long distance charges and a local number here in Tucson. I pay $4 a month for those two and on every made/received call we pay 2.9 cents a minute. My wife can talk to her mom for an hour for $1.70. For that amount, my wife can call her all she wants.