The World's First Cross-Platform Scalable FREE Multi-Protocol Soft Switch

FreeSWITCH is a scalable open source cross-platform telephony platform designed to route and interconnect popular communication protocols using audio, video, text or any other form of media.  It was created in 2006 to fill the void left by proprietary commercial solutions.  FreeSWITCH also provides a stable telephony platform on which many applications can be developed using a wide range of free tools.

FreeSWITCH was originally designed and implemented by Anthony Minessale II with the help of Brian West and Michael Jerris.  All 3 are former developers of the popular Asterisk open source PBX.  The project was initiated to focus on several design goals including modularity, cross-platform support, scalability and stability.  Today, many more developers and users contribute to the project on a daily basis.

We support various communication technologies such as Skype, SIP, H.323 and WebRTC making it easy to interface with other open source PBX systems such as sipXecs, Call Weaver, Bayonne, YATE or Asterisk.

FreeSWITCH supports many advanced SIP features such as presence/BLF/SLA as well as TCP TLS and sRTP.  It also can be used as a transparent proxy with and without media in the path to act as a SBC (session border controller) and proxy T.38 and other end to end protocols.

FreeSWITCH supports both wide and narrow band codecs making it an ideal solution to bridge legacy devices to the future.  The voice channels and the conference bridge module all can operate at 8, 12, 16, 24, 32 or 48 kilohertz in mono or stereo and can bridge channels of different rates.  The G.729 codec is also available under a commercial license.

FreeSWITCH builds natively and runs standalone on several operating systems including Windows, Max OS X, Linux, BSD and Solaris on both 32 and 64 bit platforms.

FreeSWITCH supports FAX, both over audio and T.38, and can gateway between the two.

Our developers are heavily involved in open source and have donated code and other resources to other telephony projects including openSER, sipXecs, The Asterisk Open Source PBX and Call Weaver.

a Spec Sheet is available on our Wiki.

Latest Posts

FreeSWITCH Launches New Platform on 10th Anniversary

The first line of code in FreeSWITCH was drafted Spring of 2005, nearly a decade ago. 2015 marks the 10-year anniversary of the core code and the 9-year anniversary of the FreeSWITCH Public Community. Over the years, the core developers of the project have worked hard to provide top notch community support. FreeSWITCH Solutions, the consulting firm owned and operated by the core FreeSWITCH team, have been offering commercial support for many years for companies who take things to the next level and use FreeSWITCH to power their products.

Today we are proud to announce the unveiling of FreeSWITCH.com and the FreeSWITCH Advantage™ platform and support. Built on top of Debian Linux, FreeSWITCH Advantage takes our proven support services and couples it with a reliable operating system distribution and the result is a uniform packaged system tuned specifically for running FreeSWITCH. New releases will be simple to apply and any changes to the other packages on the system that have an impact on FreeSWITCH will be applied and managed automatically. Customers will have the best environment possible in place to run their systems as well as the support they need to ensure they stay up and running. The FreeSWITCH Advantage provides critical early-access to releases to make sure any problems encountered are addressed ASAP. All of the code used with FreeSWITCH Advantage is taken straight from the project’s public git repository and packaged with testing and stability in mind so the community continues to benefit as a result.

FreeSWITCH Solutions also continues to offer the most comprehensive consulting services available with the experience and knowledge to create almost anything imaginable that pertains to interfacing with FreeSWITCH.


FreeSWITCH Week in Review (Master Branch) April 4th-10th

Hello, again. This passed week in the FreeSWITCH master branch we had 6 commits. More feature commits went in toward mod_amqp this week. The accuracy of the logging was tweaked and improved, the command configuration was expanded, and the command binding key configuration was added.

Join us on Wednesdays at 12:00 CT for some more FreeSWITCH fun! And head over to freeswitch.com to learn more about FreeSWITCH support.

New features that were added:

  • FS-7430 Add variable expansion to mod_xml_ldap
  • FS-7060 Improve the accuracy of logging and handling of producer reconnect attempt interval for mod_amqp, expand configuration for amqp command configuration, and add configuration of the amqp command binding key

Improvements in build system, cross platform support, and packaging:

  • FS-7426 Fix the debian packaging for wheezy when the newer librabbitmq1 package isn’t installed

FreeSWITCH Week in Review (Master Branch) March 28th-April 3rd

Hello, again. This passed week in the FreeSWITCH master branch we had 6 commits. We have a few great features this week including a new module! First, a new header, DTMF-Source, was added to DTMF event. DTMF-Source can have the following values: APP : injected by application (send_dtmf, etc), ENDPOINT : detected by endpoint signaling (like SIP INFO), INBAND_AUDIO : detected by start_dtmf, spandsp_start_dtmf, etc, RTP : detected as 2833/4733 telephone event, and UNKNOWN : unknown source.

The new module is called mod_amqp (Advanced Message Queueing Protocol). This new module will allow FreeSWITCH to natively send events to amqp servers, like rabbitmq, and also subscribe to a channel for a FreeSWITCH API to run locally. This functionality can replace the need for ESL connections. Special thanks-to: Daniel Bryars and Tim Brown from aeriandi.com for publishing the module into ‘contrib’ and William King and Mike Jerris for cleaning and expanding the module to merge into the master branch.

Join us on Wednesdays at 12:00 CT for some more FreeSWITCH fun! And head over to freeswitch.com to learn more about FreeSWITCH support.

New features that were added:

  • FS-7406 Added DTMF-Source header to DTMF event. DTMF-Source may have the following values: APP : injected by application (send_dtmf, etc) ENDPOINT : detected by endpoint signaling (like SIP INFO) INBAND_AUDIO : detected by start_dtmf, spandsp_start_dtmf, etc RTP : detected as 2833/4733 telephone event UNKNOWN : unknown source. And added deduplicate_dtmf application
  • FS-7060 Adding mod_amqp as an event_handler module, AMQP(Advanced Message Queueing Protocol) is an event bus protocol with more info here http://www.amqp.org/about/what mod_amqp implements the client side of the amqp protocol. Currently the module supports two separate, but not mutually exclusive usages: 1. Sending a filtered whitelist of events to an AMQP server. The before the events are sent an AMQP routing header is generated so that downstream subscriptions can subscribe using filters. If the connection to the remote server is interrupted, the module will attempt to reconnect. 2. Subscribing to a ‘control’ channel on the remote AMQP server. When events are received on this channel if they match a configured filter, the commands are run locally as api commands. If the filter for the events being sent to the remote AMQP server include SWITCH_EVENT_API then the results of the api commands will be sent back to the AMQP server. Mod_amqp was also added to the Debian packaging. Thanks-to: Daniel Bryars and Tim Brown

FreeSWITCH Week in Review (Master Branch) March 21st-27th

Hello, again. This passed week in the FreeSWITCH master branch we had 18 commits. The features for this week include: support for mute in mod_verto and support for filtering on file:func to mod_logfile mapping.

Join us on Wednesdays at 12:00 CT for some more FreeSWITCH fun! And head over to freeswitch.com to learn more about FreeSWITCH support.

New features that were added:

  • FS-7401 Add support for mute in mod_verto
  • FS-7402 Add support for filtering on file:func to mod_logfile mapping

Improvements in build system, cross platform support, and packaging:

  • FS-7383 Fixed a memory leak causing building Freeswitch with clang AddressSanitizer enabled to fail
  • FS-7149 The Windows portion of the update to use flite-2.0.0-release

The following bugs were squashed:

  • FS-7300 Fixed mod_rayo to properly handle errors in mod_unimrcp
  • FS-7385 Fixed a segfault caused by an invalid contact URI and instead fail the call with 502 bad gateway if the outbound leg returns a redirect with an invalid URI.
  • FS-6954 Detect when we have T.38 in nomedia or proxy media mode and apply same fixups as in media mode.
  • FS-7391 Corrected currency for mod_say_de it’s now “Ein Euro und Ein Cent” rather than “Eins Euro und Eins Cent”
  • FS-7396 Fix for WebRTC call setup hang when Chrome 42 includes IPv6 ICE candidate
  • FS-7386 Allows auto-adjust to fix media endpoints after receiving a 183 then a 200 from a different media endpoint, like in the case of proxy forking scenarios

FreeSWITCH Week in Review (Master Branch) March 14th-20th

Hello, again. This passed week in the FreeSWITCH master branch we had 6 commits. The features for this week are: the ability to pass -T[path to custom sources path] and -K[custom keyfile path] options to build the FS packages with a custom sources and keyring path when using the debian/utils.sh script to build FS packages and play_and_detect_speech can now detect DTMF if you set the playback_terminators channel variable to any or specific DTMF.

Join us on Wednesdays at 12:00 CT for some more FreeSWITCH fun! And head over to freeswitch.com to learn more about FreeSWITCH support.

New features that were added:

  • FS-7373 When using the debian/utils.sh script to build FreeSWITCH packages, add the ability to pass -T[path to custom sources path] and -K[custom keyfile path] options to build the FS packages with a custom sources and keyring path.
  • FS-7378 Play_and_detect_speech can now detect DTMF if you set the playback_terminators channel variable to any or specific DTMF. The result will be stored in speech_detect_result and in playback_terminator_used. Also added channel variable play_and_detect_speech_close_asr which will release the speech recognition port when the detection is completed. This will prevent speech licenses from being held the entire call.

(more…)


ClueCon Call For Speakers is Open!

Call for speakers at ClueCon 2015 is open!

Visit https://cluecon.com/speaking-proposals to submit your speaking proposal Below!

What makes a great ClueCon presentation? The tech savvy crowd that attends ClueCon loves technical presentations. In general, the more technical the presentation, the better.

If you are thinking about a presentation then consider these points:
* ClueCon talks are 30 minutes in length, including Q&A time with the audience (Lightning Talks are also open! 10 minute talks, 5 minutes Q&A)
* ClueCon has a special focus on open source communications, VoIP, and telephony projects like FreeSWITCH, WebRTC OpenSIPS, Asterisk, and Kamailio
* Attendees enjoy hearing about projects built with open source tools, especially those in a production environment
* Highly technical discussions that show the nuts and bolts are especially well-liked
* The audience appreciates seeing and participating in live demonstrations

We are especially interested in Security-related talks and demonstrations

Please register your proposals at https://cluecon.com/speaking-proposals. To complete registration you need the following items:
* Working title
* Brief description of the talk (abstract)
* Name of the presenter(s)
* Bio and headshot of presenter(s)
* Presenter’s contact information (including mobile phone the presenter will have with them at the conference)

Don’t delay! Speaking proposals must be in by July 4, 2015 and scheduling requests are handled on a first come first serve basis.

ClueCon 2015: See You There!
For more details on ClueCon see https://cluecon.com.


FreeSWITCH Week in Review (Master Branch) March 7th-14th

Hello, again. This passed week in the FreeSWITCH master branch we had 13 commits. The features for this week include: the addition of Australian ringback, a minimal configuration for configuring FreeSWITCH from scratch, and the filter feature ported from mod_event_socket to mod_erlang_event .

Join us on Wednesdays at 12:00 CT for some more FreeSWITCH fun! And head over to freeswitch.com to learn more about FreeSWITCH support.

New features that were added:

  • FS-7354 Filter feature ported from mod_event_socket to mod_erlang_event
  • FS-7362 Add minimal configuration for configuring FreeSWITCH from scratch
  • FS-7368 Added Australian ringback

(more…)