Call Us Today! 877.742.2583




Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

About

Warning

We no longer support Debian 8 "Jessie"

...

packages for 

Fs
.

Debian 8 "Jessie" was the reference platform for

Fs
as of version 1.6 and is STRONGLY recommended for all applications due to its stability and broad support for the system libraries needed by FreeSWITCH..

Debian 9 "Stretch" was suitable for the

Fs
 1.8 release.

Debian 10 "Buster" is now recommended for the

Fs
 1.10 release.

Expand
titleClick here to expand Table of Contents
echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list


Panel
borderColorlightgray
bgColor#f7f7f7
borderWidth1
borderStyledotted

Table of Contents
maxLevel3
outlinetrue
indent1em
excludeAbout
stylenone
printablefalse


...

Info

2016.02.14 — Please note this important change that went into Master today. As of today, we are no longer using system versions of libyuv and libvpx due to major conflicts with system versions of these libraries.  These are now built static into the freeswitch core.  Also note, mod_vpx no longer exists, it is automatically loaded as part of the core and you will no longer have mod_vpx.so nor have to load it manually.  I'll have more details coming, but let me know if you have any questions. 

Please note for anyone doing cross compiling, this probably means a bit more work for you, I'll be working on fixing that this week.

- Mike Jerris

 

Installing from Debian packages

latest release branch:

...

languagebash

...


Commit Log

See all FreeSWITCH commits here: https://

...

freeswitch.org/

...

stash/

...

projects/

...

master branch (eg: "git"):

Status
colourYellow
titleWARNING
not suitable for productionFS/repos/freeswitch/commits


Panel
borderColorlightgray
bgColor#ffdddd
borderWidth1
titleBGColor#F7F7F7
borderStyledotted
titleCompiling from source code
Code Block
languagebash

Building From Source

Compiling Release Branch (production)

Code Block
languagebash
themeEmacs
titleRelease source build
wget -O - https://files.freeswitch.org/repo/deb/
debian/freeswitch_archive_g0.pub
freeswitch-1.8/fsstretch-archive-keyring.asc | apt-key add -

echo "deb http://files.freeswitch.org/repo/deb/
debian
freeswitch-
unstable
1.8/ jessie main" > /etc/apt/sources.list.d/freeswitch.list
# you may want to populate /etc/freeswitch at this point. # if /etc/freeswitch does not exist, the standard vanilla configuration is deployed apt-get update && apt-get install -y freeswitch-meta-all

Building Debian packages from master branch

Status
colourYellow
titleWARNING
not suitable for production

The master branch depends on video libraries which are not available as packages in Debian distribution, but are available from FreeSWITCH repository. Thus, you will need internet access to the FreeSWITCH DEB repository.

echo "deb-src http://files.freeswitch.org/repo/deb/
debian
freeswitch-
unstable
1.8/ jessie main" 
>
>> /etc/apt/sources.list.d/freeswitch.list

apt-get update
&&

apt-get install -y git screen
# 
we
Install 
need
dependencies 
some
required 
prepackaged libraries
for 
video
the 
support from this repo wget -O - https://files.freeswitch.org/repo/deb/debian/freeswitch_archive_g0.pub | apt-key add - # get the latest master
build
apt-get build-dep freeswitch
 
# then let's get the source. Use the -b flag to get a specific branch
mkdir
cd /usr/src/
freeswitch-debs

git clone https://freeswitch.org/stash/scm/fs/freeswitch.git 
/usr/src/freeswitch-debs/freeswitch cd /usr/src/freeswitch-debs # here it's good to run screen with logging, so that you can detach from the shell prompt screen -L cd freeswitch ./debian/util.sh build-all -aamd64 -cjessie # here you can detach by Ctrl-a Ctrl-d and see the log files in /usr/src/freeswitch-debs/log/ folder. # The build may last about an hour, depending on your CPU speed. # If the build is successful, you will have a bunch of .deb files in /usr/src/freeswitch-debs

Building from source

Compiling latest release branch:

Code Block
languagebash
themeEmacs
titleCheckout FreeSWITCH source
wget -O - https://files.freeswitch.org/repo/deb/debian/freeswitch_archive_g0.pub | apt-key add - echo "deb http://files.freeswitch.org/repo/deb/freeswitch-1.6/ jessie main" > /etc/apt/sources.list.d/freeswitch.list apt-get update apt-get install -y --force-yes freeswitch-video-deps-most # because
-bv1.8 freeswitch
cd freeswitch
 
# Because we're in a branch that will go through many rebases, it's
# better to set this one, or you'll get CONFLICTS when pulling (update).
git config 
--global
pull.rebase true
 
# 
then let's get the source
.
Use the -b flag to get a specific branch cd /usr/src/ git clone https://freeswitch
.
org/stash/scm/fs/freeswitch
.
git
 
-bv1.6 freeswitch.git cd freeswitch.git
and do the build
./bootstrap.sh -j
./configure
make
make install


Compiling

...

Latest Master (for testing)

 

Status
colourYellow
titleWARNING
not suitable for production

 

with repos
Code Block
languagebash
themeEmacs
titleMaster
source build
wget -O - https://files.freeswitch.org/repo/deb/debian-unstable/freeswitch_archive_g0.pub | apt-key add -

echo "deb http://files.freeswitch.org/repo/deb/
freeswitch
debian-
1.6
unstable/ jessie main" > /etc/apt/sources.list.d/freeswitch.list
echo "deb-src http://files.freeswitch.org/repo/deb/debian-unstable/ jessie main" >> /etc/apt/sources.list.d/freeswitch.list

apt-get update
apt-get

install -y --force-yes freeswitch-video-deps-most
# 
Because
Install 
we're
dependencies 
in
required 
a
for 
branch
the 
that will go through many rebases, it's # better to set this one, or you'll get CONFLICTS when pulling (update). git config --global pull.rebase true
build
apt-get build-dep freeswitch

# Then let's get the source. Use the -b flag to get a specific branch
cd /usr/src/
git clone https://freeswitch.org/stash/scm/fs/freeswitch.git freeswitch
.git

cd freeswitch
.git

./bootstrap.sh

-j ./configure make make install

 

(warning)

Not suitable for production

Code Block
languagebash
themeEmacs
titleFrom source
# Install some tools and dependencies: apt-get install autoconf automake devscripts g++ gawk gettext git-core libcurl4-openssl-dev libdb-dev libedit-dev libgdbm-dev 'libjpeg-dev|libjpeg62-turbo-dev' libldns-dev libncurses5-dev libopus-dev libopus-ocaml libpcre3-dev libperl-dev libpq-dev libsndfile-dev libspeex-dev libspeexdsp-dev libsqlite3-dev libssl-dev libtiff5-dev 'libtool-bin|libtool' make python-dev pkg-config yasm cd /usr/src # To build from master source code: git clone https://freeswitch.org/stash/scm/fs/freeswitch.git cd /usr/src/freeswitch
# Because we're in a branch that will go through many rebases, it's
# better to set this one, or you'll get CONFLICTS when pulling (update).
git config pull.rebase true

# ... and do the build

# The -j argument spawns multiple threads to speed the build process, but causes trouble on some systems
./bootstrap.sh -j

# if you want to add or remove modules from the build, edit modules.conf
vi modules.conf

# add a module by removing '#' comment character at the beginning of the line
# remove a module by adding the '#' comment character at the beginning of the line 
# containing the name of the module to be skipped in the build process

./configure
--enable-core-pgsql-support
make
&&
make install

# Install audio files:
make cd-sounds-install cd-moh-install

# 
Future updates
To update an installed build:
cd /usr/
local
src/freeswitch
make current
See all FreeSWITCH commits here: https://freeswitch.org/stash/projects/FS/repos/freeswitch/commits

 

Starting FreeSWITCH

Code Block
languagebash
titleStarting FreeSWITCH
cd /usr/local/freeswitch/
./bin/freeswitch -ncwait -nonat
./bin/fs_cli

Note that when installed from packages (as in "latest release branch") the binaries are located in "/usr/bin/freeswitch" (It should also be possible to just use "freeswitch" - double check with "which").

 

Script install freeswitch demo with verto_communicator

Before Starting FreeSWITCH

If you built

Fs
from source code you should set file permissions and ownership before starting FreeSWITCH. Follow the post-installation instructions.



Quick Start FreeSWITCH Demo With Verto Communicator

Status
colourYellow
titleWARNING
not suitable for production

Code Block
languagebash
titleScript FreeSWITCH demo install
#!/bin/sh
# Simple script to setup a webrtc enabled lab with freeswitch, nginx, letsencrypt certificates and verto_communicator.
# Adapt the DOMAIN & IP variables below and launch as root on on a freshly minimal installed debian 8 ( jessie ) server.
# DO NOT USE IN PRODUCTION, it's for PoCproof-of-concept purposes.
# FreeswichFreeSWITCH config is the default vanilla demo config, you SHOULD CHANGE the DEFAULT PASSWORDS ( extensions, event_socket, etc ... )
# At the end of the script, you can navigate to https://$DOMAIN/vc and enjoy vertoVerto communicatorCommunicator upin &your runningweb browser!
# Author: "Tristan Mahe" <gled@remote-shell.net>
# License: WTFPL

DOMAIN="webrtcyour.remote-shelldomain.nethere"
IP="521.92.2163.914"

wget -O - https://files.freeswitch.org/repo/deb/debian/freeswitch_archive_g0.pub | apt-key add -apt-get clean && apt-get update && apt-get -y upgrade && apt-get -y dist-upgrade

apt-get install -y wget git

gitwget clone-O - https://files.freeswitch.org/stashrepo/scmdeb/fs/freeswitch-1.git /usr/src/freeswitch.git

8/fsstretch-archive-keyring.asc | apt-key add -

echo "deb http://files.freeswitch.org/repo/deb/freeswitch-1.68/ jessie main" > /etc/apt/sources.list.d/freeswitch.list
echo "deb-src http://ftpfiles.debianfreeswitch.org/debianrepo/deb/freeswitch-1.8/ jessie-backports main" >>> /etc/apt/sources.list.d/debian-backportsfreeswitch.list

apt-get update
&& 
cd /usr/src

git clone https://freeswitch.org/stash/scm/fs/freeswitch.git -bv1.8 freeswitch

apt-get install -y freeswitch-meta-all nginx-extras freeswitch-mod-verto freeswitch-mod-rtc

apt-get install -y letsencrypt -t jessie-backports
letsencrypt certonly -a webroot --webroot-path=/var/www/html -d $DOMAIN


cat /etc/letsencrypt/live/$DOMAIN/fullchain.pem /etc/letsencrypt/live/$DOMAIN/privkey.pem > /etc/freeswitch/tls/wss.pem

cp -f /usr/src/freeswitch.git/html5/verto/video_demo/dp/dp.xml /etc/freeswitch/dialplan/default/0000_dp.xml

perl -i -pe 's/# listen/listen/g' /etc/nginx/sites-enabled/default
perl -i -pe 's/# include snippets\/snakeoil.conf/include snippets\/letsencrypt.conf/g' /etc/nginx/sites-enabled/default
perl -i -pe 's/<!--  <param name="ext-rtp-ip" value=""\/> -->/<param name="ext-rtp-ip" value="$IP"\/>/g' /etc/freeswitch/autoload_configs/verto.conf.xml

echo "ssl_certificate /etc/letsencrypt/live/$DOMAIN/fullchain.pem;" >> /etc/nginx/snippets/letsencrypt.conf
echo "ssl_certificate_key /etc/letsencrypt/live/$DOMAIN/privkey.pem;" >> /etc/nginx/snippets/letsencrypt.conf

# Attention with this, it may break other software you want to get through Git
git config --global url."https://".insteadOf git://

cd /usr/src/freeswitch.git/html5/verto/verto_communicator/
./debian8-install.sh

ln -s /usr/src/freeswitch.git/html5/verto/verto_communicator/dist /var/www/html/vc

service nginx restart
service freeswitch restart

...