Editor's note: This article is based in large part on information provided by Mark Spencer and Digium.
I recently had a reason to approve a purchase of a new phone system for a small company. Twenty six thousand dollars later (and a $2,000/yr maintenance contract) the company has a very nice Private Branch Exchange (PBX) with integrated voicemail. Since I have run a small business for more than 15 years, I've often thought about installing a small system for my own use. But, the relatively high cost associated with most practical commercial offerings has made that a pipe dream.
Enter Open Source
The open source movement has created a number of robust applications packages that are available "for free." Free is a relative term because while the software is indeed free, putting it all together and making it work is not free. One of the best open source telephony packages that serves PBX needs is Asterisk. Digium is the original creator and primary developer of Asterisk, the industry's first open source PBX and Asterisk Business Edition, the professional-grade version of Asterisk. Asterisk provides a complete PBX in software when combined with telephony interface hardware. It runs on Linux, BSD and MacOSX and provides all of the features you would expect from a PBX. Asterisk provides voice over IP in many protocols, and can interoperate with almost all standards-based telephony equipment using relatively inexpensive hardware.
Asterisk provides Voicemail services with Directory, Call Conferencing, Interactive Voice Response and Call Queuing. It has support for three-way calling, caller ID services, ADSI, SIP and H.323 (as both client and gateway).
Asterisk needs no additional hardware for Voice over IP. For interconnection with digital and analog telephony equipment, Asterisk supports a number of hardware devices, most notably all of the hardware manufactured by Asterisk's sponsors, Digium. Digium has single and quad span T1 and E1 interfaces for interconnection to Primary Rate Interface (PRI) lines and channel banks as well as a single port Foreign eXchange Office
(FXO) card and a one to four-port modular Foreign eXchange Subscriber
(FXS) and FXO card.
Also supported are the Internet Line Jack and Internet Phone Jack products.
Asterisk supports a wide range of (Time Domain Multiplexing) TDM protocols for the handling and transmission of voice over traditional telephony interfaces. Asterisk supports US and European standard signaling types used in standard business phone systems, allowing it to bridge between next generation voice-data integrated networks and existing infrastructure. Asterisk not only supports traditional phone equipment, it enhances them with additional capabilities.
Using the Inter-Asterisk eXchange (IAX) Voice over IP protocol, Asterisk merges voice and data traffic seamlessly across multiple networks and network types. While using Packet Voice, it is possible to send data such as URL information and images in-line with voice traffic, allowing advanced integration of information.
Asterisk provides a central switching core, with four APIs for modular loading of telephony applications, hardware interfaces, file format handling, and codecs. It allows for transparent switching between all supported interfaces, allowing it to tie together a diverse mixture of telephony systems into a single switching network.
Asterisk is primarily developed on GNU/Linux for x/86. It is known to compile and run on GNU/Linux for Power PC along with OpenBSD, FreeBSD, and Mac OS X Jaguar. Other platforms and standards-based UNIX-like operating systems should be reasonably easy to port for anyone with the time and requisite skill to do so. Asterisk is available in Debian Stable (in version 1.0.7), with current maintenance performed by the Debian VoIP Team.
Asterisk was originally written by Mark Spencer of Digium, Inc. Code has been contributed from open source coders around the world, and testing and bug-patches from the community have provided invaluable aid to the development of this software.
Knowing that software will be maintained and expanded is important to commercial usage. Asterisk is growing fast with new features added frequently to the CVS tree. There is a large user community for Asterisk, and a large and stable developer community. For example, numerous contributors from around the world in addition to Mark Spencer contribute new code and patches on a daily basis. Digium's website offers a subscription to Asterisk mailing lists to aid you in keeping up with changes and enhancements to Asterisk.
Part of having a future roadmap is knowing that the system is modular in design. Specific APIs are defined around a central PBX core system. This core handles the internal interconnection of the PBX, abstracted from the specific protocols, codecs, and hardware interfaces from the telephony applications. This allows Asterisk to use any suitable hardware and technology available now or in the future to perform its essential functions, connecting hardware and applications.