В данном руководстве мы расскажем как подключить Asterisk 16 к базе данных 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
Установка необходимых пакетов и утилит
- 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
Конфигурация файла /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
Конфигурация файла /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
На этом все! Подключение настроено и теперь ваши CDR данные должны успешно записываться в БД.