Asterisk, here we go
Posted by Scott Laird Tue, 23 Mar 2004 08:10:10 GMT
I’ve always wanted a home phone that doesn’t suck. I like the things that my cell phone gets right: it syncs my list of phone numbers from my computer. It tracks my recent calls, and makes it easy to redial off of the list. It does a decent job with caller-id, and even does a nice job with call waiting. Unfortunately, it’s also too small to be comfortable for long-term use, too expensive if I over-run my monthly minute allotment, and has lousy service inside of my house.
Over the years, I’ve looked for a home phone that can do at least a few of these things:
- Cell-like phone list, synced from computer
- Flexible voice mail, ideally available via email
- Programmable, so I can do things like automatically block calls from people that I don’t want to talk to
- Usable, with a simple list of recent incoming and outgoing calls
- Multiple internal extensions, with internal calls between extensions
In 2000, we bought a Siemens “gigaset” cordless phone system, largely because it could support multiple cordless handsets, sync phone books between them (although not very well), and did a decent job integrating caller ID and a basic answering machine. Unfortunately, it started coming apart as soon as the warranty expired. Less then 1/3 of the pixels on the base station’s LCD now work, rendering caller ID worthless and making it impossible to navigate the system’s configuration menus. The cordless handsets died like flies, although that was mostly Gabe’s fault–they were his favorite toy for a while. Any time that we left one within his reach, he’d chew on it for a while; toddler spit and electronics don’t mix. Also, the 2.4 GHz cordless system doesn’t mix well with wireless networks. More recently, the base station has been resetting itself several times per day, usually in the middle of incoming calls. In short, it’s time for a new phone.
Except, after careful research, we’ve concluded that all of the available choices suck. The only thing that’s happened since 2000 is that higher-end cordless phones have moved from 2.4 GHz to 5.8 GHz. There are a few models with extra gizmos—I saw a cordless phone set with bluetooth this weekend—but none of the gizmos seem to be particularly useful. Case in point: the bluetooth cordless phone’s big feature is that it allows your PC to use Bluetooth and connect to the modem built into the base station, so you could dial out without a phone line. Yawn. I’ve been waiting four years for this?
So, I decided to take another look at open-source Voice-over-IP products, just to see if they were still a year or two away (and holding), like they have been since 1999 or so. Amazingly enough, progress has been made. Amazing amounts of progress, in fact. The Asterisk open-source PBX has just reached version 1.0. It needs more documentation, but with a bit of time (and a bit of Google), you can get it to do amazing things. It comes with a full voicemail system, including professionally-recorded prompts, and it can be used to set up arbitrarily complex IVR (“press 1 for sales…”) systems.
Of course, this would be useless if you couldn’t connect it to real phones and phone lines. Asterisk is sponsored by Digium. They sell a line of PCI interface cards that let you plug traditional analog phones and phone lines into Asterisk, from one analog line at a time up to 4 T1s at once . You can also buy hardware VoIP phones, either Ethernet or wireless, from around a dozen vendors, starting under $70.
So, my plan right now is to install Asterisk and a couple PCI cards in a server at home, get that working, and then buy an Ethernet VoIP phone with a big display for the kitchen. Several of the mid-priced VoIP phones can download phone lists over the net, and Cisco’s phones can be programmed for a number of XML services.
The first phase of the operation is already complete; Asterisk is up and running at home. It’s providing analog phone service through an older cordless phone that we had sitting in the closet and handling voicemail. At this point, it’s no harder to use then the old Siemens setup, and the Asterisk one hasn’t dropped any calls yet, unlike the old unit. It was a pain to configure, but it really wasn’t any worse then setting up a open-source email system for the first time. There were a few teething issues, and there’s still some tuning to do, but it all works right now, and that’s already a step up from the old system.
Over the next week or two, we’ll add a nice VoIP phone to the kitchen, where 90% of our home phone use occurs, and maybe a cheaper phone for my office. I’m also planning on moving at least some of our long distance phone calls onto one of the cheap VoIP providers (probably NuFone), although I’m not convinced that the quality is really there, given my slow DSL link at home.
I’ll also do a bit of programming. I have all of the basic infrastructure in place to tie my Mac’s address book into Asterisk, both for Caller-ID re-writing and for feeding to Cisco’s phone’s dialing directory. Once that’s complete, I can move on to exporting voicemail and caller ID history via RSS.
That’s the real fun of open source—it’s all of the interesting combinations that you can get when take the tools provided and stretch them into doing what you want them to do.
Also, it provides an outlet for the occasional urge to apply massive overkill to things.

Keep up the good work.
I like the idea of exporting the RSS feed. Stick it in a protected web directory and your FireFox Live Bookmark can tell you who’s called while you’re at work :-)
I’m just starting to look into this myself too, now that Aussie local loop unbundelling is starting to happen and 8Mbit ADSL is already possible… Another thing on my wishlist would be for an incoming call to load a web browser and link straight into a CRM - have the customer’s details ready before you say ‘Hello’.
Just wanted to post about the renumbering manually. I’ve got a mostly working script to do that. People might find it useful. http://www.asteriskgui.com/index.php?get=utilities-dialplan
Hello, I am not very good at deploying technology. Though I would like to build a simple PBX solution for my home; my basic functionality is to manage my two analog phone lines(POTS). That is to transfer calls from one room to another, and if one phone is busy it gets forwarded to another phone line. How do I start? Can you please share with me with details how you deployed your PBX? I will be grateful for your help. And is asterisk@home different with asterisk. Thanks.
Yes, Asterisk can do this. Asterisk@Home is essentially a Linux distribution that includes Asterisk packaged with a bunch of management tools. I haven’t used it, but by most accounts, it’s pretty easy to use. Just make sure that you change the root password, it defaults to ‘password’ out of the box.
In order to have Asterisk answer your phones, you’ll need some interface hardware. Take a look at voipsupply.com, and look at Digium’s PCI cards and Sipura’s external SIP hardware. Digium is the developer of Asterisk, and they make 1-4 port POTS cards as well as a number of higher-end cards that you won’t find very useful. Sipura makes cheap-ish external interface hardware. The Sipura SPA-2000 has 2 FXS ports (for plugging in analog phones) and the SPA-3000 has 1 FXS and 1 FXO (for analog POTS lines). They also make a decent SIP phone, the SPA-841. I just bought one, but it arrived late yesterday and I haven’t had time to really test it yet. I’ll post a review once I’ve had a few more days with it.
Thank You, Scott. And sorry to bug you again; I just want to make one clarification. I have RJ-11 ports in all my rooms and the normal phones connected to them. Do I have to connect all these phones to to my asterisk server or just my two telephone lines and an phone? Thanks in advance.
You can do whatever you’d like, but Asterisk is happiest if it “owns” the phone lines coming into it. That is to say, if you have analog phones on the POTS lines that Asterisk is expecting to answer, it’ll have a harder time doing its job. Things will be cleaner if you move your other phones behind Asterisk, so it can manage everything. You may or may not be able to simply connect a FXS port to your home wiring to accomplish this; it depends on how your house is wired and how many phones you have.
This sort of thing comes up reasonably frequently on the asterisk-users mailing list; it might be worth asking google for ‘site:lists.digium.com home wiring’ and seeing what you get.
Is there any way of using ISA/PCI/Built-in modems with asterisk to connect to analogue phones
ISA/PCI/Built-in modems: not generally. There are a couple exceptions, but 95% of the modems on the market just aren’t usable for VoIP–they don’t support full-duplex voice usage, or they echo badly, or other problems. And even the few that could work right don’t generally have drivers.
Having said that, the X100P card that Digium sold for a while is essentially just a winmodem, and some of the winmodems on the market use the same chipset, but they aren’t very common.
I have install asterisk, kphone on the same machine, and install a kphone on another machine but I don’t know how to call from this kphone to the other. Help me ?
Just a quick note to say thanks for sharing your config files with us. Reading the book and looking at the voip-info.org website gave me the background I needed but having a real life example helps a lot to see how theory translates to practice.