Asterisk cdr adaptive odbc

Список полей таблицы CDR создаваемой при установке FreePBX:
calldate, clid, src, dst, dcontext, channel, dstchannel, lastapp, lastdata, duration, billsec, disposition, amaflags, accountcode, uniqueid, userfield,
did, recordingfile, cnum, cnam, outbound_cnum, outbound_cnam, dst_cnam

пример:

Чтобы данные переменной useragent были занесены через cdr_adaptive_odbc, надо создать столбец useragent в БД.

В файле конфигурации cdr_adaptive_odbc можно создать множество таблиц. Имя секции может быть любым, модуль не использует его. Вот пример простой конфигурации таблицы:

Option Value/Example Notes
connection asterisk База данных. Параметры соединения настраиваются в Asterisk: res_odbc.conf. Обязательный параметр.
table asterisk_cdr Имя таблицы БД. Обязательное поле.
usegmtime no Использовать время GMT вместо локального времени. По умолчанию -‘no’.

В дополнение к вышеперечисленным опциям cdr_adaptive_odbc.conf, можно задать ещё несколько.

Например:

Также, можно отфильтровать определенное содержимое.

Например:

И наконец, можно добавить статические данные, дополнительно к поступающим из CDR .

Инструменты пользователя

Инструменты сайта

Боковая панель

1С и телефония редакция 1

1С и телефония редакция 2

Лицензирование

Разработчикам

Полезные ссылки

Содержание

Таблицы базы данных

Допустим MySQL уже установлен на ПК c Asterisk.
MySQL содержит учетную запись:

MySQL уже содержит базу данных asteriskcdrdb

Сервер на базе CentOS 6 (32 bit)

Подключимся к СУБД mysql к базе данных asteriskcdrdb:

создадим таблицу для хранения CEL записей:

создадим таблицу для хранения CDR записей (в данном примере имя таблицы PT1C_cdr)

В базе данных должны существовать две таблицы:

Настройка ODBC

Для работы логирования CEL записей необходима библиотека:

Если библиотеки нет, ее следует установить

Параметры доступа к драйверам описываются в файле:
/etc/odbcinst.ini

Все возможные соединения («коннекторы») описываются в файле:
/etc/odbc.ini

Проверить настройки ODBC возможно утилитой isql

Настройка конфигурации Asterisk

Опишем ресурс доступа к базе данных: /etc/asterisk/res_odbc.conf

Опишем правило логированиря CEL записей:
/etc/asterisk/cel_odbc.conf

Опишем правило логированиря CDR записей:
/etc/asterisk/cdr_adaptive_odbc.conf

Далее следует перезагрузить asterisk:

Контроль

Выполнить в консоли астериск:
Статус CDR

Статус CEL

Должны быть подгружены модули:

статус ODBC

Окончательная проверка

Совершите пару звонков и выполните команды:

Читайте также:  Беговая дорожка housefit ht 9849e отзывы

Введение Установка драйвера ODBC Настройка конфигурации ODBC Установка Asterisk c модулями ODBC Конфигурирование Asterisk для работы с Mysql Заключение Введение В рабочей практике приходится сталкиваться с различными задачами, где необходимо во время вызова обращаться к базам данных из диалплана. Стандартная команда MYSQL не совсем удобна. Плюс ко всему необходимо хранить историю вызовов, а также событий […]

В рабочей практике приходится сталкиваться с различными задачами, где необходимо во время вызова обращаться к базам данных из диалплана. Стандартная команда MYSQL не совсем удобна. Плюс ко всему необходимо хранить историю вызовов, а также событий звонков астериска. Для этого используются таблицы cdr и cel соответственно. Для всего этого используется драйвер ODBC.

ODBC – программный интерфейс для работы с БД. Разработан был компанией Microsoft и Simba Technologies. Этот интерфейс позволяет подключать сторонние программные продукты к БД.

В данной статье будет рассмотрена установка и конфигурирование драйверов ODBC на систему Centos 6.9. А также установка Asterisk c модулями odbc и настройка asterisk для работы с mysql.

В данном разделе будет рассмотрен порядок действий для установки драйвера ODBC, а также настройка параметров для корректной работы драйвера.

Для работы драйвера необходимо установить ряд пакетов из репозиториев:

  • libtool
  • libtool-ltdl
  • libtool-ltdl-devel
  • mysql-connector-odbc
  • libiodbc
  • libiodbc-devel

Если вы не знаете установлены эти пакеты у вас или нет. Можете воспользоваться следующей командой:

Она выводит список всех установленных пакетов. В названии которых встречаются слова odbc или libtool или mysql.

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

После установки драйвера необходимо указать в конфигурационном файле /etc/odbcinst.ini пути к файлам драйверов. Для этого необходимо найти установленные файлы:

  • libmyodbc5.so
  • libodbcmyS.so
  • libmyodbc8w.so — файл драйвера кодировки unicode
  • libmyodbc8a.so – файл драйвера кодировки ANSI

Для того, чтобы найти эти файлы воспользуемся консольной утилитой find.

Перепишем указанные директории в файл настроек ODBC. Для этого откроем его любым текстовым редактором, в данном случае это vim

Теперь надо указать пути к файлам. За это отвечают параметры Driver, Driver64, Setup, Setup64. Названия соответствуют разрядности системы i686 и x86_64. В итоге должно пучиться как на примере ниже:

Читайте также:  Блок питания aerocool strike x 800

После сохранения данных проверим, область видимости драйвера командой

В итоге должно отобразиться следующее:

Если после выполнения данной команды у вас в консоле отобразились данные строки, то вы всё верно настроили. Теперь надо редактировать файл, где будет указан идентификатор подключения к БД — /etc/odbc.ini. Важные поля:

  • [ ] — DSN имя для подключения к mysql (в дальнейшем будет использоваться в конфигурациях Asterisk)
  • driver – указывается название драйвера для связи с Mysql (прописывается имя указанной в файле /etc/odbcinst.ini)
  • server – адрес хоста mysql сервера
  • database – База данных для подключения
  • Port – порт подключения к mysql
  • Socket – файл сокета подключения к mysql
  • Charset –указывается кодировка записей

После редактирования должно получиться следующее:

Проверим подключение к Mysql через указанный [ ], который был прописал в файл odbc.ini. Проверить подключени можно следующей командой:

Должно вывести следующее как на скриншоте ниже

Не всегда администраторы, поддерживающие asterisk, собирают его с модулями необходимыми для работы с odbc. Поэтому в данном пункте будет показано, как пересобрать астериск с нужными модулями.

Для того, чтобы пересобрать asterisk, нужно перейти в директорию исходных файлов Asterisk. В данном случае — это /usr/src/asterisk-13.21.0/.

Поскольку астериск уже установлен, поэтому заново выполнять команду ./configure не нужно. Поэтому перейдем к следующему шагу make menuselect.

Теперь необходимо выбрать все модули, в которых в названии есть odbc.

Ниже приведена таблица с названием раздела и именем модуля.

Call Detail Recording cdr_odbc cdr_adaptive_odbc
Channel Event Logging cel_odbc
Resource Modules res_odbc res_odbc_transaction

Далее, как и при обычной установке астериска выполняем Save & Qiut, make, make install.

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

Первым отредактируем файл res_odbc.conf. Если вы используете FreePBX, вам необходимо редактировать файл res_odbc_additional.conf.

Читайте также:  Вентилятор видеокарты 4 pin распиновка

В этом файле указывается:

  • новый [ ], который в дальнейшем будет использоваться в другом конфигурационном файле астериска
  • enabled – включение/отключение доступности текущего подключения к Mysql
  • dsn – DSN_name драйвера ODBC используемое для подключения к Mysql (указывается dsn имя, прописанное в файле /etc/odbc.ini)
  • preconnect возможность подключения при старте Астериска
  • username – пользователь mysql. (Если используется FreePBX, имя пользователя можно взять в файле /etc/freepbx.conf)
  • password – пароль пользователя mysql (Если используется FreePBX его можновзять в файле /etc/freepbx.conf)
  • database – имя базы данных, к которой астериск будет подключаться

В итоге должно получиться следующее:

Сохраняете изменения в этом файле, далее нужно вносить изменения в файл cdr_odbc.conf (если установлен FreePBX – cdr_adaptive_odbc.conf).

  • [ ] — имя подключения к БД
  • connection – Имя dsn. Которое указывалось в res_odbc.conf
  • loguniqueid – разрешить логирование uniquieid
  • table – таблица для заполнения истории звонков

В итоге должно получиться как на скриншоте ниже:

Далее сохраняются изменения и необходимо их применить. Для этого открывается консоль астериска командой asterisk rvvvv. Из этой консоли выполнить две команды:

  • module reload res_odbc.so — применяет изменения файла res_odbc.conf
  • module reload cdr_odbc.so — применяет изменения файла cdr_odbc.conf

Проверить правильность настроек можно командой odbc show из консоли астериска. Если выполнено все правильно то должно получиться как на скриншоте ниже.

После выполнения указанных выше действий вы сможете просматривать историю вызовов (CDR – call detail records). Также можно выполнять действия с данной таблицей из диалплана обращаясь к ней встроенной функцией астериска CDR()— что позволяет гибко оперировать логикой звонка.

Если включить фантазию и немного подумать, можно прикрутить еще и использование дополнительных таблиц через дополнительный файл func_odbc.conf. Но это уже другая статья

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

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