Open Source VoIP: Asterisk or FreeSwitch?

When the time came for a new PBX, Brian Snipes chose to do something a bit unconventional. The IT manager at law firm Hare, Wynn, Newell, and Newton LLP didn’t purchase a commercial PBX, nor did he settle on the open source market leader, Asterisk.

When the time came for a new PBX, Brian Snipes chose to do something a bit unconventional. The IT manager at law firm Hare, Wynn, Newell, and Newton LLP didn’t purchase a commercial PBX, nor did he settle on the open source market leader, Asterisk.

No, Snipes chose to become the first enterprise to deploy the new open source IP PBX, FreeSwitch.  Three months into his deployment and Snipes remains ecstatic about his decision. “It was a grand slam,” he says

Open source VoIP represents a small part of the overall enterprise market with its strongest play in small organizations looking for an inexpensive, customizable solution. A Cisco integrator quoted Snipes $111,000 for a redundant implementation complete with switching infrastructure and voice capabilities. Asterisk (or FreeSwitch) would have run him just $60,000.

Yet Asterisk’s critics have long complained about the code’s scalability and quirks.

“Asterisk scales to a reasonable number of connections per box,” says David Cantera, an Asterisk integrator, “but in very large installations maintenance with the dial plan, is a configuration nightmare.”

The same could be said about some of Asterisk’s features. After deploying Asterisk, Snipes was hit with requests for features available on his legacy system.  “Some of these I thought I could (and had) worked around with Asterisk, but some I couldn't or didn't even know was used,” he says.

Complaints like those led Anthony Minessale II, an entrepreneur and Asterisk developer, to spearhead the FreeSwitch project, an open source switching engine aimed at serving as a class 5 switching replacement.  The FreeSwitch group is getting ready to release version 1.0.1 today or tomorrow that will improve the code’s stability and add Automatic Speech Recognition (ASR) and Text To Speech (TTS) to the code.

But if Snipes’ experience is any indication, business may be apt to use FreeSwitch as sort of Asterisk-on-steroids, providing advanced telephony services for the enterprise. For example, SipFoundry, an open source SIP server project, announced FreeSwitch would be the basis for a new open source conferencing server.

Snipes found that certain features while possible in Asterisk were cleaner in FreeSwitch. One such example is call monitoring. With his PBX, Snipes had two lights on an assistant’s phone, one Busy Lamp Field (BLF) for each of the attorney's two lines.  If one line was busy, the calls would roll over to the attorney’s second line.  If the attorney was on the phone then both the first line was lit and a new incoming call would roll over to the second line.  The secretary could then see when attorneys were on their first line and pickup an incoming call.  The problem, according to Snipes, was with Asterisk there was only a single light and all calls come into the same extension or line so the assistant couldn’t tell if the attorney was already using the phone line when there was a new incoming call.

“With FreeSwitch I was able to accomplish exactly what I needed,” he says. “By contrast, BLF (Busy Lamp Field) support in Asterisk is horrible.  It was wrong more often than right.  You could pickup a handset on an attorney phone, hang-up, and the light on the secretary phone would indicate that phone was engaged.”

A second key feature was call parking. Snipes needed a light on assistant’s and attorney’s phones to blink when the assistant would park a call. This would allow the attorney to pick up the call by pressing the button beside the light.  “FreeSwitch offered the feature out of the box when used with SNOM phones, but the feature wasn’t available with Asterisk.

Voice mail was another problem. Both FreeSwitch and Asterisk deliver voicemails as email attachments, but only FreeSwitch supported wav and mp3 formats. That was important because some attorneys had iPhones while others had BlackBerrys and each required a different file format.

Ultimately, Snipes says what really got him was FreeSwitch’s customizability.  “I am not a good programmer like the developers, but even I can create small programs,” he says, “FreeSwitch supports writing IVRs in Lua, Javascript, Python, Perl and a built-in XML language.” He says, for example, he wrote a directory application in Lua for FreeSwitch.

At least on that score, Asterisk proponents think their code plays well. “Asterisk is a like a toolbox,” says Cantera, “You just have to know how to use it.”

Ultimately, the biggest challenge for the FreeSwitch group will not be fighting for part of the Asterisk pie, but encroaching on the capabilities of commercial implementation. Open source has come along way in supplying the voice capabilities needed to compete with commercial implementations.

But commercial software has largely moved on from delivering voice services to providing business solutions that involve the PBX. This requires integrating the PBX,  with business applications, often through the use of Web Services.

In theory, open source should compete well in this market. The ability to modify the code makes FreeSwitch or Asterisk eminently adaptable. “You can control FreeSwitch with XML-RPC, direct socket connection and any other way you can make a plugin,” writes Minessale in an IM. “There is a layer between the telephone API and the outside world where you can wedge a module to translate it into whatever you want and if you really want it, FreeSwitch can be its own Web server.”  In reality, architects will require higher level interfaces or a strong service and support framework to adapt those applications to their business requirements. Whether FreeSwitch and its supporters can deliver that level of hand-holding remains to be seen.