Иван Санников
12.06.2019
8112

Установка FreeSwitch из исходников на Centos 7

В рамках данной статьи будет представлена подробная установка FreeSwitch из исходников на ОС Centos 7 minimal. Перед установкой необходимо подготовить сервер, установив необходимые утилиты и зависисмости. Сначала рекомендуется отключить Selinux, для этого необходимо поменять в файле /etc/selinux/config поменять значение параметра SELINUX с enforsing на disabled Следующим шагом необходимо выполнить обновление системы, запускается командой yum update […]

В рамках данной статьи будет представлена подробная установка FreeSwitch из исходников на ОС Centos 7 minimal.

Во многих источниках присутсвует информация о наличии официального репозитория FreeSwitch для Centos 7. Но до последнего времени в нем присутсвовали не все необходимые модули.

Перед установкой необходимо подготовить сервер, установив необходимые утилиты и зависисмости.

Сначала рекомендуется отключить Selinux, для этого необходимо поменять в файле /etc/selinux/config поменять значение параметра SELINUX с enforsing на disabled

Следующим шагом необходимо выполнить обновление системы, запускается командой yum update

Также рекомендуется установить базовые серверные утилиты, командой yum groupinstall Base

После выполнения данных шагов необходимо перезагрузить сервер командой reboot

После загрузки проверить статус Selinux, командой sestatus, результат должен выдать disabled

Далее нужно установить веб-сервре и mysql. В качестве веб-сервера используется Apache, в качестве mysql — Mariadb.

Установка Apache производится командой yum install httpd

После установки необходимо запустить Apache b добавить его в автозапуск, командами systemctl start httpd и systemctl enable httpd соответсвенно.

Далее необходимо установить Mariadb, командой yum install mariadb-server mariadb

После установки запуск и добавление в автозагрузку производятся командами  systemctl start mariadb и systemctl enable mariadb

Также рекомендуется выполнить первоначальную настройку Mariadb с помощью команды mysql_secure_installation

Также необходимо установить дополнительные зависимости:

yum install php php-pdo php-mysql sqlite-devel pcre-devel speex-devel libedit-devel bison patch ncurses-devel unixODBC-devel openssl-devel gnutls-devel libogg-devel autoconf automake gcc-c++ git-core libjpeg-devel libtool libjpeg-devel kernel-devel git xz-devel mesa-dri-drivers libXv libXScrnSaver xorg-x11-fonts* libXScrnSaver curl-devel libtiff-devel libjpeg-devel subversion   fontconfig libICE  libSM libX11  libXau libxcb libXcursor  libXext libXfixes  libXi libXinerama libXrandr  libXrender libXScrnSaver  libXv portaudio portaudio-devel

Также рекомендуется установить и настроить ODBC коннектор, если он отсутсвует в системе:

yum install unixODBC-devel mysql-connector-odbc

Далее необходимо настроить ODBC с помощью файла /etc/odbcinst.ini в большинстве случаев нет необходимости вносить правки. Ниже приведен примерный вид данного файла — секция [MySQL]

Далее необходимо заполнить файл /etc/odbc.ini при его отсутствии — необходимо создать и внести в него следующие данные:

[MySQL-fusionpbx]
Description=MySQL connection to 'fusionpbx' database
Driver   = MySQL
Server   = localhost
Port     = 3306
Database = fusionpbx
Option  = 3
Socket   = /var/lib/mysql/mysql.sock

Далее необходимо скачать через git исходный код FreeSwitch.
Для этого необходимо перейти в директорию /usr/src и выполнить команду:

git clone -b v1.8 https://freeswitch.org/stash/scm/fs/freeswitch.git freeswitch

Далее перейти в директорию с кодом: cd /usr/src/freeswitch

И запустить конфигурацию командой ./bootstrap.sh -j

Далее перед продолжением установки рекомендуется раскомментировать дополнительные модули в файле modules.conf

Примерный вид приведен ниже на скриншоте:

Далее необходимо запустить продолжение конфигурации командой ./configure —enable-portable-binary —prefix=/usr —localstatedir=/var —sysconfdir=/etc —with-gnu-ld —with-openssl —enable-core-odbc-support —enable-zrtp —enable-static-v8 —disable-parallel-build-v8 при удачном конфигурировании будет выдан список директорий, с которыми работает FreeSwitch

Далее вызываем команду make

Если выполнение make прерывается сообщением Neither yasm nor nasm have been found необходимо установить утилиту yasm c помощью git: git clone https://github.com/yasm/yasm.git && cd yasm && ./autogen.sh && make && make install

После успешной установки  — должно отобразится предложение выполнить make install.

Для полной установки вызывается команда make install

После установки, отобразится оповещение об успешном разворачивании FreeSwitch, а также  будут предложены дальнейшие шаги: установка звуковых файлов, апгрейд версии FreeSwitch, установка конфигурационных файлов по-умолчанию.

Далее рекомендуется установить стандартные аудиофайлы различного качества в англоязычном и русскоязычном форматах, а также файлы музыки в ожидании.

make sounds-install
make moh-install
make sounds-ru-install
Также опционально аудиофайлы можно установить в лучшем качестве: HD, Ultra HD и CD<strong><br> <br> </strong>

Например:

make hd-moh-install
make hd-sounds-install
make hd-sounds-ru-install

Следующим шагом необходимо создать пользователя FreeSwitch и установить права на файлы и директории FreeSwitch, а также создать директорию для PID-файла:

useradd freeswitch
chown -R freeswitch:freeswitch /usr/bin/freeswitch
chmod -R 770 /usr/bin/freeswitch
chmod -R 750 /usr/freeswitch/bin/*
mkdir /run/freeswitch
chown -R freeswitch:freeswitch  /run/freeswitch

А также необходимо скопировать файл юнита для запуска FreeSwitch

cp/usr/src/freeswitch/build/freeswitch.service  /etc/systemd/system/multi-user.target.wants/

Рекомендуется привести его к следующему виду:

[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

Далее необходимо создать конфигурационный файл, в котором будут описаны разрешения freeswitch по-умолчанию:

vim /usr/lib/tmpfiles.d/freeswitch.conf

И прописать в него следующие параметры:

d /run/freeswitch   770 freeswitch freeswitch

Далее — производится перезапуск службы daemon и запускается служба FreeSwitch:

systemctl daemon-reload
systemctl start freeswitch.service

Командой systemctl status freeswitch.service можно проверить статус службы

Вход в консоль FreeSwitch производится командой fs_cli

Для выхода из консоли используется сочетание клавиш Ctrl+d

На этом установка FreeSwitch завершена.

Книга 101 функция Asterisk
Познакомьтесь с возможностями Asterisk. Найдите инструменты, которые помогут вашей компании развиваться.
Скачать книгу
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Остались вопросы?

Я - Першин Артём, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование


ближайшие курсы

10 доводов в пользу Asterisk

Распространяется бесплатно.

Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.

Безопасен в использовании.

Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.

Надежен в эксплуатации.

Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.

Гибкий в настройке.

Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.

Имеет огромный функционал.

Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.

Интегрируется с любыми системами.

То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.

Позволяет телефонизировать офис за считанные часы.

В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.

Отличная масштабируемость.

Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.

Повышает управляемость бизнеса.

Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.

Снижает расходы на связь.

Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.