Инструкция по установке версии 1.2.X
Оглавление:
3. Установка базовой системы Pbxunit и отчета «записи разговоров»
4. Установка модуля «Автообзвон»
5. Установка модуля «Автоматические опросы»
6. Установка модуля «Генерация речи»
0. Безопасность установки
После установки измените пароль пользователя admin в web-интерфейсе pbxunit, а также проверьте ключ API в конфигурационном файл web-интерфейса значение переменной $_AST_CONFIG['APIKey'] = 'ваш ключ';
должна быть уникальной или начиная с версии 1.2.10 - может быть пустой.
1. Системные требования
ОС: Linux (Python 2.X, база данных MySQL или MariaDB, web-сервер Apache и PHP5)
Asterisk: версия начиная от 1.8, до последней версии
FreePBX: версия начиная от 2.10, до последней версии
Перед настройкой Pbxunit у вас должны быть установлены и настроены Asterisk и FreePBX.
В FreePBX должны быть установлены модули: Recordings (Записи), IVR (Интерактивное меню), Queues (Очереди)
Протестировано на: FreePBX v12, FreePBX v13, FreePBX v14
Протестировано на дистрибутивах: FreePBX Distro SNG7-FPBX-64bit, FreePBX Distro 10.13.66-64bit, Debian 8
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
Пример для Debian Linux:
nano /etc/php5/apache2/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
Пример для Debian Linux:
service apache2 restart
Убедитесь что модуль загружен и появился в списке:
php -v
3. Установка базовой системы Pbxunit и отчета «записи разговоров»
Зайдите под пользователем root в командную оболочку вашей ОС.
Перейдите в домашний каталог и создайте директорию для установочный файлов:
cd ~
mkdir src
cd src
Скачайте архив с последней версией Pbxunit:
wget https://pbxunit.com/downloads/pbxunit-last.tar.gz
Распакуйте архив:
tar xvf pbxunit-last.tar.gz
Узнайте реквизиты от пользователя базы данных MySQL, у которого есть права на базы asterisk и asteriskcdrdb. Это пользователь root или пользователь заведенный для FreePBX.
Узнать имя пользователя и пароль, можно в конфигурационном файле freepbx:
cat /etc/freepbx.conf
Имя пользователя БД содержится в переменной $amp_conf['AMPDBUSER']
Пароль — в переменной $amp_conf['AMPDBPASS']
Перейдите в каталог database из распакованного архива. Введите команду, для импорта таблиц в БД asterisk:
cd ~/src/pbxunit/database
mysql -u <имя пользователя> -p -D asterisk < asterisk.sql
Введите пароль.
Для ускорения работы отчетов желательно добавить недостающие инедксы в таблицу cdr, для базы данных asteriskcdrdb. Внимание — если в вашей системе уже содержится большой объем статистики, в таблице cdr, добавление индексов может надолго заблокировать таблицу, запускайте команду с остановленным сервисом Asterisk.
Введите команду, для создания индексов в БД asteriskcdrdb:
mysql -u <имя пользователя> -p -D asteriskcdrdb < asteriskcdrdb_indexes.sql
Введите пароль.
Перейдите в каталог web, из распакованного архива. Скопируйте каталог pbxunit в директорию web-сервера:
cd ~/src/pbxunit/web
cp -r pbxunit/ /var/www/html/
Отредактируйте конфигурационный файл Pbxunit:
nano /var/www/html/pbxunit/config.php
Введите реквизиты от базы данных MySQL:
Для БД asterisk, пример:
$_AST_CONFIG['DBAddr'] = 'localhost';
$_AST_CONFIG['DBPort'] = 3306;
$_AST_CONFIG['DBName'] = 'asterisk';
$_AST_CONFIG['DBUser'] = 'freepbxuser';
$_AST_CONFIG['DBPass'] = 'password';
Для БД asteriskcdrdb, пример:
$_AST_CONFIG['DBAddrCDR'] = 'localhost';
$_AST_CONFIG['DBPortCDR'] = 3306;
$_AST_CONFIG['DBNameCDR'] = 'asteriskcdrdb';
$_AST_CONFIG['DBUserCDR'] = 'freepbxuser';
$_AST_CONFIG['DBPassCDR'] = 'password';
Логин и пароль БД вы можете посмотреть в конфигурационном файле FreePBX:
cat /etc/freepbx.conf
Полное описание конфигурационного файла: Конфигурационный файл web-интерфейса
Если вы хотите прослушивать записи разговоров через flash-плеер, необходимо создать символическую ссылку в web-каталоге pbxuint с именем monitor:
cd /var/www/html/pbxunit/
ln -s /var/spool/asterisk/monitor monitor
Внимание, по умолчанию будет разрешен просмотр всех файлов записей разговоров в web-каталоге, чтобы запретить просмотр каталога, создайте файл .htaccess в каталоге monitor:
cd /var/spool/asterisk/monitor
nano .htaccess
Вставьте содержимое: Options All -Indexes
Теперь вы можете войти под учетной записью Администратора в web-интерфейс по адресу:
http://<IP-адрес сервера>/pbxunit/
Логин по умолчанию: admin пароль: pbxunit
В разделе "Администрирование -> Модули и лицензии -> Редактировать название компании" введите название вашей компании и сохраните.
4. Установка модуля «Автообзвон»
Проверьте версию Python в вашей ОС.
Система Pbxunit работает с Python версии 2.X
python -V
Установите библиотеку Python для работы с MySQL.
Пример для FreePBX Distro:
yum install MySQL-python
Пример для Debian Linux:
apt-get install python-mysqldb
Установите библиотеку pyst2 для Python:
Примеры для установки через менеджер пакетов pip для Python
Установите менеджер пакетов pip.
Пример для FreePBX Distro:
yum install python2-pip
Пример для Debian Linux:
apt-get install python-pip
Установите библиотеку pyst2:
pip install 'pyst2'==0.5.0
Перейдите в установочный каталог Pbxunit:
cd ~/src/pbxunit
Скопируйте каталог с конфигурационным файлом в каталог /etc:
cp -r configs/pbxunit /etc/
Отредактируйте конфигурационный файл:
nano /etc/pbxunit/pbxunit.conf
В разделе [mysql] пропишите пользователя MySQL у которого есть права на базы asterisk и asteriskcdrdb, пример:
db_user=freepbxuser
db_pass=password
В разделе [ami] пропишите реквизиты от пользователя admin для Asterisk Manager Interface, посмотреть его можно в конфиге /etc/asterisk/manager.conf, пример:
user=admin
pass=amipassword
Для FreePBX версии 13 и выше укажите в разделе [path] путь для директории с звуковыми файлами вместе с кодом языка, например для русского:
sounds=/var/lib/asterisk/sounds/ru
для версий FreePBX младше 13, оставить по умолчанию:
sounds=/var/lib/asterisk/sounds
Полное описание конфигурационного файла: Конфигурационный файл сервисов
Скопируйте библиотеки Python в каталог библиотек python вашей версии, пример для версии python 2.7
Пример для FreePBX Distro:
cp -r python-lib/pbxunit/ /usr/lib/python2.7/site-packages/
Пример для Debian Linux:
cp -r python-lib/pbxunit/ /usr/lib/python2.7/
Перейдите в каталог modules/autocall/ из установочного архива:
cd ~/src/pbxunit/modules/autocall
Введите команду, для дополнительных полей в таблице cdr из БД asteriskcdrdb:
mysql -u <имя пользователя> -p -D asteriskcdrdb < database/asteriskcdrdb.sql
Введите пароль.
Файлы из каталога 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
В секции [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
Для FreePBX Distro, установите права на выполнение для 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 в вашей ОС.
Увеличить лимит на загрузку данных до 50 МБ:
post_max_size = 50M
После изменений в php.ini - перезапустите web-сервер.
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
Перезагрузите план набора Asterisk:
asterisk -x 'dialplan reload'
Запустите команду для изменения прав доступа на скрипты:
fwconsole chown
6. Установка модуля «Генерация речи»
Необходимые python-библиотеки:
для Google TTS - gTTs (https://github.com/pndurette/gTTS)
для Amazon Polly - boto3 (https://github.com/boto/boto3)
Для работы, в вашей ОС должно быть установлено приложение mpg123 - для конвертации файлов. Исполняемый файл должен находиться по пути: /usr/bin/mpg123
Примеры для установки через менеджер пакетов pip для Python
Установите менеджер пакетов pip.
Пример для FreePBX Distro:
yum install python2-pip
Обновите pip:
pip install pip --upgrade
Установите библиотеку requests с поддержкой SSL:
pip install 'requests[security]'
Установите python-библиотеку gTTs для работы Google TTS:
pip install bs4
pip install gtts-token
pip install gTTs
Последние gTTs некорректно устанавливаются через pip и встроенный инсталятор. Скачайте архив с страницы https://pypi.org/project/gTTS/#files и скопируйте библиотеку вручную:
cp -r gTTS-2.0.3/gtts/ /usr/lib/python2.7/site-packages/
Также необходимо своевременно обновлять пакет gtts-token, т.к. системный ключ доступа к сервисам google может измениться
pip install gtts-token --upgrade
Установите python-библиотеку boto3 для работы Amazon Polly:
pip install boto3
Установите пакет для конвертации из формата ogg для Yandex Cloud Speechkit:
Утилита из него должна находиться по пути: /usr/bin/avconv
Пример для Debian Linux:
apt-get install libav-tools