Asterisk: res_odbc.conf

Файл настройки соединений c базами данных через unixODBC. MySQL, PostgreSQL, MSSQL, SQLite.

Параметры ODBC соединений

[ENV] - Глобальные переменные

В Секции с встроенным названием [ENV] назначаются глобальные переменные окружения, которые можно использовать для любых подключений, заданных в данном файле.

[ENV]
INFORMIXSERVER => my_special_database
INFORMIXDIR => /opt/informix
ORACLE_HOME => /home/oracle

Имена контекстов (подключений)

Остальные секции имеют произвольные имена. Эти имена, в дальнейшем, используются в других конфигах, таких как extconfig.conf и func_odbc.conf для связи с этими соединениями.

 [asterisk]

enabled

Позволяет отключать секцию, без использования комментария:

 enabled => no

Если явно не выключено, категория (секция) считается включенной.

dsn

Это значение должно совпадать с записью в /etc/odbc.ini (или /usr/local/etc/odbc.ini во FreeBSD и подобных системах).

 dsn => asterisk

username

Имя пользователя базы данных. Если не задано, будет использовано имя контекста, по умолчанию

 username => myuser

password

Пароль для аутентификации в базе данных. По умолчанию не задан.

 password => mypass

pre-connect

Подключаться при старте Asterisk?

 pre-connect => yes

sanitysql

Как определить, что соединение живое? Должно возвращаться не нулевое значение в первом поле, первой записи. По умолчанию «select 1».

 sanitysql => select 1

max_connections

Максимальное кол-во подключений в момент времени. Значение по умолчанию =1 и очень хорошая идея увеличить это значение, если версия unuxODBC 2.3.1 и выше.

 max_connections => 20

forcecommit

Если канал закрыт, должны ли какие-либо незавершенные транзакции, продолжать выполнение.

 forcecommit => no

isolation

Отношения с другими транзакциями в базе данных.
Возможные значения: read_uncommitted, read_committed, repeatable_read и serializable. По умолчанию read_committed.

 isolation => repeatable_read

backslash_is_escape

Обратный слэш '/' знак комментария. По умолчанию = yes, но для MS SQL Server, установите = no.

  backslash_is_escape => yes

connect_timeout

Как долго (в секундах), пытаться подключиться, прежде чем считать соединение мертвым? Значение по умолчанию составляет 10 секунд, но можно уменьшить его, чтобы повысить скорость реакции.

 connect_timeout => 10

negative_connection_cache

Если соединение упало, как долго (в секундах), кэшировать информацию, прежде чем предпринять попытку нового соединения?

 negative_connection_cache => 300

примеры

MySQL, MS SQL и PostgreSQL

MySQL

[mysql2]
enabled => no
dsn => MySQL-asterisk
username => myuser
password => mypass
pre-connect => yes

MS SQL

Некоторые сервера, такие как MS SQL и Sybase использующие TDS, ограничивают кол-во запросов для одного подключения до 1. Если запретить общее использование соединений (share_connections ⇒ no) Asterisk может с ними работать.

[sqlserver]
enabled => no
dsn => mickeysoft
share_connections => no
limit => 5
username => oscar
password => thegrouch
pre-connect => yes
sanitysql => select count(*) from systables
; forcecommit => no            ; Default to committing uncommitted transactions?
                               ; Note:  this is NOT the autocommit flag; this
                               ; determines the end result of transactions which
                               ; are not explicitly committed or rolled back.  By
                               ; default, such transactions are rolled back if the
                               ; call ends without an explicit commit.
; isolation => read_committed  ; Isolation level; supported levels are:
                               ; read_uncommitted, read_committed, repeatable_read,
                               ; serializable.  Note that not all databases support
                               ; all isolation levels (e.g. Postgres only supports
                               ; repeatable_read and serializable).  See database
                               ; documentation for further information.
;
; Many databases have a default of '\' to escape special characters.  MS SQL
; Server does not.
backslash_is_escape => no

;
; If you are having problems with concurrency, please read this note from the
; mailing lists, regarding UnixODBC:
;
; http://lists.digium.com/pipermail/asterisk-dev/2009-February/036539.html
;
; In summary, try setting "Threading=2" in the relevant section within your
; odbcinst.ini.
;

pgsql

PostgreSQL

[postgres]
enabled => yes
dsn => testing
pre-connect => yes

Файлы конфигурации Asterisk

~~socialite~~

  • asterisk/cf/res_odbc.conf.txt
  • Последние изменения: 2016/12/18