Skip to main content

Installation

About

This page describes FreeSWITCH™ numbering conventions, basic download instructions, and directions to useful installation pages.

Conventions

The FreeSWITCH™ numbering format is "version.release.maintenance".

Selecting a Version

The primary FreeSWITCH™ releases are:

  • Current Public Release 1.10, created 5 August, 2019, is recommended for production systems. Sounds and prompts release is 1.0.52 as of 19 August, 2016.
  • Current B ranch, contains in-test fixes going into the next maintenance level of the current public release.
  • Development,containing the latest fixes and features, intended as the next release.

A Note About Bugs and Issues

Bugs or issues with the current public release must be tested using the latest Development release to determine if the problem is already fixed. Issues must be tested using Development before opening bug reports for them to be considered. If the bug persists in Development, then file an issue on GitHub: https://github.com/signalwire/freeswitch/issues

Check Release Notes Before Upgrades

There are breaking changes between minor and major releases, so make sure to check the Release Notes before upgrading to avoid headaches.

If you're using FreeSWITCH™ version 1.8 which is tagged End Of Life, you should upgrade to 1.10 NOW.

Download Current Public Release

The latest maintenance level of the current public release of FreeSWITCH™ can be downloaded from freeswitch-files via a browser. For linux, it's easier to copy/paste the command line below. This single long line performs: 1- Determines the latest public release available. 2- Downloads the compressed source file. 3- Decompresses the file into a folder in the current directory. 4- Renames the folder to freeswitch. If you don't want the folder renamed, remove the last && to the end of the line.

FSfile=$(curl -s https://files.freeswitch.org/releases/freeswitch/ | grep -oE "freeswitch-[0-9]*\.[0-9]*\.[0-9]*\.-release\.tar\.bz2" | tail -n 1) && echo Downloading $FSfile && curl https://files.freeswitch.org/freeswitch-releases/$FSfile | tar -xj && mv ${FSfile/.tar.bz2//} freeswitch

Download Current Branch

Download the current branch using the -b argument followed by 'v' concatenated with the release number. The git command creates the freeswitch directory and downloads the FreeSWITCH™ source files, replace # with the release number.

git clone –b v1.# https://github.com/signalwire/freeswitch.git

Download Development

Download the latest development release using the "git clone" command below which creates the freeswitch directory and downloads the FreeSWITCH™ development source files.

git clone https://github.com/signalwire/freeswitch.git

SignalWire STACK

SignalWire STACK is a supported version of FreeSWITCH that comes with expert engineering services

SignalWire also offers Cloud Hosted resources including low-cost PSTN and SMS services for your FreeSWITCH Installation.

Using mod_signalwire in your FreeSWITCH server, and a SignalWire cloud account, you can connect to SignalWire to terminate SIP calls with no configuration.

Full details available by calling 877.742.2583 or by visiting freeswitch.com or signalwire.com

If you're new to FreeSWITCH™ consider purchasing the Mastering FreeSWITCH™ book and be sure to read this introductory article: http://www.linuxpromagazine.com/Issues/2009/106/TALK-SOFT.

Installation Methods

Pre-Built Binaries

The easiest way to get FreeSWITCH™ is to install a pre-built package for your operating system, available for some Linux distributions and Windows.

Debian 12 Package (FreeSWITCH 1.10)

Debian (preferred) The development team uses and builds against Debian. They recommend Debian because of its operationally stable, yet updated, kernel and wide library support.

Centos 7 Package (FreeSWITCH 1.10)

CentOS 7 and RHEL 7

Windows

Freeswitch Installer .msi

The binary MSI installer is built for each release. You can also find sound packages here.

Compiling Source Code

FreeSWITCH™ is available for source compilation on Unix , Linux, macOS, and Windows for the following reasons:

  • Pre-built binaries are not available
  • You want to see the entire process
  • You want to build the Development version because you require the very latest features or patches, or wish to hack FreeSWITCH

Debian 12 Bookworm Source

FreeSWITCH™ 1.10 depends on a number of libraries included with Debian 12, which is the distribution of choice for FS core development team. Follow the instructions on the Debian page; refer to Debian Post-Install Tasks for finishing touches.

macOS

There is an installer and comprehensive macOS guide containing instructions for setting up FreeSwitch™ on a Mac with features such as autostart, emailing voicemails and log management.

OpenBSD

Special notes for building from source on OpenBSD.

Smartos

Recently updated installation guide for SmartOS

Windows

See Install From Source on Windows Install page.

Updating Binaries

Config Changes

In version 1.4 the names of a number of configuration settings were changed, so you can not simply use old config files on your new FreeSWITCH™ binaries.

Settings of the form sip_*_media have become rtp_*_media because they properly control RTP media streams, SIP has nothing to do with them.

For example, sip_secure_media is now called rtp_secure_media

Deprecated Instructions

Deprecated Compiling From Source Code

These deprecated instructions are FreeSWITCH you may compile from source code. FreeSWITCH™ is available for source compilation on Unix and Linux distributions as well as Windows.

Debian 7 Source

Makefile that builds FreeSWITCH™ including libraries and build dependencies.

CentOS 6 Source

Makefile that builds FreeSWITCH™ including libraries and build dependencies.

Unix Variants

Mac OS X

Instructions for non-supported OS X systems can be found at Mac OS X Archive.

Windows

Compile with Visual Studio.

Attachments:

red_pill_blue_pill.png (image/png)
blue_pill_red_pill.jpg (image/jpeg)
FS_advantage.png (image/png)
image2019-4-15 9:5:9.png (image/png)

Comments:

yum install freeswitchEnjoy FreeSWITCH!--From what repo? base, epel - not found Posted by denis at Feb 03, 2015 06:03
Any current instructions for Raspberry PI? Posted by tom@tomlynn.com at Sep 12, 2015 16:21
There were some individuals porting FreeSWITCH over to RPi. I don't know how the recent FS 1.6 changes affect that effort, however. Many of the changes in FS 1.6 involved switching to system libraries in Debian 8 along with greatly improved video conferencing support. Since an RPi is not up to the task of video processing I'm guessing you could omit much of that if you want to stay current with FS 1.6 or use the 1.4 branch. Posted by boteman at Sep 18, 2015 14:09
Ask and ye shall receive! Raspberry Pi Posted by boteman at Sep 18, 2015 19:12
the windows binary listed above never seem to be updated since January 2015 Posted by xbipin at Oct 14, 2015 02:54
The core team is working to update the Windows build system. God bless them since there are MANY changes that must be incorporated into the Windows libraries. The FreeSWITCH-users mailing list has the latest on that while it's underway. Posted by boteman at Oct 17, 2015 17:04
how about add a wiki on compile with VS so others know if the sdk and other tools required to build FS 1.6 Posted by xbipin at Oct 26, 2015 05:21
Is this not current enough?Windows page on Confluence Posted by boteman at Oct 26, 2015 18:13
Seeing how http-cache is now getting installed together with freeswitch-config-vanilla it would be awesome to see http-cache included in default Windows install package as well, do you have any comment on that? Posted by pokrishka at Nov 03, 2015 04:45
Since Windows is not the core target environment, the core development team welcomes a Pull Request to include the necessary modules. (smile) Posted by boteman at Nov 04, 2015 14:28
As far as I can tell, 1.6 means the end of hosting FS on R-Pi. In fact, there are no packages for arm in the repo. Guess I'll have to buy a NUC. Posted by tom@tomlynn.com at Nov 09, 2015 00:49
A core motto of FreeSWITCH is: "Don't glue the Lego pieces together"FS is a modular system so you are not required to build every last piece, especially the extensive video components that come with 1.6 version. If you trim down what you build to the bare essentials there's no reason it should not run on RPi.These wiki comments don't see much exposure, so you're much better off asking on the Freeswitch-users mailing list. I know there is interest out there, but it is up to those who have the interest and expertise in RPi to take the ball and run with it. I'm pretty sure the core team doesn't have the wherewithal to port FS to RPi or other architectures as they have their hands full just getting things right with Debian (smile) Posted by boteman at Nov 09, 2015 10:41
John,I dug into the deps-most package found in the 1.6 installation instructions and attempted to manually install each of them. Out of 47 dependencies, I found 11 of them were not available in the raspbian repos. These are the packages that were not available. libpng16-dev libvpx2-dev | libvpx-dev (>= 1.4.0)libyuv-devlibbroadvoice-dev libcodec2-devlibflite-devlibg7221-devlibilbc-devlibsilk-devlibsngtc-devlibmongoc-devCan you offer any advice on how to determine which modules depend on these? I've searched a few in confluence and have found one reference to libyuv in mod_fsv, but I'm thiking there's got to be a better way to check if these are things I must have. Posted by tom@tomlynn.com at Nov 22, 2015 20:57