CC Open Source Blog

Conferencing with Asterisk on a $20/month Linode

author's gravatar

by nkinkade on 2010-01-07

For quite some years CC has been using Free Conference Call for tele-conferencing needs. It generally worked pretty well, but people frequently complained of not being able to connect, or getting erroneously dropped into some empty conference room, and things of that nature ... to say nothing of the questionable practices used by services like Free Conference Call that allow them to make a service like that free. Paid conferencing systems are actually quite expensive, and CC doesn't have the resources to be able to roll out some $10,000 to $20,000 custom conferencing system. We ended up deciding to setup Asterisk on one of our servers. We didn't really want to load one of our core servers, so we decided to give it a try on a $20/month Linode which we were already using for server monitoring.

Getting Asterisk installed on a Debian system is as easy as $ apt-get install asterisk. Configuring it is covered by thousands of other articles on the Internet. However, the problem is that Debian's default kernel is shipped with a particular configuration that is unacceptable for VoIP applications like Asterisk. Debian's default kernel sets CONFIG_HZ=250, but for tele-conferencing with Asterisk to have acceptable audio quality it needs to be 1000. No problem, building a custom Debian kernel package is pretty easy, but we wanted to run this on a Linode VPS, which is a Xen environment. So the question became how to get Xen patches applied to the vanilla Debian kernel sources. It may sound trivial, but it actually took me quite some time to work it out. The first issue was resources -- a $20/month Linode doesn't have many, and the VPS ran out of memory while trying to compile the kernel. I got around this by killing virtually every other un-needed process. The next problem was what turned out to be a bug in the Debian kernel-package package, which took me quite a long time to find ... I didn't locate the bug in the code myself, but it took me a long time to realize it was a bug causing my problem and then find the existing bug report and a workaround.

I'll try to post here again soon with the actual steps needed to get this working, partly for the benefit of the community, but also to document what I did in case I ever have to do it again. For now, suffice it to say that we are successfully running our own conferencing system using FOSS telephony software (Asterisk) on a $20/month VPS. Not only does this give us much more control over the system, but it opened up the possibility for people to start calling in via VoIP (SIP or IAX!) software instead of dialing in through the PSTN. This saves CC even more money because dialing into our conferencing system through the PSTN is not free. For that we had to find a good DID provider. We ended up going with Flowroute and so far I've been very happy with their service. Their rates are very competitive (< 1¢/minute), and the web interface for account management is very clean and intuitive. We have had conference calls with 20 people and the call quality has been just fine. Not only that, we can set up as many conference rooms as we want and hold multiple conferences simultaneously.

UPDATE : Wed Aug 11 21:56:24 UTC 2010 Belorussian translation provided by Patricia Clausnitzer.