Инструкция по установке версии 1.3.X на старый дистрибутив FreePBX Distro SNG7-PBX-64bit и другие ОС с php5
Оглавление:
3. Установка базовой системы Pbxunit и отчета «записи разговоров»
4. Установка модуля «Авто-обзвон»
5. Установка модуля «Автоматические опросы»
6. Установка модуля «Генерация речи»
0. Безопасность установки
После установки измените пароль пользователя admin в web-интерфейсе pbxunit.
1. Системные требования
ОС: Linux (Python 3.X, база данных MySQL или MariaDB, web-сервер Apache и PHP5)
В FreePBX должны быть установлены модули: Recordings (Записи), IVR (Интерактивное меню), Queues (Очереди)
Протестировано на: FreePBX v14, FreePBX v15, FreePBX v16
Протестировано на дистрибутивах: FreePBX Distro SNG7-PBX-64bit
2. Проект защищен Ioncube, необходимо установить загрузчик для web-сервера Apache
Скачайте загрузчик Ioncube для вашей операционной системы по ссылке: https://www.ioncube.com/loaders.php
Пример:
wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
Распакуйте архив, пример:
mkdir /usr/local/lib/php5
tar xvf ioncube_loaders_lin_x86-64.tar.gz -C /usr/local/lib/php5
Для того, чтобы узнать версию PHP, выполните в операционной системе команду:
php -v
Откройте конфигурационный файл php.ini
Пример для FreePBX Distro:
nano /etc/php.ini
Добавьте строку в секцию [PHP], первой строкой в секции. Укажите модуль для вашей версии php, пример для версии PHP 5.6:
zend_extension = /usr/local/lib/php5/ioncube/ioncube_loader_lin_5.6.so
Перезапустите веб-сервер
Пример для FreePBX Distro:
service httpd restart
Убедитесь что модуль Ioncube загружен и появился в списке:
php -v
3. Установка базовой системы Pbxunit и отчета «записи разговоров»
Установите дистрибутив ОС FreePBX Distro SNG7-PBX-64bit: https://www.freepbx.org/downloads/
Во время установки ОС, система попросит вас ввести пароль пользователя root. Запомните его.
Произведите базовую настройку FreePBX, заведите транки и хотя бы 1 маршрут для исходящей связи.
Зайдите под пользователем root в командную оболочку ОС сервера.
Перейдите в домашний каталог и создайте директорию для установочный файлов:
cd ~
mkdir src
cd src
Скачайте архив с последней версией Pbxunit для PHP 5.
Русская версия (язык интерфейса и переменные заранее установлены для русского языка):
wget https://pbxunit.com/downloads/pbxunit-php5-ru-last.tar.gz
Английская версия:
wget https://pbxunit.com/downloads/pbxunit-php5-en-last.tar.gz
Распакуйте архив:
tar xvf pbxunit-php5-ru-last.tar.gz
Узнайте пароль от пользователя базы данных MySQL - freepbxuser.
Посмотреть имя пользователя и пароль, можно в конфигурационном файле freepbx:
cat /etc/freepbx.conf
Пароль содержится в переменной $amp_conf['AMPDBPASS']
Перейдите в каталог database из распакованного архива. Введите команду, для импорта таблиц в БД asterisk:
cd ~/src/pbxunit/database
mysql -u freepbxuser -p -D asterisk < asterisk.sql
Введите пароль БД пользователя freepbxuser.
Для ускорения работы отчетов желательно добавить недостающие индексы в таблицу cdr, для базы данных asteriskcdrdb. Внимание — если в вашей системе уже содержится большой объем статистики, в таблице cdr, добавление индексов может надолго заблокировать таблицу, запускайте команду с остановленным сервисом Asterisk.
Введите команду, для создания индексов в БД asteriskcdrdb:
mysql -u freepbxuser -p -D asteriskcdrdb < asteriskcdrdb_indexes.sql
Введите пароль БД пользователя freepbxuser.
Перейдите в каталог web, из распакованного архива. Скопируйте каталог pbxunit в директорию web-сервера:
cd ~/src/pbxunit/web
cp -r pbxunit/ /var/www/html/
Отредактируйте конфигурационный файл Pbxunit:
nano /var/www/html/pbxunit/config.php
Введите пароль от пользователя freebxuser, базы данных MySQL:
Для БД asterisk, пример:
$_AST_CONFIG['DBPass'] = 'пароль БД для freepbxuser';
Для БД asteriskcdrdb, пример:
$_AST_CONFIG['DBPassCDR'] = 'пароль БД для freepbxuser';
Пароль пользователя БД freepbxuser, вы можете посмотреть в конфигурационном файле FreePBX:
cat /etc/freepbx.conf
Запустите команду для изменения прав доступа на скрипты:
fwconsole chown
Полное описание конфигурационного файла: Конфигурационный файл web-интерфейса
Теперь вы можете войти под учетной записью Администратора в web-интерфейс по адресу:
http://<IP-адрес сервера>/pbxunit/
Логин по умолчанию: admin пароль: pbxunit
В разделе "Администрирование -> Модули и лицензии -> Редактировать название компании" введите название вашей компании и сохраните.
4. Установка модуля «Авто-обзвон»
Выполните команду, для создания символической ссылки для Python 3:
ln -s /bin/python3.6 /bin/python3
Установите библиотеку Python для работы с MySQL:
yum install python36u-pymysql
Установите менеджер пакетов pip:
yum install python36u-pip
Обновите pip:
pip3.6 install --upgrade pip
Установите библиотеку pyst для Python:
pip3.6 install pyst
Перейдите в установочный каталог Pbxunit:
cd ~/src/pbxunit
Скопируйте каталог с конфигурационным файлом в каталог /etc:
cp -r configs/pbxunit /etc/
Пароль пользователя БД freepbxuser, вы можете посмотреть в конфигурационном файле FreePBX:
cat /etc/freepbx.conf
Узнайте пароль пользователя admin для Asterisk Manager Interface, посмотреть его можно в конфиге /etc/asterisk/manager.conf:
cat /etc/asterisk/manager.conf
Пароль находится в секции [admin], параметр "secret".
Отредактируйте конфигурационный файл:
nano /etc/pbxunit/pbxunit.conf
В разделе [mysql] пропишите пароль пользователя MySQL freepbxuser, пример:
db_user=freepbxuser
db_pass=пароль пользователя БД freepbxuser
В разделе [ami] пропишите реквизиты от пользователя admin для Asterisk Manager Interface:
user=admin
pass=пароль пользователя ami
Укажите в разделе [path] путь для директории с звуковыми файлами вместе с кодом языка, например для русского:
sounds=/var/lib/asterisk/sounds/ru
Выбранный язык должен быть скачан в FreePBX, проверить можно на вкладке Admin -> Sound Languages в FreePBX
Полное описание конфигурационного файла: Конфигурационный файл сервисов
Скопируйте библиотеки Python в каталог библиотек python вашей версии:
cp -r python-lib/pbxunit/ /usr/lib/python3.6/site-packages/
Перейдите в каталог modules/autocall/ из установочного архива:
cd ~/src/pbxunit/modules/autocall
Введите команду, для дополнительных полей в таблице cdr из БД asteriskcdrdb:
Внимание — если в вашей системе уже содержится большой объем статистики, в таблице cdr, добавление индексов может надолго заблокировать таблицу, запускайте команду с остановленным сервисом Asterisk.
mysql -u freepbxuser -p -D asteriskcdrdb < database/asteriskcdrdb.sql
Введите пароль БД пользователя freepbxuser.
Файлы из каталога modules/autocall/agi-bin скопируйте в каталог agi-bin Asterisk:
cp agi-bin/* /var/lib/asterisk/agi-bin/
Файлы запуска сервисов из modules/init.d скопируйте в каталог /etc/init.d:
cp init.d/* /etc/init.d/
Сделайте файлы исполняемыми:
chmod a+x /etc/init.d/pbxu_*
Добавьте содержимое файла dialplan/extensions_custom.conf в /etc/asterisk/extensions_custom.conf
cat dialplan/extensions_custom.conf >> /etc/asterisk/extensions_custom.conf
В случае необходимости, отредактируйте конфиг /etc/asterisk/extensions_custom.conf. В секции [pbxu-autocall-dial] измените язык канала на необходимый, пример:
exten => _.,n,Set(CHANNEL(language)=ru)
В секции [macro-pbxu-autocall] вы можете отключить запись статистики CDR при авто-обзвоне, для этого раскомментируйте строку
#exten => s,n,NoCDR()
При отключении записи в CDR — в отчетах поле «Длительность» отображаться не будет.
Перезагрузите план набора Asterisk:
asterisk -x 'dialplan reload'
Добавьте сервисы в автозагрузку, пример:
nano /etc/rc.local
Добавьте строки:
/etc/init.d/pbxu_queue_autocall.py restart
/etc/init.d/pbxu_start_autocall.py restart
Установите права на выполнение для rc.local:
chmod a+x /etc/rc.d/rc.local
Запустите команду для изменения прав доступа на скрипты:
fwconsole chown
Запустите сервисы:
/etc/init.d/pbxu_queue_autocall.py start
/etc/init.d/pbxu_start_autocall.py start
Для импорта больших файлов с заданиями, вам может понадобиться редактирование файла php.ini в вашей ОС.
Отредактируйте файл:
nano /etc/php.ini
Увеличить лимит на загрузку данных, к примеру до 50 МБ. Найдите и отредактируйте переменную post_max_size в /etc/php.ini
post_max_size = 50M
После изменений в php.ini - перезапустите web-сервер:
service httpd restart
5. Установка модуля «Автоматические опросы»
Предварительно у вас должен быть установлен модуль «Авто-обзвон».
Перейдите в каталог modules/autopolls/ из установочного архива:
cd ~/src/pbxunit/modules/autopolls
Файлы из каталога autopolls/agi-bin скопируйте в каталог agi-bin Asterisk:
cp agi-bin/* /var/lib/asterisk/agi-bin/
Скопируйте содержимое файла dialplan/extensions_custom.conf в /etc/asterisk/extensions_custom.conf
cat dialplan/extensions_custom.conf >> /etc/asterisk/extensions_custom.conf
Перезагрузите план набора Asterisk:
asterisk -x 'dialplan reload'
Запустите команду для изменения прав доступа на скрипты:
fwconsole chown
6. Установка модуля «Генерация речи»
Amazon Polly
Установите python-библиотеку boto3 для работы Amazon Polly:
pip3.6 install boto3
Yandex Cloud Speechkit
Установите библиотеку requests:
pip3.6 install requests
Установите пакет для конвертации из формата ogg для Yandex Cloud Speechkit:
Утилита из него должна находиться по пути: /usr/bin/avconv
Для 64-битного дистрибутива FreePBX Distro 16 вы можете скопировать скомпилированный файл из дистрибутива pbxunit:
cd ~/src/pbxunit/
cp opt/x86_64/avconv /usr/bin/
chmod a+x /usr/bin/avconv