artem
17.01.2016
10723

Подключение Asterisk к Microsoft SQL Server с помощью FreeTDS

В этой статье будет описано, как настроить ODBC-подключение к серверу MS SQL с помощью библиотек FreeTDS. Полученное ODBC-подключение может быть использовано Asterisk, например, для записи CDR и/или CEL на сервер MS SQL или для получения данных из CRM-системы, база данных которой располагается на сервере MS SQL. Приведённые настройки верны для CentOS 6 и Asterisk 11.

Параметры подключения к серверу MS SQL, которые будут использоваться в примерах:

IP-адрес: 192.168.101.10
порт: 1433
имя базы данных: asterisk
имя пользователя: odbc_user
пароль: odbc_pass

Установка и настройка FreeTDS

Пакет FreeTDS входит в репозиторий EPEL, достаточно просто установить EPEL и установить пакет freetds:

yum install epel-release
yum install freetds

Настройки FreeTDS находятся в файле /etc/freetds.conf, его мы не будем трогать (разве что можно закомментировать примеры подключений egServer50 и egServer70).

Настройки ODBC-подключения нужно описать в файле /etc/odbc.ini:

[MSSQLServer]
Driver = FreeTDS
Description = MSSQL Server
Trace = No
Server = 192.168.101.10
Database = asterisk
Port = 1433
TDS_Version = 7.0

Здесь MSSQLServer — произвольное имя ODBC-подключения, далее оно будет использоваться в настройках ODBC-подключения Asterisk.
Драйвер «FreeTDS» должен быть описан в файле /etc/odbcinst.ini, если пакет freetds установлен, там должны быть следующие строки:

[FreeTDS]
Description=ODBC for SQL Server
Driver=/usr/lib64/libtdsodbc.so.0
Setup=/usr/lib64/libtdsS.so
FileUsage=1

Желательно сразу проверить ODBC-подключение с помощью утилиты isql для выявления ошибок в введённых настройках и проблем с подключением к серверу (утилита isql входит в состав пакета unixODBC, который является зависимостью пакета freetds, поэтому должен быть уже установлен).

isql MSSQLServer odbc_user odbc_pass

ПРИМЕЧАНИЕ
Для работы с сервером MS SQL удобнее использовать утилиту sqsh вместо isql, скачать RPM-пакет для CentOS 6 можно здесь http://sourceforge.net/projects/sqsh/files/sqsh/sqsh-2.5/

Настройка ODBC-подключения на стороне Asterisk

Описываем подключение в файле /etc/asterisk/res_odbc.conf:

[mssql-connection]
enabled = yes
dsn = MSSQLServer
username = odbc_user
password = odbc_pass
pooling = yes
limit = 5
pre-connect = yes
charset = utf8

mssql-connection — произвольное имя подключения, его можно использовать в других конфигах Asterisk.

MSSQLServer — имя подключения из файла /etc/odbc.ini.
Т.к. протокол TDS позволяет выполнять одновременно только один запрос в рамках одного соединения, лучше использовать небольшой пул подключений.

Для применения настроек, выполняем в консоли Asterisk команду:

module reload res_odbc.so

Если модуль res_odbc.so ранее не был загружен, вместо этого нужно выполнить команду:

module load res_odbc.so

После этого, команда «odbc show all» в консоли Asterisk должна выводить сведения о состоянии подключения:

> odbc show all
Name: mssql-connection
DSN: MSSQLServer
Last connection attempt: 1970-01-01 03:00:00
Pooled: Yes
Limit: 5
Connections in use: 1
— Connection 1: connected

Если подключение не удалось установить (Connected: No), проверьте правильность настроек в файле /etc/asterisk/res_odbc.conf.

Кейсы внедрения
Asterisk от VoxLink
Узнайте, какие крупные компании уже используют Asterisk в работе.
Скачать
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Остались вопросы?

Я - Кондрашин Игорь, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование


ближайшие курсы

10 доводов в пользу Asterisk

Распространяется бесплатно.

Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.

Безопасен в использовании.

Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.

Надежен в эксплуатации.

Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.

Гибкий в настройке.

Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.

Имеет огромный функционал.

Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.

Интегрируется с любыми системами.

То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.

Позволяет телефонизировать офис за считанные часы.

В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.

Отличная масштабируемость.

Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.

Повышает управляемость бизнеса.

Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.

Снижает расходы на связь.

Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.