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

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 сказал:

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

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

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


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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.