Подключение 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.
Остались вопросы?
Я - Виталий Шелест, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.
категории
- DECT
- Linux
- Вспомогательный софт при работе с Asterisk
- Интеграция с CRM и другими системами
- Интеграция с другими АТС
- Использование Elastix
- Использование FreePBX
- Книга
- Мониторинг и траблшутинг
- Настройка Asterisk
- Настройка IP-телефонов
- Настройка VoIP-оборудования
- Новости и Статьи
- Подключение операторов связи
- Разработка под Asterisk
- Установка Asterisk
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 сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.