FreeSWITCH          




Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: FreeSWITCH 1.8 release and new 1.8 repo

About

Warning

Please NOTE that Debian 9 “Stretch” is now officially supported by

Fs
.

 

Debian 8 "Jessie" is 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.. We recommend Debian 9 "Stretch" as it's most suitable for the
Fs
1.8 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

...

Panel
borderColorlightgray
bgColor#eeeeff
borderWidth1
titleBGColor#F7F7F7
borderStyledotted
titleEasy Way

Installing From Debian Packages

Latest Release Branch:

Code Block
languagebash
titleRelease package
wget -O - https://files.freeswitch.org/repo/deb/debian/freeswitch_archive_g0.pubfreeswitch-1.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://files.freeswitch.org/repo/deb/freeswitch-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

Fs
is now installed and can be accessed with

Code Block
languagebash
titleFreeSwitch CLI
fs_cli -rRS

...

Code Block
languagebash
titleMaster Test Package
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/debian-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

# 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

...

The master branch depends on video different 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.

Code Block
languagebash
titleBuild your own .deb Master package
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/debian-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 xz-utils devscripts cowbuilder git screen

# we need some prepackaged libraries for video support from this repo
wget -O - https://files.freeswitch.org/repo/deb/debian/freeswitch_archive_g0.pub | apt-key add -

# get the latest master. Use the -b flag to get a specific branch
mkdir /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

...

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

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.pubfreeswitch-1.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://files.freeswitch.org/repo/deb/freeswitch-1.8/ jessie main" >> /etc/apt/sources.list.d/freeswitch.list

apt-get update

# Install dependencies required for the build
apt-get install build-y --force-yes freeswitch-video-deps-mostdep 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 -bv1.68 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 pull.rebase true
 
# ... and do the build
./bootstrap.sh -j
./configure
make
make install

 

Compiling Latest Master (for testing)

Status
colourYellow
titleWARNING
not suitable for production

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/freeswitchdebian-1.6unstable/ 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

# Install dependencies required for the build
apt-get install build-y --force-yes freeswitch-video-deps-mostdep 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
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 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
make
make install

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

# To update an installed build:
cd /usr/src/freeswitch
make current

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.

 

...

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 proof-of-concept purposes.
# FreeSWITCH 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 Verto Communicator in your web browser!
# Author: "Tristan Mahe" <gled@remote-shell.net>
# License: WTFPL

DOMAIN="your.domain.here"
IP="1.2.3.4"

apt-get clean && apt-get update && apt-get -y upgrade && apt-get -y dist-upgrade

apt-get install -y wget git

wget -O - https://files.freeswitch.org/repo/deb/debian/freeswitch_archive_g0.pubfreeswitch-1.8/fsstretch-archive-keyring.asc | apt-key add -

cd /usr/src

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

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/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/html5/verto/verto_communicator/
./debian8-install.sh

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

service nginx restart
service freeswitch restart