- Установим unix-odbc и mysql драйвер odbc
yum install unixODBC mysql-connector-odbc asterisk-odbc
- Сконфигурируем odbc через конфиг-файл /etc/odbc.ini
/etc/odbc.ini
[ODBC Data Sources] myodbc3 = MyODBC Driver DSN [mysql_odbc] Driver = MySQL ;/usr/lib64/libmyodbc5.so
- Проверим подключение к mysql. MySQL сервер установлен локально, слушает на всех интерфейсах порт 3306. Username: asterisk password: servicemode
[root@voip asterisk]# isql mysql_odbc asterisk servicemode +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL>
- Включим модули odbc в /etc/asterisk/modules.conf. Для этого добавить в конфиг-файл следующие строчки:
preload => res_odbc.so
preload => res_config_odbc.so
В нашем случае результирующий конфиг-файл выглядит так:/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
- Настроим биндинг к realtime базе данных asterisk. Для этого необходимо создать файл /etc/asterisk/res_crb_odbc.conf со следующим содержимым:
[crb_mysql_conn] enabled => yes; dsn => mysql_odbc; DSN из /etc/odbc.ini username => asterisk; логин к базе данных password => servicemode; пароль к базе данных pre-connect => yes
- Подключим этот файл в конфигурационный файл /etc/asterisk/res_odbc.conf модуля res_odbc.so, добавив в конец этого файла строчку #include "res_crb_odbc.conf"
- Для отображения realtime пиров при выполнении sip show peers необходимо раскомментировать или добавить строку rtcachefriends=yes в /etc/asterisk/sip.conf