FreeSWITCH is an open-source software telephony switch that routes and processes voice, video, and messaging calls over IP networks using standard protocols such as SIP and RTP. It serves as both a call routing and switching engine and a programmable telephony API, enabling developers to build custom telephony applications with event-driven call control and media manipulation. As a SIP media server, it handles media streaming, transcoding, and conferencing, and functions as a unified communications platform integrating voice, video, messaging, and conferencing into a single switchable infrastructure.
The platform is built on a modular architecture with an asynchronous event bus that distributes all signalling, state, and media events to subscribed modules and scripts. An embedded scripting runtime supports Lua and JavaScript for IVR and call control logic within the same process, eliminating the need for external CGI or IPC. The Sofia-SIP library handles low-level SIP parsing and registration, while a state machine driven call control model manages each call leg, emitting events at every transition. Codec transparency and an in-memory media bypass engine optimize media handling by redirecting streams between compatible endpoints.
FreeSWITCH enables deployment of a telephony switch on standard hardware to manage voice calls and media streaming, replacing proprietary telecom switches. Capabilities include configuring call routing rules for inbound calls, managing SIP endpoints with profiles for registration and media negotiation, and integrating cloud-based voice and messaging services through a unified API. The platform supports cloud telephony integration, inbound call routing, and endpoint configuration, making it extensible for various telephony needs.