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

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

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

спросил 2017-12-06 19:56:09 +0400

konstantinsb Gravatar konstantinsb

Переадресация с помощью ODBC, MariaDB

Доброго времени суток! Ребята, помогите с проблемой! У нас на предприятии имеется много отделов. Есть наш информационный отдел, в нем 4 человека. За каждым закреплено несколько отделов. У нас есть общая БД со списком всех номеров пользователей предприятия(около 2000) Пытась сделать так: Один общий номер ХХХХХХХ, на него будут звонить пользователи из списка , а попадать будут на того человека, за которым закреплено тот или иной отдел. Пример: У меня номер 3550, звонят с Юридического отдела( числится за мной) на общий номер ХХХХХХ. Астериск автоматически его переадресовывает на мой номер 3550, перед этим сверившись по CID с БД. Делаю через драйвер ODBC к MySQL/ Вот что сделано на данный момент:

odbc.ini [connector]

Driver = MariaDB Description = Connector/ODBC 3.51 Driver DSN Server = 127.0.0.1 Port = 3306 User = root Password = * Database =spisok Socket = /var/run/mysqld/mysqld.sock Charset = utf8

odbcinst.ini [MariaDB]

Description = MySQL driver Driver=/usr/lib/x8664-linux-gnu/odbc/libmaodbc.so Setup = /usr/lib/x8664-linux-gnu/odbc/libodbcmyS.so

asterisk*CLI> odbc show

ODBC DSN Settings

Name: spisok DSN: connector Last connection attempt: 1970-01-01 07:00:00 Number of active connections: 1 (out of 1)

asterisk:~# echo "SELECT 1" | isql -v connector
+---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL> SELECT 1 +---------------------+ | 1 | +---------------------+ | 1 | +---------------------+ SQLRowCount returns 1 1 rows fetched

funcodbc.conf [MOBILE] dsn=connector readsql=SELECT COUNT(*) FROM spisokall WHERE number='${ARG1}'

extensions.conf

exten => X.,1,Set(PRIOR=${ODBCMOBILE(${CALLERID(num)})}) exten => X.,n,GotoIf($["${PRIOR}" = "1"]?reject:allow) ;Для теста, хотя бы из одной таблицы взять данные. exten =>X.,n(allow),Dial(${SIP/3550}) exten =>X.,n,Hungup() exten =>X.,n(reject), Playback(abandon-all-hope) exten =>_X.,n,Hungup()

выводит ошибку unable to execute query

Переадресация с помощью ODBC, MariaDB

Доброго времени суток! Ребята, помогите с проблемой! У нас на предприятии имеется много отделов. Есть наш информационный отдел, в нем 4 человека. За каждым закреплено несколько отделов. У нас есть общая БД со списком всех номеров пользователей предприятия(около 2000) Пытась сделать так: Один общий номер ХХХХХХХ, на него будут звонить пользователи из списка , а попадать будут на того человека, за которым закреплено тот или иной отдел. Пример: У меня номер 3550, звонят с Юридического отдела( числится за мной) на общий номер ХХХХХХ. Астериск автоматически его переадресовывает на мой номер 3550, перед этим сверившись по CID с БД. Делаю через драйвер ODBC к MySQL/ Вот что сделано на данный момент:

odbc.ini [connector]odbc.ini

[connector]
Driver = MariaDB
Description = Connector/ODBC 3.51 Driver DSN
Server = 127.0.0.1
Port = 3306
User = root
Password = * *****
Database =spisok
Socket = /var/run/mysqld/mysqld.sock
Charset = utf8utf8

odbcinst.ini

odbcinst.ini [MariaDB]

[MariaDB]
Description = MySQL 
driver
Driver=/usr/lib/x8664-linux-gnu/odbc/libmaodbc.so
Driver=/usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so
Setup = /usr/lib/x8664-linux-gnu/odbc/libodbcmyS.so

/usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so asterisk*CLI> odbc show

show ODBC DSN Settings

Settings ----------------- Name: spisok DSN: connector Last connection attempt: 1970-01-01 07:00:00 Number of active connections: 1 (out of 1)

1) asterisk:~# echo "SELECT 1" | isql -v connector
+---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL> SELECT 1 +---------------------+ | 1 | +---------------------+ | 1 | +---------------------+ SQLRowCount returns 1 1 rows fetchedfetched

func_odbc.conf

funcodbc.conf

[MOBILE]
dsn=connector
readsql=SELECT COUNT(*)  FROM spisokall spisok_all WHERE number='${ARG1}'number='${ARG1}'

extensions.conf

extensions.conf

exten => X.,1,Set(PRIOR=${ODBCMOBILE(${CALLERID(num)})})
_X.,1,Set(PRIOR=${ODBC_MOBILE(${CALLERID(num)})})
exten => X.,n,GotoIf($["${PRIOR}" _X.,n,GotoIf($["${PRIOR}" = "1"]?reject:allow) ;Для теста, хотя бы из одной таблицы взять данные.
exten =>X.,n(allow),Dial(${SIP/3550})
=>_X.,n(allow),Dial(${SIP/3550})
exten =>X.,n,Hungup()
=>_X.,n,Hungup()
exten =>X.,n(reject), =>_X.,n(reject), Playback(abandon-all-hope)
exten =>_X.,n,Hungup()

=>_X.,n,Hungup()

выводит ошибку unable to execute query

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