Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

История изменений [назад]

нажмите, чтобы скрыть/показать версии 1
изначальная версия
редактировать

ответил 2011-01-26 08:01:39 +0400

meral Gravatar meral flag of Ukraine

http://pro-sip.net/

рекомендуемый способ такой(причем для мускл тоже) isql dsnname -должно конектиться. если не конектиться - ищите тчо не так. дальше. наличие isql не гарантирует коннекта. должны так же быть драйвера и настроен /etc/odbc.ini /etc/odbcinst.ini тут я вам не помогу, но это есть в документации к базе данных.

в астериске должна быть вкомпилена поддержка odbc. обычно надо unixodbc-devel для этого. v res_odbc.conf вписываете ваш дсн(БЕЗ ПАРОЛЯ)

дальше в extconf.conf вставляете

 
car=> odbc,ur_dsn,car

ну и добавляете все нужные таблицы. после этого у вас в диалплане будет работаь реалтайм. для одного поля все примитивно(синтакс для 1.6 может отличаться для других версий, смотрите встроеный хелп asterisk -rx "core show functions like REALT")

exten => s,n,Set(color=${REALTIME_FIELD(car,numcar,456,color)})

для более чем одного поля, смотрите в функцию REALTIME, но она возвраащет все поля, после чего надо парсить например функцией CUT.

если более одного условия, можно заюзать недокументированный баг..

exten => s,n,Set(color=${REALTIME_FIELD(car,car_class='A' and numcar,456,color)})

еквиввалентно

 select color from car where car_class='A' and numcar=456

а самое главное в этом то, что за конектом и пулами конектов следит сам астриск.и память тоже он освобождает.

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.