Рассмотрим как подключить Asterisk 16 к MySQL посредством ODBC (Open Database Connectivity) для ведения записей CDR (Call Detail Records) и CEL (Channel Event Logging).
До версии Asterisk 13, для хранения CDR и CEL в MySQL использовал драйвер cdr_mysql.so и cel_mysql.so. Начиная с Asterisk 13 эти модули Deprecated (Устарели) и не рекомендованы к использованию. Разработчики рекомендуют использовать технологию ODBC.
Исходные данные:
- Debian 9
- Asterisk 16
- MySQL (5.5.60)
Подготовка системы
Перед началом установки обновляем систему до актуального состояния:
Устанавливаем необходимые зависимости:
Настройка драйвера ODBC
Приводим файл конфигурации (/etc/odbcinst.ini) к виду:
Проверим связность ODBC и MySQL:
Результат должен быть следующим:
Редактируем файл(/etc/odbc.ini), приводим в соответствие:
Проверим использование утилиты ISQL
Вывод:
Настройка MySQL
Для корректного отображения «Кириллицы» в таблицах, необходимо выполнить настройку MySQL на использование кодировки UTF-8.
Создадим базу данных и пользователя:
Подключаемся к созданной базе данных и создаем необходимые таблицы (CDR и CEL):
Если планируется использовать доработанный (Asterisk CDR Viewer Mod), то необходимо так же добавить триггер, для корректного отображения вызываемого номера (вводить последовательно):
Настройка Asterisk
Для работы связки с ODBC драйвером, необходимо наличие установленного в Asterisk модуля res_config_mysql.so. Если Asterisk был собран без данного модуля, то необходимо его пересобрать с модулем и выполнить установку.
Переходим в каталог с дистрибутивом Asterisk, вызываем меню, отмечаем необходимый модуль и нажимаем Save & Exit:
Выполняем установку:
Редактируем файл (/etc/asterisk/res_odbc.conf), вписываем в конец файла:
Настройка сбора логов CDR
Редактируем файл (/etc/asterisk/cdr_adaptive_odbc.conf), вписываем в конец файла:
Настройка сбора логов CEL
Включаем генерацию CEL данных в Asterisk.
В файле конфигурации (/etc/asterisk/cel.conf), в секции [general] приписываем:
Редактируем файл (/etc/asterisk/cel_odbc.conf), вписываем в конец файла:
Перезапускаем Asterisk:
Через CLI Asterisk проверим подключение к БД через драйвер ODBC:
Связь с базой данных MySQL настроена. Теперь данные CDR и CEL будут записываться в соответствующие таблицы. Для удобного просмотра информации из базы данных, рекомендую использовать Asterisk CDR Viewer Mod. На данный момент как мне кажется это лучший просмотрщик CDR из бесплатных. Установка его очень очень подробно изложена в README файле, находящегося в дистрибутиве.