Freepbx 15 установка и настройка centos 7
Настоящая инструкция описывает подробный процесс установки панели управления FreePBX версии 15 для IP-АТС Asterisk версии 16, работающей под управлением ОС CentOS 8, а также выполнение общесистемных настроек для обеспечения безопасности и надежной работы.
Установка Asterisk v16 описана в отдельной статье.
2. Установка и обновление системных пакетов и зависимостей
Установите необходимые системные пакеты, отсутствующие в базовом дистрибутиве.
3. Отключение SELinux
Поскольку FreePBX не работает корректно cо службой SELinux, ее следует отключить путем изменения параметра SELINUX в конфигурационном файле /etc/selinux/config на значение disabled :
Обновите и перезагрузите систему:
Проверьте состояние SELinux
SELinux status: disabled
4. Запуск и проверка работы Asterisk
Запустите Asterisk штатным образом и проверьте его состояние:
Примерный ожидаемый вывод:
Проверьте подключение к консоли управления Asterisk:
Проверка работы Asterisk
5. Подготовка к инсталляции FreePBX
5.1. Запуск и проверка MariaDB
Запустите СУБД Maria DB:
ps -ef | grep maria
Примерный ожидаемый вывод:
5.2. Настройка, запуск и проверка Apache
Внесите правки в конфигурационные файлы Apache:
Запустите web-сервер Apache:
Примерный ожидаемый вывод:
5.3. Установка пакета NodeJS
Загрузите и установите NodeJS:
5.4. Корректировка владельца процессов PHP-FPM
5.5. Запуск скрипта безопасной работы MySQL
В ходе интерактивной работы скрипта ответьте на вопросы следующим образом:
5.6. Замена драйвера ODBC
Драйвер ODBC, входящий в состав дистрибутива Asterisk, некорректно поддерживает кодировку UTF-8, что приводит к неправильному отображению кириллицы в БД CDR. Для исправления данной проблемы необходимо заменить стандартный драйвер (UNICODE) на драйвер ANSI.
Загрузите, установите и активируйте yum-репозиторий MySQL:
Установите корректную версию драйвера ODBC из репозитория MySQL community:
yum -y install --enablerepo=mysql80-community mysql-connector-odbc
Отредактируйте файл /etc/yum.repos.d/mysql-community.repo
Найдите в указанном файле секцию [mysql-connectors-community]
Добавьте в конец данной секции следующую строку:
Убедитесь, что для всех остальных секций, присутствующих в файле, установлено значение enabled=0
Данная корректировка позволит избежать нежелательного обновления сервера БД при обновлении системы.
Замена драйвера ODBC
Проверьте наличие строк в файле /etc/odbcinst.ini
В случае отсутствия данных строк, следует загрузить библиотеку libmyodbc X a.so и добавить указанные выше строки вручную.
В контексте данного пункта X – номер версии, x – номер подверсии коннектора ODBC.
5.7. Задание директории для записей разговоров
Измените директорию, в которой будут храниться записи разговоров:
5.8. Настройка автоматического удаления записей вызовов
Запустите редактор файла crontab:
Добавьте в файл следующие строки:
6. Установка и запуск FreePBX
Загрузите, распакуйте и установите FreePBX:
Ожидаемый вывод по завершении установки:
You have successfully installed FreePBX
6.2. Задание драйвера ODBC для БД CDR
Если указанная ниже секция в файле /etc/odbc.ini отсутствует, добавьте ее. Если присутствует, проверьте параметры на соответствие приведенным ниже и скорректируйте в случае отличия:
Значения X , x см. в разделе 5.6
6.3. Загрузка, настройка, обновление системных модулей FreePBX
6.4. Запуск FreePBX
Создайте учетную запись администратора, перейдите в раздел "FreePBX Administration".
Окно, подобное приведенному ниже, свидетельствует о корректной работе сервиса:
Панель управления FreePBX
В рамках статьи будет рассмотрена сборка новейших на момент написания статьи релизов 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
Далее следует обновить систему командой yum update
После завершения обновления необходимо перезагрузить сервер командой reboot
Чтобы убедиться что selinux отключен необходимо выполнить команду sestatus — она выводит состояние selinux
2. Установка зависимостей и необходимых утилит
Сначала необходимо создать пользователя asterisk:
adduser asterisk -m
Перед установкой непосредсвенно Asterisk+FreePBX, необходимо установить такие утилиты как:
Групповая установка базовых необходимых инструментов выполняется командами:
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
Установка 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:
После этого установить в файле /etc/php.ini параметры:
Запуск веб-сервера и помещение его в автозапуск
Установка остальных зависимостей:
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, необходимо выполнить следующие команды:
Скачивание необходимых пакетов исходников
Перейти в раздел /usr/src
Установка SRTP (если необходимо использовать)
tar zxvf srtp-1.4.4.tgz
Далее необходимо заменить в файле /usr/src/srtp/test/rtpw_test.sh строчку RTPW=rtpw на строчку RTPW=./rtpw
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
make
make install
make config
ldconfig
Необходимо убрать Asterisk из автозагрузки командой: chkconfig asterisk off, так как в дальнейшем автозапуск будет осуществляться через оснастку frepbx (fwconsole)
Установка FreePBX 14
cd /usr/src/
tar xvf freepbx-14.0-latest.tgz
cd freepbx
./start_asterisk start
Для продолжения установки необходимо запустить скрипт командой
Далее появятся различные запросы на внесение параметров установки — в квадратных скобках даны параметры по-умолчанию, почти на всех параметрах можно нажимать 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
Теперь можно управлять запуском freepbx как любым сервисом systemd
Запуск командой: systemctl start freepbx
Добавление в автозагрузку: enable freepbx.service
Для проверки статуса сервиса необходимо выполнить команду: systemctl enable freepbx.service
Теперь можно залогиниься на FreePBX 14 через веб-интерфейс, достаточно в браузере ввести ip-адрес сервера
После логина система выдаст страницу на которой необходимо будет внести данные об админимтраторе веб-интерфейса.
После внесения данных под указанным пользователем можно логиниться во FreePBX 14
Asterisk является самой популярной и широко распространенной платформой PBX с открытым исходным кодом, которая обеспечивает работу систем IP PBX, серверов конференций и шлюзов VoIP. Он используется частными лицами, малыми предприятиями, крупными предприятиями и правительствами по всему миру.
Функции Asterisk включают голосовую почту, музыку в режиме удержания, конференц-связь, очередь вызовов, запись вызовов, интерактивный голосовой ответ и многое другое.
Прежде чем продолжить этот урок, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo .
Обновите систему CentOS и установите инструменты разработки, необходимые для компиляции исходного кода Asterisk:
Отключить Селинукс
Если SELinux установлен в enforcing режим, Asterisk не будет работать правильно.
Чтобы отключить функции безопасности SELinux, откройте /etc/selinux/config файл и установите SELINUX=disabled
Сохраните файл и перезагрузите систему CentOS:
Как только машина загрузится, убедитесь, что getenforce команда возвращает Disabled :
Мы собираемся скачать исходный код Asterisk в /usr/src каталоге, который является общим местом для размещения исходных файлов.
Перейдите в /usr/src каталог, набрав:
Загрузите последнюю версию Asterisk 15 с помощью следующей команды wget :
После завершения загрузки извлеките загруженный файл, используя следующую команду:
Прежде чем продолжить выполнение следующих шагов, убедитесь, что вы перешли в исходный каталог Asterisk, набрав:
Установите Asterisk Dependencies
Загрузите источники MP3, необходимые для сборки модуля MP3 и использования файлов MP3 на Asterisk:
Далее установите все недостающие зависимости с помощью install_prereq скрипта:
Установка Аsterisk
configure Скрипт выполнит ряд проверок , чтобы убедиться , что все зависимости, которые необходимы сборки и установки процесса присутствуют, запустите скрипт, набрав:
После успешного завершения вы увидите следующий вывод:
Следующим шагом является выбор модулей, которые вы хотите скомпилировать и установить.
Большинство модулей уже включены. Войдите в систему Menuselect, набрав:
Мы уже загрузили исходные файлы MP3, и теперь нам нужно указать Asterisk для сборки модуля MP3, выбрав format_mp3 :
Когда вы закончите, нажмите, F12 чтобы сохранить и выйти, или переключитесь на Save and Exit кнопку и нажмите Enter .
Запустите процесс компиляции с помощью make команды:
Сборка может занять некоторое время, в зависимости от вашей системы. Вы можете изменить -j флаг в соответствии с количеством ядер вашего процессора.
Следующим шагом является установка Asterisk и его модулей, набрав:
Теперь, когда Asterisk установлен, нам нужно установить примеры файлов конфигурации.
Установите либо общие файлы конфигурации со справочной документацией, набрав:
Или установите основные файлы конфигурации:
Последний шаг - установить скрипт инициализации Asterisk, набрав:
Наконец, запустите ldconfig для обновления кеша общих библиотек:
Создать пользователя Asterisk
По умолчанию Asterisk работает от имени пользователя root. По соображениям безопасности мы создадим нового системного пользователя и настроим Asterisk для запуска в качестве вновь созданного пользователя.
Чтобы создать нового системного пользователя с именем, asterisk выполните следующую команду:
Чтобы настроить Asterisk для запуска от имени asterisk пользователя, откройте /etc/sysconfig/asterisk файл и раскомментируйте следующие две строки:
Добавьте asterisk пользователя в dialout и audio группы:
Нам также необходимо изменить владельца и права доступа ко всем файлам и каталогам asterisk , чтобы Asterisk мог получить доступ к этим файлам:
Запустить Asterisk
Теперь, когда мы все настроены, мы можем запустить службу Asterisk с помощью следующей команды:
Чтобы убедиться, что Asterisk работает, подключитесь к интерфейсу командной строки Asterisk (CLI), введя:
Вы увидите приглашение Asterisk CLI по умолчанию:
Последний шаг - запуск службы Asterisk при загрузке с:
Настройте правила брандмауэра
Теперь, когда Asterisk установлен и работает, вам нужно настроить брандмауэр, чтобы разрешить трафик через определенные порты Asterisk.
Если в вашей системе не включен брандмауэр, вы можете пропустить этот раздел.Откройте выбранный вами текстовый редактор и создайте следующий сервис Firewalld:
Сохраните файл и примените новые правила брандмауэра, набрав:
Наконец, проверьте, успешно ли применяются новые правила брандмауэра:
Не стесняйтесь настроить брандмауэр в соответствии с вашими потребностями.
Вывод
В этом руководстве мы показали, как установить последнюю версию Asterisk из исходного кода в вашей системе CentOS.
Теперь вы должны проверить документацию Asterisk и узнать больше о том, как настроить и использовать Asterisk.
Функции Asterisk включают голосовую почту, музыку в режиме ожидания, конференц-связь, постановку вызовов в очередь, запись разговоров, интерактивный голосовой ответ и многое другое.
Это руководство проведет вас через шаги, необходимые для установки Asterisk 15 на CentOS 7.
Подготовка
Прежде чем продолжить это руководство, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo .
Обновите свою систему CentOS и установите инструменты разработки, необходимые для компиляции исходного кода Asterisk:
Отключить Selinux
Если SELinux установлен в enforcing режим, Asterisk не будет работать правильно.
Чтобы отключить функции безопасности SELinux, откройте файл /etc/selinux/config и установите SELINUX=disabled
Сохраните файл и перезагрузите систему CentOS с помощью:
После загрузки машины убедитесь, что команда getenforce возвращает значение Disabled :
Мы собираемся загрузить исходный код Asterisk в каталог /usr/src который является обычным местом для размещения исходных файлов.
Перейдите в каталог /usr/src , набрав:
Загрузите последнюю версию Asterisk 15 с помощью следующей команды wget :
После завершения загрузки извлеките загруженный файл с помощью следующей команды:
Прежде чем перейти к следующим шагам, убедитесь, что вы перешли в исходный каталог Asterisk, набрав:
Установить зависимости Asterisk
Загрузите исходники MP3, которые необходимы для создания модуля MP3 и использования файлов MP3 в Asterisk:
Затем установите все недостающие зависимости с помощью скрипта install_prereq :
Установить Asterisk
Сценарий configure выполнит ряд проверок, чтобы убедиться, что все зависимости, которые требуются для процесса сборки и установки, присутствуют, запустите сценарий, набрав:
После успешного завершения вы увидите следующий результат:
Следующим шагом является выбор модулей, которые вы хотите скомпилировать и установить.
Большинство модулей уже включены. Войдите в систему Menuselect, набрав:
Мы уже скачали исходные файлы MP3, и теперь нам нужно указать Asterisk создать модуль MP3, выбрав format_mp3 :
Когда вы закончите, нажмите F12 чтобы сохранить и выйти, или переключитесь на кнопку « Save and Exit и нажмите Enter .
Запустите процесс компиляции с помощью команды make :
Для завершения сборки может потребоваться некоторое время, в зависимости от вашей системы. Вы можете изменить флаг -j соответствии с количеством ядер вашего процессора.Следующим шагом будет установка Asterisk и его модулей, набрав:
Теперь, когда Asterisk установлен, нам нужно установить образцы файлов конфигурации.
Установите либо общие файлы конфигурации со справочной документацией, набрав:
Или установите базовые файлы конфигурации АТС:
Наконец, запустите ldconfig чтобы обновить кеш разделяемых библиотек:
Создать пользователя Asterisk
По умолчанию Asterisk запускается от имени пользователя root. По соображениям безопасности мы создадим нового системного пользователя и настроим Asterisk для работы от имени вновь созданного пользователя.
Чтобы создать нового системного пользователя с именем asterisk выполните следующую команду:
Чтобы настроить Asterisk для запуска от имени пользователя asterisk , откройте файл /etc/sysconfig/asterisk и раскомментируйте следующие две строки:
Добавьте пользователя asterisk в группы dialout и audio :
Нам также необходимо изменить владельца и разрешения для всех файлов и каталогов asterisk, чтобы пользователь asterisk мог получить доступ к этим файлам:
Запустить Asterisk
Теперь, когда мы все настроены, мы можем запустить службу Asterisk с помощью следующей команды:
Чтобы убедиться, что Asterisk работает, подключитесь к интерфейсу командной строки Asterisk (CLI), набрав:
Вы увидите приглашение Asterisk CLI по умолчанию:
Настройте правила брандмауэра
Теперь, когда Asterisk установлен и запущен, вам необходимо настроить брандмауэр, чтобы разрешить трафик через определенные порты Asterisk.
Если в вашей системе не включен брандмауэр, вы можете пропустить этот раздел.Откройте нужный текстовый редактор и создайте следующую службу Firewalld:
Сохраните файл и примените новые правила брандмауэра, набрав:
Наконец, проверьте, успешно ли применяются новые правила брандмауэра:
Не стесняйтесь настраивать брандмауэр в соответствии с вашими потребностями.
Выводы
В этом руководстве мы показали вам, как установить последнюю версию Asterisk из исходного кода в вашей системе CentOS.
Теперь вам следует проверить документацию по Asterisk и узнать больше о том, как настроить и использовать Asterisk.
Если вы столкнулись с проблемой или хотите оставить отзыв, оставьте комментарий ниже.
Все большую популярность набирает современная телефонная связь по протоколу ip в офисах сферы малого и среднего бизнеса. Установка asterisk и панели управления freepbx на сервер под управлением CentOS 7 тема моего очередного повествования. Мы последовательно выполним все шаги по конфигурированию и сборке исходных текстов устанавливаемых продуктов.
- 1 Введение
- 2 Подготовка системы
- 3 Установка Asterisk
- 4 Установка Freepbx
- 5 Автозагрузка Freepbx
- 6 Заключение
- 7 Видео
- 8 Дополнительные материалы по CentOS
Введение
Лично я больше люблю настраивать asterisk с помощью freepbx, нежели ручной правкой конфигов. Их очень много, они объемные, работать с ними не удобно. Это практически единственный софт в линуксе, который я настраиваю через GIU, во всех остальных случаях я предпочитаю консоль.
Подготовка системы
Я рекомендую ознакомиться с моим материалом на тему первоначальной настройки centos 7. Многие вопросы там рассмотрены подробнее, здесь же я не буду на них задерживаться, просто выполню необходимые команды.
Прежде чем мы начнем устанавливать asterisk, нам надо выполнить целый ряд подготовительных действий. Первым делом отключаем selinux. Для этого открываем файл:
и устанавливаем значение SELINUX=disabled. После этого применяем настройку без перезагрузки сервера:
Рекомендация по отключению selinux дается в официальной инструкции по установке freepbx, так как это может привести к нарушению процесса инсталляции.
Дальше обновляем систему:
Устанавливаем необходимые пакеты для работы сервера voip:
Устанавливаем компонент pear:
Теперь надо настроить iptabes. Подробно вопрос настройки firewall я рассмотрел отдельно. Там можно узнать все нюансы. Здесь же я прото скажу, что для начала нам нужно открыть 80-й порт, чтобы мы смогли работать с веб интерфейсом:
Для полноценной работы астериск, нужно открыть следующие порты:
Для работы freepbx необходима mariadb. Это популярный форк mysql, который по-умолчанию предлагается в качестве mysql сервера в CentOS 7. Оба эти сервера имеют полную совместимость и могут в любой момент заменять друг друга. Запустим базу и добавим в автозагрузку:
При первоначальной конфигурации mariadb рекомендуется запустить скрипт mysql_secure_installation. Сделаем это:
Подробнее о работе этого скрипта и вообще настройке mariadb можно прочитать в материале на тему web-сервера на centos 7.
И добавляем в автозагрузку:
Теперь добавим пользователя, под которым будет работать астериск:
Установка Asterisk
Приступаем непосредственно к установке asterisk. Она состоит из нескольких этапов. Сначала мы собираем и устанавливаем все, что нужно для полноценной работы астериск, и в конце собираем его. Первым делом скачиваем необходимые компоненты:
Если вы не используете аппаратные платы расширения для сервера asterisk, то вам dahdi и libpri не нужны. Не скачивайте и не собирайте их.Если получаете ошибку:
То тут 2 варианта:
- Вы сделали обновление системы и не перезагрузили сервер. У вас отличаются значения ядра в выводе команды uname -r и реальным ядром системы в /usr/src/kernels. В таком случае вам нужно просто перезагрузить сервер.
- Если дело не в обновлении и разных версиях ядра, то сделайте символьную ссылку на kernel в папке с dahdi:
Если все проходит без ошибок, то продолжаем сборку:
И наконец компилируем и устанавливаем asterisk:
Появляется псевдографическая менюшка с выбором модулей. Все необходимые модули уже включен по-умолчанию. Добавим только поддержку mp3, либо, если вам необходимо app_mysql и cdr_mysql:
Нажимаем Save & Exit и продолжаем установку:
Устанавливаем звуки в хорошем качестве. По-умолчанию астериск ставит звуки низкого качества, чтобы система успешно работала на различном оборудовании. К примеру, на Rasberry Pi. Но на полноценный сервер мы можем установить звуки 8khz wav и G722 High Definition Wideband:
Выставляем необходимые права на файлы и каталоги:
На этом установка непосредственно астериска закончена. Уже сейчас им можно полноценно пользоваться, настраивая через консоль и файлы конфигурации. Все компоненты для этого собраны, установлены и готовы к работе.
Установка Freepbx
Изменяем параметр AllowOverride на All:
Перезапускаем веб сервер:
Скачиваем и устанавливаем freepbx:
Если все прошло без ошибок, то в завершении установки увидите:
Создаем пользователя и заходим в web интерфейс астериска:
Вот и все, дальше можно заниматься конфигурированием.
Автозагрузка Freepbx
Для того, чтобы панель управления Freepbx автоматически запускалась при загрузке системы, необходимо сделать startup скрипт для systemd. Для этого создаем файл /etc/systemd/system/freepbx.service следующего содержания.
После этого запускаем freepbx и добавляем в автозагрузку.
Проверяем, запустилась ли панель.
Все в порядке. Для полной проверки автозапуска freepbx, рекомендую сразу же перезагрузить сервер, чтобы убедиться в том, что она запускается корректно при старте сервера.
Заключение
В данной инструкции мы аккуратно собрали все необходимые компоненты для настройки связки asterisk+freepbx на сервере CentOS 7. Скачали последние версии софта, собрали его из исходников и установили. Таким образом мы полностью подготовили сервер к конфигурированию телефонии. Если сервер будет смотреть в интернет, нужно обязательно не забыть аккуратно настроить firewall и хотя бы fail2ban для обеспечения минимальной, хотя в большинстве случаев и вполне достаточной, защиты.
Примером настройки asterisk с нуля может служить указанная статья. Ее можно взять за основу для целостного понимания базового функционала, который можно реализовать с помощью астериск.
Видео
В завершение видео со всем процессом установки:
Вам также может понравиться
УЦ 1 ИС ГУЦ Невозможно обнаружить поставщика этого сертификата
Установка и настройка Zabbix 3.4 на CentOS 7
Читайте также: