Установка Freeswitch в данной статье производится на Centos 7 ветки точно так же ставится на RHEL, OracleLinux/
Подготовим систему
обновим
yum update
Отключим selinux
vi /etc/sysconfig/selinux SELINUX=disabled
погасим фаервол
chkconfig iptables stop
перезагрузимся
reboot Устанавливаем необходимые компоненты
yum install -y http://files.freeswitch.org/freeswitch-release-1-6.noarch.rpm epel-release yum install -y git gcc-c++ wget alsa-lib-devel autoconf automake bison broadvoice-devel bzip2 curl-devel db-devel e2fsprogs-devel flite-devel g722_1-devel gdbm-devel gnutls-devel ilbc2-devel ldns-devel libcodec2-devel libcurl-devel libedit-devel libidn-devel libjpeg-devel libmemcached-devel libogg-devel libsilk-devel libsndfile-devel libtheora-devel libtool libvorbis-devel libxml2-devel lua-devel lzo-devel mongo-c-driver-devel ncurses-devel net-snmp-devel openssl-devel opus-devel pcre-devel perl perl-ExtUtils-Embed pkgconfig portaudio-devel postgresql-devel python26-devel python-devel soundtouch-devel speex-devel sqlite-devel unbound-devel unixODBC-devel libuuid-devel which yasm zlib-devel
Непосредственно установка из исходников
cd /usr/src
git clone -b v1.4 https://freeswitch.org/stash/scm/fs/freeswitch.git
git clone -b v1.6 https://freeswitch.org/stash/scm/fs/freeswitch.git
cd /usr/src/freeswitch
./bootstrap.sh –j
Если не выдал ошибок, то система готова для установки
Включим необходимые модули
В файле /usr/src/freeswitch/modules.conf включите следующие модули Справка по модулям
modrtmp
moddirectory
modcallcenter
modttscommandline
moddingaling
modflite
modshout
Ну и конфигурим и компилим
./configure make && make install
Установим аудиофайлы
make sounds-install
make moh-install
make hd-moh-install
make hd-sounds-install
make uhd-moh-install
make uhd-sounds-install
make cd-sounds-install
make cd-moh-install
и русские аудиофайлы
make sounds-ru-install
make cd-sounds-ru-install
make uhd-sounds-ru-install
make hd-sounds-ru-install
Добавим пользователя и скопируем скрипты инициализации…..
Отключаем поддержку ipv6
cd /usr/local/freeswitch/conf/sip_profiles
mv internal-ipv6.xml internal-ipv6.xml.removed
mv external-ipv6.xml external-ipv6.xml.removed
Добавление пользователя freeswitch в систему и блокируем ему пароль
useradd –system –home-dir /usr/local/freeswitch freeswitch
passwd -l freeswitch
Первый запуск необходимо провести для того, что бы Freeswitch создал необходимые папки.
cd /usr/local/freeswitch/bin
./freeswitch
Что бы убедиться, что все работает, вводим команду «sofia status»
Выход из системы по команде «shutdown».
Когда Freeswitch завершает свою работу, так же выводиться многословный лог.
Назначаем права на папки и создаем папку для работы демона freeswitch
# chown -R freeswitch:freeswitch /usr/local/freeswitch/
# chmod -R 770 /usr/local/freeswitch/
# chmod -R 750 /usr/local/freeswitch/bin/*
# mkdir /run/freeswitch
# chown -R freeswitch:freeswitch /run/freeswitch
Для удобства работы создаем символьные ссылки на программы запуска freeswitch
# ln -s /usr/local/freeswitch/bin/freeswitch /usr/bin/
# ln -s /usr/local/freeswitch/bin/fs_cli /usr/bin/
Добавляем freeswitch в автозапуск в систему systemd
# cp /usr/local/src/freeswitch/build/freeswitch.service /etc/systemd/system/multi-user.target.wants/
# nano /etc/systemd/system/multi-user.target.wants/freeswitch.service
Приводим юнит к виду:
[Unit]
Description=freeswitch
After=syslog.target network.target local-fs.target
[Service]
; service
Type=forking
RuntimeDirectory=freeswitch
PIDFile=/run/freeswitch/freeswitch.pid
PermissionsStartOnly=true
ExecStart=/usr/bin/freeswitch -ncwait -nonat -run /run/freeswitch
TimeoutSec=45s
Restart=always
; exec
WorkingDirectory=/run/freeswitch
User=freeswitch
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
Теперь создаем файл конигурации system, который будет всегда создавать директорию /run/freeswitch и наделять ее необходимыми правами
Вписываем в файл:
d /run/freeswitch 770 freeswitch freeswitch
Рестартуем демон systemd:
Теперь можно запустить сервис freeswitch командой:
Проверить состояние сервиса и отсановить его можно так:
Вписываем в конец файла перед строкой
Следующее:
freeswitch hard nofile 500000
freeswitch soft nofile 500000