Инструкция по установке версии 1.3.X на старый дистрибутив FreePBX Distro SNG7-PBX-64bit и другие ОС с php5

 

Оглавление:

0. Безопасность установки

1. Системные требования

2. Установка Ioncube

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