When researching options for upgrading your telephony network or installing one from scratch, you may have come across FreeSWITCH. This is a freely available open-source application server for real-time voice communications of various types, including voice over IP (VoIP). In this article we examine FreeSWITCH to help you determine if it is right for you, and how it compares with Asterisk.
Overview of FreeSWITCH
FreeSWITCH is an application that runs on one or more servers to provide real-time communications including WebRTC, video, and VoIP. It runs on both Linux and Windows-based servers, as well as on macOS and FreeBSD. FreeSWITCH is used to build and develop PBX systems, IVR services, videoconferencing platforms, collaboration stations that include chat and screen sharing, as well as Session Border Controllers (SBCs) and voice gateways. It is also the primary component of many commercially available FreeSWITCH-based IP PBX server appliances.
Much like its older distant cousin Asterisk, it is not a ready-to-deploy product in and of itself, but rather is a modular software component that contains the central intelligence for these VoIP-based systems to operate.
For the most part, the logic behind FreeSWITCH is similar to Asterisk. Being open-source software, its code is freely available to download, modify, and recompile to suit your needs. Where Asterisk is licensed under General Public License (GPL), FreeSWITCH is licensed under Mozilla Public License (MPL). Both licensing schemes permit the same freedom of use and modification, with virtually no differences as far as usage and implementation are concerned.
Other than some variations in their internal modular architecture, the fundamental difference between them is that FreeSWITCH architects have decided to leverage freely available open-source software libraries that perform many of the required functions. This is done to reduce complexity and to avoid reinventing the wheel, so to speak. Some of the most notable include:
- Apache portable runtime – a series of resources leveraged by Apache web server.
- SQLite – a lightweight implementation of the SQL database engine.
- Sofia-SIP – an open-source SIP user agent library.
- libspeex – Speex Digital Signal Processor (DSP) library, primarily used for voice codec encoding/decoding.
- mod_spandsp – used for 38 fax gateway or passthrough.
- libSRTP – an open-source implementation of the Secure Real-time Transport Protocol.
Inevitably, FreeSWITCH will most often be evaluated in comparison with Asterisk. It’s interesting to note that FreeSWITCH was in fact developed as an attempt by a reputable Asterisk developer to tackle some of the perceived issues with Asterisk software. This led to a ground-up rebuild of what eventually became known as FreeSWITCH.
FreeSWITCH itself is not an out-of-the-box IP PBX solution. Much like Asterisk (as described in our recent article), FreeSWTCH should never be downloaded and installed for use on a production telephony network unless you have the technical staff and in-depth know-how to configure, deploy, and support such a system. As is the case with Asterisk, there are several commercially available products within which FreeSWITCH is the central component. These include sipXcom, FusionPBX, and Synway.
Advantages and disadvantages of FreeSWITCH compared with Asterisk
Some of the most significant advantages of FreeSWITCH in comparison with Asterisk include:
- More efficient usage of physical resources, as it can support a higher load (number of concurrent calls) for the same underlying hardware.
- Very useful for multi-tenant implementations where each tenant or customer is supplied with a segregated component of the IP PBX.
- Clustering capabilities to split up operations based on functions. For example, one server can support conferencing, another the IVR, and still another main call control operation.
Some disadvantages include:
- FreeSWITCH has a larger server footprint than Asterisk in terms of processing and memory requirements.
- Open-source support infrastructure is not as extensive as Asterisk’s.
- Availability of end device templates is limited compared with Asterisk.
Interoperability with other systems
FreeSWITCH prides itself in supporting a multitude of features, codecs, protocols, applications, and encryption methods. As such, it is compatible with most standards-based endpoints, gateways, and other such hardware. It can also be interconnected with almost any other IP PBX server that supports similar protocols.
Even so, such interoperability is never guaranteed until it is rigorously tested and certified. One such interoperability certification for FreeSWITCH is with Yealink’s T4S series phones, including the T48S, T46S, T42S and T41S, as well as the T27G IP Phone. Such compatibility certifications are very important when deploying equipment from multiple vendors. Even through standards and protocols are expected to interoperate, there is always the possibility of some level of incompatibility unless meticulous testing is employed and certifications are awarded. Click here to read more about Yealink’s T4S series IP phones.
FreeSWITCH hides within it a powerful arsenal of modules and tools. For many businesses, these advanced series of features are ideal for their needs. When coupled with commercially available IP PBX appliances, advanced voice and video services, along with the interoperability certifications provided for various vendors, FreeSWITCH becomes an attractive option for many businesses.