artem
26.10.2017
20598

Установка Asterisk 15 и FreePBX 14 из исходников на CentOS7

В рамках статьи будет рассмотрена сборка новейших на момент написания статьи релизов Asterisk и FreePBX. Так как с выходом FreePBX 14 его производители официально стали поддерживать Centos версии 7, то  и в статье рассматривается установка на данную ОС.

На данный момент не рекомендуется использовать Asterisk 15 в «продакшн» в связи с тем, что вышел он совсем недавно и еще «сыроват».

 

1. Отключение Selinux и обновление системы

Перед началом необходимо выключить Selinux, сделать это можно любым из указанных ниже способов:
а) в файле /etc/selinux/config изменить значение параметра SELINUX= с enforsing на disabled

б) в файле /etc/sysconfig/selinux изменить значение параметра SELINUX= с enforsing на disabled (по сути файл selinux в директории /etc/sysconfig — это симлинк на /etc/selinux/config)

На данном этапе можно установить дополнительные репозитории пакетов: epel и wbtatic

Epel можно установить через yum командой yum -y install epel-release, а webtatic только скачиванием rpm пакета:
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Далее следует обновить систему командой yum update

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

Чтобы убедиться что selinux отключен необходимо выполнить команду sestatus — она выводит состояние selinux

 

2. Установка зависимостей и необходимых утилит

Сначала необходимо создать пользователя asterisk:

adduser asterisk -m

Перед установкой непосредсвенно Asterisk+FreePBX, необходимо установить такие утилиты как:

— mysql в данном случае ставится amriadb

— веб-сервер — apache

— php версии 5.6, так как FreePBX c 14 версии официально объявили поддержку данной версии php

— nodejs

— lame — утилита кодирования аудио

— pjproject — при необходимости использовать pj-sip

— srtp — при необходимости шифрования RTP трафика

 

Групповая установка базовых необходимых инструментов выполняется командами:

yum groupinstall core
yum groupinstall base
yum groupinstall «Development Tools»
(возможно  единой командой yum groupinstall core base «Development Tools»)

 

Установка mariadb и ODBC-коннектора, запуск и первичная настройка mysql

yum install mariadb mariadb-server unixODBC unixODBC-devel mysql-connector-odbc mariadb-devel

Для запуска базы данных необходимо выполнить команду systemctl start mariadb

Далее необходимо добавить в автозагрузку командой sytemctl enable mariadb.service

После этого необходимо произвести первичную настройку безопасности mysql, запустив команду mysql_secure_installation

Рекомендуемые действия после запуска:
— установить root-пароль на mysql

— удалить анонимных пользователей

— оключить удаленную авторизацию под root

— удалить тестовую базу и доступ к ней

Установка php необходимых зависимостей:

yum install php56w php56w-mbstring php56w-ldap php56w-intl php56w-mysql php56-pdo php56w-pear php56w-process php56w-xml php56-opcache php56w-ldap

 

Установка веб-сервера и его минимальная настройка для FreePBX:

yum install httpd

После этого установить в файле /etc/php.ini параметры:

— upload_max_filesize=120M
— date.timezone=“Europe/Moscow“

Запуск веб-сервера и помещение его в автозапуск

systemctl start httpd.service
systemctl enable httpd

Установка остальных зависимостей:

yum install libtool-ltdl-devel  ncurses-devel sendmail sendmail-cf sox newt-devel libxml2-devel libtiff-devel audiofile-devel gtk2-devel kernel-devel kernel-headers git cronie cronie-anacron tftp-server цпуе uuid-devel sqlite sqlite-devel gnutls-devel python-devel texinfo libuuid-devel libxml2-devel libtool-ltdl libtool-ltdl-devel e2fsprogs-devel keyutils-libs-devel krb5-devel libogg libselinux-devel libsepol-devel libxml2-devel libtiff-devel gmp audiofile-devel linx libogg-devel openssl-devel zlib-devel perl-DateManip sox git wget psmisc speex-devel gsm-devel libtool libtool-ltdl xmlstarlet libsrtp-devel crontabs  subversion jansson-devel lame curl curl-devel corosync corosync-devel

Установка nodejs, так как в репозитории по умолчанию находится nodejs версии 1.6, а для FreePBX необходима версия nodejs 8, необходимо выполнить следующие команды:

curl -sL https://rpm.nodesource.com/setup_8.x | bash —
yum install nodejs

 

Скачивание необходимых пакетов исходников

Перейти в раздел /usr/src

cd /usr/src/
wget https://netix.dl.sourceforge.net/project/srtp/srtp/1.4.4/srtp-1.4.4.tgz
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-15-current.tar.gz
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-14.0-latest.tgz

 

Установка SRTP (если необходимо использовать)

tar zxvf srtp-1.4.4.tgz
Далее необходимо заменить в файле /usr/src/srtp/test/rtpw_test.sh строчку RTPW=rtpw на строчку RTPW=./rtpw

cd srtp
autoconf
./configure CFLAGC=-fPIC —prefix=/usr
make
make runtest
make install

 

Установка DAHDI

cd /usr/src/
tar zxvf dahdi-linux-complete-current.tar.gz
cd dahdi-linux-complete-*
make all
make install
make config

 

Установка Libpri
Информер2: данный модуль можно не устанавливать если не планируется использовать цифровые платы  потока Е1)

cd /usr/src/
tar zxvf libpri-current.tar.gz
cd libpri-*
make
make install

 

Установка Asterisk 15

cd /usr/src/
tar zxvf tar zxvf asterisk-15-current.tar.gz
cd asterisk-15*
./contrib/scripts/get_mp3_source.sh
./configure —prefix=/usr —sysconfdir=/etc —localstatedir=/var —libdir=/usr/lib64 —with-pjproject-bundled
(также можно добавить следующие параметры, если требуется шифрование: —with-crypto —with-ssl=ssl —with-srtp)
make menuconfig — выбрать для установки необходимые модули (в основном можно оставить все по-умолчанию).

make
make install
make config
ldconfig

Необходимо убрать Asterisk из автозагрузки командой: chkconfig asterisk off, так как в дальнейшем автозапуск будет осуществляться через оснастку frepbx (fwconsole)

 

Перед установкой FreePBX в конфигурационный файл веб-сервера (/etc/httpd/conf/httpd.conf) необходимо добавить параметры:
User asterisk

Group asterisk

Для применения параметров необходимо перезапустить веб-сервер командой systemctl restart httpd.service

 

Установка FreePBX 14

cd /usr/src/
tar xvf freepbx-14.0-latest.tgz
cd freepbx
./start_asterisk start

Информер3: Если в консоли выведено сообщение Asterisk Started, значит все корректно и можно продолжать установку.

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

./install

Далее появятся различные запросы на внесение параметров установки — в квадратных скобках даны параметры по-умолчанию, почти на всех параметрах можно нажимать Enter, кроме запроса на root пароль к базе данных, в данном параметре нужно указать пароль, который был установлен на пользователя root базы данных при конфигурировании.

 

На этом установка завершена, далее следует создать юнит для автозагрузки FreePBX.

Для этого в директории /etc/systemd/system/ необходимо создать файл freepbx.service со следующим содержимым:
[Unit]

Description=FreePBX VoIP Server
After=mariadb.service
 
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/fwconsole start -q
ExecStop=/usr/sbin/fwconsole stop -q
 
[Install]
WantedBy=multi-user.target
 

Теперь можно управлять запуском freepbx как любым сервисом systemd

Запуск командой: systemctl start freepbx

Добавление в автозагрузку: enable freepbx.service

Для проверки статуса сервиса необходимо выполнить команду: systemctl enable freepbx.service

 

Теперь можно залогиниься на FreePBX 14 через веб-интерфейс, достаточно в браузере ввести ip-адрес сервера

После логина система выдаст страницу на которой необходимо будет внести данные об админимтраторе веб-интерфейса.

После внесения данных под указанным пользователем можно логиниться во FreePBX 14

 

 

 

Кейсы внедрения
Asterisk от VoxLink
Узнайте, какие крупные компании уже используют Asterisk в работе.
Скачать
Подписаться
Уведомить о
guest
1 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Константин
Константин
24.03.2020 10:40

==>Для проверки статуса сервиса необходимо выполнить команду: systemctl enable freepbx.service
Возможно я не прав, но наверное «systemctl status freepbx.service»?

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

Я - Кондрашин Игорь, менеджер компании 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 сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.