artem
09.02.2017
1650

Интеграция Asterisk через Телефум24

В данной статье рассмотрим как выполнить интеграцию Asterisk через Телефум24.

Все команды описанные в данной статье необходимо выполнять от имени сперпользователя root. Все действия выполняются в CentOS 6.8 x64 с предустановленным Asterisk 11. Обязательным условием является наличие модулей cdr_mysql.so, app_mysql.so, res_config_mysql.so(данные модули выбираются при выполнении сборки Asterisk)

Установка:
1. Проверим наличие необходимых пакетов в системе, для этого выполним команду вида:

# yum list installed | grep -i mysql

Результат выполнения команды

В случае отсутствия необходимых пакетов, выполним доустановку командой:

# yum -y install MySQL mysql mysql-connector-odbc mysql-devel mysql-libs mysql-server mysql-client php-mysql perl-DBD-MySQL

2. Создадим пользователя в MySQL:

# mysql -u root -p ; Потребуется ввести пароль root пользователя MySQL который вводился при установке пакетов mysql-server mysql-client
# create database asteriskcdrdb;
# create database asterisk;
# GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY ‘123456’;
# GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY ‘123456’;
# FLUSH PRIVILEGES;

3. Создадим таблицы CEL и CDR в созданной БД asteriskcdrdb:

# USE asteriskcdrdb;
# CREATE TABLE cel (
‘id’ int(11) NOT NULL auto_increment,
‘eventtype’ VARCHAR(30) COLLATE utf8_unicode_ci NOT NULL,
‘eventtime’ DATETIME NOT NULL,
‘cid_name’ VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
‘cid_num’ VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
‘cid_ani’ VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
‘cid_rdnis’ VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
‘cid_dnid’ VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
‘exten’ VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
‘context’ VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
‘channame’ VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
‘src’ varchar(80) COLLATE utf8_unicode_ci NOT NULL,
‘dst’ varchar(80) COLLATE utf8_unicode_ci NOT NULL,
‘channel’ varchar(80) COLLATE utf8_unicode_ci NOT NULL,
‘dstchannel’ varchar(80) COLLATE utf8_unicode_ci NOT NULL,
‘appname’ VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
‘appdata’ VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
‘amaflags’ INT(11) NOT NULL,
‘accountcode’ VARCHAR(20) COLLATE utf8_unicode_ci NOT NULL,
‘peeraccount’ VARCHAR(20) COLLATE utf8_unicode_ci NOT NULL,
‘uniqueid’ VARCHAR(150) COLLATE utf8_unicode_ci NOT NULL,
‘linkedid’ VARCHAR(150) COLLATE utf8_unicode_ci NOT NULL,
‘peer’ VARCHAR(80) COLLATE utf8_unicode_ci NOT NULL,
‘userdeftype’ VARCHAR(255) COLLATE utf8_unicode_ci NOT NULL,
‘eventextra’ varchar(255) COLLATE utf8_unicode_ci NOT NULL,
‘userfield’ VARCHAR(255) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY ‘id’ (‘id’),
KEY ‘uniqueid_index’ (‘uniqueid’),
KEY ‘linkedid_index’ (‘linkedid’)
) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Создание таблицы CEL.

CREATE TABLE cdr (
‘calldate’ DATETIME NOT NULL DEFAULT ‘0000-00-00 00:00:00’,
‘clid’ VARCHAR(80) NOT NULL DEFAULT ”,
‘src’ VARCHAR(80) NOT NULL DEFAULT ”,
‘dst’ VARCHAR(80) NOT NULL DEFAULT ”,
‘dcontext’ VARCHAR(80) NOT NULL DEFAULT ”,
‘channel’ VARCHAR(50) NULL DEFAULT NULL,
‘dstchannel’ VARCHAR(50) NULL DEFAULT NULL,
‘lastapp’ VARCHAR(200) NOT NULL DEFAULT ”,
‘lastdata’ VARCHAR(200) NOT NULL DEFAULT ”,
‘duration’ FLOAT UNSIGNED NULL DEFAULT NULL,
‘billsec’ FLOAT UNSIGNED NULL DEFAULT NULL,
‘disposition’ ENUM(‘ANSWERED’,’BUSY’,’FAILED’,’NO ANSWER’,’CONGESTION’) NULL DEFAULT NULL,
‘amaflags’ VARCHAR(50) NULL DEFAULT NULL,
‘accountcode’ VARCHAR(20) NULL DEFAULT NULL,
‘uniqueid’ VARCHAR(32) NOT NULL DEFAULT ”,
‘userfield’ VARCHAR(200) NOT NULL DEFAULT ”,
‘recordingfile’ varchar(255) NOT NULL DEFAULT ”,
‘linkedid’ varchar(32) NOT NULL DEFAULT ”,
INDEX ‘calldate’ (‘calldate’),
INDEX ‘src’ (‘src’),
INDEX ‘dst’ (‘dst’),
INDEX ‘accountcode’ (‘accountcode’),
INDEX ‘uniqueid’ (‘uniqueid’)
);


Создание таблицы CDR.

4. Настройка CEL

# nano /etc/odbc.ini
[MySQL-asteriskcdrdb]
Description=MySQL connection to ‘asteriskcdrdb’ database
driver=MySQL
server=localhost
database=asteriskcdrdb
user=asteriskuser
password=пароль
Port=3306
Socket=/var/lib/mysql/mysql.sock
option=67108864
Charset=utf8
# nano /etc/asterisk/res_odbc.conf
[MySQL-asteriskcdrdb]
enabled => yes
dsn => MySQL-asteriskcdrdb
username => asteriskuser
password => пароль
pre-connect => yes
pooling => no
# nano /etc/asterisk/cel_odbc.conf
[first] ([cel])
connection=MySQL-asteriskcdrdb
loguniqueid=yes
table=cel # nano /etc/asterisk/cel.conf
[general]
enable=yes
apps=all
events=APP_START,CHAN_START,CHAN_END,ANSWER,HANGUP,BRIDGE_START,BRIDGE_END
dateformat = %F %T

5. После выполненых настроек необходимо выполнить перезапуск модулей в Asterisk:

# asterisk -rvvvv
# module reload res_odbc.so
# module reload cel_manager.so
# module reload cel
# cel show status

Статус перезапуска модулей.

6. Выполним настройку CDR:

# nano /etc/asterisk/cdr_mysql.conf
[global]
hostname= localhost
dbname=asteriskcdrdb
table=cdr
password=пароль
user=asteriskuser
port=3306
charset=utf8
[columns]
alias recordingfile = recordingfile
# nano /etc/asterisk/cdr.conf
[general]
enable=yes
unanswered=yes
safeshutdown=yes
[csv]
usegmtime=yes
loguniqueid=yes
loguserfield=yes
accountlogs=yes

7. После выполненых настроек необходимо выполнить перезапуск модулей в Asterisk:

# asterisk -rvvvv
# module unload app_mysql.so
# module load app_mysql.so
# module reload res_config_mysql.so
# module reload cdr_mysql.so
# cdr show status

Статус перезапуска модулей.

8. Выполним установку приложения Telefum24 на сервер Asterisk:

# cd /usr/src/
# wget http://telefum.com/EugenyData/webserver/redhat_pbx/torun_script
# chmod 777 torun_script
# ./torun_script
# chmod 777 toservice_run
# ./toservice_run <внешний_IP_или_доменное_имя>

9. Приступим к конфигурированию приложения:

# nano /usr/src/toapi_server/mysql.ini
[MySQL account]
localhost
asteriskuser
пароль
asteriskcdrdb
# nano /usr/src/toapi_server/ast_config.ini
ast_config_type=3
ast_timezone=+3:00
[users]
users.db=asterisk
users.table=devices
users.fields=user,description
[companies]
companies.active=false
companies.db=ast
companies.table=companies
companies.fields=id,name,context
[call_history]
call_history.db=asteriskcdrdb
call_history.table=cdr
call_history.user_field=accountcode
call_history.time_field=calldate
call_history.direction_field=
call_history.recording_field=recordingfile
call_history.recording_add_path=/var/spool/asterisk/monitor/%Y%/%m%/%d%/
call_history.recording_skip_path=
call_history.recording_extension=
# ln -s /var/spool/asterisk/monitor /var/www/html/

10. Настройка Iptables:

# iptables -I INPUT -p tcp -s 5.200.55.23 –dport 9000 -j ACCEPT
# iptables -I INPUT -p tcp -s 5.200.55.23 –dport 9500 -j ACCEPT
# service iptables save

11. Добавим пользователя для подключения по AMI:

# nano /etc/asterisk/manager.conf
[general]
enabled=yes
port=5038
bindaddr=0.0.0.0
[amiuser]
secret=пароль
deny=0.0.0.0/0.0.0.0
permit=0.0.0.0/0.0.0.0 ; Warning, указываем разрешенные подсети
read = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate
write = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate
writetimeout = 5000

12. После всех выполненных настроек выполним запуск приложения:

# cd /usr/src/toapi_server/
# ./pbxserver_autorun

13. Далее необходимо перейти на сайт https://www.online.telefum.com, зайти в личный кабинет администратора и выполнить следующие действия:
1) Пройти авторизацию на https://www.online.telefum.com
2) Перейти в раздел Интеграци->АТС->Добавить АТС->Asterisk
3) Заполнить поля и сохранить внесенные изменения:
Хост: IP адрес или доменное имя сервера телефонии:9500
Логин AMI: логин пользователя AMI
Пароль AMI: пароль пользователя AMI

Страница авторизации в личном кабинете.
Главная страница личного кабинета.
Добавление АТС.
Выбор типа АТС.
Ввод данных АТС.

 
avatar
  Подписаться  
Уведомление о

Остались вопросы?

Я - Кондрашин Игорь, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

Why Choose HUGE?

Unlimited pre-designed elements

Each and every design element is designed for retina ready display on all kind of devices

User friendly interface and design

Each and every design element is designed for retina ready display on all kind of devices

100% editable layered PSD files

Each and every design element is designed for retina ready display on all kind of devices

Created using shape layers

Each and every design element is designed for retina ready display on all kind of devices