My Asterisk Home Phone Setup
This is mainly a place to publish my dialplan for Asterisk so that other people can use it. Asterisk is phone system software for Linux. I use it to replace my home phone, with many more features than a home phone, and at a lower cost.
My system has everything you get with the most expensive local phone service, plus:
- A toll-free number that I chose ($25 setup plus $2.50 monthly fee)
- $0.02/minute for most calls worldwide
- As many lines as I want for no additional charge (the hardware is $90 for each two new lines since I use regular phones)
- Voicemail (as many mailboxes as I want)
- Do not disturb with override (meaning if I'm sleeping, callers get a message like "I'm busy so wait for voicemail, or press pound if this is an emergency"). I sometimes sleep odd hours, and this is wonderful.
- Ability to change settings based on time
- Calling-card feature (you can use your home phone like a calling card from a pay phone)
- Call recording
- I can dim the lights with my cordless phone (how nerdy is that)
- Anything you have the ingenuity to add to the dialplan and server!
Downsides are:
- no 911 service (this is changing, but my provider doesn't have it). I get around this by making 911 on my phones call the local police dispatch. This is better than nothing, but still not real 911. I also have a cell phone has 911 service (Verizon).
- $0.02/minute for all calls (including received calls)
- If the VoIP provider goes down, no phone
- If the internet goes down, no phone
- If the DSL goes down, no phone
- If the router goes down, no phone
- If the Asterisk server goes down, no phone
- You have to figure all this stuff out and set it up
I prefer to use regular cordless phones, so I bought "FXS" devices to connect my regular phones to Asterisk. I have a Sipura SPA-2002 and a Digium IAXy. The Sipura has many more features, a web interface, and two phone lines instead of one, so that's the one I recommend.
My VoIP provider (the way I make outgoing calls to the real phone network and receive incoming calls on my toll-free incoming number) is Vitelity. So far I have been very impressed with Vitelity's service. They ported my number in just over 24 hours after it had been dead with Nufone (my previous provider) for over a year. Their customer service is much more responsive, I even got a phone call at home from a manager because of an unusual request.
Nufone was my previous provider, and I still use them for outgoing sometimes. Their customer service is a bit intermittent (it can especially take a long time to get new orders through), but once set up they have very little downtime. They were highly regarded on the Asterisk users' mailing list, but they had a disaster with their toll-free DIDs which leads me to recommend against using them for DIDs. Regardless of the reason, their DID customers were suddenly left high and dry a couple of years ago with no service, and that is a serious thing to let happen.
If you decide to set up your own Asterisk server, you must get a router that supports QoS features. Especially if your connection isn't very fast (mine is currently 1.5Mbit down, 384kbit up), your calls will fall apart as soon as anything else happens on your internet connection. I use a Linksys WRT54G with a custom QoS script described on my QoS router page.
My current configuration files (last updated Dec 16 2005):
extensions.conf | The main extensions file, all others are called from this one |
caller_id.conf | Functions to deal with callerID and number manipulation |
calling_card.conf | Allow incoming users to dial out |
do_not_disturb.conf | Handle the do-not-disturb feature |
forward.conf | Application to handle call forwarding |
hangup_on_star.conf | Turn on and off hangup-on-star feature |
home_automation.conf | Interface asterisk with home automation |
misc.conf | Assorted stuff that doesn't fit elsewhere |
monitor.conf | Record calls, monitor an extension |
outgoing.conf | Deal with outgoing calls |
record.conf | Record files used in menus |
stdextension.conf | Macro for defining each local extension |
A tarfile with all the example files above is examples.tar.gz. All examples above are released into the public domain.
A talk I gave on Asterisk at the Boulder Linux Users' Group on December 9, 2005 is available in PDF format.