Установка FreeSWITCH на Debian 9

Установка FreeSWITCH на Debian 9

Debian 9 «Stretch» ​​теперь официально поддерживается FreeSWITCH ™. Зависимости доступны из репозитория FreeSWITCH с помощью команды «apt-get build-dep freeswitch». Данная статья пошагово описывает процесс установки FreeSWITCH из официального репозитория Debian.

Debian 9 «Stretch» ​​является эталонной платформой для FreeSWITCH ™ начиная с версии 1.8 и настоятельно рекомендуется для всех приложений из-за его стабильности и широкой поддержки системных библиотек, необходимых для FreeSWITCH.

Установка FreeSWITCH из пакетов Debian

apt-get update && apt-get install -y gnupg2 wget
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/ 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
apt-get update && apt-get install -y freeswitch-meta-all
fs_cli -rRS

Установка из пакетов

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/ 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
apt-get update
apt-get build-dep freeswitch
cd /usr/src/
git clone https://freeswitch.org/stash/scm/fs/freeswitch.git -bv1.8 freeswitch
cd freeswitch
git config pull.rebase true
./bootstrap.sh -j
./configure
make
make install

Перед запуском FreeSWITCH

Если вы создали FreeSWITCH ™ из исходного кода, вы должны установить права доступа к файлу перед запуском FreeSWITCH. Поскольку вы, скорее всего, создали FreeSWITCH ™ от пользователя root, теперь вы должны создать пользователя ‘freeswitch‘ в группе ‘freeswitch‘ и изменить файлы FS на owner = freeswitch и group = freeswitch. Выполните следующие команды от пользователя root:

# create user 'freeswitch'
# add it to group 'freeswitch'
# change owner and group of the freeswitch installation
cd /usr/local
groupadd freeswitch
adduser --quiet --system --home /usr/local/freeswitch --gecos "FreeSWITCH open source softswitch" --ingroup freeswitch freeswitch --disabled-password
chown -R freeswitch:freeswitch /usr/local/freeswitch/
chmod -R ug=rwX,o= /usr/local/freeswitch/
chmod -R u=rwx,g=rx /usr/local/freeswitch/bin/*

Файл модуля запускает FreeSWITCH как root, поэтому необходимо создать несколько каталогов. Затем он отбросит привилегии, чтобы продолжить работу от имени пользователя и группы Freeswitch.

В файле /usr/src/freeswitch.git/debian:

; This file in installations built from Master can be found in
; /usr/src/freeswitch.git/debian
; or
; /usr/src/freeswitch/debian
[Unit]
Description=freeswitch
After=syslog.target network.target local-fs.target
 
[Service]
; service
Type=forking
PIDFile=/usr/local/freeswitch/run/freeswitch.pid
PermissionsStartOnly=true
; blank ExecStart= line flushes the list
ExecStart=
ExecStart=/usr/local/freeswitch/bin/freeswitch -u freeswitch -g freeswitch -ncwait -nonat -rp
TimeoutSec=45s
Restart=on-failure
; exec
WorkingDirectory=/usr/local/freeswitch/bin
User=root
Group=daemon
LimitCORE=infinity
LimitNOFILE=100000
LimitNPROC=60000
;LimitSTACK=240
LimitRTPRIO=infinity
LimitRTTIME=7000000
IOSchedulingClass=realtime
IOSchedulingPriority=2
CPUSchedulingPolicy=rr
CPUSchedulingPriority=89
UMask=0007
 
[Install]
WantedBy=multi-user.target

Теперь, когда файл модуля systemd настроен, вы можете скопировать его (не связывать его) в каталог /etc/systemd/system, где systemd ищет локальные настраиваемые файлы, которые не будут перезаписаны обновлениями systemd.

cp /usr/src/freeswitch.git/debian/freeswitch-systemd.freeswitch.service /etc/systemd/system/freeswitch.service

Затем уведомите systemd о поиске изменений в его конфигурации:

systemctl daemon-reload

Теперь вы готовы запустить FreeSWITCH. Поскольку FS принадлежит пользователю freeswitch, он должен создавать свои базы данных и файлы журналов под этим пользователем (вместо root), чтобы эти файлы все еще были доступны для него при последующих запусках.

systemctl start freeswitch

Чтобы остановить FreeSWITCH:

systemctl stop freeswitch

Чтобы настроить FreeSWITCH для автоматического запуска во время загрузки:

systemctl enable freeswitch

DNS-кэширование

По умолчанию в Debian нет кэширования DNS, и каждый поиск выполняется на сервере из /etc/resolv.conf. Unbound – это легкий, безопасный и простой в использовании сервер кэширования DNS. В файле /etc/dhcp/dhclient.conf:

apt -y install unbound   # installation
systemctl start unbound  # start
systemctl enable unbound # auto start
prepend domain-name-servers 127.0.0.1;

Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.