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

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

0

Доброго времени суток! Ребята, помогите с проблемой! У нас на предприятии имеется много отделов. Есть наш информационный отдел, в нем 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/x86_64-linux-gnu/odbc/libmaodbc.so Setup = /usr/lib/x86_64-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 

func_odbc.conf

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

extensions.conf

exten => _X.,1,Set(PRIOR=${ODBC_MOBILE(${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

удалить закрыть спам изменить тег редактировать

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

konstantinsb Gravatar konstantinsb
1

обновил 2017-12-06 22:33:46 +0400

zzuz Gravatar zzuz flag of Russian Federation
7174 ● 2 ● 6 ● 75
http://line24.ru/

Comments

Блин, криво вставил

konstantinsb ( 2017-12-06 19:59:46 +0400 )редактировать

res_odbc.conf дядя Вася будет заполнять?

zzuz ( 2017-12-06 22:34:49 +0400 )редактировать

2 Ответа

1

шаг 1

заполняете odbc.ini, потом проверяте

isql connector -vvvv 

Если вылезла ошибка - повторяте.

Шаг 2

заполняете res_odbc.conf

перегружаете астериск.

делает в астериске

asterisk -r odbc show all 

Если не connected - повторяете

Шаг 3

Пишете func_odbc.conf, диалплан, запускаете(звоните), смотрите результат.

Если не работает

1) в базе включаем лог всех запросов, смотрим

3) в астериске включаем дебаг, смотрим.

ссылка удалить спам редактировать

ответил 2017-12-07 07:21:12 +0400

meral Gravatar meral flag of Ukraine
23347 ● 24 ● 20 ● 177
http://pro-sip.net/
0

Коннектор для asterisk должен быть описан в файле res_odbc.conf . Вы же используете несуществующий коннектор. в res_odbc.conf

[connector] enabled => yes dsn => connector idlecheck => 600 pre-connect => yes 
ссылка удалить спам редактировать

ответил 2017-12-06 22:36:23 +0400

zzuz Gravatar zzuz flag of Russian Federation
7174 ● 2 ● 6 ● 75
http://line24.ru/

обновил 2017-12-06 22:37:04 +0400

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку
1 закладка

подписаться на rss ленту новостей

Статистика

Задан: 2017-12-06 19:56:09 +0400

Просмотрен: 1,033 раз

Обновлен: Dec 07 '17

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