Перейти к содержимому
Калькуляторы

MSSQL сервер в качестве источника CallerID

Собственно и весь вопрос в названии.

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

SELECT TOP 1 famil+' '+imja+' '+otch AS fio FROM dbo.F2 WHERE ntel='тут номер телефона' OR cellular='тут номер телефона'

Выбираем клиента по номеру. это работает если руками. Куда прописать чтобы само пока не понятно.

У меня Elastix 4 . Пока решил это выгрузкой из виндовой базы и последующей загрузкой в базу Elastix.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Больше похоже не на вопрос, а на рассуждение вслух.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, похоже на мысли вслух. Мне лично частенько помогает, можно посмотреть на свои мысли со стороны.

В общем докопался сам.

После того что получилось у меня в первом сообщении делаем следующее:

 

1. Создаём функцию в func_odbc.conf

[F_I_O]
dsn=MS_SQL
read=SELECT famil+' '+imja+' '+otch AS fio FROM dbo.F2 WHERE ntel='${ARG1}' OR cellular='${ARG1}'

2. В res_odbc_custom.conf

[MS_SQL]
enabled => yes
dsn => MS_SQL
share_connections => no
limit => 5
username => sa2
password => 1234
pre-connect => yes
max_connections => 30

3. В extensions_custom.conf создаём custom destination и марширутизируем вызов на него.

[from-trunk-sip-EDK-custom]
exten => _X.,1,Noop(Fixing DID using information from SIP TO header)
exten => _X.,n,Set(CALLID=${CALLERID(num):-10})
exten => _X.,n,Set(ret_func=${ODBC_F_I_O(${CALLID})})
exten => _X.,n,set(CALLERID(name)=${ret_func})
exten => _X.,n,Set(GROUP()=OUT_13)
exten => _X.,n,Goto(ext-group,600,1)

Если кто заинтересуется, могу написать как к MSSQL подключился.

Изменено пользователем danila77
добавил сообщение

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У меня заработал следующий способ.

1. подключаем репозиторий майкрософт (msprod.repo)

2. устанавливаем пакеты как на скриншоте. (может нужны и не все, но я поставил так)

2018-11-11_21-29-58.thumb.png.7d33fecb517a5ec5a46dec3aaea5cae2.png

3. в /etc/odbcinst.ini:

[ODBC_Driver_17_for_SQL_Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.2.so.0.1
UsageCount=1

В названии драйвера поменял пробелы на подчёркивания, с пробелами почему-то не работало.

4. В odbc.ini:

[MS_SQL]
Driver=ODBC_Driver_17_for_SQL_Server
Server=адрес сервера
Port=1433
Database=имя базы
UID=пользователь для запроса
PWD=пароль 

Тут в реквизиты для подключения.

5. проверяем настройки:

osql -S MS_SQL -U пользователь -P пароль

Если видим такое:

Configuration looks OK.  Connection details:

                   DSN: MS_SQL
              odbc.ini: /etc/odbc.ini
                Driver: /opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.2.so.0.1
       Server hostname: у меня тут IP сервера
               Address: у меня тут IP сервера

Attempting connection as sa2 ...
+ isql MS_SQL пользователь пароль -v
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL>

То значит подключение проходит, и можно делать запрос.

Если выходят ошибки, то смотрим что не так и исправляем.

У меня просто выкидывало пробелы в названии драйвера, после выше приведённого исправления заработало.

 

msprod.repo

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
14 часов назад, danila77 сказал:

В названии драйвера поменял пробелы на подчёркивания, с пробелами почему-то не работало.

Возможно надо было закавычить название

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
20 часов назад, EugeneTV сказал:

Возможно надо было закавычить название

Возможно , но во всех найденых инструкциях ковычек небыло. К тому же в ошибках вываливалось название драйвера с пропущенными пробелами (всё слитно) из чего я сделал вывод что пробелы там лишние.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас