На главную | В раздел

Asterisk RealTime ODBC Configuration

Файлы содержащие настройки, необходимые для правильной работы Asterisk RealTime через ODBC

Эти файлы находятся в каталоге основных настроек Asterisk, как правило это /etc/asterisk или /usr/local/etc/asterisk.

Настройки RealTime через ODBC на примере Asterisk 1.8

Настройки RealTime через ODBC: файл modules.conf

Обязательно должна присутствовать и не быть закоментаренной строка:
preload => res_config_odbc.so
в ином случае, на момент чтения настроек, механизм RealTime не будет располагать внутренним DSN в Asterisk.
Также, следует убедиться, что нигде после этой строки нет строки(если строка закоментарена, то ничего страшного):
noload => res_config_odbc.so

Настройки RealTime через ODBC: файл res_config_odbc.conf

[internal-asterisk-DSN-name]	; Название, которое будет указано в файле extconfig.conf
enabled => yes
dsn => odbc-DSN-name		; Название внешнего DSN, описанного /etc/odbc.ini
databse => db-name		; название БД
username => dbuser-name		; Пользователь, имеющий все необходимые привелегии на выполнение операций с данными в таблицах,
				; необходимых для полноценной работы механизма RealTime
password => dbuser-pw		; Пароль пользователя
pre-connect => yes		; Соединяться заранее

Настройки RealTime через ODBC: файл extconfig.conf

Для настроек SIP peers и SIP users, хранимых в таблице базы данных и доступных через ODBC можно использовать следующие настройки:
sippeers => odbc,internal-asterisk-DSN-name
sipusers => odbc,internal-asterisk-DSN-name
Общий формат настроек в файле extconfig.conf описан в самом начале этого файла, но я его продублирую с пояснениями:
file.conf => driver,database[,table[,priority]]
;или
component => driver,database[,table[,priority]]
;driver может принимать значения:
;    odbc	настройки внутреннего DNS в Asterisk описываются в файле res_config_odbc.conf(ВНИМАНИЕ: не путать с res_odbc.conf!!!)
;    sqlite	настройки внутреннего DNS в Asterisk описываются в файле res_config_sqlite.conf
;    pgsql	настройки внутреннего DNS в Asterisk описываются в файле res_config_pgsql.conf
;    curl	настройки внутреннего DNS в Asterisk описываются в файле res_config_curl.conf
;    ldap	настройки внутреннего DNS в Asterisk описываются в файле res_config_ldap.conf

Настройки RealTime через ODBC: файл odbc.ini

Находится либо в /etc, либо в /usr/local/etc.
В этом файле описываются разнообразные DSN со всеми их специфическими настройками подключения.
На эти внешние DSN ссылаются внутернние DSN в Asterisk в файлах настройки res_odbc.conf и res_config_odbc.conf.

Некоторые симптомы, говорящие о неправильной настройке RealTime через ODBC

Сообщение в консоли(журнале) вида:
[Sep 26 09:34:47] WARNING[25978] config.c: Realtime mapping for 'sippeers' found to engine 'odbc', but the engine is not available
говорит о том, что механизм RealTime в Asterisk не может связаться через ODBC с базой данных.
Как правило, причиной появления таких сообщени становится то, что вместо файла res_config_odbc.conf и соответствующего модуля res_config_odbc.so настраиваются и загружаются res_odbc.conf и res_odbc.so соответственно.
При правильной настройке цепочки ссылок на DSN, но неправильной настройке непосредственного подключения к базе данных, через соответствующий ODBC драйвер, будут выдаваться различные ошибки подключения, сильно зависящие от фактической причины и используемого драйвера ODBC.

© Константин С. Вишнивецкий, 2007-2017