Social
01.12.2021
62450

Связываем Asterisk и MySQL через ODBC коннектор

Задача: Связать Asterisk с MYSQL через ODBC коннектор для записи CDR и CEL. 1. Устанавливаем mysql Запускаем службу базы данных Чтобы узнать пароль вводим команду: В моем случаи пароль:  C>3s-ddhg,#l. Заходим в MySQL cli и поменяем наш пароль на новый: и пишем команду: Если все правильно, то вы должны увидеть Query OK 2. Установим все […]

связываем Asterisk и MySQL

Задача: Связать Asterisk с MYSQL через ODBC коннектор для записи CDR и CEL.

1. Устанавливаем mysql

wget http://repo.mysql.com/mysql57-community-release-el7.rpm
rpm -ivh mysql57-community-release-el7.rpm
yum update
yum install mysql-server

Запускаем службу базы данных

systemctl start mysqld

Чтобы узнать пароль вводим команду:

grep 'temporary password' /var/log/mysqld.log

В моем случаи пароль:  C>3s-ddhg,#l.

Заходим в MySQL cli и поменяем наш пароль на новый:

mysql -u root -p #тут вводим пароль который получили выше

и пишем команду:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');# вместо newpass вписать ваш новый пароль
рис. 1

Если все правильно, то вы должны увидеть Query OK

2. Установим все необходимые зависимости:

yum install unixODBC unixODBC-devel libtool-ltdl libtool-ltdl-devel
yum install mysql-connector-odbc
рис. 2

Перейдем в cli mysql командой

mysql -u root -p

и введем пароль который мы получили на этапе 1

рис. 3

Создадим базу данных Asterisk командой:

CREATE DATABASE asterisk;
рис. 4

После чего выберем эту базу:

USE asterisk;

и создадим таблицу cdr

CREATE TABLE cdr ( 
       calldate datetime, 
       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(80) NOT NULL default '', 
       dstchannel varchar(80) NOT NULL default '', 
       lastapp varchar(80) NOT NULL default '', 
       lastdata varchar(80) NOT NULL default '', 
       duration int(11) NOT NULL default '0', 
       billsec int(11) NOT NULL default '0', 
       disposition varchar(45) NOT NULL default '', 
       amaflags int(11) NOT NULL default '0', 
       accountcode varchar(20) NOT NULL default '', 
       uniqueid varchar(32) NOT NULL default '', 
       userfield varchar(255) NOT NULL default '',
       did varchar(255) NOT NULL default '',
       recordingfile varchar(255) NOT NULL default '' 
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
рис. 5

После того как все установилось, устанавливаем Asterisk:
https://voxlink.ru/kb/asterisk-installation/ustanovka-asterisk-16-na-centos-8/

Настраиваем MySQL и конфиги необходимые для работы ODBC

Конфигурация файла /etc/odbcinst.ini

[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib64/libmyodbc8w.so
Setup = /usr/lib64/libodbcmyS.so
FileUsage = 1
UsageCount=1
рис. 6

Конфигурация файла /etc/odbc.ini

[asterisk-connector]
Description = MySQL connection to 'asterisk' database
Trace = yes
Driver = MySQL
User=root
Password=
Database = asterisk
Server = localhost
Port = 3306
Socket = /var/lib/mysql/mysql.sock
Option=3
Charset = utf8
  • Server=localhost
  • User=логин для mysql
  • Password=пароль для mysql
  • Database=asterisk — база которую мы создали в mysql
рис. 7

Дальше идем в /etc/asterisk/cdr_adaptive_odbc.conf

[asterisk]
connection=asterisk
table=cdr
loguniqueid=yes
usegmtime=no
alias start => calldate
alias realdst => realdst
alias remoteip => remoteip
alias start => calldate
alias hangupcause => hangupcause
alias peerip => peerip
alias recvip => recvip
alias fromuri => fromuri
alias useragent => useragent
рис. 8

Далее настроим  /etc/asterisk/res_odbc.conf

[asterisk]
enabled => yes
dsn => asterisk-connector
username => root
password => 
pooling => no
limit => 1
pre-connect => yes
рис. 9

username и password меняем на те что мы создали для mysql.

Далее настроим /etc/asterisk/cel_odbc.conf

[cel]
connection=asterisk
loguniqueid=yes
table=cel
рис. 10

И последнее /etc/asterisk/cdr_odbc.conf

[global]
dsn=asterisk
dispositionstring=yes
table=cdr
usegmtime=no
рис. 11

Теперь делаем вызов и смотрим что будет в таблице cdr, которая находится в базе Asterisk.

Заходим в mysql:

mysql -u root -p

Выбираем базу Asterisk:

use asterisk

Выбираем все записи из таблицы cdr:

select * from cdr
рис. 12

Вывод: Мы настроили ODBC коннектор для записи статистики звонков в базу MySQL.

Подписаться
Уведомить о
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 сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.