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

FreeSWITCH Week in Review (Master Branch) January 16th- January 23rd

This week mod_kazoo was merged into the build system and mod_conference now allows for multiple member arguments for related API commands. Join us Wednesdays at 12:00 CT for some more FreeSWITCH fun! This week we have Randy Resnick from the VoIP Users Conference talking about all things communication! And, head over to freeswitch.com to learn more about FreeSWITCH support.

New features that were added:

  • FS-7776 [mod_kazoo] Integrate the module into build system
  • FS-8737 [mod_kazoo] Add required variables to default filter
  • FS-8685 [mod_conference] Multiple member arguments for conference related API command. The new format is: ‘conference foo relate 1 2,3,4 nohear’ or ‘conference foo relate 1,2 3 nospeak’

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

  • FS-8756[mod_say_nl] Improve dutch localisation
  • FS-8111 [mod_sofia] ‘sofia’ API command auto-complete cleanup
  • FS-8763 [mod_sofia] Changed to set is_auth only after the results for switch_ivr_set_user

The following bugs were squashed:

  • FS-8721 [core] Fixed a memory leak caused by bug removal at the end of the call
  • FS-8759 [mod_sofia] Fixed a segfault caused by device or provider timing interactions
  • FS-8571 [core] Add missing ENABLE_SRTP ifdef to allow building without SRTP

End to End Security: Life without the looky-loos

oss
Do you really want to trust companies like Google or Facebook, or other large organizations with your private communications? They rely on employees to dig into and analyze information when a back door is opened to them. They claim to need to be able to sift through information to pinpoint nefarious activities or corporate opportunities, but that means they are subjecting safety to human limitations. And that door is now available for anyone else that finds a key. How many examples of “hackers” accessing private information such as credit card numbers or social security numbers do we need before we stop trusting external organizations to keep us safe. Who holds them accountable if not the user? Wouldn’t we be truly safer by not putting in a back door at all? Weakening encryption to allow one entity in means weakening security across the board. That is why many believe that “if you don’t pay for the service, you’re more than likely the product!” And, as of yet there is not a very reliable way for the average user to counter this idea and monitor proprietary software to ensure they aren’t selling you and your data. Check out what users on a Slashdot forum had to say about the U.K.’s encryption standard and why having a middle man is not a secure option.

Trailrunner7 posted, “The U.K. government’s standard for encrypted voice communications, which already is in use in intelligence and other sectors and could be mandated for use in critical infrastructure applications, is set up to enable easy key escrow, according to new research. The standard is known as Secure Chorus, which implements an encryption protocol called MIKEY-SAKKE. The protocol was designed by GCHQ, the U.K.’s signals intelligence agency, the equivalent in many ways to the National Security Agency in the United States. MIKEY-SAKKE is designed for voice and video encryption specifically, and is an extension of the MIKEY (Multimedia Internet Keying) protocol, which supports the use of EDH (Ephemeral Diffie Hellman) for key exchange.

‘MIKEY supports EDH but MIKEY-SAKKE works in a way much closer to email encryption. The initiator of a call generates key material, uses SAKKE to encrypt it to the other communication partner (responder), and sends this message to the responder during the set-up of the call. However, SAKKE does not require that the initiator discover the responder’s public key because it uses identity-based encryption (IBE),’ Dr. Steven Murdoch of University College London’s Department of Computer Science, wrote in a new analysis of the security of the Secure Chorus standard. ‘By design there is always a third party who generates and distributes the private keys for all users. This third party therefore always has the ability to decrypt conversations which are encrypted using these private keys,’ Murdoch said by email. He added that the design of Secure Chorus ‘is not an accident.'”

For more information click here: http://it.slashdot.org/story/16/01/19/2151215/uk-voice-crypto-standard-built-for-key-escrow-mass-surveillance


FreeSWITCH Week in Review (Master Branch) January 9nd- January 16th

The features this week include: the addition of profile logging, functionality, and default configurations for mod_amqp and display update support for Panasonic devices in mod_sofia. Join us Wednesdays at 12:00 CT for some more FreeSWITCH fun! This week we are talking about 3D printing! And, head over to freeswitch.com to learn more about FreeSWITCH support.

New features that were added:

  • FS-8728 [mod_amqp] Adding logging profile and functionality and added default configurations
  • FS-8735 [mod_sofia] Display update support for Panasonic devices

The following bugs were squashed:

  • FS-8719 [mod_conference] Fixed a segfault caused by building without video support, but specifying video_mute_png variable for a conference member
  • FS-8720 [core] Fixed a segmentation fault when switch_channel_str2cause is called
  • FS-8731 [core] Fixed a crash when leg-b invite video in voice call
  • FS-8734 [core] Cleaned up video jitter buffer by adding some formatting to the debugging logs so the text jumps around less and fixing sequence number rollover code to handle rollover better.
  • FS-8713 [core] Fixed a crash on bad video rtp stream by pushing a patch to make the sizes match. This was the original intention since we want to preserve the packet as-is while in the jitter buffer
  • FS-8736 [spandsp] Fixed missing MEMMOVE macro in spandsp autoconf
  • FS-8721 [core] Fixed an eavesdrop memory leak caused by moving bug_remove_all after destroy where it’s more than safe to kill bugs indiscriminately
  • FS-8673 [core] Fixed a core dump on playback after “Decode Codec is not initialized!” log message

The FreeSWITCH 1.6.6 release is here!

The FreeSWITCH 1.6.6 release is here! This is a routine maintenance and security release and the resources are located here:

Release files are located here:

New features that were added:

  • FS-8401 [verto_communicator] Added Speaker selection in settings model and video page and fixed model to modal
  • FS-8545 [verto_communicator] Improve controls for screen share, fixed a read lock regression, do not allow video floor on a member with a reservation id set, and add missing code to deal with screen share part
  • FS-8616 [verto_communicator] A new menu for moderator, added gain buttons, and removed the 3-dot-button, moving its behavior to member-name div
  • FS-8264 [verto_communicator][verto] Adapted the layout select to new response, added a separated menu in members list to set its reservation id, and added all the reservation IDs in the return of “list-videoLayouts” command
  • FS-8293 [verto][mod_conference] Made sanity level based on 1080p and added a video-quality conference profile parameter for specifying the motion factor when calculating video bitrate, defaulting to 1.
  • FS-8595 [mod_conference] Improve auto bitrate in personal canvas mode and do not let auto bitrate exceed native picture size
  • FS-8543 [mod_conference] Improve mute handling on conference and WebRTC
  • FS-8546 [mod_conference][mod_verto] Make original video demo backward compatible with livearray-json-status
  • FS-8529 [mod_conference] Added video-floor to personal canvas mode
  • FS-8549 [mod_http_cache] Add support for AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables in S3 profiles
  • FS-8547 [core] Add error log into stats to log when quality impacting events begin and end
  • FS-8568 [core] Allow building using system OpenSSL without EC support
  • FS-8632 [core] Add origination_audio_mode originate variable with options for sendonly, recvonly or sendrecv
  • FS-8559 [mod_shout] Add “mpga” to the list of supported extensions
  • FS-8433 [mod_sofia] Allow hangup cause to be set inside redirect data

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

  • FS-8592 [Windows] Fixed some simple compiler errors
  • FS-8333 [build][Debian] Added mod_hiredis.deb
  • FS-8152 [Debian] Make sure to package the image directories too
  • FS-8576 [Debian] Fixed a package upgrade issue related to the fonts being installed in multiple packages
  • FS-8723 [Debian] Adding a file extension to the package build logs
  • FS-8614 [verto_communicator] Add Debian developers install script and update README.md to reference it
  • FS-8578 [mod_verto] Fixed build error for missing __bswap_64 on osx
  • FS-8293 [verto] Add quality level 0 to conference (default is 1) and fix some logic in auto bandwidth

The following bugs were squashed:

  • FS-8537 [mod_lua] Fixed a segfault caused by passing nil to various lua functions
  • FS-8527 [mod_conference] Do not send the video of last_video_floor_holder to video_floor_holder if the videos are related
  • FS-8569 [mod_conference] Fixed undefined symbol conference_cdr_test_mflag
  • FS-8574 [mod_conference] Fixed a read write lock issue
  • FS-8053 [mod_conference][mod_sofia] Fix for WebRTC’s SDP containing a=sendonly for video, but the client still receiving the video stream
  • FS-8589 [mod_conference] Fixed using conference playback with full-screen=true not working correctly
  • FS-8354 [mod_conference] Fixed G722 audio issues with mod_conference caused by previous commit fab43547
  • FS-8602 [mod_conference] Fixed conference not auto-generating layouts properly when callers with no camera are present
  • FS-8615 [mod_conference] Fixed a crash when quickly changing layouts and setting reservation ids
  • FS-8542 [verto_communicator] Fixed the tooltips of video controls
  • FS-8603 [verto_communicator] Added device validation to prevent lost microphones after reset
  • FS-8640 [verto_communicator] Don’t clear conference member reservation id on members that don’t have a reservation ID
  • FS-8590 [verto_communicator] Fixed sending malformed vid-res-id command when changing layouts by treating no res-id the same as clear
  • FS-8556 [mod_verto] Screen shares are not recoverable so do not try
  • FS-8293 [mod_verto] Fixed some regressions where speed test caused excessive downlink bandwidth
  • FS-8633 [mod_verto] Fix for the first verto to join a conference does not get “conference-livearray-join” event
  • FS-8599 [verto] Removed a workaround for Mozilla that is no longer needed for video size
  • FS-8553 [config] Include verto_contact into the dial-string in the samples
  • FS-8566 [core] Fixed calls failing when put on hold in bypass media mode with inbound late negotiation set to false
  • FS-8573 [core] Fixed one way audio after resuming from hold in bypass media mode and fixed a core dump on playback after “Decode Codec is not initialized!” log message
  • FS-8575 [core] Fixed DTMF not being passed from a to b during rfc 2833 events
  • FS-8612 [core] Fixed a rare IVR originated calls crash due to read codec leak
  • FS-8625 [core] Fixed a segfault caused by an external incoming call from Google Voice.
  • FS-8642 [core] Fixed CF_VIDEO_READY being set on non-video calls
  • FS-8713 [core] Fixed a crash caused by read exceeding buffer
  • FS-8716 [core] Fixed the recording offset delayed by a few seconds for rtmp stream
  • FS-8677 [core] Fixed a crash (possible memory corruption) after codec change
  • FS-8585 [mod_commands] Expanded {} and <> to [] for each dial string in group_call to allow for multiple device registrations for the same user
  • FS-8582 [mod_httapi] Fixed a crashed caused by null URL being passed
  • FS-8588 [mod_httapi] Fixed a crash found while fixing unreliable digit collection
  • FS-8619 [mod_rayo] Reply with conflict stanza error if bind is attempted with duplicate JID. Improve error handling when ‘ready’ callback fails.
  • FS-8708 [mod_rayo] Fixed the example configuration to map to correct DETECTED_TONE event from spandsp_start_tone_detect
  • FS-8621 [mod_av] Fixed H264 HD1080P video quality issues
  • FS-8631 [mod_db] Updated the regex to allow DSN to match the rest of FS code
  • FS-8643 [mod_sofia] Fixed some memory leaks
  • FS-8715 [mod_sofia] Make the oubound_proxy on the profile consistent with how we do the same thing on the gateway
  • FS-8679 [mod_sofia] Fixed sofia sending call completed elsewhere if not disabled by the option ignore_completed_elsewhere
  • FS-8711 [mod_skinny] Fixed a couple of possible memory leaks in mod_skinny packet reading code
  • FS-8722 [mod_skinny] Remove nested redundant mutex that could cause a hang

FreeSWITCH Week in Review (Master Branch) January 2nd- January 9th

This week we had a number of bug fixes and a change to the packaging build logs.

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

  • FS-8723 [Debian] Adding a file extension to the package build logs

The following bugs were squashed:

  • FS-8708 [mod_rayo] Fixed the example configuration to map to correct DETECTED_TONE event from spandsp_start_tone_detect
  • FS-8711 [mod_skinny] Fixed a couple of possible memory leaks in mod_skinny packet reading code
  • FS-8722 [mod_skinny] Remove nested redundant mutex that could cause a hang
  • FS-8713 [core] Fixed a crash caused by read exceeding buffer
  • FS-8716 [core] Fixed the recording offset delayed by a few seconds for rtmp stream
  • FS-8677 [core] Fixed a crash (possible memory corruption) after codec change
  • FS-8673 [core] Fixed a core dump on playback after “Decode Codec is not initialized!” log message
  • FS-8715 [mod_sofia] Make the oubound_proxy on the profile consistent with how we do the same thing on the gateway
  • FS-8679 [mod_sofia] Fixed sofia sending call completed elsewhere if not disabled by the option ignore_completed_elsewhere

The FreeSWITCH 1.4 branch had a couple of bug fixes back ported. And again, keep in mind that 1.4 is quickly moving toward end of life and won’t be supported any longer except for high level security issues.

The following bugs were squashed:

  • FS-8708 [mod_rayo] Fixed the example configuration to map to correct DETECTED_TONE event from spandsp_start_tone_detect