artem
09.02.2017
6055

Интеграция 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’)
);

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

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

Книга 101 функция Asterisk
Познакомьтесь с возможностями Asterisk. Найдите инструменты, которые помогут вашей компании развиваться.
Скачать книгу
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

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

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

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


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

10 доводов в пользу Asterisk

Распространяется бесплатно.

Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.

Безопасен в использовании.

Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.

Надежен в эксплуатации.

Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.

Гибкий в настройке.

Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.

Имеет огромный функционал.

Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.

Интегрируется с любыми системами.

То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.

Позволяет телефонизировать офис за считанные часы.

В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.

Отличная масштабируемость.

Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.

Повышает управляемость бизнеса.

Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.

Снижает расходы на связь.

Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.