danila77 Posted November 8, 2018 Posted November 8, 2018 Собственно и весь вопрос в названии. К базе подключиться могу, и запрос в консоли выполняется. SELECT TOP 1 famil+' '+imja+' '+otch AS fio FROM dbo.F2 WHERE ntel='тут номер телефона' OR cellular='тут номер телефона' Выбираем клиента по номеру. это работает если руками. Куда прописать чтобы само пока не понятно. У меня Elastix 4 . Пока решил это выгрузкой из виндовой базы и последующей загрузкой в базу Elastix. Вставить ник Quote
murano Posted November 11, 2018 Posted November 11, 2018 Больше похоже не на вопрос, а на рассуждение вслух. Вставить ник Quote
danila77 Posted November 11, 2018 Author Posted November 11, 2018 (edited) Да, похоже на мысли вслух. Мне лично частенько помогает, можно посмотреть на свои мысли со стороны. В общем докопался сам. После того что получилось у меня в первом сообщении делаем следующее: 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 подключился. Edited November 11, 2018 by danila77 добавил сообщение Вставить ник Quote
jffulcrum Posted November 11, 2018 Posted November 11, 2018 @danila77 Напишите, способов-то уже много. Вставить ник Quote
danila77 Posted November 11, 2018 Author Posted November 11, 2018 У меня заработал следующий способ. 1. подключаем репозиторий майкрософт (msprod.repo) 2. устанавливаем пакеты как на скриншоте. (может нужны и не все, но я поставил так) 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 Вставить ник Quote
EugeneTV Posted November 12, 2018 Posted November 12, 2018 14 часов назад, danila77 сказал: В названии драйвера поменял пробелы на подчёркивания, с пробелами почему-то не работало. Возможно надо было закавычить название Вставить ник Quote
danila77 Posted November 13, 2018 Author Posted November 13, 2018 20 часов назад, EugeneTV сказал: Возможно надо было закавычить название Возможно , но во всех найденых инструкциях ковычек небыло. К тому же в ошибках вываливалось название драйвера с пропущенными пробелами (всё слитно) из чего я сделал вывод что пробелы там лишние. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.