A long while ago, maybe 4 years ago, I installed Asterisk, an open source voice mail and call management system. It is a little bit of overkill for a small office like mine and although I also host my home voicemail on it, it really isn’t a necessity. But I installed it to get familiar with it in anticipation using it as the IVR engine in my attendance management system. It has worked well but after two hacking experiences in the past 6 months I figured it was time to upgrade and perhaps find an easier way to install and manage it. AsteriskNow is a “pre-packaged” installation of Asterisk and a Linux distro called CentOS and is supposed to make the whole experience easy and painless.
In my first attempt I chose to install Asterisk with a web GUI called FreePBX. The installation was a no brainer. Skills required are the ability to push the open/close drawer button on the CD/DVD drive and be able to use a keyboard. If you can’t do that you shouldn’t be near a computer in the first place. I will say this: AsteriskNow is by far the easiest way to get an Asterisk installation installed on Linux. Period. It is perfect. But the EASY part stops there.
First a little background on configuring Asterisk. Everything is handled by configuration files. Everything! For Linux geeks this is nirvana. Grab your favorite text editor and away you go. The default installation of AsteriskNow includes no desktop application so you will be hacking files with a command line text editor (whoopee!). My first go around with Asterisk four years ago took just that approach. Tediously configuring Asterisk using a text editor and a lot of luck. The good news here is that there is plenty of good documentation on how the files all hang together. The bad news is that if you fat-finger something it can take hours to sort out just where you went wrong. Enter FreePBX and Asterisk GUI! These web front ends are designed to make the whole thing quick and easy.
After my first install of AsteriskNow/FreePBX I brought up the web interface and then did a quick search to find the step by step documentation on how to use the GUI to configure Asterisk. Nada! Everything I came across was incomplete or out of date so after poking around for an afternoon, I decided to give up and reload, this time with Asterisk GUI as the web front end.
At least Asterisk GUI uses the base Asterisk config files AND the Asterisk GUI has an easy way to get logged in and change the admin’s password (which was almost impossible to do with ease using FreePBX). So I was off and running! The menu layout from top to bottom is basically the ‘step by step’ so I moved down the menu tree working through the config. The context help is good but again there is VERY little documentation on how to use the GUI and the few places I got stuck I really was stuck.
I finally got most of the steps completed but I couldn’t make any outbound calls (I *could* call other extensions) and none of my inbound calling was working either. In frustration I posted some of my questions to the Asterisk forum (which happened to be unusually responsive) and got to the point where I just decided to reload. Which I did. I made a couple of tweaks, broke it again, and reloaded again (see, it really IS easy to install, thank goodness). And then using all I had learned in the prior attempts, made one last effort to sort out my issues. Here is what it came down to:
I was thrown by the Module Name on the hardware config page. It had ‘wctdm24xxp’ which seemed to point to a different card than I had installed (TDM400p). Based on the Asterisk forum I changed it to ‘wctdm’ which was supposedly the correct module name for my card but every time I did that and rebooted it basically hosed up my install. So, DON’T change it!
I tracked down my issues with the inbound and outbound calls to an incorrect configuration that the Asterisk GUI was placing in the extensions.conf file. So it was back to editing the config files manually! In the globals section, the GUI had configured the two trunks I had as trunk_1 = DAHDI/1 and trunk_2 = DAHDI/2 I think those should have been either DAHDI/G1 and DAHDI/G2 OR I just set them to DAHDI/3 and DAHDI/4 which should point them directly to my FXO ports 3 and 4. The G1/G2 syntax is to automatically chose the highest available ports but something is broken there.
The second issue I had with the inbound calling was that two entries that Asterisk GUI added to the contexts broke the inbound answering. Those two entries are:
exten = s,1,ExecIf($[ “${CALLERID(num)}”=”” ]?SetCallerPres(unavailable))
exten = s,1,ExecIf($[ “${CALLERID(num)}”=”” ]?Set(CALLERID(all)=unknown <0000000>))
I just commented them out. Not sure what those commands do, except break the inbound contexts I had.
With those things out of the way, the rest of Asterisk GUI really DOES make it easier to manage your Asterisk installation but, MAN!, you really have to stick with it. I haven’t had a chance to explore any other features yet; I have already flushed the better part of two days sorting out the GUI. But, all is well now. So, call me (and you’ll get my voicemail!)
The next steps are to go back and secure the server again before I open it back up to the Internet. The bad guys are always knocking….