Взаимодействие Asterisk 16 через ODBC с MySQL

Posted by

Задача: Проработать как настроить подключение Asterisk 16 к MySQL через драйвер ODBC

Использование связки Asterisk 16 + MySQL через драйвер ODBC (Open Database Connectivity) нужно когда хотите вести записи CDR (Call Detail Records) и CEL (Channel Event Logging)

Необходимые приготовления:

Asterisk 16

(tips_ubuntu_18_04_odbc_v1.odt)

Шаг №1:

Шаг №2: Создаю базу данных, пользователя и пароль:

Этот файл служит для создания идентификатора для Asterisk 16. Asterisk будет ссылаться на название, указанное в этом файле.

Проверим использование утилиты ISQL

Шаг №3: Подключаемся к созданной базе данных и создаем необходимые таблицы (CDR и CEL):

На заметку: Если не прокатывает создание таблицы, то значит формат колонки содержит нулевые значение, а с этим не сработает добавление выше и будет ошибка вида:

ERROR 1067 (42000): Invalid default value for ‘calldate’

Теперь создаю таблицу cel

Шаг №4: Теперь нужно пересобрать Asterisk для работы с ODBC драйвером, т.е. Нужен модуль res_config_mysql.so

Add-ons (See README-addons.txt) — отмечаю клавишей «Enter» res_config_mysql и нажимаю Save & Exit

пересобрать Asterisk для работы с ODBC драйвером

Шаг №5: Выполняем установку:

Добавляю нижеследующие секции в конфигурационный файл:

На заметку: Параметр DSN отвечает за подключение Asterisk к БД, указанной в файле /etc/odbc.ini. Этот параметр говорит Asterisk, что необходимо открыть и поддерживать соединение с базой данных при загрузке модуля res_odbc.so.

Шаг №6: Настройка сбора логов CDR (вписываем в конец файла:)

На заметку:

Использование мной файла конфигурации cdr_adaptive_odbc.conf, вместо cdr_odbc.conf, обусловлено тем что мне необходимо использование custom полей, для занесения каких то своих данных в таблицу CDR

Шаг №7: Настройка сбора логов CEL

Включаем генерацию CEL данных в Asterisk, в секции [general]

вписываем в конец файла:

Где cel – название таблицы в MySQL, asteriskcdrdb – название соединения ODBC из файла /etc/asterisk/res_odbc.conf

Перезапускаем Asterisk:

Через CLI Asterisk проверим подключение к БД через драйвер ODBC:

Связь с базой данных MySQL настроена. Теперь данные CDR и CEL будут записываться в соответствующие таблицы. А вот как их просматривать через Web-интерфейс, в этом мне поможет Web-оснастка Asterisk CDR Viewer Mod. О том как ее развернуть на текущем сервере с ролью Asterisk будет следующая заметка. На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.