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

Переадресация с помощью 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
6934 2 6 72
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
22417 24 20 173
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
6934 2 6 72
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

Просмотрен: 42 раз

Обновлен: Dec 07

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