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
- 1 What Is FreeSWITCH™?
- 2 Tutorials and Guides
- 3 Weekly Conference Calls
- 4 Application Examples
- 5 FreeSWITCH™ Architecture
- 5.1 Feature Documentation
- 5.2 News
- 5.3 Community and Support
- 5.4 New Features
- 5.5 Home
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.
- External systems can receive events from and/or control the switch over a TCP Event socket with many language bindings and clients.
- Handles thousands of concurrent channels with media on a standard PC.
- Interoperates with many different products and protocols.
- Supports Secure RTP (SRTP).
- Please see the complete Feature list for more features.
Tutorials and Guides
- FreeSWITCH™ FAQ: Frequently Asked Questions. You should really read this.
- Buy the FreeSWITCH book from Packt Publishing or Amazon!
- Be sure to buy the FreeSWITCH Cookbook too! Its available at Packt Publishing!
New Users - Start Here
- Introductory FreeSWITCH article in Linux Pro Magazine.
- Download FreeSWITCH™
- Installing FreeSWITCH™: Guide for compiling and installing FreeSWITCH™
- Configuring FreeSWITCH™: Guide to follow after you have compiled and installed FreeSWITCH™
- SIP Provider Examples: Info and examples on how to connect to SIP provider gateways.
- Dialplan Examples: How to set up your dialplans.
- Firewall Configuration: How to set up your firewall to allow VoIP traffic.
- Performance testing and configurations: Tips on tuning and testing your FreeSWITCH installation
- Behavior Impacting Changes History: Changes made that may have impacted on previous default behavior.
Weekly Conference Calls
The following sample applications are included in the distribution:
- Gino's Pizza: Uses PocketSphinx, an open source speech recognition engine developed by Carnegie Mellon.
- PBXMate Integration: Integrating with SoliCall's PBXMate to improve audio quality.
- Core Outline of FreeSWITCH™: This gives the basic outline of FreeSWITCH™
- Life Cycle of a Call into FreeSWITCH™: The basic life cycle of a call.
- 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.|
|Learn 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
|Join 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 - irc.freenode.org, 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 firstname.lastname@example.org (обсуждение на русском)freeswitch.ru FreeSWITCH Russian wiki and forumfreeswitch.de German FreeSWITCH siteFreeSWITCH-CN Non-official FreeSWITCH Chinese communityFreeSWITH-VoIP88 FreeSWITCH Chinese wiki and forumIRC en français - irc.geeknode.net channel #freeswitch or irc.freenode.net channel #freeswitch-frVoice ConferenceSIP: email@example.comH.323: firstname.lastname@example.orgIAX: email@example.com/888Google Talk/Jingle: firstname.lastname@example.orgPSTN: +1-989-386-9900 or +44-3300-100-295|
|Need 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.|