I’m currently finishing up SAT4240 – VoIP Engineering as part of the Computer Network and System Administration program at Michigan Tech. This has probably been the most interesting course I’ve had so far in the program, and it’s made me seriously look at Voice Engineering as a career path when I graduate in December.
In our lab we use Asterisk, a free (as in beer), open-source PBX that runs on *nix systems. It’s highly configurable and customizable, but also very lightweight. In fact, as part of our course project – where my group and I created a simulated voice network for a nation-wide development company – we had Asterisk 1.4 running in OpenWRT on a Linksys WRT54GL. Obviously, not every feature is available on such an embedded system, but simply by “outsourcing” the voicemail functions for that location to one of our other PBX’s, we were able to create a system with consistent functionality for all users. Pretty cool ‘eh?
The class also got me thinking about something I’ve wanted to work out for a while now: a home phone. Mostly I was looking for a way to get ahold of people at the house when they don’t have their cell phone handy – like me on a lazy Sunday, when my iPhone never leaves the nightstand. However, since I’d still be using my cell mostly, I didn’t want to go with a traditional landline or the VoIP offering from Charter because it wouldn’t be worth the cost. I wanted something that wouldn’t cost me anymore than I was already paying for internet service.
That got me looking for ways to get asterisk to connect to the outside world for free. I was really disheartened when, at first, all I found in terms of free services were purely VoIP solutions, where any connection to the PSTN (the regular phone network), costing extra. A little more digging found a few providers like sipgate, who offer free DID (Direct Inward Dialing) service. That would give me a way to get incoming calls for free, but any outgoing calls would still cost.
Finally, a little more searching brought me across an article from Nerd Vittles about tweaking Asterisk to use Google Voice to get free incoming and outgoing calls. Awesome, I thought, this is how I’ll do it. Unfortunately, that ended up not really being an option for me, at least, not as presented in that article or its successors. The Nerd Vittles solution is really tied into using PBX in a Flash, a complete Asterisk-based PBX system running on CentOS and using the FreePBXGUI to control Asterisk. This posed one really big problem for me: I didn’t have a box to run it on. I looked a little into the PlugPBX project, but I couldn’t justify the $100 for a SheevaPlug. I’d also not heard great things about FreePBX from some friends and colleagues, so I was hesitant to go with any solution that required it.
I talked to my friend, Tommy, who happens to have an internet-accessable Linux box. I told him about my plan, and told him I was pretty sure I could make the free calls thing work for an arbitrary number of people, and he let me go ahead and run my Asterisk install on his box.
From there I got Asterisk up and running, then used the Nerd Vittles article as a general guide for what I needed to do going forward. After a few trials and tribulations, I finally got it working. I could call my Google Voice number, and the VoIP phone in my kitchen would ring. I could dial my cell phone from the VoIP phone, and voila, it rang. Then I dived into getting it to work for more than one person. A friend from Tech who is living in Dubai was nice enough to help me out so he could get/make calls from/to the US without paying out the nose. A few configuration changes, and a couple more hiccups, and we had it going. Then we added Tommy, and everything still ran great.
I’ll be posting a how-to as a roll-your-own alternative to the Nerd Vittles solution here very soon, so stay tuned.
Best thing about the phone: “We’re out gambling and getting drunk.” or perhaps “Weasels have eaten our phone system.”
Pingback: Roll Your Own: Asterisk + Google Voice = Free Calling at kenny.barnt.us
Pingback: How I Got a Home Phone at kenny.barnt.us