Building Your Own Teleconference System with Asterisk and Gizmoby Brian McConnell
Editor's Note: In the interest of disseminating this information as widely as possible, the author grants all reprint requests without the need to obtain any further permission as long as the URL of this original article is included. This article is a companion piece to For SARS Press 1, for Bird Flu Press 2... and How to Implement Telecommuting in a Hurry.
Asterisk is a free software package that turns a standard computer into a powerful multi-user telephone and conferencing system. This is a companion piece to For SARS Press 1, for Bird Flu Press 2... about how we can use information technology to protect our communities in the event of an influenza pandemic. An important component of our response will be to create electronic surrogates for public gatherings such as classrooms, lecture halls, and social gatherings.
With these electronic venues in place, even in the event of a community-wide curfew or quarantine, people will still be able to attend class, chat with neighbors, and socialize. This will allow society to continue to function and reduce the potential for panic if people are isolated for extended periods of time.
Schools, universities, businesses, and any organization that organizes social functions should begin preparations now so they are able to respond quickly if public health authorities close public venues or restrict people's movement, both are likely scenarios in a pandemic.
Teleconferencing is a good surrogate for public gatherings. With it, you can host classes, lectures, meetings, and casual chats. Most people have used dial-in "meet me" teleconferencing services where users call a toll-free number, enter an access code, and then are dropped into a party line. Here, I'll describe how to build your own conference bridge using inexpensive off-the-shelf hardware paired with free Internet telephony software.
Although there are many subscription teleconferencing services, such as WebEx and InterCall, I do not recommend relying on them as part of a disaster preparedness plan. They are expensive ($12.00 per hour or more per connected caller). They also do not have adequate surge capacity to handle a sudden spike in demand, which would happen if an entire school district was forced to close for a month (much less if school districts nationwide were forced to shut down). In the event of a real crisis, millions of people may rely on these systems like the ones I describe far more than commercial providers can accommodate in a short period of time.
To prepare, you need to build a conferencing platform that is dedicated to your users and that can operate independently of the public telephone network. With Asterisk and off-the-shelf computer hardware, you can do this quite cheaply. Even for large organizations, such as public universities, the cost of implementing this will be modest, especially compared to the cost of not having this capability ready to go and being shut down entirely.
To build this system, you will need the assistance of someone who is knowledgeable about Linux-based systems and networks. There are many people in your community with this background, and chances are that someone within your organization, or even your students, will be able to follow these instructions. My company, Open Communication Systems, is publishing detailed specifications and downloadable sample configurations so you can quickly build these systems without reinventing them. First, let's go over an equipment and vendor checklist.
Equipment and Vendor Checklist
To build your conferencing platform, you will need the following equipment and services.
- One or multiple high-performance Linux servers. Asterisk requires a fast CPU and lots of memory to run well. Each box should have a fast CPU (> 3Ghz) with 1GB of RAM and a 100Mb Ethernet interface. Disk space is not as important. Each box will be able to handle about 50 to 100 concurrent callers depending on how it is configured. Figure about $2,000 for each server, or about $200 per month if you lease servers from a collocation facility.
- Asterisk PBX software. Asterisk is free, but you can buy a more turnkey package for $795 (Asterisk Business Edition). Also check out Asterisk@Home, this is a configuration tool that makes it easy to install and configure Asterisk systems and is a great way to learn the system. It is designed primarily for home users, but it's a good way to get started.
- High-speed Internet connectivity, at least 10Mbps for each 50 concurrent callers. The best way to do this will be to install equipment or lease servers at a collocation facility, or on your own high-speed LAN if you are a university. For most organizations, the cheapest way to do this will be to use a collocation facility.
- Free voice over IP (VoIP) client software to distribute to your users. This enables users to call into teleconferences from their computers over broadband Internet connections without using a regular phone line.
- VoIP telephone service (optional). If you want to allow people to call in from regular telephones, you will need to buy VoIP telephone service from a vendor such as Voxbone or XO Communications. Public telephone network connectivity is expensive and takes four to six weeks to provision. Don't count on it in a disaster situation because providers may be too overwhelmed with existing customers to accept new orders.
Host In-House or Outsource?
The first question you need to ask is whether you want to host the conference bridges in-house or to outsource them to a collocation facility.
Unless you have a fairly heavy-duty network infrastructure, such as a university wide-area network, and have an IT department to support these servers, you will want to install the servers at a collocation facility or rent servers from the same.
If you plan to outsource, there are several top-tier hosting companies, including ServerBeach and Rackspace. They'll rent servers for as little as $100 per month, Internet connectivity included (Server Beach charges as little as $80 per month extra for an unmetered 10Mb connection per server). A note about connectivity charges, be sure to ask your provider for an unmetered connection to avoid being hit with overage charges. The advantage of using these services is that you don't need to touch the hardware. You can just login in as an administrator, install the Asterisk software, edit a few configuration files, and be up and running fairly quickly.
If you are building a really big system, you should think about placing servers close to the end users so that network traffic mostly stays within your campus network or the metropolitan area network. For example, if you're building a system for a 5,000 student university, you should design it so that most of the calls travel within your campus network or the local cable providers network. This will reduce the possibility that a surge in demand will overwhelm an upstream link somewhere. The Internet and its underlying routing system is quite resilient, but you do need to be mindful of where people will be calling from and, if possible, place the conferencing servers on the same local or metropolitan network. (If you are outsourcing the servers, this isn't an option, so you'll just have to hope that local ISPs have enough upstream bandwidth -- they probably do in most cases).
I'll assume that if you're running a university's wide area network that you know what you're doing and only need some tips on configuring Asterisk and the VoIP client software. If you're hosting your conference bridges at an offsite collocation facility, be sure to pick a vendor that has extensive peering agreements and a lot of redundant facilities. If you are building a large cluster of servers, you should spread them across multiple providers so that a failure at one does not take your entire service offline.
Sizing Your System
These are approximate numbers, but will provide a rough estimate of how much hardware you will need for a given number of simultaneous callers. Schools and universities should plan system capacity to accommodate the number of students in classrooms at one time and should probably increase this number somewhat. The most conservative approach will be to build for a 1-to-1 ratio with the number of people in your organization, although you can get by with less if you schedule classes to combine a mix of live calls and offline work such as textbook drills.
Depending on how you configure it, Asterisk can handle about 50 to 100 simultaneous callers per server. Conferencing is a CPU-intensive application, so it is important to follow some configuration guidelines. There are a few tricks you can use to boost performance significantly.
So, if you have 500 students in your high school, you should plan on buying 5 to 10 servers to handle 200 to 500 callers in virtual classes at any time. If you buy the servers outright, this will cost $10,000 to $20,000, although you can also cobble together used hardware to cut costs. If you lease the servers, this will cost about $1,000 to $2,000 per month depending on the collocation provider for a fully built out system. You can see where leasing has obvious benefits; however, many other organizations may be trying to do the same thing at the same time, thus causing supply chain bottlenecks at the collocation facility. If possible, you should plan ahead and buy or start leasing at least some systems now. Internet connectivity will be included with the server rental. At the very least, you can do a guerrilla project to build a one- or two-server prototype using scavenged hardware.
This may sound expensive, but it is a fraction of what conventional conference bridges cost ($100 to $1,000 per caller plus telephone and operating expenses), or the cost of being shut down completely. If funding is an issue, you could levy a special fee to defray the cost of building the system. Using the 500-student high school as an example, you would need to charge about $4 per student/month to cover the direct operating costs (rental) or $40 per student for a one-time purchase.
Another thing you should do is contact local ISPs to see if they are willing to support your project. They may have spare servers that they can set aside for use in an emergency. Don't expect them to give you service for free, but since this is an important public service they may be willing to work with you. Some may be willing to help you build this project in exchange for some sort of acknowledgement or advertisement, others may be willing to stage servers on a contingency basis. Remember that once you build this system you can use it during normal times as well, so you may find it a worthwhile investment, regardless of whether a pandemic ever materializes.