В данном руководстве мы расскажем как подключить Asterisk 16 ODBC MariaDB на операционной системе Debian 10 (buster) через ODBC-коннектор.
Драйвер unixODBC в данный момент (дата статьи: 2019-10-12) недоступен в репозитории пакетов Debian, но вы можете установить и настроить его самостоятельно. Мы рассмотрим только подключение к MariaDB, а это значит, что Asterisk 16 и MariaDB у нас уже установлены. Если вы пропустили установку, воспользуйтесь статьей по установке Asterisk 16 на Debian 10.
Исходные данные:
- Debian 10 (buster);
- Asterisk 16 LTS;
- MariaDB 10.3
Содержание
Asterisk 16 ODBC MariaDB
Установка необходимых пакетов ODBC и утилит
apt-get install -y unixodbc unixodbc-dev libcppdb-odbc0 odbcinst git checkinstall cmake build-essential libssl1.0-dev
Установка клиенткой библиотеки MariaDB
Этот пакет необходим для сборки драйвера unixODBC. Он накладывается на libmariadb-dev, но предоставляет дополнительные заголовочные файлы, которые отсутствуют в Debian 10.
cd /usr/src/ git clone https://github.com/MariaDB/mariadb-connector-odbc.git mkdir build && cd build cmake ../mariadb-connector-odbc/ -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCONC_WITH_UNIT_TESTS=Off -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_SSL=OPENSSL cmake --build . --config RelWithDebInfo make install
Настройка подключения к Asterisk 16
Конфигурация файла /etc/odbcinst.ini
# Driver from the MariaDB-connector-odbc package # Setup from the unixODBC package [Default] Driver = /usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so [MariaDB] Description = ODBC for MariaDB Driver = /usr/local/lib64/libmaodbc.so Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so FileUsage = 1 UsageCount = 1
Мы настраиваем пул для подключения так, как это, вероятно, требуется большинству пользователей. Обратитесь к документации unixODBC, чтобы узнать больше о функции соединений ODBC.
Также может быть использована конфигурация для PostgreSQL, которую вы можете закомментировать, если вы не планируете настраивать PostgreSQL. Комментарии начинаются с символа хеш (#).
Вы также можете проверить odbcinst, чтобы убедиться, что конфигурация найдена.
odbcinst -q -d
Вывод должен быть примерно следующий:
[MariaDB]
Конфигурация файла /etc/odbc.ini
[MariaDB-asteriskcdrdb] Description=MySQL connection to Asterisk Trace = Yes TraceFile = /tmp/odbc.log Driver=MariaDB Server=localhost User=your_asterisk_user Password=your_asterisk_user_password Database=asteriskcdrdb Port=3306 Socket=/var/run/mysqld/mysqld.sock Option=3 Charset=utf8
Не забудьте изменить значения:
- Server=localhost
- User=your_asterisk_user
- Password=your_asterisk_user_password
- Database=asteriskcdrdb
на свои.
Конфигурация файла /etc/asterisk/cdr_adaptive_odbc.conf
[asteriskcdrdb] connection=asteriskcdrdb 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 alias filename => filename
Конфигурация файла /etc/asterisk/res_odbc.conf
[ENV] [asteriskcdrdb] enabled=>yes dsn=>MariaDB-asteriskcdrdb ;pooling=>no ;limit=>1 pre-connect=>yes username=>your_asterisk_user password=>your_asterisk_user_password
Не забудьте изменить значения:
- username=your_asterisk_user
- password=your_asterisk_user_password
на свои.
Конфигурация файла /etc/asterisk/cel_odbc.conf
[cel] connection=asteriskcdrdb loguniqueid=yes table=cel
Конфигурация файла /etc/asterisk/cdr_odbc.conf
[global] dsn=asteriskcdrdb loguniqueid=yes dispositionstring=yes table=cdr usegmtime=no hrtime=yes newcdrcolumns=yes
Подводя итог, установка и настройка Asterisk 16 ODBC MariaDB окончена! Подключение настроено и теперь ваши CDR данные должны успешно записываться в БД.
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.