By Andrew Garcia  |  Posted 2006-01-23 Print this article Print

Asterisk 1.2.1 is an extremely flexible IP PBX that provides an excellent range of telephony features, with the added benefit of being available for free under the GNU General Public License. IT implementers will find Asterisk to be a good choice for a pilot voice-over-IP rollout—one that can grow as the project grows. However, due to design and management difficulties in larger networks, administrators of such networks should not move forward without at least investigating a third-party support contract.

Digium Inc.s Asterisk 1.2.1 provides a plethora of telephony features that include, but are not limited to, all the expected call control features, an incredibly easy-to-configure conference bridging system and a fully featured voice mail system with e-mail integration. (The full feature list can be found at asterisk.org/features.)

Asterisk 1.2.1 was released last month and includes a few bug fixes and enhancements over Version 1.2. Version 1.2, which made its debut in November as the first major Asterisk revision since September 2004, introduced the Real Time Database Configuration Storage Engine to store data for use in the dial plan, as well as improved dial plan configuration control via Asterisk Extension Logic.

eWEEK Labs installed the entire Asterisk environment on a single server—a Dell Inc. PowerEdge 750 with a single 2.8GHz Pentium IV processor and 1GB of RAM, running a fully patched Red Hat Inc. Fedora Core 4 operating system. According to a sizing chart in OReilly Press "Asterisk: The Future of Telephony" , this server configuration should be suitable for a small-business environment using as many as 15 concurrent channels. Larger deployments should consider using beefier hardware and dividing call control, voice mail and the Asterisk database onto separate servers.

Click here to read Labs reviews of two tomes on Asterisk. For improved performance, we recommend forgoing installation of a GUI for the Linux operating system on the Asterisk server. The machine can easily be run headless, simply using SSH (Secure Shell) for configuration.

Asterisk is easily configured to provide IP-only calling services, but to connect our test networks to the PSTN (Public Switched Telephone Network), we installed a Digium Wildcard TDM400P PCI adapter with four FXO (Foreign Exchange Office) ports. Administrators must be sure to install the adapters Zaptel drivers before compiling Asterisk to ensure device operation.

For easier installation and to lessen the performance impact on the Asterisk server, administrators can alternately interface with the PSTN via an external gateway appliance, such as Occtel Communication Co. Ltd.s SP4220. Larger installations would be better served by a digital interface for a voice T1 connection.

Asterisk may be used with either analog telephones connected to the network via FXS (Foreign Exchange Station) ports or IP phones. We conducted all tests using SIP (Session Initiation Protocol)-based devices and software. Although other SIP client devices may require different configuration settings and procedures, we successfully deployed Asterisk in conjunction with devices from Zyxel Communications Corp., Hitachi Cable Ltd. and Zultys Technologies, as well as with softphones from CounterPath Solutions Inc.

Asterisk includes a number of codecs for voice compression. Because our primary installation existed entirely on a single LAN, we used the G.711 codec for optimal voice quality. Notably, Asterisk does not include the G.729 codec by default, but the high-compression codec may be added by purchasing licenses through Digium.

At the heart of Asterisk is the dial plan, the master configuration that controls actions taken for incoming and outgoing calls. During tests, we built a dial plan that specified routing instructions for calls coming from the PSTN via the IVR (interactive voice response) system, voice mail rules and access controls, and differential access to local and long-distance service and trunks according to originating extension.

Like all Asterisk configuration settings, the dial plan is stored in a text file. Essentially using its own scripting language, Asterisk configuration can be quite flexible yet incredibly complex.

Version 1.2 introduced Asterisk Extension Logic, a wild card function that helps simplify the process of making configuration changes. Previous versions of Asterisk required users to manually change the sequential priority of all commands when a new command was inserted at the top of the script, somewhat reminiscent of old-fashioned BASIC programming. With Asterisk Extension Logic, programmers can avoid this headache by using the wild card "n" to imply the sequence of the next command.

Nonetheless, we often found that our scripts did not initially work as anticipated, requiring much tinkering and manual configuration reloads. Asterisk may be started with many different verbosity levels—we found that the more detail the better when trying to sort out what went wrong.

However, because a production phone system simply cant be subject to that level of tinkering, administrators are advised to thoroughly test dial plan changes on a nonproduction system before implementation. We also recommend that administrators seek external help from knowledgeable experts as the phone system becomes more complex.

Digium, as well as companies such as Signate LLC, offers support contracts for Asterisk implementations. These companies will offer and support their own customized packages of Asterisk and Linux that are tailored for business use. Administrators should investigate these options before going too far with an Asterisk implementation.

Asterisks Real Time Database Configuration Storage Engine provides a new way for Asterisk to retain information that frequently changes, even when Asterisk is restarted. According to documentation, Asterisk 1.2.1 also provides the ability to store the dial plan in an external MySQL database, which can greatly improve the scale and performance of the voice system.

Asterisk comes with Asterisk Manager API, which allows third-party software to provide external management services. And through the freely available Asterisk-Sounds add-on package, Asterisk provides a full range of canned voice messages to use with menus and IVR.

Next page: Evaluation Shortlist: Related Products.

Andrew cut his teeth as a systems administrator at the University of California, learning the ins and outs of server migration, Windows desktop management, Unix and Novell administration. After a tour of duty as a team leader for PC Magazine's Labs, Andrew turned to system integration - providing network, server, and desktop consulting services for small businesses throughout the Bay Area. With eWEEK Labs since 2003, Andrew concentrates on wireless networking technologies while moonlighting with Microsoft Windows, mobile devices and management, and unified communications. He produces product reviews, technology analysis and opinion pieces for eWEEK.com, eWEEK magazine, and the Labs' Release Notes blog. Follow Andrew on Twitter at andrewrgarcia, or reach him by email at agarcia@eweek.com.

Submit a Comment

Loading Comments...
Manage your Newsletters: Login   Register My Newsletters

Rocket Fuel