Skip to main content



Welcome to the community documentation wiki for FreeSWITCH, a telephony construction kit for building everything from softphones to full Class 5 switches. You can embed FreeSWITCH into a soft- (or hard-) phone or OpenWRT router, hook it to PRI circuits through FreeTDM and hardware interfaces such as the Sangoma A100 series, or use it to build an office PBX phone system -- from scratch, or using packaged add-ons like FusionPBX. FreeSWITCH has a large and active development community, mailing lists, an IRC channel, an annual convention, and weekly videoconference calls hosted on an instance of FreeSWITCH. It's licensed under the MPL, the Mozilla Public License.

Because FreeSWITCH is an engine designed as a platform on which to build many different types of systems, it is inherently modular. Our motto is: "Don't glue the Lego pieces together". FreeSWITCH is a modular application, in which modules can extend the functionality, but the abstraction layer prevents inter-module dependency. The goal is to ensure that one module is not required to load another.

Click to expand Table of Contents

What Is FreeSWITCH™?

FreeSWITCH™ is an open source communications platform written in C from the ground up. 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 including Windows, Mac OS X, *BSD, Debian, Ubuntu, and CentOS/Fedora/RHEL.

With a desire not to reinvent the wheel, we've designed FreeSWITCH to take advantage of as many existing software libraries as possible. It has a modular, extensible architecture, with only limited and necessary functionality in its core. Optional modules can be employed (or created) to add virtually any functionality desired by the user.

  • Default implementation is for a PBX or Softswitch (actually a back-to-back user agent or B2BUA)
    • The core (libfreeswitch) can be embedded into almost any app that can use a .so or .dll.
    • Transform it into a softphone, PBX, soft-switch, conference bridge or a custom telephony application.
  • Module system allows you to extend FreeSWITCH easily.
  • Handles thousands of concurrent channels with media on a standard PC.
  • Interoperates with many different products and protocols.
    • Such as Asterisk, Yate, or sipXecs.
    • Supports SIP, SCCP, H.323, LDAP, Zeroconf, etc.
    • With FreeTDM, a BSD licensed TDM abstraction library, or hardware analog FXO gateways it can interface with the PSTN as well.
  • Supports Secure RTP (SRTP).
  • Please see the complete Feature list for more features.

Tutorials and Guides

New Users - Start Here

Weekly Conference Calls

FreeSWITCH Community page

Application Examples

The following sample applications are included in the distribution:

  • Gino's Pizza: Uses PocketSphinx, an open source speech recognition engine developed by Carnegie Mellon.
  • JavaScript Conference IVR: Advanced custom implementation of FreeSWITCH conferencing features using JavaScript.
  • PBXMate Integration: Integrating with SoliCall's PBXMate to improve audio quality.

FreeSWITCH™ Architecture

Feature Documentation

  • Documentation: Examples, Command Reference, Troubleshooting and debugging FreeSWITCH™, Developers Documentation.
  • Spec Sheet: What can FreeSWITCH™ do?
  • Interop List: Hardware/software interoperability page.
  • Real-world performance results: What FreeSWITCH can achieve in performances in REAL-WORLD, as contributed by the community.

Contributing to FreeSWITCH™

How you can contribute to the communityDocumentation Guidelines: Creating and editing documents on the wiki / basic wiki markup for those new to MediaWiki.Develop Software: Do you code? Help us develop the software further.Reporting Bugs: A must-read for anyone who has questions about bugs, debugging, feature requests, and the like.FreeSWITCH™ is run by a non-profit corporation OSTAG, the Open Source Telephony Advancement Group. FreeSWITCH™ is made possible through donations from corporations and individuals alike. Donations help keep the project going. You can donate by clicking thedonate button on the left.Documentation


Newspaper.jpgLearn about the different aspects of FreeSWITCH™, from What's New to the Current Status, FreeSWITCH™ Project News and even when FreeSWITCH™ is in the news.

Community and Support

Chat icon.gifJoin the FreeSWITCH Documentation Team: Docs Team.Freeswitch-ES First FreeSWITCH Spanish-language Communityfreeswitch-users user mailing list (Learn how to ask smart questions before posting!)freeswitch-dev developer mailing listIRC Chat -, channels: #freeswitch, #freeswitch-dev, #freeswitch-social, #freeswitch-docs, #freeswitch-web, #freeswitch-de, #freeswitch-es, #freeswitch-fr, #freeswitch-pl, #freetdmfreeswitch-ru FreeSWITCH Russian Google group & Jabber conference (обсуждение на русском) FreeSWITCH Russian wiki and German FreeSWITCH siteFreeSWITCH-CN Non-official FreeSWITCH Chinese communityFreeSWITH-VoIP88 FreeSWITCH Chinese wiki and forumIRC en français - channel #freeswitch or channel #freeswitch-frVoice ConferenceSIP: 888@conference.freeswitch.orgH.323: 888@conference.freeswitch.orgIAX: Talk/Jingle: 888@conference.freeswitch.orgPSTN: +1-989-386-9900 or +44-3300-100-295

New Features

Currency.pngNeed a feature or functionality that's not listed? Then put your money where your mouth is and help finance the project! Click here for to view or post your bounty.Are you a programmer who wants to build something, but are looking for someone to sponsor the idea? Please add it to the bounty challenged ideas list.