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 can perform full video transcoding and MCU functionality using its conferencing module. 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

ClueCon Weekly – May 25, 2016 – Bernard Aboba and Shijun Sun

Bernard Aboba, Principal Architect, Skype at Microsoft and Shijun Sun, Program Manager from Microsoft’s Edge RTC Team join the ClueCon Team to give an update on Microsoft Edge and its inclusion of ORTC and WebRTC technologies.

URLs from the show:
Edge RTC roadmap blog: https://blogs.windows.com/msedgedev/2…
Edge RTC FAQ: http://internaut.com:8080/~baboba/ort…
Plugin-free Skype for Web preview:
http://blogs.skype.com/2016/04/15/new…
adapter.js on GitHub: https://github.com/webrtc/adapter

And of course see you at ClueCon.com!


FreeSWITCH Week in Review (Master Branch) May 7th – May 14th

This week the possibility to create dedicated audio/video tags for each dialog was added to verto! Also, ClueCon 2016 is just around the corner, register today to seal your spot! And if you would like to attend the training day on August the 12th you will need to sign-up this week! The spaces for that are very limited and we are quickly running out. Visit https://cluecon.com/ for all the information.

Join us 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-9157 [verto] Added the possibility to create dedicated audio/video tags for each dialog in verto

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

  • FS-8623 [build] Fix libvpx Solaris Studio build
  • FS-9152 [mod_avmd] Fixed warnings on FreeBSD
  • FS-9155 [Centos] Fixed lang_es and lang_pt package to have the right language module

The following bugs were squashed:

  • FS-9151 [mod_av] Fixed playback a mp4 file on a session without video not ending
  • FS-9010 [mod_avmd] Dynamic passing of parameters
  • FS-8584 [mod_callcenter] Request agents and tiers when reloading queue

FreeSWITCH Week in Review (Master Branch) April 30th – May 7th

This week we have a new feature in mod_callcenter adding a ring-progressively strategy, extended the XML configuration for avmd, and changes to the pastebin API for the website! Also, ClueCon 2016 is just around the corner, register today to ensure your spot! And if you would like to attend the training day on August the 12th you will need to sign-up this week! The spaces for that are very limited and we are quickly running out. Visit https://cluecon.com/ for all the information.

Join us 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-9079 [mod_callcenter] Add ring-progressively strategy which is a way to ring every agent similarly to a top-down strategy but without cancelling the previous calls.
  • FS-9124 [avmd] Extend XML config
  • FS-9134 [core] Tweaked fscore_pb to use new pastebin API
  • FS-9132 [mod_kazoo] Add more variables to default filter

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

  • FS-9070 [configuration] Update config.sub and config.guess
  • FS-5936 [Debian] ESL.pm packaged for Debian
  • FS-9075 [Debian] Additional tweaks to help ease upgrading freeswitch-all

The following bugs were squashed:

  • FS-9115 [mod_av] Initial work toward support for audio only mp4 recording
  • FS-8795 [mod_png] Fixed an issue with audio only call
  • FS-9131 [core] Improve validation of ice candidates to handle malformed as well
  • FS-9135 [core] Handle incorrect uses of switch_core_media_set_sdp_codec_string function passing null sdp gracefully
  • FS-7783 [core] Properly handle NULL var_name for switch_play_and_get_digits

The FreeSWITCH 1.6.8 release is here!

The FreeSWITCH 1.6.8 release is here!

With the release of FreeSWITCH 1.6.8 we see some major improvements in the .deb based packaging. Included in this release is a fix for the freeswitch-all package. Prior to this fix, if certain FreeSWITCH Extensions were not included in the -all package, and a user attempted to install that extension via its stand-alone freeswitch-mod-extension-name package, it was possible to leave the system in a broken state. This fix does make a substantial change to the freeswitch-all package and the number of dependencies included via this package. Due to this change, a bare “apt-get upgrade” will not upgrade the package automatically and you will need to either call ‘apt-get dist-upgrade’ or call ‘apt-get upgrade freeswitch-all’ explicitly. This also brings the freeswitch-all package in line with the freeswitch-meta-all package.

Additionally with these packaging changes, Packages are now available for Ubuntu 14.04. Please see https://freeswitch.org/confluence/display/FREESWITCH/Ubuntu+14.04+Trusty for Ubuntu installation instructions.

This is also a routine maintenance release. Change Log and source tarball information below.

Release files are located here:

New features that were added:

  • FS-8983 [mod_avmd] Enable on outbound channel to make debugging easier
  • FS-8875 [mod_avmd] Enable faster beep detection
  • FS-9019 [mod_avmd] Extend syntax description to include “[start|stop]” at the end of AVMD_SYNTAX ”
  • FS-9023 [mod_avmd] Add console auto completion
  • FS-9020 [mod_avmd] Implement checking of proper configuration of avmd session being started on internal/external channels. Check for read/write codec, CF_MEDIA_SET
  • FS-9027 [mod_avmd] Remove assertion from INIT_CIRC_BUFFER and check buffer’s pointer to raw memory dynamically
  • FS-9028 [mod_avmd] Check SMA buffer for successful memory allocation
  • FS-9031 [mod_avmd] Check session initialization for errors
  • FS-9039 [mod_avmd] Use FS enumeration
  • FS-9050 [mod_avmd] Fixed APP interface so avmd now exposes single avmd_start_function() for handling APP calls and splits the function into independent calls
  • FS-9124 [mod_avmd] Extend XML config
  • FS-9024 [mod_avmd] Add events on session start/stop
  • FS-9011 [mod_avmd] Add xml configuration file so that avmd parameters can be set by users in this file easily
  • FS-8688 [mod_vpx] Implement vp9 processing to avoid chrome hang
  • FS-8990 [mod_verto] Adding verto_login header to verto::client_disconnect event
  • FS-9077 [mod_verto] Adding verto_hangup_disposition variable to indicate who hangup
  • FS-8991 [verto_communicator] Adding translations for French. Thanks Tristan Mahé
  • FS-8989 [verto_communicator] Adding Portuguese i18n translations
  • FS-8998 [verto_communicator] Adding German, Spanish, Catalan, Chinese, Polish, Russian, Swedish and Indonesian translations.
  • FS-8972 [verto_communicator] Add i18n using angular-translate and static file loader
  • FS-9038 [verto_communicator] Add translations to support Danish
  • FS-9006 [verto_communicator] Add-combobox for languages
  • FS-9100 [mod_conference] Set recording failure error if there are zero webcams enabled in a conference and set conference flags or conference member flags with individual variables per flag
  • FS-9106 [mod_conference][libvpx] Minor modifications to make vpx in dedicated encoder mode use less cpu, upped the default FPS to 30, and added a new version of previous sleep patch
  • FS-8992 [core] Indicate end of candidates in SDP to aid in the resolution of an interop issue with Mozilla
  • FS-9134 [core] Tweaked fscore_pb to use new pastebin API
  • FS-9052 [mod_hiredis] Add connection pooling, improve dropped connection resiliency, and allow 0.10.0 of hiredis for CentOS 6
  • FS-9054 [mod_hiredis] Add ignore-connect-fail profile parameter so that calls do not get killed if limit fails due to lost connection
  • FS-9059 [mod_hiredis] Add session logging
  • FS-9078 [libsofia] Added hepv2 and hepv3 support, added #pragma for MSVC compiler, and fixed the Windows build of HEPv2/HEPv3 code
  • FS-9083 [mod_sofia] Pass On SIP headers from leg A to B
  • FS-7125 [mod_sofia] Added an event “wrong_calls_state”. This is for fail2ban logging.
  • FS-9080 [mod_spy] Making mod_spy work with Verto channels
  • FS-9072 [mod_syslog] Allow logging of messages containing tab character
  • FS-9043 [mod_kazoo] Add kz_export of multiple variables instead of calling export application
  • FS-9025 [mod_callcenter] Bypass_media_after_bridge working for member channel
  • FS-9079 [mod_callcenter] Add ring-progressively strategy which is a way to ring every agent similarly to a top-down strategy but without cancelling the previous calls.

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

  • FS-9036 [mod_avmd] Fix warnings on Windows builds
  • FS-8988 [mod_avmd] Rename files to include avmd in their name.
  • FS-8875 [mod_avmd] Fixed the windows build from this change
  • FS-8971 [mod_amqp] There are two different status variables with two different meanings. This splits them back apart.
  • FS-8933 [scripts] WIP Fix some breakage on Raspbian as we don’t want the FS repos there yet because we don’t have armhf packages at this time
  • FS-8623 [build] Fixed Solaris studio build errors building libvpx
  • FS-8780 [build] Fixed the include for Windows builds that point to in tree library
  • FS-8883 [build] Fixed compiling due to unused result failure on gnu compiler with –disable-debug
  • FS-9000 [build] Fixed compiling on bsd and with libyuv disabled
  • FS-9109 [build] A fix for misleading indentation errors on gcc 6.0
  • FS-9070 [build] Update config.sub and config.guess to prevent configure failing on arm64
  • FS-9091 [build][libyuv] Update libyuv to hash 69245902 from https://chromium.googlesource.com/libyuv/libyuv/ and set it to build all platform files so we don’t have missing symbols on some platforms
  • FS-8623 [build][configure] Fixed Solaris studio error trying to compile char[] with c++ compiler and fixed an issue with a necessary flag having issues with the libvpx configure
    FS-8779 [Windows] Fixed the include for Windows builds that point to in tree library
  • FS-9075 [Debian] Fix-up for systemd and sysvinit, re-worked the freeswitch-all package, removed some meta-all dependencies that are causing issues, tweaked the freeswitch-meta-all dependencies to more fully install FreeSWITCH, and tweaked the dependencies for freeswitch-init
  • FS-9081 [Debian] Use turbo if available for newer jpeg over falling back to old jpeg62-dev
  • FS-5936 [Debian] ESL.pm packaged for Debian
  • FS-9093 [mod_cv] Remove unnecessary includes

The following bugs were squashed:

  • FS-8982 [core] Fixed an issue with play_fsv and play_yuv writing blank_img in parallel
  • FS-8918 [core] Fixed an issue with a 10 Second timeout after Notify during Proxy refer
  • FS-9002 [core] Fixed an issue with rtp timeout code parsing on video but its designed for audio
  • FS-8757 [core] Fixed a buffer overflow in switch_channel_expand_variables_check and switch_event_expand_headers_check
  • FS-8949 [core] Fixed an issue with the send end packet for DTMF RTP event not being recognized
  • FS-9042 [core] Fixed assert when recording native file
  • FS-9062 [core] Fixed a jittery voice issue caused by OPUS mid-call change from 20ms to 40 ms
  • FS-9131 [core] Improve validation of ice candidates to handle malformed as well
  • FS-9099 [core][sofia-sip] Fixed an issue caused by the web-socket raw frame read timeout being too short and fixed the windows build of web-socket transport
  • FS-9078 [sofia-sip] Fixed the linux build of HEPv2/HEPv3 code
  • FS-8913 [mod_sofia] Fixed a transfer issue when using bypass_media + SRTP + Inbound late negotiation
  • FS-8562 [mod_sofia] Add update support for Mitel user agents
  • FS-9049 [mod_sofia] Fixed a DTMF issue
  • FS-9060 [mod_sofia] Correct issues with hold and broken soa negotiations after performing a bypass media re-invite
  • FS-9086 [mod_conference] Fixed the video files playing in the conference not counting in totals for calculating layout
  • FS-8749 [mod_conference] Fixed an issue when loading a video (mp4) for a conference using the “conference play” command “conference pause_play”
  • FS-9076 [mod_conference] Added an error prompt to notify that a conference can’t be recorded in pass-thru mode
  • FS-8993 [mod_av][mod_conference] Fixed a sync issue on conference playback for a video that is faster frame rate than the conference
  • FS-9056 [mod_av] Fixed an issue causing mobile H.264 video to be blank
  • FS-8995 [verto_communicator] Added missing toastr in settings controller
  • FS-8990 [verto communicator] Added verto_client_address to verto and presence events
  • FS-8996 [verto_communicator] Fixed a typo in CAMERA_SETTINGS id and added some Italian translation
  • FS-8997 [verto_communicator] Fixed fallbackLanguage
  • FS-9012 [verto_communicator] Fixing sidebar in narrow resolutions clipping the video
  • FS-9015 [verto_communicator] Minor fixes in Polish translation
  • FS-8999 [mod_erlang_event] Fixed broken outbound connection
  • FS-9004 [mod_http_cache] Set http get timeout on thread that is actively downloading with the value from the download-timeout configuration and added download-timeout parameter to prevent http_get from waiting unbound time for downloading to finish. Prevented prefetch threads from blocking if another thread is already downloading the same URL.
  • FS-7317 [mod_event_socket] Fixed a hang caused by a series of blocks
  • FS-8294 [freetdm] Pass in modinstdir to freetdm configure
  • FS-9016 [mod_avmd] Fixed a segfault on NULL read codec
  • FS-9057 [mod_rtmp] Fixed an issue with screen share feed not taking the floor if the webcam is muted and unmuted
  • FS-9058 [mod_hiredis] Allow auto decrement of non-interval limits on channel hangup and fix rate counters so the keys expire after interval completes. Do not auto decrement rate counters. Do not log null responses.
  • FS-9074 [mod_skinny] Fixed incorrect location of free causing memory leak of xml when certain errors occur
  • FS-9082 [mod_java] Fixed an issue with loading prerequisites if modules are not placed in prefix/mod directory
  • FS-9115 [mod_av] Initial work toward support for audio only mp4 recording
  • FS-8795 [mod_png] Fixed an issue with audio only call

FreeSWITCH Week in Review (Master Branch) April 23rd – April 30th

This week there were improvements to mod_conference and libvpx and the addition of a xml configuration file to avmd to allow for easily configurable parameters.

Join us 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-9106 [mod_conference][libvpx] Minor modifications to make vpx in dedicated encoder mode use less cpu, turned up default FPS to 30, and added a new version of previous sleep patch
  • FS-9011 [avmd] Add xml configuration file so that avmd parameters can be set by users in this file easily

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

  • FS-9109 [build] A fix for misleading indentation errors on gcc 6.0
  • FS-9100 [mod_conference] Set recording failure error if there are zero webcams enabled in a conference
  • FS-9078 [sofia-sip] Fixed the Windows build of HEPv2/HEPv3 code
  • FS-9075 [Debian] Fix-up for systemd and sysvinit
  • FS-9075 [Debian] Tweaked the freeswitch-meta-all dependencies to more fully install FreeSWITCH
  • FS-9075 [Debian] Removing some meta-all dependencies that are causing issues
  • FS-9075 [Debian] Tweaks to the dependencies for freeswitch-init

The following bugs were squashed:

  • FS-9076 [mod_conference] Added an error prompt to notify that a conference can’t be recorded in pass-thru mode
  • FS-9086 [mod_conference] Fixed the video files playing in the conference not counting in totals for calculating layout
  • FS-9062 [core] Fixed a jittery voice issue caused by OPUS mid-call change from 20ms to 40 ms
  • FS-9099 [sofia-sip][core] Fixed the windows build of web-socket transport and fixed an issue caused by the web-socket raw frame read timeout being too short
  • FS-9078 [sofia-sip] Fixed the linux build of HEPv2/HEPv3 code

ClueCon Weekly – April 27, 2016 – Lorenzo Mangani

Lorenzo will be talking about the SIPCAPTURE stack HOMER. “A robust, carrier-grade and modular VoIP and RTC Capture Framework for Analysis and Monitoring with native support for all major OSS Voice platforms and vendor-agnostic Capture agents. HOMER counts thousands of deployments worldwide including notorious industry vendors, voice network operators and fortune 500 enterprises, providing advanced search, end-to-end analysis and packet drill-down capabilities for ITSPs, VoIP Providers and Trunk Suppliers using and relying on VoIP services and RTC technologies – All 100% Open-Source.”


FreeSWITCH Week in Review (Master Branch) April 16th – April 23rd

This week we added support for hepv2 and hepv3 in sofia! Also, mod_spy now works with verto channels.

Join us 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-9078 [libsofia] Added hepv2 and hepv3 support and added #pragma for MSVC compiler
  • FS-9083 [mod-sofia] Pass On SIP headers from leg A to B
  • FS-9080 [mod_spy] Making mod_spy work with Verto channels
  • FS-9024 [avmd] Add events on session start/stop

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

  • FS-9091 [build][libyuv] Update libyuv to hash 69245902 from https://chromium.googlesource.com/libyuv/libyuv/ and build all platform files so we don’t have missing symbols on some platforms
  • FS-9093 [mod_cv] Remove unneeded includes
  • FS-9081 [Debian] Use turbo if available for newer jpeg over falling back to old jpeg62-dev

The following bugs were squashed:

  • FS-8757 [core] Fixed a buffer overflow in switch_channel_expand_variables_check and switch_event_expand_headers_check
  • FS-9057 [mod_rtmp] Fixed an issue with screen share feed not taking the floor if the webcam is muted and un-muted
  • FS-9082 [mod_java] Fixed an issue with loading prerequisites if modules are not placed in prefix/mod directory
  • FS-9060 [mod_sofia] Correct issues with hold and broken soa negotiations after performing a bypass media re-invite