How to Setup Your Own Home VoIP System (Asterisk)
One of the big trends in inter-home and business communication in recent year is Voice over IP (VoIP). Some of us are aware of the technology and its ability to allow us to make cheap and sometime free telephone calls; some also think it is only for big businesses. This might have been the case at one point but thanks to the Open Source community VoIP along with a host of enterprise features are now available as an easy to setup home or small business solution. In this article I will describe some of the best and most useful VoIP facilities for the home or small business user.
Got a relative in Australia? How about making free calls to their normal landline phone or how about free calls to US mobile phones or about 0.5p a minute to US landlines? You can setup your own inbound numbers giving callers the impression that you are local. You can setup a New York phone number that gets routed to your VoIP server in the UK or visa versa.
One package that I have worked with and think it is one of the best VoIP solutions available is Asterisk. It’s a fully Open Source telephone system with almost limitless possibilities for home or small business user. One of its main attractions is cheap or free telephone calls to many destinations worldwide.
First off though I should say that Asterisk by itself can by pretty difficult to setup for someone new to the technology, but this is where the power of Open Source software comes into play. Many packages have been developed and combined to provide simple and easy to use interfaces to Asterisk, to make it easy to setup, use, and monitor.
Ever wanted to chat with more than one person at once? Asterisk offers full conferencing facilities. Have you ever been talking to a company on the phone and thought “I wish I could record this call”, with Asterisk you can. What about those annoying contact centres that keep calling you? Asterisk offers call screening so if no CLI (Caller Line Identification) is received the caller is asked to enter their number: this will scupper most automated contact centre systems.
What if someone calls your home VoIP number and you're not there? Asterisk offers full voicemail and will even e-mail you to tell you that you have a voicemail messages (and send it to you as a WAV file if you like). If you are not at home Asterisk will let you dial in remotely and pick up your messages anyway. Or you can setup a “Follow-me” so that Asterisk will call you on your mobile and forward the call to you. Don't just want calls forwarded to you? Asterisk will ask you if you want to accept the call first. While all of this is going on, and at any time when a call is queued or on hold Asterisk can play music to the caller.
Want to make cheap calls from your mobile? Your Asterisk server will allow you to call into it on your VoIP number and then (via a facility called DISA) dial back out again to that US mobile you wanted to call completely free of charge.
Need a fax number but don't want to buy a second phone line and fax machine? Many VoIP providers offer a fax to e-mail service (and an e-mail to fax service). You can even connect your existing BT line into an Asterisk service to get many of the advantages of a VoIP phone system on your normal phone line.
This is just the start; you can do as little or as much as you want to with Asterisk and it is used World Wide in a vast number of situations from single home users to large 1000+ extension systems.
To start, you will need is a PC, new or old it doesn’t matter. You could start with an old one you have hanging about (or get one from eBay for about £40.00), a CD burner, spare CDs and an Internet connection.
Also, you will need an IP telephone, you can get one from viopon.co.uk which costs £32.00+VAT or you can download a free “soft phone” which can be installed on a PC (and used with a PC headset). One of the best free soft phones is X-lite ic can be downloaded from counterpath.co.uk.
The other thing you will need is the software package that will help you configure and manage Asterisk. There are two of the best of these packages that I would recommend Trixbox and PBX. They both provide truly flexible and easy to use web interfaces into the Asterisk server and a large number of facilities to make everything easy to learn and use.
For this article let's look at Trixbox, it can be downloaded as an ISO file (an ISO file is a ready made software that can be burnt onto a CD using a standard PC CD burning software). Trixbox is available as a free download from Fonality.com. It is about 670MB in size so will take a bit of time to download (depending on your internet speed) but it's worth it. Once downloaded use whichever CD burning software (i.e. Nero, etc) to burn this onto a CD.
Next power on your old PC, insert the CD and boot the PC from the CDROM. The system will then run the installation for the Trixbox system; installation should take about 15-20 minutes. Once finished the system will reboot and you will see a login prompt.
After login you can start setting up your VoIP system. A quick start guide is also available at Fonality. First thing is to setup an extension or two. Let's say you set-up extensions 700, 701, and 702. You should then be able to dial one extension from another (i.e. pick up 700 and dial 701).
After that you will need to choose a VoIP service provider (often called a SIP service provider after the Session Initiated Protocol used by most Voice over IP services). There are loads of such providers from those who provide very cheap services mainly aimed at home or small business users to those that aim at SME with higher quality services (at a higher price of course).
Some VOIP providers worth considering are:
SIPDISCOUNT.COM – Cheap provider who offers free calls to a number of international destinations (inc. UK, Australia, USA, etc) and a free inbound number when you sign up with a small credit.
SIPGATE.CO.UK – Offering very cheap or free calls worldwide.
VOIPFONE.CO.UK – Business oriented provider offering a higher level of service and quality but higher (but still cheap) prices.
Once you are registered with a VoIP service provider you can get an inbound number from them. This can be pretty much any UK geographic number (020, 0121, 01628, etc), it could be a non-geographic number (0845, 0870, 03) or even an International number. You don't have to live in that region to get a number there! You can even register with more than one if you want to take advantage of differences in call costs between providers.
Next you need to set-up an inbound and outbound route. This is because for inbound calls you need to tell Asterisk what to do with each call. Let's say you set-up 020 7989 1234 and 0845 3331111. You could tell Asterisk that when someone calls the 020 number extension 700 rings and when someone calls the 0845 number all three extensions ring (using a hunt group). For outbound calls you need to make it clear to Asterisk what happens when you dial specific numbers. For example if you dial a number starting “01” or “02” you could tell Asterisk to use your local BT line. For numbers starting “00” (International numbers) you could route to sipdiscount.com and for numbers starting “07” you could go via voipfone.co.uk.
Once you have all of this working you can then start to play with the more advanced features. Let's say you want callers to get a menu: you can record your own greetings using a standard telephone handset or by uploading WAV files from a PC via the web interface. These messages can then be slotted into an “IVR” with each option performing a different function. So option 1 might ring the phone in your office, option 2 the phone in the hall, and option 3 might be for your very own telephone conference facility.
If you are worried about who can dial which numbers you can even add a PIN to certain facilities such as dialling “09” premium rate numbers or “00” International numbers. Without the PIN the call won't proceed.
You can set-up hunt groups and pickup groups. Hunt groups are used to ring out on a number of extensions at the same time or one after the other (to hunt around). A pick-up group allows you to pickup calls which are ringing a different phone. So if you are in the living room and the phone in the kitchen rings you can press “8” to pick that call up.
Setting up telephone conferences is easy as well. You just need to setup a conference number and give this a PIN for normal callers and a PIN for the administrator (as administrator you can control the conference – including muting calls and kicking people off).
The follow-me function can be set in a number of different ways. One is of this is: when an extension is dialled another number can be called as well, either at the same time or if the original extension is not answered. So your desk phone and your mobile could ring at the same time. The “Confirm call” option allows for you to have to press “1” to accept the call (you will receive an announcement to tell you about the call first). This allows you to reject the call but also stops the call from going through to mobile voicemail. The caller can be given a message to tell them that the call is being routed to another number if required and you can specify the maximum ring time for each number tried. The caller will either hear a ringing tone whilst the system searches the extensions or music on hold and if no answer is received on any number then you have the option of sending the call somewhere else entirely (i.e. Asterisk's build-in voicemail).
You can even get Asterisk to perform different functions as different times of the day. So for example from 09:00-18:00 you could have it ring your office phone but outside of these times you could simply have an out of hours message playing.
You can queue calls as in a call centre so that if you are on the phone other callers will queue (and listen to hold music if required) until you have finished your call. You can even tell them how important their call is to you if you really want to!!!
You can blacklist certain number so if you don't want calls from a specific number you don't get them! You can even link inbound numbers with a database of names so that rather than get a number appear on your phone you get the name of the person or organisation calling instead.
We're almost finished but the Parking Lot feature (sorry for the Americanism) is also worth a mentioned here. With this you create “dummy” extensions in a parking lot. In this way if you want to transfer a call from one extension to another (say you are in your office and you need to go upstairs to get some information for the caller) you can park the call, go to the other extension, retrieve the call, and carry on the conversation.
Lastly, let’s look at remote access to the phone system. I have already mentioned DISA whereby you can call into the Asterisk system which then allows you to dial another number and make an outbound call (handy for making calls that your mobile provider will charge lots of money for). There is also the “Callback” feature. This allows you to call Asterisk, and request a callback. You can either request a callback to the number you are calling from or enter a different number. In this way you can then get Asterisk to give you a dial tone and can make another outbound call. So both calls are made by Asterisk and you're not racking up call charges from the phone you are actually on (i.e. your mobile). You could also get Asterisk to call you back and put you in a telephone conference, or put you through to a specific extension, or a whole host of other things.
As you can see Asterisk is an exceptionally powerful telecommunications tool. It's much more than just a basic phone system. I hope this article has given you a taste of what it can do and given you some ideas. Just try the download or Trixbox or “PBX in a flash” (search for it online) and see what you can do. The possibilities are almost unlimited!(c)
Lee Mason is an IT Consultant with over 30 years experience in SME and enterprise computing system. He has worked with the Asterisk Open Source IP PBX system for about 6 years and has implemented a number of systems based around this technology.
He is the director of Optimal Project, through which he has implemented Voice over IP telephone systems and Linux/Open Source based infrastructure projects and major networking projects using a variety of technologies. He is also the director of BackupsAnywhere, an internet computer backup service which specialises in onsite and online data and system backup.