Asterisk was created by Mark Spencer of Digium (formerly Linux Support Services), and is now sponsored by Digium. Digium manufactures analog and digital telephone network interface cards that happen to work particularly well with Asterisk. This gives the company a long-term profit motive to support Asterisk, which is probably one of the main reasons the Asterisk project has succeeded where other open source telephony initiatives have failed to generate enough momentum to reach completion. Asterisk is currently in its 1.0 release, and sports a very impressive range of features for an early-stage product. Among the features baked into the system are:
Full support for analog, digital (T1, E1, PRI) and VoIP telephone interfaces (SIP, IAX and H.323 via external library)
Support for VoIP and analog telephone handsets
Ability to run in pure softswitch mode on generic Linux servers, Mac OS X and Windows (via CoLinux)
Ability to handle hundreds of concurrent calls on a single server
Extensive array of built-in call management features (e.g. call transfer, three-way calling, all of the usual bells and whistles found on business phone systems)
Voice mail with forwarding to internet email accounts
Meet Me dial-in conferencing
Fully configurable extension numbering (dial plan)
Automated call distribution (for customer contact centers)
Music on hold from a local recording or live MP3 or G.711 audio stream
Unlimited extensibility through AGI (Asterisk Gateway Interface), which allows developers to build custom CGI programs that control the telephone system (that is, interactive voice response systems)
Full LGPL source code
Although it is billed as a telephone system, Asterisk is really much more than that. Because it provides a CGI interface (as well as source code for the core application), Asterisk is extensible in ways that no other telephone system is. Asterisk is best characterized as a telephony operating system that happens to provide a full-featured business telephone system as one of its built-in applications. Telephones are ubiquitous. Asterisk is a great platform for building interactive voice response applications, such as:
Enhanced messaging services
Prepaid calling card systems
Customer support services and enhanced call routing
While computer telephony applications are not new (they've been around for well over a decade), Asterisk dramatically lowers the investment required to build them. Before, you would have had to buy expensive telecom hardware from vendors such as Intel, NMS, Aculab, and others. These cards are typically priced per port (concurrent caller), usually about $200 per port. A typical system would cost $5,000 to $10,000, much more for large-scale systems. For VoIP-only installations, there is zero hardware cost except for inexpensive off-the-shelf servers. For installations that require interconnection to the public telephone network, Digium makes cheap T1/E1/ISDN interface cards. A quad span (96-120 ports depending on configuration) costs only $1,500, about one-tenth what equivalent hardware from Intel, NMS, et al., costs.
Asterisk runs on most Unix and Linux platforms, including popular Linux releases, as well as Mac OS X. You can also run Asterisk on Windows using the CoLinux tool, although it requires a lot of RAM and disk space (note to Digium: a native Win32 port should be part of the release plan for Version 2.0). I don't know of any other phone system that runs on Mac OS X (note to Apple: why not bake Asterisk into X Servers?).
Simply put, Asterisk is the most flexible and extensible telephone system in existence. Full source code is available, so if you need a feature you can add it yourself. Although I must say, they've done a very thorough job with the first release. Try asking your current PBX vendor for full source code for their PBXs. Hell, just try asking them for documentation.
Asterisk is available at www.asterisk.org. You can download the package directly, or if you want a shrink-wrapped CD-ROM install, you can order Asterisk Business Edition from Digium for $795. Many third-party software developers are building automated installation tools and other utilities that make Asterisk easier to install and more extensible.
Unfortunately, Asterisk is not a plug-and-play product, and being in release 1.0, I would not recommend it to inexperienced users. Getting it installed and configured requires a substantial effort (especially if you plan to use a VoIP telephone service provider such as Global Crossing). Third-party tools are easing the learning curve for common configurations such as a small office intercom system. Digium is also selling a pre-packaged Business Edition CD release for $795 that automates many installation and configuration tasks. That said, Asterisk is an excellent choice for companies that are comfortable managing their own computers and networks. The learning curve for Asterisk is long, but no more so than for other networked devices, such as firewalls. A proficient system administrator can master Asterisk in a few weeks. Look for better usability in the coming months as Digium upgrades the system, and as third-party developers build tools around Asterisk's shortcomings.
While it would be easy to critique Asterisk for being a bit rough around the edges, it's important to remember that most business telephone systems deliver a far worse user experience. Many intercom systems are "programmed" by typing arcane sequences of numeric keys via telephone handsets. Editing a text config file on a PC is a piece of cake by comparison. If you have a decent understanding of common telecommunications services and can manage a resource such as an Apache server, you should have no trouble learning Asterisk. And in the long run, the flexibility of the system will enable you to do things with your telephone system that would otherwise be prohibitively expensive if not outright impossible.
Brian McConnell is an inventor, author, and serial telecom entrepreneur. He has founded three telecom startups since moving to California. The most recent, Open Communication Systems, designs cutting-edge telecom applications based on open standards telephony technology.
Return to the O'Reilly Network
Copyright © 2009 O'Reilly Media, Inc.