Fact-checked by Grok 2 weeks ago

FreeSWITCH

FreeSWITCH is an open-source, carrier-grade platform designed for real-time communication that supports audio, video, text, and other forms of media across IP networks and the (PSTN). It is released under the (MPL). It operates as a back-to-back , enabling versatile applications such as private branch exchange (PBX) systems, transit switches, text-to-speech servers, conferencing solutions, and VoIP gateways. Development of FreeSWITCH began in 2005 through discussions aimed at creating a more scalable and future-oriented switching platform, distinct from existing tools like , which were primarily focused on PBX functionality. The project was officially launched in 2006 and has since evolved into a robust framework powering over 5,000 businesses and serving more than 300 million daily users worldwide. At its core, FreeSWITCH employs a modular built around channel variables, dialplan applications, and an Event Socket Layer (ESL) , which allows integration with scripting languages like and for custom extensions. This design supports key protocols such as and , along with features including video multipoint control units (MCUs), call recording, , and advanced media processing. Maintained by SignalWire—founded by FreeSWITCH's original core developers—the platform emphasizes scalability for enterprise environments, with options for commercial modules like G.729A codec support to enhance performance in high-volume deployments. FreeSWITCH's adoption extends to major providers and services, including Amazon Chime, Zoom Phone, and Five9, highlighting its reliability in handling complex, global infrastructures. The project fosters a vibrant open-source through forums, IRC channels, and annual like ClueCon, the 2025 edition of which celebrated FreeSWITCH's 20th anniversary and focused on innovations in AI-driven communications and real-time collaboration. Its ongoing development, tracked via the official repository, ensures compatibility with modern standards while addressing breaking changes in releases, such as the shift to modular components in version 1.10.x.

Overview

Description

FreeSWITCH is a free, platform designed for real-time communication, enabling the handling of audio, video, and text over networks. It functions as a versatile , facilitating the creation of scalable telephony systems that support (VoIP), video conferencing, and applications. At its core, FreeSWITCH serves as a back-to-back that powers everything from simple softphones to full-scale Class 5 switches, making it suitable for building robust communication infrastructures. Its high-level capabilities include multi-protocol support for seamless interoperability, embeddability within custom applications, and scalability to handle carrier-grade deployments serving millions of users daily. For instance, it supports over 5,000 businesses and more than 300 million daily active users worldwide, demonstrating its capacity for large-scale operations. As an open-source alternative to private branch exchange (PBX) systems, FreeSWITCH offers flexibility and cost-effectiveness for developers and enterprises seeking to deploy solutions without . Its modular design further enhances adaptability, allowing integration of diverse functionalities as needed.

Licensing and Platforms

FreeSWITCH is licensed under the (MPL) version 1.1, which permits free use, modification, and distribution of the software while requiring that any modifications to the source code be made available under the same license. This open-source framework encourages community contributions by ensuring that derivative works remain accessible, though it allows for extensions as long as the core remains open. For commercial use, the MPL supports integration into applications without mandating the release of the entire enclosing software, provided FreeSWITCH modifications are shared. SignalWire, the primary steward of FreeSWITCH, offers dual licensing options for features, including modules such as Detection (AMD) at $50 per channel and support for codecs like G.729A. These proprietary enhancements complement the open-source core, providing advanced capabilities like priority bug fixes and deployment assistance for high-scale deployments, while the base platform remains freely available under MPL 1.1. FreeSWITCH supports a wide range of platforms, with distributions such as , , , , and RHEL serving as the primary environments due to their stability and package availability. It also runs natively on Windows via compilation, macOS, variants (*BSD), , , and , enabling cross-compilation for diverse hardware architectures including 32-bit and 64-bit systems. This broad facilitates deployment in varied infrastructures without significant platform-specific adaptations. Hardware requirements for FreeSWITCH are modest for basic setups, requiring a minimum of a 32-bit operating system (64-bit recommended), 512 MB (1 GB recommended), and 50 MB of disk space, allowing it to operate on low-end devices like . For intensive , such as high-concurrency voice or video handling, more robust configurations are advised to maintain under load, with demands scaling based on expected call volume and features like conferencing. Installation methods include compiling from source for customization and access to the latest features, supported across systems, macOS, and Windows. Pre-built binaries are available for streamlined deployment on 12, 7, and Windows via MSI installers, reducing setup time for standard environments. Additionally, containerization via is supported through community-maintained images and official Dockerfiles for building containers, enabling portable and scalable deployments in modern orchestration setups like .

History

Origins

FreeSWITCH was announced in January 2006 at O'Reilly's ETEL conference by Anthony Minessale II, Brian West, and Michael Jerris, marking the inception of an open-source telephony platform. The project arose from frustrations with the constraints of prevailing open-source solutions like , which often exhibited instability under high loads and resisted easy customization for advanced use cases. The founding team sought to create a versatile that prioritized , embeddability, and support for communications extending beyond conventional PBX functionalities, addressing the growing demand for flexible, high-density in the mid-2000s. Initial development emphasized a built from scratch, while integrating select components from established VoIP libraries, such as SIP handling tools, to promote cross-platform compatibility and extensibility without inheriting legacy limitations. After approximately two years of intensive coding and testing, the project achieved its first stable milestone with the public release of version 1.0.0 on May 26, 2008, which introduced core capabilities for signaling and media processing. This release laid the groundwork for FreeSWITCH's role as a robust foundation for diverse communication applications.

Key Releases

FreeSWITCH's development has progressed through several major open-source releases since its initial stable versions, each introducing significant enhancements in protocol support, media handling, and integration capabilities. The 1.2 series, codenamed "Dragon," was released in 2012 and marked an important step forward with the introduction of SIP over WebSocket support, enabling seamless communication between web-based clients and traditional SIP endpoints. Additionally, this version provided basic WebRTC compatibility, allowing early integration of browser-based real-time communication without extensive custom modifications. Building on these foundations, the 1.4 series arrived in 2014, focusing on advancements. Key updates included enhanced video capabilities through improved handling in mod_av, supporting multiple formats for smoother in diverse environments. Conferencing features were also bolstered, with better support for video streams in mod_conference, facilitating more reliable multi-party sessions and laying groundwork for advanced video applications. The 1.6 series, released starting in , emphasized architectural refinements and efficiency gains. Improvements in allowed for more flexible module loading and configuration, reducing overhead in large-scale deployments. Performance optimizations, such as quality enhancements to the video codec and updates to signaling for better compliance with evolving standards, contributed to higher throughput and lower latency in media processing. In 2018, the 1.8 series introduced deeper ties to the emerging SignalWire ecosystem. The standout addition was mod_signalwire in version 1.8.3, which simplified connectivity to SignalWire's cloud services for , , and scaling of communications workloads. This integration streamlined deployment for hybrid on-premises and cloud setups, enhancing FreeSWITCH's role in distributed architectures. The ongoing 1.10 series, initiated in 2019, continues to prioritize stability and modern platform compatibility, with the latest open-source release being 1.10.12 in August 2024. This version incorporates critical security fixes addressing vulnerabilities in core components, alongside support for Debian 11 as a reference platform and the introduction of mod_python3 for scripting with the latest Python runtime. These updates ensure robust operation in contemporary Linux environments while maintaining backward compatibility for established deployments. Complementing the open-source track, FreeSWITCH's enterprise editions under SignalWire have evolved separately, with 20.25.4 released on October 27, 2025. This update delivers essential patches for XML and signaling protocols, alongside enhancements like optimized handling for complex session setups and new monitoring tools via low-level for real-time diagnostics and performance tracking. Across these releases, FreeSWITCH has trended toward greater emphasis on WebRTC for browser-native communications, advanced video processing for immersive conferencing, and cloud-native features like modular integrations and API-driven management, reflecting broader shifts in real-time communication demands.

Architecture

Core Components

FreeSWITCH employs a softswitch architecture centered on an event-driven state machine that manages call sessions, channels, and media streams efficiently. This design allows the core engine to process events triggered by significant actions, such as call initiation or termination, enabling real-time handling of concurrent communications without blocking operations. The event system facilitates monitoring and control, where external applications can bind to events to track system status and respond dynamically. At the heart of this architecture is the , an embeddable C-based that provides the foundational switching and signaling capabilities. Libfreeswitch offers a stable, protected core with opaque critical data structures to ensure reliability and prevent inter-module dependencies, allowing it to be integrated into larger applications as a (typically 4-8 MB in size). It supports multi-protocol functionality, enabling the addition of voice processing and other real-time features to host applications while running in separate threads to minimize performance impact. Key internals include session management through finite state machines, which handle call flows similarly to traditional dialplans, and a multi-threaded processing model where each connection operates in its own thread alongside background subsystems for concurrency. This separation of signaling from media processing ensures that operations do not interfere with media streams, supporting high throughput on standard hardware—capable of managing thousands of concurrent channels. is achieved through horizontal scaling mechanisms, including clustering for distributed deployments and load balancing algorithms like or load-based routing to distribute requests across multiple servers based on metrics such as CPU utilization or active connections. Additionally, built-in handling, via parameters like nat-options-ping for keeping ports open and external profile configurations using for IP discovery, facilitates deployment in varied network environments. Configuration of is managed through an XML-based , providing a structured approach to routing and management. The dialplan, stored in XML files, defines the for call routing and application execution, while the handles authentication and registration details in a similar XML format located in the conf/ path. This XML registry supports dynamic and updates, allowing seamless adjustments without restarting the system.

Modules

FreeSWITCH features a modular extension system that enables of loadable modules at , allowing users to extend the core engine's capabilities without recompiling the software. These modules are typically implemented or C++, with Lua support for scripting certain functionalities, and are organized into categories such as applications, codecs, endpoints, and formats. This design promotes flexibility, as modules can be loaded, unloaded, or reloaded via the console or configuration without restarting the system. Application modules deliver targeted telephony features; for instance, mod_voicemail handles automated voice messaging storage and retrieval, mod_conference manages multi-party audio and video calls with features like muting and floor control, and mod_dptools provides tools for building IVR applications through dialplan scripting. Codec modules support various audio and video compression algorithms, exemplified by mod_opus, which integrates the codec for high-quality, low-latency communication over variable bandwidth. Endpoint modules interface with communication protocols and devices, such as mod_sofia, which implements the protocol for VoIP session handling. Format modules process media streams and files, including mod_shell_stream for piping audio to external commands and mod_av for advanced video and audio format support. Developers can create custom modules using the FreeSWITCH , starting from templates in the source code and defining key functions like load, runtime, and shutdown hooks to interact with state machine. Once built, new modules integrate seamlessly into the system. Enabling or disabling modules occurs through the XML at conf/autoload_configs/modules.conf.xml, where administrators uncomment or add lines such as <load module="mod_example"/> to control loading order and specify custom paths if needed; critical modules can be flagged to halt startup on load failure. This architecture minimizes core bloat by loading only required modules, optimizing resource usage for diverse deployments from simple gateways to complex media servers; numerous modules are available, encompassing everything from basic protocol support to specialized media processing.

Features

Protocol Support

FreeSWITCH provides native support for a range of signaling protocols essential for VoIP communications, with Session Initiation Protocol (SIP) as its primary standard, implemented through the mod_sofia module based on the Sofia-SIP stack. This implementation ensures compliance with RFC 3261 for SIP version 2.0, enabling core functions such as session establishment, modification, and termination, along with support for additional RFCs including 3263 for DNS SRV and NAPTR records, 3325 for private extensions, and 4694 for number portability. SIP in FreeSWITCH also extends to WebSocket transports via ws-binding and wss-binding configurations, facilitating integration with web-based clients without requiring additional gateways. For chat and presence integration, FreeSWITCH supports XMPP through the mod_dingaling module, which handles XMPP registrations and Jingle extensions for real-time communication. On the media transport side, FreeSWITCH's core architecture natively handles (RTP) streams for audio and video as per RFC 3551, with Secure RTP (SRTP) encryption supported via Security Descriptions for Media Streams (SDES) or (DTLS). integration is achieved through modules like mod_verto and mod_rtc, enabling browser-native audio/video sessions with full support for (ICE), Session Traversal Utilities for NAT (), and Traversal Using Relays around NAT (TURN) to manage and firewall penetration, including data channels via SCTP as of recent updates. Additionally, (RTMP) is supported via mod_rtmp for legacy streaming applications. Security features are embedded in FreeSWITCH's protocol stack, with (TLS) available for signaling to encrypt control messages and prevent . For media encryption, DTLS is utilized in contexts to negotiate SRTP keys securely, while ZRTP support—once enabled for in RTP streams—was deprecated in early 2023, removed in version 1.10.12 (August 2024), and is no longer available. These mechanisms ensure robust protection for both signaling and media paths in deployed systems. Interoperability is enhanced through gateway modules for legacy protocols, such as support via mod_h323 (based on the H.323plus library) and mod_opal (which also handles IAX2), allowing bridging between endpoints and modern VoIP sessions. Routing capabilities include ENUM via the mod_enum module, which performs to lookups using DNS NAPTR records to direct calls efficiently across PSTN and IP networks. FreeSWITCH operates across multiple network transports, supporting both IPv4 and addressing for and RTP to accommodate dual-stack environments. Signaling and media can utilize , , SCTP, and TLS transports, providing flexibility for reliability and security needs in diverse network conditions.

Advanced Functions

FreeSWITCH provides robust call control mechanisms that enable dynamic management of telephony sessions. Call bridging connects multiple channels, allowing seamless integration of participants into ongoing conversations, as implemented through the bridge application in mod_dptools. Blind transfers redirect a call to a new destination without consultation, typically handled via SIP REFER in mod_sofia or the transfer application, which restarts dialplan processing in a specified context while respecting SIP Max-Forwards limits to prevent loops. Attended transfers, or consultative transfers, involve bridging a third party for private consultation before completing the handover, facilitated by the att_xfer application that temporarily parks the original caller. Call parking places sessions in a holding state for later retrieval, using features like mod_valet_parking for extension-based slots or the park application to suspend media without endpoint involvement. Session recording captures audio streams with privacy controls, such as starting post-answer via the record_session application and options to exclude announcements or enable one-way recording. Media handling in FreeSWITCH supports advanced manipulation for diverse needs. Transcoding converts between codecs like (PCMU/PCMA) and dynamically during sessions, leveraging the core media engine to negotiate and switch formats without interrupting calls, ensuring compatibility across endpoints, with recent enhancements to PLC for improved concealment as of 2024. Conference mixing aggregates multiple audio streams into a unified output using mod_conference, which applies , energy scoring for floor management, and video layout options for multiparty sessions. support includes protocol handling for reliable transmission over IP, with mod_spandsp enabling gateway mode to convert audio tones to packets and vice versa, supporting both send and receive operations in dialplans. Scripting capabilities extend FreeSWITCH's flexibility through the Event Socket Layer (ESL), a TCP-based interface for external applications to monitor and control events in real-time. ESL supports bindings in languages such as for embedded scripting within dialplans, Python via the native ESL module for inbound/outbound connections, and through libraries for asynchronous event handling. This allows developers to originate calls, inject IVR logic, or integrate with databases without recompiling the core. AI and integrations are facilitated through modular hooks, particularly mod_unimrcp, which implements the MRCP protocol for connecting to speech engines. (ASR) converts audio to text using grammars or large-vocabulary models, invoked via the unimrcp application for real-time processing in IVR flows. Text-to-speech (TTS) synthesis generates audio from text or SSML, supporting playback with voice parameters and integration into sessions for interactive voice responses. Reliability features ensure resilient operation in production environments. Failover routing sequentially attempts alternative gateways or endpoints upon failure detection, configurable in dialplans with inline bridges or the failover parameter to handle causes like 403 or 503 responses. Least-cost routing optimizes carrier selection using mod_lcr, which queries databases for prefix-based rates and prefixes to minimize expenses while balancing load. Session timers, compliant with RFC 4028, periodically refresh dialogs to detect and terminate stale sessions, enabled in profiles with configurable intervals like 1800 seconds minimum.

Applications

Use Cases

FreeSWITCH is widely deployed as a private branch exchange (PBX) system in enterprise environments to manage internal voice and video calling. It enables features such as extension dialing, , and integration through configurable dialplans and SIP profiles, allowing organizations to route calls efficiently within their networks. In (IVR) and contact center applications, FreeSWITCH handles automated call handling and agent distribution using modules like mod_ivr for menu navigation and mod_callcenter for automatic call distribution (ACD) and queue management. This setup supports skills-based routing, where calls are directed to agents based on predefined criteria such as or expertise, improving response times in high-volume environments. For conferencing and multi-point control unit (MCU) scenarios, FreeSWITCH serves as a video bridging platform, mixing multiple streams into a single composite feed for webinars, meetings, and collaborative sessions. Its mod_conference module facilitates scalable audio and video rooms with features like layout customization and participant moderation, often integrated with for browser-based access. As a (), FreeSWITCH secures and routes traffic between internal networks and external carriers, performing tasks like , topology hiding, and least-cost routing for interconnects. Configurations typically involve separate profiles for internal and external interfaces, enabling protocol and prevention in carrier-grade deployments. Embedded applications leverage FreeSWITCH's core library (libfreeswitch) for integration into custom software, such as softphones, devices for voice-enabled controls, or cloud services for on-demand . This allows developers to embed communication capabilities directly into applications without running a full server instance, supporting protocols like for seamless .

Notable Adopters

One of the earliest notable adopters of FreeSWITCH was , which selected the platform in June 2007 to enable VoIP calls over on mobile phones, leveraging its carrier-grade capabilities for services. In the public sector, the U.S. Department of has utilized FreeSWITCH as part of its scalable platform for routing and interconnecting communication protocols, supporting secure communications across its infrastructure. In the commercial space, integrates FreeSWITCH with its Elastic SIP Trunking for cloud telephony solutions, enabling secure, scalable PBX configurations for inbound and outbound calls. Similarly, , an open-source web conferencing system, relies on FreeSWITCH for its voice conferencing features, allowing users to join sessions via headset or phone with low-latency audio bridging. For enterprise applications, SignalWire, the primary sponsor and maintainer of FreeSWITCH, incorporates it as the core of its communication stack, powering programmable with AI-enhanced for global deployments. FusionPBX serves as a popular multi-tenant frontend for FreeSWITCH, providing domain-based PBX management with features like unlimited extensions and integrated , widely used in business phone systems. Other integrations include JeraSoft's billing platform, which received a fully updated for FreeSWITCH 1.10 in 2025, ensuring seamless xDR-based rating and for carriers. Major providers such as Amazon Chime, Zoom Phone, and Five9 also utilize FreeSWITCH in their infrastructures, handling complex global communications. These adoptions highlight FreeSWITCH's versatility in hosted services and beyond. As of 2025, FreeSWITCH powers over 5,000 businesses worldwide and supports more than 300 million daily users, including numerous carrier-grade systems in and conferencing infrastructures.

Community and Development

Maintainers and Support

SignalWire Inc., founded in by the original developers of FreeSWITCH, serves as the primary maintainer, providing funding, enterprise builds, and commercial support to sustain the project's . The project follows an open-source model hosted on the GitHub repository at signalwire/freeswitch, where a global community actively contributes through bug reports, feature enhancements, and code submissions; as of November 2025, the repository maintains hundreds of open issues and 13 open pull requests, reflecting ongoing engagement. Contributions are guided by established processes, including submission via pull requests for code review by core developers, integration with continuous integration and deployment (CI/CD) pipelines for automated testing—such as those using GitHub Actions—and participation in annual events like the ClueCon conference, which fosters collaboration and knowledge sharing among contributors. Commercially, SignalWire offers FreeSWITCH Advantage, a paid edition that includes agreements (SLAs) for 24/7 support, professional training programs, and access to proprietary modules including commercial codec support such as G.729A via mod_com_g729 and advanced media detection (). Security is addressed through regular advisories and vulnerability reporting mechanisms, primarily via the issue tracker, with fixes incorporated into releases; for instance, vulnerabilities like CVE-2023-40018 (critical remote code execution) and CVE-2023-51443 (denial-of-service) were patched in versions 1.10.10 and 1.10.11, respectively, ensuring timely mitigations for production deployments.

Resources

The official documentation for FreeSWITCH is hosted on the SignalWire Developer Portal, providing comprehensive guides on installation procedures, configuration options for core components like the dialplan and modules, and usage through interfaces such as the Event Socket Library (ESL). These resources include detailed references for channel variables, applications, and commands, enabling users to build and troubleshoot systems effectively. Tutorials within the cover practical examples, such as XML dialplan configurations for calls and handling events, primers on ESL scripting for external application , and walkthroughs for developing custom modules to extend functionality. These materials emphasize hands-on learning, with code snippets and step-by-step instructions to configure features like bridging and recording. The FreeSWITCH offers interactive support through forums on the SignalWire Support Portal, where users discuss configurations, share solutions, and report issues; IRC channel #freeswitch on for real-time assistance; and the annual ClueCon conference, which features workshops, presentations on advanced topics, and networking opportunities for developers. For deeper study, the book FreeSWITCH 1.8 (Packt Publishing, 2017, ISBN 978-1785889139) serves as a foundational text on building telephony systems, with chapters on installation, dialplan scripting, and module integration, though users should consult updated documentation for versions beyond 1.8. Video series on the official FreeSWITCH YouTube channel provide visual tutorials on topics like ESL usage and conference setups, complementing written resources. Key tools for management include FusionPBX, an open-source web-based GUI that simplifies domain administration, user management, and call routing over FreeSWITCH, and fs_cli, the command-line interface for real-time monitoring, executing API commands, and debugging sessions during runtime.

References

  1. [1]
    FreeSWITCH Explained | FreeSWITCH Documentation
    ### Summary of FreeSWITCH Explained
  2. [2]
    Users Guide Introduction | FreeSWITCH Documentation
    History of FreeSWITCH™​. FreeSWITCH™ started in 2005 with discussions on how to write a better switching platform. Care was taken to ensure that it would be ...
  3. [3]
    FreeSWITCH | SignalWire
    FreeSWITCH is the leading open-source communication framework that powers some of the world's largest telephony infrastructures.InstallationFreeSWITCH Explained
  4. [4]
    FreeSWITCH Turns 20: How SignalWire Was Born from Its Legacy
    FreeSWITCH, launched in 2006, is an open-source telephony platform. SignalWire, founded by the same creators, is a cloud platform extending FreeSWITCH's ...
  5. [5]
    SignalWire - The Origin of Software-Defined Telecom
    This is how we ended up with FreeSWITCH. The advent of FreeSWITCH helped Asterisk get back to its roots as a PBX. FreeSWITCH would focus on the future and ...Freeswitch Is Born · Freeswitch Sets The Standard... · Webrtc Takes Shape
  6. [6]
    SignalWire Communities
    FreeSWITCH is the leading open-source communication framework that powers some of the world's largest telephony infrastructures. It is maintained and sponsored ...
  7. [7]
    What to Expect From ClueCon 2025 - FreeSWITCH - SignalWire
    Join us at the iconic Swissotel in Chicago from August 4th–7th to celebrate 20 years of FreeSWITCH and explore real-time communications, open-source innovation, ...Monday: Coder Games And Ai... · Ai Workshops And Live Coding... · Gigabit Reception: Celebrate...<|control11|><|separator|>
  8. [8]
    signalwire/freeswitch - GitHub
    FreeSWITCH is a Software Defined Telecom Stack enabling the digital transformation from proprietary telecom switches to a versatile software implementation.
  9. [9]
    FreeSWITCH 1.10.x Release notes
    FreeSWITCH 1.10.x includes breaking changes like pgqsql moved to a module, SpanDSP and sofia-sip removed, and 1.10.12 adds ARM64 support.List Of Releases:​ · Breaking Changes​ · 1.10. 4 (release Date: 05...
  10. [10]
    Introduction | FreeSWITCH Documentation - SignalWire Docs
    The core is licensed under the MPL 1.1 but other components have other licensing requirements. Users have many choices of platforms on which to run the software ...About · What Is FreeSWITCH™ · Tutorials and Guides · FreeSWITCH™ Architecture
  11. [11]
  12. [12]
  13. [13]
    Installation | FreeSWITCH Documentation
    NetBSD · OpenBSD · Solaris. Mac OS X​. Instructions for non-supported OS X systems can be found at Mac OS X Archive. Windows​. Compile with Visual Studio.Windows Install · Linux · Language Files · Raspberry Pi
  14. [14]
    safarov/freeswitch - Docker Image
    This is minimized official FreeSwitch docker container. Container designed to run on host, bridge and swarm network. Size of container decreased to 149MB (62MB ...Missing: methods | Show results with:methods
  15. [15]
    [PDF] FreeSWITCH OpenSIPS Summit 2022
    What is FreeSWITCH? Page 5. ○ January 2006: FreeSWITCH announced at O'Reilly's ETEL conference. ○ ...
  16. [16]
    FAQ | FreeSWITCH Documentation
    Anthony Minessale (anthm) - http://www.amazon.com/gp/registry/wishlist ... The initial release of the code that actually did anything interesting was in early ...
  17. [17]
    Core Outline | FreeSWITCH Documentation
    History​ · 1999 Start of Asterisk and OpenH323 · 2003 anthm and bkw Join Asterisk · 2005 First ClueCon, Asterisk 1.2 Released · 2006 Start of FreeSWITCH / OpenPBX ...About​ · Fundamentals​ · Api Comparison​
  18. [18]
    [Freeswitch-users] FreeSWITCH adds WebRTC support to new 1.4 ...
    Jul 8, 2013 · [Freeswitch-users] FreeSWITCH adds WebRTC support to new 1.4 BETA. · Yes its up to the browsers at that point to make the video work · properly...Freeswitch transcoding even after Late ...How to avoid transcoding? - Mailing ListsMore results from lists.freeswitch.org
  19. [19]
    [PDF] Mastering FreeSWITCH
    In 2005, Anthony started coding a new idea for an open source voice application. The FreeSWITCH project was officially open to the public on January 1. 2006. In ...
  20. [20]
    FreeSWITCH 1.6.x Release notes
    This was a routine release, but you can find some wonderful new features including improvements to mod_av's handling of core file parameters, some quality ...Missing: modularity performance
  21. [21]
    FreeSWITCH 1.8.x Release notes - SignalWire Docs
    List of releases:​ · 1.8.7 (Release date: 02 July 2019) · 1.8.6 (Release date: 06 June 2019) · 1.8.5 (Release date: 24 Jan 2019) · 1.8.4 (Release date: 27 Dec 2018) ...Missing: 1.0 | Show results with:1.0
  22. [22]
    FreeSWITCH Enterprise v20.25.4 (Oct. 27, 2025) - SignalWire
    Oct 27, 2025 · This release focuses on critical bug fixes, enhanced monitoring capabilities, and new low-level APIs that empower enterprise teams to manage ...
  23. [23]
    FreeSWITCH Advantage Release notes
    List of releases:​ · 20.25.4 (Release date: 27 Oct 2025) · 20.25.3 (Release date: 12 Sep 2025) · 20.25.2 (Release date: 18 Jun 2025) · 20.25.1 (Release date: 20 Feb ...
  24. [24]
    FreeSWITCH - Wikipedia
    FreeSWITCH is a free and open-source telephony software for real-time communication protocols using audio, video, text and other forms of media.
  25. [25]
    Embedding FreeSWITCH | FreeSWITCH Documentation
    ### Summary of libfreeswitch and Related Features
  26. [26]
    Load balancing | FreeSWITCH Documentation
    Load balancing is the method of sending requests to different servers according to some algorithm, such that the load across the servers as a whole is fairly ...Missing: NAT | Show results with:NAT
  27. [27]
    XML Dialplan | FreeSWITCH Documentation
    Aug 12, 2014 · The XML dialplan is the default dialplan used by FreeSwitch. XML is easily edited by hand without requiring special tools, other than a text editor.XML Dialplan archive · Handling SIP Redirect · Example Offsite phones · Demo IVR
  28. [28]
    XML User Directory | FreeSWITCH Documentation
    Jun 10, 2020 · The FreeSWITCH XML user directory contains XML files for all users that can register to FreeSWITCH, located in $FS_ROOT/conf/directory/. Basic  ...
  29. [29]
    Modules | FreeSWITCH Documentation
    The functionality of FreeSWITCH can be expanded through the addition of modules that perform a particular task, whether that task is simple or complex.About​ · Configuration​ · Locating The Module File In...
  30. [30]
    Creating New Modules | FreeSWITCH Documentation
    Lets look at how you can make changes to your module source, build those changes, and then install and reload your library in a running instance of FreeSWITCH.
  31. [31]
    Codecs and Media | FreeSWITCH Documentation
    A codec is an encoding and compression scheme for media. FreeSWITCH supports many codecs, including HD audio like Speex, G.722, G.722.1, and SILK.Missing: 1.4 | Show results with:1.4<|separator|>
  32. [32]
    XML Modules Configuration | FreeSWITCH Documentation
    modules.conf.xml is a configuration entity that exists in the "configuration" section of freeswitch.xml. It denotes which modules to load, and in what order.
  33. [33]
    mod_sofia | FreeSWITCH Documentation
    ### Summary of mod_sofia SIP Features
  34. [34]
    mod_dingaling | FreeSWITCH Documentation
    mod_dingaling is a generic xmpp registration that can be used for Google talk or any other XMPP integration.Build Module​ · Windows Using Msvc 2008​ · Faq​
  35. [35]
    mod_verto | FreeSWITCH Documentation
    mod_verto implements a FreeSWITCH endpoint as a subset of a JSON-RPC connection designed for use over websockets. mod_verto is the signaling protocol. It ...Applications · Configuration · Dialplan · Bridging from WebRTC...
  36. [36]
    mod_rtmp | FreeSWITCH Documentation
    mod_rtmp is an RTMP (Real time media protocol) endpoint for FreeSWITCH (similar to mod_sofia for example). The RTMP protocol is primarily used by Flash.Missing: support | Show results with:support
  37. [37]
    ZRTP IS NOW DEPREICATED and will be removed out of the docs
    Feb 16, 2023 · ZRTP IS NOW DEPREICATED and will be removed out of the docs. zrtp_enabled. Created by Duvid Rottenberg, last modified on 2023.02.16 ...Missing: support | Show results with:support
  38. [38]
    mod_h323 | FreeSWITCH Documentation
    mod_h323 is an endpoint module based on the H.323plus telephony library. Status In development Installation Method 1: Use the script provided with FreeSWITCH.Ptlib-2.8. 1 +... · Configuration​ · Usage​
  39. [39]
    mod_opal | FreeSWITCH Documentation
    mod_opal is a multi-protocol capable endpoint module, based on the Opal telephony library. It adds H.323 and IAX2 support to FreeSWITCH.Manual Build · Configuration · Usage
  40. [40]
    mod_enum | FreeSWITCH Documentation
    The enum module provides a dialplan interface which allows you only to dial a number and an ENUM lookup will be done.
  41. [41]
    mod_valet_parking | FreeSWITCH Documentation
    A call is placed into a parking lot with a blind transfer to a valet_park extension. Calls can be retrieved by calling the same extension.About​ · Examples​ · Blind Transfer​Missing: advanced control recording
  42. [42]
    Codec Negotiation | FreeSWITCH Documentation
    Codec negotiation is the process of choosing which codec will be used on each call leg. FreeSWITCH supports early and late negotiation modes.Codec Negotiation In... · Early Negotiation​ · Mixing Media/codecs On...
  43. [43]
    mod_conference | FreeSWITCH Documentation
    You can create as many conferences as you like, as long as there still are free system resources (i.e. memory, CPU power, network bandwidth) available.Missing: enhanced | Show results with:enhanced
  44. [44]
    mod_spandsp | FreeSWITCH Documentation
    Nov 9, 2015 · t38_gateway App​. t38_gateway dialplan app will allow FreeSWITCH to transcode audio<->t.38. It converts to T38 Gateway if tones are heard.
  45. [45]
    Event Socket Library | FreeSWITCH Documentation
    This page describes how to use the Event Socket Library (ESL) to talk to FreeSWITCH's event system using an application, and not via the C primitives.
  46. [46]
    mod_unimrcp | FreeSWITCH Documentation
    TTS​. mod_unimrcp supports plain text and Speech Synthesis Markup Language (SSML). TTS can be sent using either speak or playback (if prefixed with say ...
  47. [47]
  48. [48]
    Billing Solutions | FreeSWITCH Documentation
    Oct 30, 2019 · It also provides many other features such as calling cards, least cost routing (LCR), did management, resellers, callbacks, etc. ASTPP is able ...Open Source Billing... · Astpp - Open Source Voip... · Freeswitch Viking​
  49. [49]
    FreeSWITCH PBX Example
    FreeSWITCH PBX Example. About​. This document presents a short tutorial that allows you to start using a FreeSWITCH™ server as a basic PBX.Dns Configuration​ · Dialplan Contexts​ · Internal Dialplan Context​
  50. [50]
  51. [51]
    IVR | FreeSWITCH Documentation
    Interactive Voice Response (IVR) is an automated telephony system that interacts with callers, gathers information and routes calls to the appropriate recipient ...Sample IVRs · Included in Source · Lua IVRs · Checking if a user exists & if...Missing: center | Show results with:center
  52. [52]
    Configuring FreeSWITCH as a WebRTC MCU Media Server
    Feb 17, 2022 · This post will cover using FreeSWITCH as a WebRTC Multipart conferencing server using a video mixer and conference bridge.Conference Layout · Dialplan · Webrtc ClientsMissing: 1.4 enhanced<|control11|><|separator|>
  53. [53]
    SBC_Setup | FreeSWITCH Documentation
    Below you'll find a step by step setup for installing FS as a SBC. The LCR engine is provided by Kamailio and its module carrierroute.Introduction​ · Installation Of... · Installation Of Kamailio​
  54. [54]
    Truphone Selects Platform to Enable VoIP Calls on Mobile Phones ...
    Truphone selects FreeSWITCH and TelcoBridges' proven, reliable and highly redundant carrier-grade telephony platform to enable VoIP calls on mobile phones.
  55. [55]
    FreeSWITCH - VA.gov
    FreeSWITCH is a scalable telephony platform designed to route and interconnect popular communication protocols using audio, video, text, or any other form of ...
  56. [56]
    Elastic SIP Trunking Configuration Guides - Twilio
    This guide provides the configuration steps required to implement FreeSwitch PBX using a Twilio Elastic SIP trunk using Secure Trunks. Click here to download ...Asterisk IP-PBX · FreeSwitch IP-PBX · 3CX · FreePBX
  57. [57]
    Architecture | BigBlueButton
    FreeSWITCH provides the voice conferencing capability in BigBlueButton. Users are able to join the voice conference through the headset. Users joining through ...
  58. [58]
    Welcome to FusionPBX Docs — FusionPBX Docs documentation
    FusionPBX is an open-source project providing a web interface for FreeSWITCH, offering features like unlimited extensions and voicemail-to-email.Freeswitch install · Quick Install · Getting Started · Queues
  59. [59]
    JeraSoft announces fully updated integration with FreeSWITCH 1.10
    Jul 23, 2025 · July 2025 – JeraSoft, a leading provider of telecom billing solutions, proudly announces the release of its renewed integration with FreeSWITCH ...
  60. [60]
    About Us - SignalWire
    Over the past 15 years, our team has developed the number one open-source communications platform in the world, FreeSWITCH. No one knows more about software ...Missing: maintainers | Show results with:maintainers
  61. [61]
    Issues · signalwire/freeswitch - GitHub
    FreeSWITCH is a Software Defined Telecom Stack enabling the digital transformation from proprietary telecom switches to a versatile software implementation ...
  62. [62]
    Pull requests · signalwire/freeswitch - GitHub
    FreeSWITCH is a Software Defined Telecom Stack enabling the digital transformation from proprietary telecom switches to a versatile software implementation ...
  63. [63]
    Contributing Code | FreeSWITCH Documentation
    Contributions of new features and patched code are always welcome. Check our documentation on how to create Pull Requests. Talk to our developers in #freeswitch ...About​ · Contribute Code​ · Reporting Bugs​Missing: CI/ CD
  64. [64]
    Pull Requests | FreeSWITCH Documentation
    Nov 6, 2015 · This page describes the process of submitting code to FreeSWITCH. Forking FreeSWITCH with Github​. Create a new account in Github; Create a new ...
  65. [65]
    ClueCon 2025 Wrap-Up: Celebrating 20 Years of FreeSWITCH
    Aug 19, 2025 · From hands-on coding challenges to insightful talks, late-night networking, and a milestone 20th birthday for FreeSWITCH, this year's conference ...Missing: code reviews CD
  66. [66]
    FreeSWITCH Advantage - SignalWire
    Build private cloud applications using a commercial, enterprise-grade release of the world's most powerful and widely deployed open-source communications ...
  67. [67]
    FreeSWITCH Training - Enterprise Cybersecurity Expo
    Feb 11, 2025 · The FreeSWITCH 101 training covers installation, registering/making calls, using connectors, administering config files, enabling modules, and ...
  68. [68]
    Releases · signalwire/freeswitch - GitHub
    3 ago 2024 · FreeSWITCH is a Software Defined Telecom Stack enabling the digital transformation from proprietary telecom switches to a versatile software ...
  69. [69]
    FreeSWITCH Documentation
    FreeSWITCH Documentation. FreeSWITCH ExplainedVariablesModulesSignalWire ... FreeSWITCH Documentation. Get Started. Video. Youtube. Community. Forums · Twitter.Missing: system | Show results with:system
  70. [70]
    SignalWire Support | Community
    Hear from the FreeSWITCH development team, ask questions, request features, discuss open issues and PRs, and learn how to contribute.
  71. [71]
  72. [72]
    ClueCon Home
    A conference for developers, by developers, created by the founders of the FreeSWITCH Open Source project. Learn how others are solving RTC challenges and ...2025 Schedule · Register now! · Speakers · ClueCon Weekly Podcast
  73. [73]
    FreeSWITCH - YouTube
    The presentations and roundtables featured at ClueCon's 20th anniversary conference. · ClueCon 2024 | Dangerous Demos · ClueCon 2024 | Tom Sheahan - From Texting ...<|control11|><|separator|>
  74. [74]
    Command Line Interface (fs_cli) | FreeSWITCH Documentation
    The fs_cli program is a Command-Line Interface that allows a user to connect to a running FreeSWITCH™ instance. The fs_cli program can connect to the FreeSWITCH ...About · Requirements · Install · Available commands