An item on my to-do list for the past year or more has been to learn all about VoIP; as of this afternoon I’m pleased to say that I’ve learned enough to at least make a functioning office VoIP service work!
I’d purchased “Asterisk – The Future of Telephony” via Amazon.com early last year, my primary motivation being to work out if an all-VoIP setup was feasible for a small technology business. When the time comes for us to move offices I wanted to see if it’s possible to leave the traditional (and, in Australia, overpriced) fixed telephony network behind. It’s been around 8 weeks since I started playing around with Asterisk in my spare time, and frustratingly it soon became an obsession. The only way I managed to keep my sanity was from reading through the waves of postings on the ‘net from folks who have embarked on a similar journey, so I wanted to devote this and some future blog postings to documenting some of the challenges I faced, and most importantly how and what I did to get it working.
Firstly: the platform
I chose Ubuntu for a blindingly obvious reason: we use it inside Locatrix. Clearly, my job description these days specifically involves NOT touching servers, but with a legacy in Unix systems and Linux I felt this wasn’t a bad way to see if any residual skills remain. Besides, if anything broke I wanted to be able to ask the smart guys I work with to fix it!
Ubuntu’s apt-get is a nice way to get and install Asterisk: in my case it’s version 1.4.17. I pretty much installed every asterisk binary package, and the only time I used something other than apt-get for installation purposes was to configure the ztdummy kernel module which is required for echo cancellation. For this I used module-assistant (8), which is menu driven, and reasonably simple to use.
I should also flag at this point that I briefly considered one of the “pre-packaged” Asterisk variants (TrixBox, Elastix) and went as far as running a test install, but given that I was coming from a low SIP knowledge level I really wanted to start at the basics. Hence my decision to bury myself in the book and my home test server.
Secondly: the network
I’ve been learning the hard way that while NAT is a brilliant solution to IP address utilization, the implications thereof in a SIP environment can be absolutely mind-numbing until you get your head around how SIP actually works. SIP – the Session Initiation Protocol itself – only sets up calls between endpoints (handsets or softphones). After this it gets out of the way, leaving the devices to fend for themselves. Knowing exactly where and how your network addressing works has been a big part of understanding Asterisk configuration.
And at this point I should correctly say “networks”, because I wanted to set up a testing environment at home, and ideally bridging between two Asterisk servers. Which segues nicely into…..
Thirdly: the plan
Never start anything without a plan. I did, and I know I spent a lot of time learning useful things, but if I was beginning another Asterisk implementation I wouldn’t so much as touch a machine until I’d documented what I needed to achieve in terms of users, telephone numbers, external providers (both inbound DIDs and outbound services), handsets, devices, codecs and the networks in which I wanted them to execute.
My retrospective setup goals were:
- VoIP extensions in the office (currently Linksys SPA942’s and similar)
- Gotalk Broadband voice services (Brisbane DID and national/international calls)
- Softphone for my Laptop, with own extension number, that I could use anywhere
- An environment that, when coupled with IM, could make our team productive wherever we were (home, office, or elsewhere) in terms of voice accessibility (bridging, mail, and low-cost international calling)
- To see if I could make a few legacy Cisco phones I “acquired” work
As of today I think I’ve finally achieved all of the above; we’ve got some work to document everything and clean up a few loose edges but – as of some test calls this afternoon – I’m done.
The subtitle of the O’Reilly book (”The Future of Telephony”) might have seemed a bit ambitious a few years ago, but looking forward to NBN’s, NGN’s and whatever crazy acronyms your country uses to describe what will effectively be metro-area gigabit switching, moving from circuits to packets for voice is getting closer and closer. In a way, I view Asterisk as somewhat analogous to Sendmail in the late 80’s and early 90’s. It is as complex as heck, in the sense that it can do literally anything you need, because in the VoIP world literally nothing is seamless. And the configuration files seem like absolute garbage until you get a sense of why they are laid out the way they are.
As with sendmail, debugging configurations can drive you insane but in the same way we’ve evolved in the past 10 years to an environment in which e-mail “just works”, I think that’s the way SIP will go in the next few years. In the meantime it’s either expensive Cisco-based solutions, or get your hands dirty with Asterisk.
I’m feeling good about getting my hands dirty, and therefore seeing the future from the ground up!








