In 2006, a group of former contributing Asterisk developers, created an alternative solution called FreeSWITCH. Inspired by the modular design of the Apache Web Server, their goals were to use this modular approach to produce improved scalability and stability over multiple platforms. Built upon a state-machine model, it was designed so that each call/channel operates on its own separate and unique thread. Freely available open source components were used as building blocks, such as the Sofia-SIP open source SIP user agent library developed at Nokia Research Center. A new open-source telephony platform was born.
Overall, there are a number of key areas in which FreeSWITCH has some advantages over Asterisk:
Performance: Although the FreeSWITCH project team does not release official performance numbers, there are many sources for this information available. Reported gains have been as much as four- to ten-times improvement on number of concurrent calls supported. The addition of the Sofia-SIP stack provides a reliable, industry proven implementation for communications control.
Stability: Asterisk design relied upon shared resources, including threads, to provision multiple calls. This resulted in occasional deadlocking, race conditions, and potential data corruption in high capacity environments. FreeSWITCH was designed so that each call has unique control of its own resources, and that shared resources are managed by core functionality through a layered API.
Configuration/Design: Sometimes cited as an advantage, Asterisk utilizes plain text files in its approach for configuration and dial plan design, which can simplify administration and setup. Conversely, FreeSWITCH configuration is based upon XML, which may make manual maintenance of configuration files a bit more involved. There are other open source applications available that may simplify that task for FreeSWITCH, however. Where XML comes to an advantage is automating these tasks. FreeSWITCH also adds better support for regular expressions, and more call properties against which to match, allowing for more advanced dial plan design. SQL is also available can be extended for even more advanced administration features. A growing FreeSWITCH development community also assures a vibrant platform on which new features can be innovated.
The Right Tool For The Job: While Asterisk is a bit more mature, and possibly more suitable for a more specific and traditional PBX requirements, FreeSWITCH is a much better solution for this case. It is a platform that offers more possibilities beyond simple VoIP telephony. As Anthony Minnesale, the author of FreeSWITCH has stated, “Asterisk is an open source PBX. FreeSWITCH is an open source soft switch”. For performance, stability and versatility reasons, FreeSWITCH is the right tool for a diverse VOIP solution.