Установка приложения TELEFUM24 на сервер с Asterisk/FreePBX

Материал из TelefUM 24
Перейти к: навигация, поиск

Настройка firewall

Если используете IPTables:
Для АТС с публичным IP адресом в firewall-е необходимо открыть доступ к портам 9000 и 9500 для серверов Telefum 24 - IP адрес 5.200.55.23 и 176.122.20.120

iptables -I INPUT -p tcp -s 46.254.17.42 --dport 9000 -j ACCEPT
iptables -I INPUT -p tcp -s 46.254.17.42 --dport 9500 -j ACCEPT
iptables -I INPUT -s 176.122.20.120 -p tcp -m tcp --dport 9500 -j ACCEPT
iptables -I INPUT -s 176.122.20.120 -p tcp -m tcp --dport 9000 -j ACCEPT

service iptables save
iptables -nvL

Если используете FarewallD:

firewall-cmd --permanent --zone=public --add-rich-rule='
  rule family="ipv4"
  source address="5.200.55.23"
  port protocol="tcp" port="9500" accept'

firewall-cmd --permanent --zone=public --add-rich-rule='
  rule family="ipv4"
  source address="5.200.55.23"
  port protocol="tcp" port="9000" accept'


firewall-cmd --permanent --zone=public --add-rich-rule='
  rule family="ipv4"
  source address="176.122.20.120"
  port protocol="tcp" port="9500" accept'

firewall-cmd --permanent --zone=public --add-rich-rule='
  rule family="ipv4"
  source address="176.122.20.120"
  port protocol="tcp" port="9000" accept'


firewall-cmd --reload

Просмотрите файл зоны public, чтобы проверить конфигурацию XML:

cat /etc/firewalld/zones/public.xml


Если АТС находится за NAT, то на нем необходимо выполнить проброс портов:

$EXTIP = 123.123.123.123 - внешний IP
$IP-PBX = 192.168.1.254 - внутренний IP АТС
iptables -t nat -A PREROUTING -p tcp -s 5.200.55.23 -d $EXTIP --dport 9000 -j DNAT --to $IP-PBX:9000
iptables -t nat -A PREROUTING -p tcp -s 5.200.55.23 -d $EXTIP --dport 9500 -j DNAT --to $IP-PBX:9500
iptables -t nat -A PREROUTING -p tcp -s 176.122.20.120 -d $EXTIP --dport 9000 -j DNAT --to $IP-PBX:9000
iptables -t nat -A PREROUTING -p tcp -s 176.122.20.120 -d $EXTIP --dport 9500 -j DNAT --to $IP-PBX:9500
iptables -t nat -A POSTROUTING -d $IP-PBX -j MASQUERADE

Установка приложения TELEFUM24 на сервер с Asterisk/FreePBX


для CentOS скачать приложение-предустановщик:
Потом установить права на файл и запустить. torun_script определит вашу версию OC, разрядность, проверит установлены ли необходимые пакеты для mysql и скачает необходимое приложение-инсталлятор
Дать права для запуска приложения-инсталлятора
Если у вас Centos5\Centos6\Centos7 x32\x64:

cd /usr/src/telefum
wget http://telefum.com/EugenyData/webserver/redhat_pbx/torun_script &&
chmod 755 torun_script &&
./torun_script &&
chmod 755 toservice_run


Если у вас Ubuntu\Debian x32:

cd /usr/src/telefum
wget http://telefum.com/EugenyData/webserver/ubuntu_pbx_i686/toservice_run &&
chmod 755 toservice_run


Если у вас Ubuntu\Debian x64:

версия libmysqlclient.so 18:

cd /usr/src/telefum
wget http://telefum.com/EugenyData/webserver/ubuntu_pbx/toservice_run &&
chmod 755 toservice_run


версия libmysqlclient.so 20:

cd /usr/src/telefum
wget http://telefum.com/EugenyData/webserver/ubuntu_pbx_new/toservice_run &&
chmod 755 toservice_run


!!! Также мы можем скомпилировать данное приложение для любой операционной системы


Запустить приложение:

./toservice_run <внешний IP адрес сервера>.


В директории с приложением toservice_run создастся новая директория /toapi_server с таким набором файлов:

/usr/src/telefum/toapi_server
/..                            
/to_logs                       
 ami_urls.ini                  # Команды для AMI
 ast_config.ini                # Настройки приложения
 hangup_call.txt               # Параметры завершения вызова
 makecall.txt                  # Параметры создания вызова
 mysql.ini                     # Подключение к mysql
 pbxcallback_server_config.ini # Параметры 
*pbxserver1_run                # Скрипт запуска и мониторинга testserver1
 pbxserver2_config.ini         # Настройки сервера истории
*pbxserver2_run                # Скрипт запуска и мониторинга testserver2
*pbxserver_autorun             # Скрипт общего запуска
 pbxserver_config.ini          # Настройки сервера телефонии
*testserver1                   # Сервер телефонии (работает порту 9500)
*testserver2                   # Сервер истории звонков (работает порту 9000)
 transfer_call.txt             # Параметры перевода (blind transfer) звонка


Необходимо проверить наличие всех файлов. При необходимости перезапустить приложение

Настройка конфигурационных файлов ./toapi_server


mysql.ini

В /toapi_server/mysql.ini указать данные и для подключения к MySQL

[MySQL account]
localhost      # сервер
asteriskuser   # пользователь mysql с правами на БД записей разговоров
pass123        # пароль пользователя
asteriskcdrdb  # база данных записей разговоров


Проверить подключение к mysql с введенными данными можно командой:

mysql -D asteriskcdrdb -u asteriskuser -p'pass123'


Проверить какие пользователи есть в mysql можно командой

USE asterisk
SELECT User,Host FROM mysql.user;

MariaDB [(none)]> SELECT User,Host FROM mysql.user;
+-------------+-----------+
| User        | Host      |
+-------------+-----------+
| root        | 127.0.0.1 |
| root        | ::1       |
| asteriskuser| localhost |
| root        | localhost |
+-------------+-----------+

pbxserver_config.ini и pbxserver2_config.ini

Файлы /toapi_server/pbxserver_config.ini и /toapi_server/pbxserver2_config.ini отвечают за подключение к серверу и формирование ссылок истории и записей разговоров.
Указанный в pbxserver2_config.ini IP адрес (так же можно указать порт через “:”) отвечает за генерацию ссылок на записи разговоров CRM. Тут есть 2 варианта:

  1. если asterisk за NAT и указать внешний IP адрес роутера - тогда на роутере необходимо сделать проброс трафика, чтобы извне и изнутри сети можно было перейти по ссылке (напр.: xxx.xxx.xxx.xxx:порт/monitor/audio.wav)
  2. указать внутренний адрес АТС - тогда запись разговора можно будет прослушать только из локальной сети

С учетом вышеперечисленных вариантов данные в файлах могут отличаться (напр.):


Без NAT
За NAT
За NAT
вариант 1
вариант 1
вариант 2

pbxserver_config.ini

xxx.xxx.xxx.xxx

9500

xxx.xxx.xxx.xxx

9500

xxx.xxx.xxx.xxx

9500

pbxserver2_config.ini

xxx.xxx.xxx.xxx:порт

9000

yyy.yyy.yyy.yyy

9000

xxx.xxx.xxx.xxx:порт

9000

ссылки на записи разговоров

xxx.xxx.xxx.xxx:порт/monitor/audio.wav
yyy.yyy.yyy.yyy/monitor/audio.wav
xxx.xxx.xxx.xxx:порт/monitor/audio.wav
доступность по ссылке из интернета и локальной сети
из локальной сети
из интернета и локальной сети


Где xxx.xxx.xxx.xxx - внешний IP адрес
yyy.yyy.yyy.yyy - внутренний IP адрес

ast_config.ini

В /toapi_server/ast_config.ini указать

ast_config_type=1                                               # Использование источника с внутренними номерами
                                                                # 1 - Источник MySQL таблица указанная ниже раздел users (например asterisk:devices:user,description)
                                                                # 1001 - Источник sip.conf (и/или users.conf, если он подкреплен #include users.conf в sip.conf)
ast_timezone=+3:00 ;Moscow                                      # Часовой пояс
                                                                #
[users]                                                         #
users.db=asterisk                                               # Имя базы данных
users.table=devices                                             # Таблица списка пользователей
users.fields=user,description                                   # Используемые поля
                                                                #
[companies]                                                     # В данный момент не используется
companies.active=false                                          #
companies.db=                                                   #
companies.table=                                                #
companies.fields=                                               #
                                                                #
[call_history]                                                  # Параметры по сбору и передаче истории звонков
call_history.db=asteriskcdrdb                                   # Имя базы данных
call_history.table=cdr                                          # Таблица истории звонков
call_history.user_field=                                        # Пользовательское поле
call_history.direction_field=                                   # Направление звонка
call_history.time_field=calldate                                # Поле даты звонка
call_history.recording_field=recordingfile                      # Поле с именем файла разговора
call_history.recording_skip_path=                               # Пропустить часть пути до названия записи разговора (напр: audio:)
call_history.recording_add_path=/monitor/%Y%/%m%/%d%/           # Путь к записи разговора (по 80 порту)
; Y - year, m - month, d - day,                                 # Используемые переменные для составления пути
;time - call time, user - user account,                         # к записи разговора
;company - user company (context), number - abonent number      #
call_history.recording_extension=                               # Добавить после названия записи разговора (например: .mp3)
call_history.replace_extension=false                            #

makecall.txt

В /toapi_server/makecall.txt указать свой контекст для исходящих звонков чтобы Telefum24 Desktop мог совершать исходящие звонки и технологию которую вы используете для добавочных номеров (sip, iax или pjsip).
В случае с FreePBX подобными системами Context по умолчанию from-internal

Action: Originate
Channel: sip/%username%
Context: from-internal
Exten: %ext%
Priority: 1
Callerid: "%ext%"<%username%>
Timeout: 30000
ActionID: ABC45678901234567890


transfer_call.txt

В /toapi_server/transfer_call.txt также указать контекст для исходящих звонков чтобы Telefum24 Desktop мог совершать перевод звонка.
В случае с FreePBX подобными системами Context по умолчанию from-internal

Action: Redirect
Channel: %channel_name%
Context: from-internal
Exten: %ext%
Priority: 1
Callerid: "%ext%"<%username%>


Прямые ссылки на запись разговора

Создать в директории /var/www/html/ «символьную» ссылку к директории с записями разговоров Asterisk:

cd /var/www/html/
ln -s /var/spool/asterisk/monitor


Запуск приложения

Запусить ПО Telefum.Online коммандой:

cd ./toapi_server
./pbxserver_autorun


В результате, вы должны получить ответ приложения о ходе подключения

localhost# /toapi_server/pbxserver_autorun
pbxserver1_run - started
Start new testserver1 process

HELLO WORLD
timezone_diff = 0
curtime - 15:22:16
./testserver1
/api/makecall
/api/transfer_call
/api/hangup_call
mysql -u freepbxuser -p pass123
MySQL client version: 5.5.52-MariaDB
AMI: admin AMIuserpassword
Asterisk Call Manager/2.8.0
Response: Success
Message: Authentication accepted

TO callback connected
Server started on port: 9500

localhost# pbxserver2_run - started
Start new testserver2 process

HELLO WORLD
timezone_diff = 0
mysql -u freepbxuser -p pass123
MySQL client version: 5.5.52-MariaDB
4148
Server started on port: 9000


Далее необходимо перейти на сайт https://www.online.telefum.com, зайти в личный кабинет под учетной записью администратора подключить FreePBX к Telefum24.

Обновление приложения ./toapi_server


Сначала нужно остановить текущую программу:

killall pbxserver1_run; killall testserver1; killall pbxserver2_run; killall testserver2

Или запустить скрипт

/usr/src/telefum/toapi_server/stop_pbxserver

Потом, также как при установке, скачать приложение-предустановщик и запустить его (пример для Centos):

cd /usr/src/telefum &&
wget http://telefum.com/EugenyData/webserver/redhat_pbx/torun_script &&
chmod 755 torun_script &&
./torun_script &&
chmod 755 toservice_run


Запустить установщик:

./toservice_run

И запустить приложение:

./pbxserver_autorun