FreeSWITCH is an open source telecom engine that can turn an ordinary server, or even a Raspberry Pi, into a phone switch, a conference bridge or a call processing platform. Anthony Minessale and a small team announced it in January 2006, determined to show that software could replace proprietary switching hardware. The code is distributed under the Mozilla Public License, version 1.1 according to the license file in the repository.
In 2017 the same developers founded SignalWire, now the project’s main sponsor and the home of its GitHub repository. Version 1.11.3, released on 28 August 2026, is described by the team as an important security update that users should install promptly.
What FreeSWITCH is for
Where Kamailio and OpenSIPS only steer signaling, FreeSWITCH handles calls from end to end, voice and video included. It works as a back-to-back user agent: each call terminates on the server and is then placed again toward its destination, which lets it record, switch between codecs, mix several participants, play prompts and detect keypresses. Voicemail, call queues, voice menus and conferencing are all part of its toolkit.
The design is modular. A core manages sessions and media, and modules provide everything else: mod_sofia for SIP, mod_verto for WebRTC from a browser, codecs, database connectors and scripting languages. Call logic lives in an XML dial plan or in scripts, and the Event Socket interface lets an external application drive the server in real time. That is why it often underpins PBXs, contact center software and programmable voice services. In large architectures it typically sits behind Kamailio or OpenSIPS, which absorb registrations and spread the load across several FreeSWITCH nodes handling media. Compared with Yate, another full engine, it enjoys a much larger community.
The way it is distributed has changed in recent years, and it pays to understand this before installing. The source code remains free and open. SignalWire, however, now requires a free account to access the binary packages, and installing from packages on Debian relies on a personal access token created in the user’s SignalWire space. Next to this community edition, SignalWire sells FreeSWITCH Advantage, a paid, self-hosted offering. It includes commercial modules such as the G.729A codec and answering machine detection, access to FreeSWITCH Enterprise releases kept in a private repository, and support from the founding team. According to SignalWire’s FAQ, the community edition has no official support and receives updates more slowly.
Who is it for?
FreeSWITCH suits carriers and integrators building voice services, vendors of contact center software, companies that want a custom PBX and developers looking for a media engine they can control programmatically. Because it runs on modest hardware, it is also a good platform for learning.
There is no graphical administration interface: everything is set in XML files that can grow large, and the learning curve is real. Media processing is CPU hungry, especially with transcoding and video, so it is less suited than Kamailio to absorbing huge volumes of signaling on its own. Finally, the need for a SignalWire account to get packages and the lack of official support for the free edition may give pause to organizations without in-house expertise.
Download FreeSWITCH safely
The official code lives on GitHub in the signalwire/freeswitch repository, and the documentation on developer.signalwire.com. On Linux the recommended route is the fsget script, which sets up the Debian package repository, Raspberry Pi included, using your personal token. Debian 11 support was dropped with version 1.11.3, and building from source needs no token at all. For Windows, a 64-bit MSI installer of about 161 MB is attached to each release on the GitHub releases page. macOS has no official package and requires a source build.
The community edition is free, and so is the SignalWire account needed for packages. FreeSWITCH Advantage is sold on a quote basis, with no public price. Your personal token gives access to your account, so never paste it into a script found on a forum, and steer clear of sites offering Windows installers hosted outside GitHub or paid ready-made packages.
Frequently asked questions
Is FreeSWITCH still free?
Yes. The code is still released under the MPL and can be used in production at no cost. Only a free SignalWire account is required to download the Linux packages, while the paid FreeSWITCH Advantage offering adds commercial modules and support.
How does FreeSWITCH differ from Kamailio?
FreeSWITCH processes media: it records, transcodes, mixes and plays prompts. Kamailio only handles SIP signaling, but with far greater capacity in that role. The two are frequently deployed together.
Do I need a SignalWire account to build FreeSWITCH?
No. The documentation states that building from the GitHub repository requires no token. The account is only needed for the binary packages installed with fsget.