forked from norman/fusionpbx-install.sh-github-mirror
Start working on Ubuntu
This commit is contained in:
3
ubuntu/resources/switch/conf-copy.sh
Executable file
3
ubuntu/resources/switch/conf-copy.sh
Executable file
@@ -0,0 +1,3 @@
|
||||
mv /etc/freeswitch /etc/freeswitch.orig
|
||||
mkdir /etc/freeswitch
|
||||
cp -R /var/www/fusionpbx/resources/templates/conf/* /etc/freeswitch
|
||||
57
ubuntu/resources/switch/dsn.sh
Executable file
57
ubuntu/resources/switch/dsn.sh
Executable file
@@ -0,0 +1,57 @@
|
||||
#!/bin/sh
|
||||
|
||||
#move to script directory so all relative paths work
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
#includes
|
||||
. ../config.sh
|
||||
|
||||
#set the date
|
||||
now=$(date +%Y-%m-%d)
|
||||
|
||||
#get the database password
|
||||
if [ .$database_password = .'random' ]; then
|
||||
read -p "Enter the database password: " database_password
|
||||
fi
|
||||
|
||||
#set PGPASSWORD
|
||||
export PGPASSWORD=$database_password
|
||||
|
||||
#enable auto create schemas
|
||||
sed -i /etc/freeswitch/autoload_configs/switch.conf.xml -e s:'<!-- <param name="auto-create-schemas" value="true"/> -->:<param name="auto-create-schemas" value="true"/>:'
|
||||
sed -i /etc/freeswitch/autoload_configs/switch.conf.xml -e s:'<param name="auto-create-schemas" value="false"/>:<param name="auto-create-schemas" value="true"/>:'
|
||||
|
||||
#enable odbc-dsn in the xml
|
||||
sed -i /etc/freeswitch/autoload_configs/db.conf.xml -e s:'<!--<param name="odbc-dsn" value="$${dsn}"/>-->:<param name="odbc-dsn" value="$${dsn}"/>:'
|
||||
sed -i /etc/freeswitch/autoload_configs/fifo.conf.xml -e s:'<!--<param name="odbc-dsn" value="$${dsn}"/>-->:<param name="odbc-dsn" value="$${dsn}"/>:'
|
||||
sed -i /etc/freeswitch/autoload_configs/switch.conf.xml -e s:'<!-- <param name="core-db-dsn" value="$${dsn}" /> -->:<param name="core-db-dsn" value="$${dsn}" />:'
|
||||
|
||||
#enable odbc-dsn in the sip profiles
|
||||
sudo -u postgres psql -h $database_host -p $database_port -U fusionpbx -d fusionpbx -c "update v_sip_profile_settings set sip_profile_setting_enabled = 'true' where sip_profile_setting_name = 'odbc-dsn';";
|
||||
|
||||
#add the dsn variables
|
||||
sudo -u postgres psql -h $database_host -p $database_port -U fusionpbx -d fusionpbx -c "insert into v_vars (var_uuid, var_name, var_value, var_category, var_enabled, var_order, var_description, var_hostname) values ('785d7013-1152-4a44-aa15-28336d9b36f9', 'dsn_system', 'pgsql://hostaddr=$database_host port=$database_port dbname=fusionpbx user=fusionpbx password=$database_password options=', 'DSN', 'true', '0', null, null);";
|
||||
sudo -u postgres psql -h $database_host -p $database_port -U fusionpbx -d fusionpbx -c "insert into v_vars (var_uuid, var_name, var_value, var_category, var_enabled, var_order, var_description, var_hostname) values ('0170e737-b453-40ea-99f2-f1375474e5ce', 'dsn', 'sqlite:///dev/shm/core.db', 'DSN', 'true', '0', null, null);";
|
||||
sudo -u postgres psql -h $database_host -p $database_port -U fusionpbx -d fusionpbx -c "insert into v_vars (var_uuid, var_name, var_value, var_category, var_enabled, var_order, var_description, var_hostname) values ('32e3e364-a8ef-4fe0-9d02-c652d5122bbf', 'dsn_callcenter', 'sqlite:///dev/shm/callcenter.db', 'DSN', 'true', '0', null, null);";
|
||||
|
||||
#update the vars.xml file
|
||||
echo "<!-- DSN -->" >> /etc/freeswitch/vars.xml
|
||||
echo "<X-PRE-PROCESS cmd=\"set\" data=\"dsn_system=pgsql://hostaddr=$database_host port=$database_port dbname=fusionpbx user=fusionpbx password=$database_password options=\" />" >> /etc/freeswitch/vars.xml
|
||||
echo "<X-PRE-PROCESS cmd=\"set\" data=\"dsn=sqlite:///dev/shm/core.db\" />" >> /etc/freeswitch/vars.xml
|
||||
echo "<X-PRE-PROCESS cmd=\"set\" data=\"dsn_callcenter=sqlite:///dev/shm/callcenter.db\" />" >> /etc/freeswitch/vars.xml
|
||||
|
||||
#remove the sqlite database files
|
||||
dbs="/var/lib/freeswitch/db/core.db /var/lib/freeswitch/db/fifo.db /var/lib/freeswitch/db/call_limit.db /var/lib/freeswitch/db/sofia_reg_*"
|
||||
for db in ${dbs};
|
||||
do
|
||||
if [ -f $db ]; then
|
||||
echo "Deleting $db";
|
||||
rm $db
|
||||
fi
|
||||
done
|
||||
|
||||
#flush memcache
|
||||
/usr/bin/fs_cli -x 'memcache flush'
|
||||
|
||||
#restart freeswitch
|
||||
service freeswitch restart
|
||||
24
ubuntu/resources/switch/package-all.sh
Executable file
24
ubuntu/resources/switch/package-all.sh
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/bin/sh
|
||||
|
||||
#move to script directory so all relative paths work
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
#includes
|
||||
. ../config.sh
|
||||
. ../colors.sh
|
||||
. ../environment.sh
|
||||
. ../arguments.sh
|
||||
|
||||
apt-get update && apt-get install -y ntp curl memcached haveged
|
||||
|
||||
if [ ."$cpu_architecture" = ."arm" ]; then
|
||||
echo "deb http://repo.sip247.com/debian/freeswitch-stable-armhf/ jessie main" > /etc/apt/sources.list.d/freeswitch.list
|
||||
curl http://repo.sip247.com/debian/sip247.com.gpg.key | apt-key add -
|
||||
else
|
||||
echo "deb http://files.freeswitch.org/repo/deb/freeswitch-1.6/ jessie main" > /etc/apt/sources.list.d/freeswitch.list
|
||||
curl http://files.freeswitch.org/repo/deb/freeswitch-1.6/key.gpg | apt-key add -
|
||||
fi
|
||||
apt-get update && apt-get install -y freeswitch-meta-all freeswitch-all-dbg gdb
|
||||
|
||||
#make sure that postgresql is started before starting freeswitch
|
||||
sed -i /lib/systemd/system/freeswitch.service -e s:'local-fs.target:local-fs.target postgresql.service:'
|
||||
9
ubuntu/resources/switch/package-master-all.sh
Executable file
9
ubuntu/resources/switch/package-master-all.sh
Executable file
@@ -0,0 +1,9 @@
|
||||
#!/bin/sh
|
||||
apt-get update && apt-get install -y ntp curl memcached haveged
|
||||
curl 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
|
||||
echo "deb http://files.freeswitch.org/repo/deb/debian-unstable/ jessie main" >> /etc/apt/sources.list.d/freeswitch.list
|
||||
apt-get update && apt-get install -y freeswitch-meta-all freeswitch-all-dbg gdb
|
||||
|
||||
#make sure that postgresql is started before starting freeswitch
|
||||
sed -i /lib/systemd/system/freeswitch.service -e s:'local-fs.target:local-fs.target postgresql.service:'
|
||||
28
ubuntu/resources/switch/package-master.sh
Executable file
28
ubuntu/resources/switch/package-master.sh
Executable file
@@ -0,0 +1,28 @@
|
||||
#!/bin/sh
|
||||
apt-get update && apt-get install -y curl memcached haveged
|
||||
curl 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
|
||||
echo "deb http://files.freeswitch.org/repo/deb/debian-unstable/ jessie main" >> /etc/apt/sources.list.d/freeswitch.list
|
||||
apt-get update
|
||||
apt-get install -y ntp gdb
|
||||
apt-get install -y freeswitch-meta-bare freeswitch-conf-vanilla freeswitch-mod-commands freeswitch-meta-codecs freeswitch-mod-console freeswitch-mod-logfile freeswitch-mod-distributor
|
||||
apt-get install -y freeswitch-lang-en freeswitch-mod-say-en freeswitch-sounds-en-us-callie
|
||||
apt-get install -y freeswitch-mod-enum freeswitch-mod-cdr-csv freeswitch-mod-event-socket freeswitch-mod-sofia freeswitch-mod-sofia-dbg freeswitch-mod-loopback
|
||||
apt-get install -y freeswitch-mod-conference freeswitch-mod-db freeswitch-mod-dptools freeswitch-mod-expr freeswitch-mod-fifo libyuv-dev freeswitch-mod-httapi
|
||||
apt-get install -y freeswitch-mod-hash freeswitch-mod-esl freeswitch-mod-esf freeswitch-mod-fsv freeswitch-mod-valet-parking freeswitch-mod-dialplan-xml freeswitch-dbg
|
||||
apt-get install -y freeswitch-mod-sndfile freeswitch-mod-native-file freeswitch-mod-local-stream freeswitch-mod-tone-stream freeswitch-mod-lua freeswitch-meta-mod-say
|
||||
apt-get install -y freeswitch-mod-xml-cdr freeswitch-mod-verto freeswitch-mod-callcenter freeswitch-mod-rtc freeswitch-mod-png freeswitch-mod-json-cdr freeswitch-mod-shout
|
||||
apt-get install -y freeswitch-mod-skypopen freeswitch-mod-skypopen-dbg freeswitch-mod-sms freeswitch-mod-sms-dbg freeswitch-mod-cidlookup freeswitch-mod-memcache
|
||||
apt-get install -y freeswitch-mod-imagick freeswitch-mod-tts-commandline freeswitch-mod-directory freeswitch-mod-flite
|
||||
apt-get install -y freeswitch-music-default
|
||||
|
||||
#make sure that postgresql is started before starting freeswitch
|
||||
sed -i /lib/systemd/system/freeswitch.service -e s:'local-fs.target:local-fs.target postgresql.service:'
|
||||
|
||||
#remove the music package to protect music on hold from package updates
|
||||
mkdir -p /usr/share/freeswitch/sounds/temp
|
||||
mv /usr/share/freeswitch/sounds/music/*000 /usr/share/freeswitch/sounds/temp
|
||||
apt-get remove -y freeswitch-music-default
|
||||
mkdir -p /usr/share/freeswitch/sounds/music/default
|
||||
mv /usr/share/freeswitch/sounds/temp/* /usr/share/freeswitch/sounds/music/default
|
||||
rm -R /usr/share/freeswitch/sounds/temp
|
||||
7
ubuntu/resources/switch/package-permissions.sh
Executable file
7
ubuntu/resources/switch/package-permissions.sh
Executable file
@@ -0,0 +1,7 @@
|
||||
#default permissions
|
||||
chown -R www-data:www-data /etc/freeswitch
|
||||
chown -R www-data:www-data /var/lib/freeswitch
|
||||
chown -R www-data:www-data /usr/share/freeswitch
|
||||
chown -R www-data:www-data /var/log/freeswitch
|
||||
chown -R www-data:www-data /var/run/freeswitch
|
||||
chown -R www-data:www-data /var/cache/fusionpbx
|
||||
55
ubuntu/resources/switch/package-release.sh
Executable file
55
ubuntu/resources/switch/package-release.sh
Executable file
@@ -0,0 +1,55 @@
|
||||
#!/bin/sh
|
||||
|
||||
#move to script directory so all relative paths work
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
#includes
|
||||
. ../config.sh
|
||||
. ../colors.sh
|
||||
. ../environment.sh
|
||||
|
||||
apt-get update && apt-get install -y curl memcached haveged apt-transport-https
|
||||
if [ ."$cpu_architecture" = ."arm" ]; then
|
||||
if [ ."$os_codename" = ."stretch" ]; then
|
||||
echo "deb https://repo.fusionpbx.com/armhf stretch 1.8.4" > /etc/apt/sources.list.d/freeswitch.list
|
||||
curl https://repo.fusionpbx.com/public.key | apt-key add -
|
||||
else
|
||||
echo "deb https://repo.fusionpbx.com/armhf jessie 1.6.20" > /etc/apt/sources.list.d/freeswitch.list
|
||||
curl https://repo.fusionpbx.com/public.key | apt-key add -
|
||||
fi
|
||||
else
|
||||
if [ ."$os_codename" = ."stretch" ]; then
|
||||
wget -qO - http://files.freeswitch.org/repo/deb/freeswitch-1.8/fsstretch-archive-keyring.gpg | apt-key add -
|
||||
echo "deb http://files.freeswitch.org/repo/deb/freeswitch-1.8/ stretch main" > /etc/apt/sources.list.d/freeswitch.list
|
||||
else
|
||||
echo "deb http://files.freeswitch.org/repo/deb/freeswitch-1.6/ jessie main" > /etc/apt/sources.list.d/freeswitch.list
|
||||
curl http://files.freeswitch.org/repo/deb/freeswitch-1.6/key.gpg | apt-key add -
|
||||
fi
|
||||
fi
|
||||
apt-get update
|
||||
apt-get install -y gdb ntp
|
||||
apt-get install -y freeswitch-meta-bare freeswitch-conf-vanilla freeswitch-mod-commands freeswitch-mod-console freeswitch-mod-logfile
|
||||
apt-get install -y freeswitch-lang-en freeswitch-mod-say-en freeswitch-sounds-en-us-callie
|
||||
apt-get install -y freeswitch-mod-enum freeswitch-mod-cdr-csv freeswitch-mod-event-socket freeswitch-mod-sofia freeswitch-mod-sofia-dbg freeswitch-mod-loopback
|
||||
apt-get install -y freeswitch-mod-conference freeswitch-mod-db freeswitch-mod-dptools freeswitch-mod-expr freeswitch-mod-fifo freeswitch-mod-httapi
|
||||
apt-get install -y freeswitch-mod-hash freeswitch-mod-esl freeswitch-mod-esf freeswitch-mod-fsv freeswitch-mod-valet-parking freeswitch-mod-dialplan-xml freeswitch-dbg
|
||||
apt-get install -y freeswitch-mod-sndfile freeswitch-mod-native-file freeswitch-mod-local-stream freeswitch-mod-tone-stream freeswitch-mod-lua freeswitch-meta-mod-say
|
||||
apt-get install -y freeswitch-mod-xml-cdr freeswitch-mod-verto freeswitch-mod-callcenter freeswitch-mod-rtc freeswitch-mod-png freeswitch-mod-json-cdr freeswitch-mod-shout
|
||||
apt-get install -y freeswitch-mod-sms freeswitch-mod-sms-dbg freeswitch-mod-cidlookup freeswitch-mod-memcache
|
||||
apt-get install -y freeswitch-mod-imagick freeswitch-mod-tts-commandline freeswitch-mod-directory
|
||||
apt-get install -y freeswitch-mod-flite freeswitch-mod-distributor freeswitch-meta-codecs
|
||||
apt-get install -y freeswitch-mod-skypopen freeswitch-mod-skypopen-dbg
|
||||
apt-get install -y freeswitch-music-default
|
||||
apt-get install -y libyuv-dev
|
||||
|
||||
#make sure that postgresql is started before starting freeswitch
|
||||
sed -i /lib/systemd/system/freeswitch.service -e s:'local-fs.target:local-fs.target postgresql.service:'
|
||||
|
||||
#remove the music package to protect music on hold from package updates
|
||||
mkdir -p /usr/share/freeswitch/sounds/temp
|
||||
mv /usr/share/freeswitch/sounds/music/*000 /usr/share/freeswitch/sounds/temp
|
||||
mv /usr/share/freeswitch/sounds/music/default/*000 /usr/share/freeswitch/sounds/temp
|
||||
apt-get remove -y freeswitch-music-default
|
||||
mkdir -p /usr/share/freeswitch/sounds/music/default
|
||||
mv /usr/share/freeswitch/sounds/temp/* /usr/share/freeswitch/sounds/music/default
|
||||
rm -R /usr/share/freeswitch/sounds/temp
|
||||
13
ubuntu/resources/switch/package-systemd.sh
Executable file
13
ubuntu/resources/switch/package-systemd.sh
Executable file
@@ -0,0 +1,13 @@
|
||||
apt-get remove -y freeswitch-systemd
|
||||
cp "$(dirname $0)/source/freeswitch.service.package" /lib/systemd/system/freeswitch.service
|
||||
cp "$(dirname $0)/source/etc.default.freeswitch.package" /etc/default/freeswitch
|
||||
chmod 644 /lib/systemd/system/freeswitch.service
|
||||
if [ -e /proc/user_beancounters ]
|
||||
then
|
||||
#Disable CPU Scheduler for OpenVZ, not supported on OpenVZ."
|
||||
sed -i -e "s/CPUSchedulingPolicy=rr/;CPUSchedulingPolicy=rr/g" /lib/systemd/system/freeswitch.service
|
||||
fi
|
||||
systemctl enable freeswitch
|
||||
systemctl unmask freeswitch.service
|
||||
systemctl daemon-reload
|
||||
systemctl start freeswitch
|
||||
40
ubuntu/resources/switch/source-master.sh
Executable file
40
ubuntu/resources/switch/source-master.sh
Executable file
@@ -0,0 +1,40 @@
|
||||
#!/bin/sh
|
||||
echo "Installing the FreeSWITCH source"
|
||||
DEBIAN_FRONTEND=none APT_LISTCHANGES_FRONTEND=none apt-get install -y ntpdate libapache2-mod-log-sql-ssl libfreetype6-dev git-buildpackage doxygen yasm nasm gdb git build-essential automake autoconf 'libtool-bin|libtool' python uuid-dev zlib1g-dev 'libjpeg8-dev|libjpeg62-turbo-dev' libncurses5-dev libssl-dev libpcre3-dev libcurl4-openssl-dev libldns-dev libedit-dev libspeexdsp-dev libspeexdsp-dev libsqlite3-dev perl libgdbm-dev libdb-dev bison libvlc-dev libvlccore-dev vlc-nox pkg-config ccache libpng-dev libvpx-dev libyuv-dev libopenal-dev libbroadvoice-dev libcodec2-dev libflite-dev libg7221-dev libilbc-dev libmongoc-dev libsilk-dev libsoundtouch-dev libmagickcore-dev liblua5.2-dev libopus-dev libsndfile-dev libopencv-dev libavformat-dev libx264-dev erlang-dev libldap2-dev libmemcached-dev libperl-dev portaudio19-dev python-dev libsnmp-dev libyaml-dev libmp4v2-dev
|
||||
apt-get install -y unzip libpq-dev memcached libshout3-dev libvpx-dev libmpg123-dev libmp3lame-dev
|
||||
|
||||
apt-get update && apt-get install -y ntp curl haveged
|
||||
curl 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
|
||||
echo "deb http://files.freeswitch.org/repo/deb/debian-unstable/ jessie main" > /etc/apt/sources.list.d/freeswitch.list
|
||||
apt-get update && apt-get upgrade
|
||||
apt-get install -y freeswitch-video-deps-most
|
||||
|
||||
git clone https://freeswitch.org/stash/scm/fs/freeswitch.git /usr/src/freeswitch
|
||||
cd /usr/src/freeswitch
|
||||
|
||||
sed -i /usr/src/freeswitch/modules.conf -e s:'#applications/mod_avmd:applications/mod_avmd:'
|
||||
sed -i /usr/src/freeswitch/modules.conf -e s:'#applications/mod_callcenter:applications/mod_callcenter:'
|
||||
sed -i /usr/src/freeswitch/modules.conf -e s:'#applications/mod_cidlookup:applications/mod_cidlookup:'
|
||||
sed -i /usr/src/freeswitch/modules.conf -e s:'#applications/mod_memcache:applications/mod_memcache:'
|
||||
sed -i /usr/src/freeswitch/modules.conf -e s:'#applications/mod_curl:applications/mod_curl:'
|
||||
sed -i /usr/src/freeswitch/modules.conf -e s:'#formats/mod_shout:formats/mod_shout:'
|
||||
./bootstrap.sh -j
|
||||
#./configure --prefix=/usr/local/freeswitch --enable-core-pgsql-support --enable-system-lua --disable-fhs
|
||||
./configure --prefix=/usr/local/freeswitch --enable-core-pgsql-support --disable-fhs
|
||||
|
||||
#make mod_shout-install
|
||||
make
|
||||
rm -rf /usr/local/freeswitch/{lib,mod,bin}/*
|
||||
make install
|
||||
make sounds-install moh-install
|
||||
make hd-sounds-install hd-moh-install
|
||||
make cd-sounds-install cd-moh-install
|
||||
|
||||
#move the music into music/default directory
|
||||
mkdir -p /usr/local/freeswitch/sounds/music/default
|
||||
mv /usr/local/freeswitch/sounds/music/*000 /usr/local/freeswitch/sounds/music/default
|
||||
|
||||
#configure system service
|
||||
ln -s /usr/local/freeswitch/bin/fs_cli /usr/bin/fs_cli
|
||||
cp "$(dirname $0)/source/freeswitch.service" /lib/systemd/system/freeswitch.service
|
||||
5
ubuntu/resources/switch/source-permissions.sh
Executable file
5
ubuntu/resources/switch/source-permissions.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#setup owner and group, permissions and sticky
|
||||
chmod -R ug+rw /usr/local/freeswitch
|
||||
touch /usr/local/freeswitch/freeswitch.log
|
||||
chown -R www-data:www-data /usr/local/freeswitch
|
||||
find /usr/local/freeswitch -type d -exec chmod 2770 {} \;
|
||||
65
ubuntu/resources/switch/source-release.sh
Executable file
65
ubuntu/resources/switch/source-release.sh
Executable file
@@ -0,0 +1,65 @@
|
||||
#!/bin/sh
|
||||
|
||||
#move to script directory so all relative paths work
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
#includes
|
||||
. ../config.sh
|
||||
|
||||
# add repo key
|
||||
wget -O - https://files.freeswitch.org/repo/deb/freeswitch-1.8/fsstretch-archive-keyring.asc | apt-key add -
|
||||
|
||||
# add repo
|
||||
echo "deb http://files.freeswitch.org/repo/deb/freeswitch-1.8/ stretch main" > /etc/apt/sources.list.d/freeswitch.list
|
||||
echo "deb-src http://files.freeswitch.org/repo/deb/freeswitch-1.8/ stretch main" >> /etc/apt/sources.list.d/freeswitch.list
|
||||
|
||||
#upgrade packages
|
||||
apt update && apt upgrade -y
|
||||
|
||||
# install dependencies
|
||||
apt build-dep freeswitch -y
|
||||
|
||||
# additional dependencies
|
||||
apt install -y sqlite3 swig3.0 unzip
|
||||
|
||||
#we are about to move out of the executing directory so we need to preserve it to return after we are done
|
||||
CWD=$(pwd)
|
||||
echo "Using version $switch_version"
|
||||
cd /usr/src
|
||||
#git clone -b v1.8 https://freeswitch.org/stash/scm/fs/freeswitch.git /usr/src/freeswitch
|
||||
wget http://files.freeswitch.org/freeswitch-releases/freeswitch-$switch_version.zip
|
||||
unzip freeswitch-$switch_version.zip
|
||||
rm -R freeswitch
|
||||
mv freeswitch-$switch_version freeswitch
|
||||
cd /usr/src/freeswitch
|
||||
|
||||
# bootstrap is needed if using git
|
||||
#./bootstrap.sh -j
|
||||
|
||||
# enable required modules
|
||||
sed -i /usr/src/freeswitch/modules.conf -e s:'#applications/mod_avmd:applications/mod_avmd:'
|
||||
sed -i /usr/src/freeswitch/modules.conf -e s:'#applications/mod_callcenter:applications/mod_callcenter:'
|
||||
sed -i /usr/src/freeswitch/modules.conf -e s:'#applications/mod_cidlookup:applications/mod_cidlookup:'
|
||||
sed -i /usr/src/freeswitch/modules.conf -e s:'#applications/mod_memcache:applications/mod_memcache:'
|
||||
sed -i /usr/src/freeswitch/modules.conf -e s:'#applications/mod_curl:applications/mod_curl:'
|
||||
sed -i /usr/src/freeswitch/modules.conf -e s:'#formats/mod_shout:formats/mod_shout:'
|
||||
|
||||
# prepare the build
|
||||
#./configure --prefix=/usr/local/freeswitch --enable-core-pgsql-support --disable-fhs
|
||||
./configure -C --enable-portable-binary --disable-dependency-tracking \
|
||||
--prefix=/usr --localstatedir=/var --sysconfdir=/etc \
|
||||
--with-openssl --enable-core-pgsql-support
|
||||
|
||||
# compile and install
|
||||
make
|
||||
make install
|
||||
make sounds-install moh-install
|
||||
make hd-sounds-install hd-moh-install
|
||||
make cd-sounds-install cd-moh-install
|
||||
|
||||
#move the music into music/default directory
|
||||
mkdir -p /usr/share/freeswitch/sounds/music/default
|
||||
mv /usr/share/freeswitch/sounds/music/*000 /usr/share/freeswitch/sounds/music/default
|
||||
|
||||
#return to the executing directory
|
||||
cd $CWD
|
||||
15
ubuntu/resources/switch/source-systemd.sh
Executable file
15
ubuntu/resources/switch/source-systemd.sh
Executable file
@@ -0,0 +1,15 @@
|
||||
#cp "$(dirname $0)/source/freeswitch.service.source" /lib/systemd/system/freeswitch.service
|
||||
cp "$(dirname $0)/source/freeswitch.service.source" /etc/systemd/system/freeswitch.service
|
||||
cp "$(dirname $0)/source/etc.default.freeswitch.source" /etc/default/freeswitch
|
||||
sed "s@PIDFile=/run/freeswitch/freeswitch.pid@PIDFile=/usr/local/freeswitch/run/freeswitch.pid@g" -i /etc/systemd/system/freeswitch.service
|
||||
|
||||
if [ -e /proc/user_beancounters ]
|
||||
then
|
||||
#Disable CPU Scheduler for OpenVZ, not supported on OpenVZ."
|
||||
sed -i -e "s/CPUSchedulingPolicy=rr/;CPUSchedulingPolicy=rr/g" /lib/systemd/system/freeswitch.service
|
||||
|
||||
fi
|
||||
systemctl enable freeswitch
|
||||
systemctl unmask freeswitch.service
|
||||
systemctl daemon-reload
|
||||
systemctl start freeswitch
|
||||
24
ubuntu/resources/switch/source-to-package.sh
Executable file
24
ubuntu/resources/switch/source-to-package.sh
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/bin/sh
|
||||
|
||||
#make sure the etc fusionpbx directory exists
|
||||
mkdir -p /etc/fusionpbx
|
||||
|
||||
#remove init.d startup script
|
||||
mv /etc/init.d/freeswitch /usr/src/init.d.freeswitch
|
||||
update-rc.d -f freeswitch remove
|
||||
|
||||
#add the the freeswitch package
|
||||
$(dirname $0)/package-release.sh
|
||||
|
||||
#install freeswitch systemd.d
|
||||
$(dirname $0)/package-systemd.sh
|
||||
|
||||
#update fail2ban
|
||||
sed -i /etc/fail2ban/jail.local -e s:'/usr/local/freeswitch/log:/var/log/freeswitch:'
|
||||
sytemctl restart fail2ban
|
||||
|
||||
#move source files to package directories
|
||||
rsync -avz /usr/local/freeswitch/conf/* /etc/freeswitch
|
||||
rsync -avz /usr/local/freeswitch/recordings /var/lib/freeswitch
|
||||
rsync -avz /usr/local/freeswitch/storage /var/lib/freeswitch
|
||||
rsync -avz /usr/local/freeswitch/scripts /usr/share/freeswitch
|
||||
4
ubuntu/resources/switch/source/etc.default.freeswitch.package
Executable file
4
ubuntu/resources/switch/source/etc.default.freeswitch.package
Executable file
@@ -0,0 +1,4 @@
|
||||
# /etc/default/freeswitch
|
||||
FS_USER="www-data"
|
||||
FS_GROUP="www-data"
|
||||
DAEMON_OPTS="-nonat -ncwait -u www-data -g www-data -run /var/run/freeswitch"
|
||||
4
ubuntu/resources/switch/source/etc.default.freeswitch.source
Executable file
4
ubuntu/resources/switch/source/etc.default.freeswitch.source
Executable file
@@ -0,0 +1,4 @@
|
||||
# /etc/default/freeswitch
|
||||
FS_USER="www-data"
|
||||
FS_GROUP="www-data"
|
||||
DAEMON_OPTS="-nonat -ncwait -u www-data -g www-data"
|
||||
56
ubuntu/resources/switch/source/freeswitch.service.package
Executable file
56
ubuntu/resources/switch/source/freeswitch.service.package
Executable file
@@ -0,0 +1,56 @@
|
||||
;;;;; Author: Travis Cross <tc@traviscross.com>
|
||||
|
||||
[Unit]
|
||||
Description=freeswitch
|
||||
After=syslog.target network.target local-fs.target postgresql.service
|
||||
|
||||
[Service]
|
||||
; service
|
||||
Type=forking
|
||||
PIDFile=/run/freeswitch/freeswitch.pid
|
||||
Environment="DAEMON_OPTS=-nonat"
|
||||
EnvironmentFile=-/etc/default/freeswitch
|
||||
ExecStartPre=/bin/mkdir -p /var/run/freeswitch/
|
||||
ExecStartPre=/bin/chown -R www-data:www-data /var/run/freeswitch/
|
||||
ExecStart=/usr/bin/freeswitch -u www-data -g www-data -ncwait $DAEMON_OPTS
|
||||
TimeoutSec=45s
|
||||
Restart=always
|
||||
; exec
|
||||
User=root
|
||||
Group=daemon
|
||||
LimitCORE=infinity
|
||||
LimitNOFILE=100000
|
||||
LimitNPROC=60000
|
||||
LimitSTACK=250000
|
||||
LimitRTPRIO=infinity
|
||||
LimitRTTIME=infinity
|
||||
IOSchedulingClass=realtime
|
||||
IOSchedulingPriority=2
|
||||
CPUSchedulingPolicy=rr
|
||||
CPUSchedulingPriority=89
|
||||
UMask=0007
|
||||
|
||||
; alternatives which you can enforce by placing a unit drop-in into
|
||||
; /etc/systemd/system/freeswitch.service.d/*.conf:
|
||||
;
|
||||
; User=freeswitch
|
||||
; Group=freeswitch
|
||||
; ExecStart=
|
||||
; ExecStart=/usr/bin/freeswitch -ncwait -nonat -rp
|
||||
;
|
||||
; empty ExecStart is required to flush the list.
|
||||
;
|
||||
; if your filesystem supports extended attributes, execute
|
||||
; setcap 'cap_net_bind_service,cap_sys_nice=+ep' /usr/bin/freeswitch
|
||||
; this will also allow socket binding on low ports
|
||||
;
|
||||
; otherwise, remove the -rp option from ExecStart and
|
||||
; add these lines to give real-time priority to the process:
|
||||
;
|
||||
; PermissionsStartOnly=true
|
||||
; ExecStartPost=/bin/chrt -f -p 1 $MAINPID
|
||||
;
|
||||
; execute "systemctl daemon-reload" after editing the unit files.
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
57
ubuntu/resources/switch/source/freeswitch.service.source
Executable file
57
ubuntu/resources/switch/source/freeswitch.service.source
Executable file
@@ -0,0 +1,57 @@
|
||||
;;;;; Author: Travis Cross <tc@traviscross.com>
|
||||
|
||||
[Unit]
|
||||
Description=freeswitch
|
||||
After=syslog.target network.target local-fs.target postgresql.service haveged.service
|
||||
|
||||
[Service]
|
||||
; service
|
||||
Type=forking
|
||||
PIDFile=/run/freeswitch/freeswitch.pid
|
||||
Environment="DAEMON_OPTS=-nonat"
|
||||
EnvironmentFile=-/etc/default/freeswitch
|
||||
ExecStart=/usr/local/freeswitch/bin/freeswitch -u www-data -g www-data -ncwait $DAEMON_OPTS
|
||||
;ExecStart=/usr/local/freeswitch/bin/freeswitch -u freeswitch -g freeswitch -ncwait $DAEMON_OPTS
|
||||
TimeoutSec=45s
|
||||
Restart=always
|
||||
; exec
|
||||
User=root
|
||||
Group=daemon
|
||||
LimitCORE=infinity
|
||||
LimitNOFILE=100000
|
||||
LimitNPROC=60000
|
||||
LimitSTACK=250000
|
||||
LimitRTPRIO=infinity
|
||||
LimitRTTIME=infinity
|
||||
IOSchedulingClass=realtime
|
||||
IOSchedulingPriority=2
|
||||
CPUSchedulingPolicy=rr
|
||||
CPUSchedulingPriority=89
|
||||
UMask=0007
|
||||
|
||||
|
||||
|
||||
; alternatives which you can enforce by placing a unit drop-in into
|
||||
; /etc/systemd/system/freeswitch.service.d/*.conf:
|
||||
;
|
||||
; User=freeswitch
|
||||
; Group=freeswitch
|
||||
; ExecStart=
|
||||
; ExecStart=/usr/bin/freeswitch -ncwait -nonat -rp
|
||||
;
|
||||
; empty ExecStart is required to flush the list.
|
||||
;
|
||||
; if your filesystem supports extended attributes, execute
|
||||
; setcap 'cap_net_bind_service,cap_sys_nice=+ep' /usr/bin/freeswitch
|
||||
; this will also allow socket binding on low ports
|
||||
;
|
||||
; otherwise, remove the -rp option from ExecStart and
|
||||
; add these lines to give real-time priority to the process:
|
||||
;
|
||||
; PermissionsStartOnly=true
|
||||
; ExecStartPost=/bin/chrt -f -p 1 $MAINPID
|
||||
;
|
||||
; execute "systemctl daemon-reload" after editing the unit files.
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
Reference in New Issue
Block a user