Установка Freeswitch 1.6 в CentOS 7
1. Подготовка к установке
# yum update
# yum -y install git
# yum -y install epel-release
# rpm -Uvh http://files.freeswitch.org/freeswitch-release-1-6.noarch.rpm
# yum -y install git gcc-c++ autoconf automake libtool wget python ncurses-devel zlib-devel libjpeg-devel openssl-devel e2fsprogs-devel sqlite-devel libcurl-devel pcre-devel speex-devel ldns-devel libedit-devel libxml2-devel
# yum -y install libyuv-devel opus-devel libvpx-devel libvpx2* libdb4* libidn-devel unbound-devel libuuid-devel lua-devel libsndfile-devel
2. Ставим стабильную версию пакета freeswitch - 1.6
# cd /usr/local/src
# git clone -b v1.6 https://freeswitch.org/stash/scm/fs/freeswitch.git
# cd /usr/local/src/freeswitch
# ./bootstrap.sh
# ./configure
После выполнения команды увидим:
-------------------------- FreeSWITCH configuration --------------
Locations:
prefix: /usr/local/freeswitch
exec_prefix: /usr/local/freeswitch
bindir: ${exec_prefix}/bin
confdir: /usr/local/freeswitch/conf
libdir: ${exec_prefix}/lib
datadir: /usr/local/freeswitch
localstatedir: /usr/local/freeswitch
includedir: /usr/local/freeswitch/include/freeswitch
certsdir: /usr/local/freeswitch/certs
dbdir: /usr/local/freeswitch/db
grammardir: /usr/local/freeswitch/grammar
htdocsdir: /usr/local/freeswitch/htdocs
fontsdir: /usr/local/freeswitch/fonts
logfiledir: /usr/local/freeswitch/log
modulesdir: /usr/local/freeswitch/mod
pkgconfigdir: ${exec_prefix}/lib/pkgconfig
recordingsdir: /usr/local/freeswitch/recordings
imagesdir: /usr/local/freeswitch/images
runtimedir: /usr/local/freeswitch/run
scriptdir: /usr/local/freeswitch/scripts
soundsdir: /usr/local/freeswitch/sounds
storagedir: /usr/local/freeswitch/storage
cachedir: /usr/local/freeswitch/cache
------------------------------------------------------------------
# make
При сборке может появится сообщение о невозможности установить модуль поддержки кодека opus:
making all mod_opus
make[4]: Вход в каталог `/usr/local/src/freeswitch/src/mod/codecs/mod_opus'
Makefile:884: *** You must install libopus-dev to build mod_opus. Останов.
make[4]: Выход из каталога `/usr/local/src/freeswitch/src/mod/codecs/mod_opus'
make[3]: *** [mod_opus-all] Ошибка 1
make[3]: Выход из каталога `/usr/local/src/freeswitch/src/mod'
make[2]: *** [all-recursive] Ошибка 1
make[2]: Выход из каталога `/usr/local/src/freeswitch/src'
make[1]: *** [all-recursive] Ошибка 1
make[1]: Выход из каталога `/usr/local/src/freeswitch'
make: *** [all] Ошибка 2
Несколько попыток установить кодек у меня не увенчались успехом. Поэтому я просто сделал следующее: отключил поддержку этого кодека в сборке:
# make clean
# nano modules.conf
Комментируем строку:
#codecs/mod_opus
Запускаем сборку снова:
# make
Работа команды должна завершиться сообщением:
+---------- FreeSWITCH Build Complete ----------+
+ FreeSWITCH has been successfully built. +
+ Install by running: +
+ +
+ make install +
+ +
+ While you're waiting, register for ClueCon! +
+ https://www.cluecon.com +
+ +
+-----------------------------------------------+
# make install
В завершении установки увидим:
+---------- FreeSWITCH install Complete ----------+
+ FreeSWITCH has been successfully installed. +
+ +
+ Install sounds: +
+ (uhd-sounds includes hd-sounds, sounds) +
+ (hd-sounds includes sounds) +
+ ------------------------------------ +
+ make cd-sounds-install +
+ make cd-moh-install +
+ +
+ make uhd-sounds-install +
+ make uhd-moh-install +
+ +
+ make hd-sounds-install +
+ make hd-moh-install +
+ +
+ make sounds-install +
+ make moh-install +
+ +
+ Install non english sounds: +
+ replace XX with language +
+ (ru : Russian) +
+ (fr : French) +
+ ------------------------------------ +
+ make cd-sounds-XX-install +
+ make uhd-sounds-XX-install +
+ make hd-sounds-XX-install +
+ make sounds-XX-install +
+ +
+ Upgrade to latest: +
+ ---------------------------------- +
+ make current +
+ +
+ Rebuild all: +
+ ---------------------------------- +
+ make sure +
+ +
+ Install/Re-install default config: +
+ ---------------------------------- +
+ make samples +
+ +
+ +
+ Additional resources: +
+ ---------------------------------- +
+ https://www.freeswitch.org +
+ https://freeswitch.org/confluence +
+ https://freeswitch.org/jira +
+ http://lists.freeswitch.org +
+ +
+ irc.freenode.net / #freeswitch +
+ +
+ Register For ClueCon: +
+ ---------------------------------- +
+ https://www.cluecon.com +
+ +
+-------------------------------------------------+
3. Установка звуков (в том числе русских)
# make cd-sounds-install
# make cd-moh-install
# make cd-sounds-ru-install
4. Отключаем поддержку ipv6
# cd /usr/local/freeswitch/conf/sip_profiles
# mv internal-ipv6.xml internal-ipv6.xml.removed
# mv external-ipv6.xml external-ipv6.xml.removed
5. Добавление пользователя freeswitch в систему и блокируем ему пароль
# useradd --system --home-dir /usr/local/freeswitch freeswitch
# passwd -l freeswitch
6. Первый запуск необходимо провести для того, что бы Freeswitch создал необходимые папки.
# cd /usr/local/freeswitch/bin
# ./freeswitch
Должно появится что-то типа
2015-11-22 12:37:33.710503 [INFO] switch_event.c:685 Activate Eventing Engine.
2015-11-22 12:37:33.720775 [WARNING] switch_event.c:656 Create additional event dispatch thread 0
2015-11-22 12:37:33.974387 [INFO] switch_nat.c:417 Scanning for NAT
2015-11-22 12:37:33.974570 [DEBUG] switch_nat.c:170 Checking for PMP 1/5
2015-11-22 12:37:33.975138 [ERR] switch_nat.c:199 Error checking for PMP [wait sock failed]
2015-11-22 12:37:33.975159 [DEBUG] switch_nat.c:422 Checking for UPnP
……
Потом будет показан ход загрузки
……
.=============================================================.
| _____ ______ _____ _____ ____ _ _ |
| | ___| __ ___ ___/ ___\ \ / /_ _|_ _/ ___| | | | |
| | |_ | '__/ _ \/ _ \___ \\ \ /\ / / | | | || | | |_| | |
| | _|| | | __/ __/___) |\ V V / | | | || |___| _ | |
| |_| |_| \___|\___|____/ \_/\_/ |___| |_| \____|_| |_| |
| |
.=============================================================.
| Anthony Minessale II, Michael Jerris, Brian West, Others |
| FreeSWITCH (http://www.freeswitch.org) |
| Paypal Donations Appreciated: paypal@freeswitch.org |
| Brought to you by ClueCon http://www.cluecon.com/ |
.=============================================================.
……
FreeSWITCH Started
Max Sessions [1000]
Session Rate [30]
SQL [Enabled]
2015-11-22 12:37:48.893329 [CONSOLE] switch_core.c:2426
[This app Best viewed at 160x60 or more..]
2015-11-22 12:37:48.894155 [INFO] switch_time.c:607 Clock synchronized to system time.
freeswitch@test-centos7.svttk.ru>
Что бы убедиться, что все работает, вводим команду «sofia status»
Выход из системы по команде «shutdown».
Когда Freeswitch завершает свою работу, так же выводиться многословный лог.
7. Назначаем права на папки и создаем папку для работы демона 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
8. Для удобства работы создаем символьные ссылки на программы запуска freeswitch
# ln -s /usr/local/freeswitch/bin/freeswitch /usr/bin/
# ln -s /usr/local/freeswitch/bin/fs_cli /usr/bin/
9. Добавляем 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 и наделять ее необходимыми правами
# touch nano /usr/lib/tmpfiles.d/freeswitch.conf
# nano /usr/lib/tmpfiles.d/freeswitch.conf
Вписываем в файл:
d /run/freeswitch 770 freeswitch freeswitch
Рестартуем демон systemd:
# systemctl daemon-reload
Теперь можно запустить сервис freeswitch командой:
# systemctl start freeswitch.service
Проверить состояние сервиса и отсановить его можно так:
# systemctl status freeswitch.service
# systemctl stop freeswitch.service
10. Увеличиваем количество лимитов на открытие файлов и обращений к жесткому диску для пользователя freeswitch
# nano /etc/security/limits.conf
Вписываем в конец файла перед строкой
# End of file
Следующее:
freeswitch hard nofile 500000
freeswitch soft nofile 500000
1. Подготовка к установке
# yum update
# yum -y install git
# yum -y install epel-release
# rpm -Uvh http://files.freeswitch.org/freeswitch-release-1-6.noarch.rpm
# yum -y install git gcc-c++ autoconf automake libtool wget python ncurses-devel zlib-devel libjpeg-devel openssl-devel e2fsprogs-devel sqlite-devel libcurl-devel pcre-devel speex-devel ldns-devel libedit-devel libxml2-devel
# yum -y install libyuv-devel opus-devel libvpx-devel libvpx2* libdb4* libidn-devel unbound-devel libuuid-devel lua-devel libsndfile-devel
2. Ставим стабильную версию пакета freeswitch - 1.6
# cd /usr/local/src
# git clone -b v1.6 https://freeswitch.org/stash/scm/fs/freeswitch.git
# cd /usr/local/src/freeswitch
# ./bootstrap.sh
# ./configure
После выполнения команды увидим:
-------------------------- FreeSWITCH configuration --------------
Locations:
prefix: /usr/local/freeswitch
exec_prefix: /usr/local/freeswitch
bindir: ${exec_prefix}/bin
confdir: /usr/local/freeswitch/conf
libdir: ${exec_prefix}/lib
datadir: /usr/local/freeswitch
localstatedir: /usr/local/freeswitch
includedir: /usr/local/freeswitch/include/freeswitch
certsdir: /usr/local/freeswitch/certs
dbdir: /usr/local/freeswitch/db
grammardir: /usr/local/freeswitch/grammar
htdocsdir: /usr/local/freeswitch/htdocs
fontsdir: /usr/local/freeswitch/fonts
logfiledir: /usr/local/freeswitch/log
modulesdir: /usr/local/freeswitch/mod
pkgconfigdir: ${exec_prefix}/lib/pkgconfig
recordingsdir: /usr/local/freeswitch/recordings
imagesdir: /usr/local/freeswitch/images
runtimedir: /usr/local/freeswitch/run
scriptdir: /usr/local/freeswitch/scripts
soundsdir: /usr/local/freeswitch/sounds
storagedir: /usr/local/freeswitch/storage
cachedir: /usr/local/freeswitch/cache
------------------------------------------------------------------
# make
При сборке может появится сообщение о невозможности установить модуль поддержки кодека opus:
making all mod_opus
make[4]: Вход в каталог `/usr/local/src/freeswitch/src/mod/codecs/mod_opus'
Makefile:884: *** You must install libopus-dev to build mod_opus. Останов.
make[4]: Выход из каталога `/usr/local/src/freeswitch/src/mod/codecs/mod_opus'
make[3]: *** [mod_opus-all] Ошибка 1
make[3]: Выход из каталога `/usr/local/src/freeswitch/src/mod'
make[2]: *** [all-recursive] Ошибка 1
make[2]: Выход из каталога `/usr/local/src/freeswitch/src'
make[1]: *** [all-recursive] Ошибка 1
make[1]: Выход из каталога `/usr/local/src/freeswitch'
make: *** [all] Ошибка 2
Несколько попыток установить кодек у меня не увенчались успехом. Поэтому я просто сделал следующее: отключил поддержку этого кодека в сборке:
# make clean
# nano modules.conf
Комментируем строку:
#codecs/mod_opus
Запускаем сборку снова:
# make
Работа команды должна завершиться сообщением:
+---------- FreeSWITCH Build Complete ----------+
+ FreeSWITCH has been successfully built. +
+ Install by running: +
+ +
+ make install +
+ +
+ While you're waiting, register for ClueCon! +
+ https://www.cluecon.com +
+ +
+-----------------------------------------------+
# make install
В завершении установки увидим:
+---------- FreeSWITCH install Complete ----------+
+ FreeSWITCH has been successfully installed. +
+ +
+ Install sounds: +
+ (uhd-sounds includes hd-sounds, sounds) +
+ (hd-sounds includes sounds) +
+ ------------------------------------ +
+ make cd-sounds-install +
+ make cd-moh-install +
+ +
+ make uhd-sounds-install +
+ make uhd-moh-install +
+ +
+ make hd-sounds-install +
+ make hd-moh-install +
+ +
+ make sounds-install +
+ make moh-install +
+ +
+ Install non english sounds: +
+ replace XX with language +
+ (ru : Russian) +
+ (fr : French) +
+ ------------------------------------ +
+ make cd-sounds-XX-install +
+ make uhd-sounds-XX-install +
+ make hd-sounds-XX-install +
+ make sounds-XX-install +
+ +
+ Upgrade to latest: +
+ ---------------------------------- +
+ make current +
+ +
+ Rebuild all: +
+ ---------------------------------- +
+ make sure +
+ +
+ Install/Re-install default config: +
+ ---------------------------------- +
+ make samples +
+ +
+ +
+ Additional resources: +
+ ---------------------------------- +
+ https://www.freeswitch.org +
+ https://freeswitch.org/confluence +
+ https://freeswitch.org/jira +
+ http://lists.freeswitch.org +
+ +
+ irc.freenode.net / #freeswitch +
+ +
+ Register For ClueCon: +
+ ---------------------------------- +
+ https://www.cluecon.com +
+ +
+-------------------------------------------------+
3. Установка звуков (в том числе русских)
# make cd-sounds-install
# make cd-moh-install
# make cd-sounds-ru-install
4. Отключаем поддержку ipv6
# cd /usr/local/freeswitch/conf/sip_profiles
# mv internal-ipv6.xml internal-ipv6.xml.removed
# mv external-ipv6.xml external-ipv6.xml.removed
5. Добавление пользователя freeswitch в систему и блокируем ему пароль
# useradd --system --home-dir /usr/local/freeswitch freeswitch
# passwd -l freeswitch
6. Первый запуск необходимо провести для того, что бы Freeswitch создал необходимые папки.
# cd /usr/local/freeswitch/bin
# ./freeswitch
Должно появится что-то типа
2015-11-22 12:37:33.710503 [INFO] switch_event.c:685 Activate Eventing Engine.
2015-11-22 12:37:33.720775 [WARNING] switch_event.c:656 Create additional event dispatch thread 0
2015-11-22 12:37:33.974387 [INFO] switch_nat.c:417 Scanning for NAT
2015-11-22 12:37:33.974570 [DEBUG] switch_nat.c:170 Checking for PMP 1/5
2015-11-22 12:37:33.975138 [ERR] switch_nat.c:199 Error checking for PMP [wait sock failed]
2015-11-22 12:37:33.975159 [DEBUG] switch_nat.c:422 Checking for UPnP
……
Потом будет показан ход загрузки
……
.=============================================================.
| _____ ______ _____ _____ ____ _ _ |
| | ___| __ ___ ___/ ___\ \ / /_ _|_ _/ ___| | | | |
| | |_ | '__/ _ \/ _ \___ \\ \ /\ / / | | | || | | |_| | |
| | _|| | | __/ __/___) |\ V V / | | | || |___| _ | |
| |_| |_| \___|\___|____/ \_/\_/ |___| |_| \____|_| |_| |
| |
.=============================================================.
| Anthony Minessale II, Michael Jerris, Brian West, Others |
| FreeSWITCH (http://www.freeswitch.org) |
| Paypal Donations Appreciated: paypal@freeswitch.org |
| Brought to you by ClueCon http://www.cluecon.com/ |
.=============================================================.
……
FreeSWITCH Started
Max Sessions [1000]
Session Rate [30]
SQL [Enabled]
2015-11-22 12:37:48.893329 [CONSOLE] switch_core.c:2426
[This app Best viewed at 160x60 or more..]
2015-11-22 12:37:48.894155 [INFO] switch_time.c:607 Clock synchronized to system time.
freeswitch@test-centos7.svttk.ru>
Что бы убедиться, что все работает, вводим команду «sofia status»
Выход из системы по команде «shutdown».
Когда Freeswitch завершает свою работу, так же выводиться многословный лог.
7. Назначаем права на папки и создаем папку для работы демона 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
8. Для удобства работы создаем символьные ссылки на программы запуска freeswitch
# ln -s /usr/local/freeswitch/bin/freeswitch /usr/bin/
# ln -s /usr/local/freeswitch/bin/fs_cli /usr/bin/
9. Добавляем 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 и наделять ее необходимыми правами
# touch nano /usr/lib/tmpfiles.d/freeswitch.conf
# nano /usr/lib/tmpfiles.d/freeswitch.conf
Вписываем в файл:
d /run/freeswitch 770 freeswitch freeswitch
Рестартуем демон systemd:
# systemctl daemon-reload
Теперь можно запустить сервис freeswitch командой:
# systemctl start freeswitch.service
Проверить состояние сервиса и отсановить его можно так:
# systemctl status freeswitch.service
# systemctl stop freeswitch.service
10. Увеличиваем количество лимитов на открытие файлов и обращений к жесткому диску для пользователя freeswitch
# nano /etc/security/limits.conf
Вписываем в конец файла перед строкой
# End of file
Следующее:
freeswitch hard nofile 500000
freeswitch soft nofile 500000
Комментариев нет:
Отправить комментарий