Просмотр Исходного

# Установим unix-odbc и mysql драйвер odbc
{code}
yum install unixODBC mysql-connector-odbc asterisk-odbc
{code}
# Сконфигурируем odbc через конфиг-файл /etc/odbc.ini
{code:title=/etc/odbc.ini}
[ODBC Data Sources]
myodbc3 = MyODBC Driver DSN

[mysql_odbc]
Driver = MySQL
;/usr/lib64/libmyodbc5.so
{code}
# Проверим подключение к mysql. MySQL сервер установлен локально, слушает на всех интерфейсах порт 3306. Username: asterisk password: servicemode
{code}
[root@voip asterisk]# isql mysql_odbc asterisk servicemode
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>
{code}
# Включим модули odbc в /etc/asterisk/modules.conf. Для этого добавить в конфиг-файл следующие строчки:
_preload => res_odbc.so_
_preload => res_config_odbc.so_
В нашем случае результирующий конфиг-файл выглядит так:
{code:title=/etc/asterisk/modules.conf}
[modules]
autoload=yes
;
; Any modules that need to be loaded before the Asterisk core has been
; initialized (just after the logger has been initialized) can be loaded
; using 'preload'. This will frequently be needed if you wish to map all
; module configuration files into Realtime storage, since the Realtime
; driver will need to be loaded before the modules using those configuration
; files are initialized.
;
; An example of loading ODBC support would be:
preload => res_odbc.so ;
preload => res_config_odbc.so
;
; Uncomment the following if you wish to use the Speech Recognition API
;preload => res_speech.so
;
; If you want Asterisk to fail if a module does not load, then use
; the "require" keyword. Asterisk will exit with a status code of 2
; if a required module does not load.
;
; require = chan_sip.so
; If you want you can combine with preload
; preload-require = res_odbc.so
;
; If you want, load the GTK console right away.
;
noload => pbx_gtkconsole.so
;load => pbx_gtkconsole.so
;
load => res_musiconhold.so
;
; Load one of: chan_oss, alsa, or console (portaudio).
; By default, load chan_oss only (automatically).
;
noload => chan_alsa.so
;noload => chan_oss.so
noload => chan_console.so
{code}
# Настроим биндинг к realtime базе данных asterisk. Для этого необходимо создать файл /etc/asterisk/res_crb_odbc.conf со следующим содержимым:
{code}
[crb_mysql_conn]
enabled => yes;
dsn => mysql_odbc; DSN из /etc/odbc.ini
username => asterisk; логин к базе данных
password => servicemode; пароль к базе данных
pre-connect => yes
{code}
# Подключим этот файл в конфигурационный файл _/etc/asterisk/res_odbc.conf_ модуля _res_odbc.so_, добавив в конец этого файла строчку *\#include "res_crb_odbc.conf"*
# Для отображения realtime пиров при выполнении _sip show peers_ необходимо раскомментировать или добавить строку rtcachefriends=yes в /etc/asterisk/sip.conf