About
Warning |
---|
Please NOTE that Debian 9 “Stretch” is now officially supported by . |
Debian 8 "Jessie" is was the reference platform for
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.Building from source
Please use the instructions on the FreeSWITCH 1.6 Video page.
Installing from Debian packages in stable branch
...
...
. We recommend Debian 9 "Stretch" as it's most suitable for the
1.8 release. Expand |
---|
title | Click here to expand Table of Contents |
---|
|
echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list Panel |
---|
borderColor | lightgray |
---|
bgColor | #f7f7f7 |
---|
borderWidth | 1 |
---|
borderStyle | dotted |
---|
| Table of Contents |
---|
maxLevel | 3 |
---|
outline | true |
---|
indent | 1em |
---|
exclude | About |
---|
style | none |
---|
printable | false |
---|
|
|
|
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 |
Commit Log
See all FreeSWITCH commits here: https://freeswitch.org/stash/projects/FS/repos/freeswitch/commits
Panel |
---|
borderColor | lightgray |
---|
bgColor | #eeeeff |
---|
borderWidth | 1 |
---|
titleBGColor | #F7F7F7 |
---|
borderStyle | dotted |
---|
title | Easy Way |
---|
|
Installing From Debian Packages Latest Release Branch: Code Block |
---|
language | bash |
---|
title | Release 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/ | debianfreeswitch-1.8/ 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- | vanilla |
Installing from Debian packages in master branch
is now installed and can be accessed with Code Block |
---|
language | bash |
---|
title | FreeSwitch CLI |
---|
| fs_cli -rRS |
|
Master Branch ("git"):
not suitable for production
Code Block |
---|
| apt-get update && apt-get install -y curl
curl http |
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-all freeswitchmeta-all-dbg
gdb
|
Building Debian
...
Packages From Master Branch
not suitable for production
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 import the FreeSWITCH DEB repository PGP key and use the supplied sources.list file.
Code Block |
---|
| apt-get update && apt-get install -y git curl screen
# we need some prepackaged libraries for video support from this repo
curl title | Build 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/freeswitch_archive_g0.pub | jessie main" >> /etc/apt/sources.list.d/freeswitch.list
apt-keyget addupdate && apt-get install -y xz-utils devscripts cowbuilder git screen
# get the latest master. mkdirUse the -p b flag to get a specific branch
mkdir /usr/src/freeswitch-debs
git clone https://stash.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 -b -i -z1 -aamd64 -cjessie
-T
/usr/src/freeswitch/debian/apt_sources.list
# 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 |
---|
borderColor | lightgray |
---|
bgColor | #ffdddd |
---|
borderWidth | 1 |
---|
titleBGColor | #F7F7F7 |
---|
borderStyle | dotted |
---|
title | Compiling from source code |
---|
|
Building From SourceCompiling Release Branch (production) Code Block |
---|
language | bash |
---|
theme | Emacs |
---|
title | Release source build |
---|
| wget -O - https://files.freeswitch.org/repo/deb/freeswitch-1.8/fsstretch-archive-keyring.asc | apt-key add -
echo "deb http://files.freeswitch.org/repo/deb/freeswitch-1.8/ 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 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 -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 pull.rebase true
# ... and do the build
./bootstrap.sh -j
./configure
make
make install |
Compiling Latest Master (for testing) not suitable for production Code Block |
---|
language | bash |
---|
theme | Emacs |
---|
title | Master 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/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
# Install dependencies required for the 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
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 FreeSWITCHIf you built 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
not suitable for production
Code Block |
---|
language | bash |
---|
title | Script 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/freeswitch-1.8/fsstretch-archive-keyring.asc | apt-key add -
echo "deb http://files.freeswitch.org/repo/deb/freeswitch-1.8/ 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
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 |