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

danila77

Пользователи
  • Публикации

    10
  • Зарегистрирован

  • Посещение

О danila77

  • Звание
    Абитуриент
  1. Возможно , но во всех найденых инструкциях ковычек небыло. К тому же в ошибках вываливалось название драйвера с пропущенными пробелами (всё слитно) из чего я сделал вывод что пробелы там лишние.
  2. У меня заработал следующий способ. 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
  3. Да, похоже на мысли вслух. Мне лично частенько помогает, можно посмотреть на свои мысли со стороны. В общем докопался сам. После того что получилось у меня в первом сообщении делаем следующее: 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 подключился.
  4. Собственно и весь вопрос в названии. К базе подключиться могу, и запрос в консоли выполняется. SELECT TOP 1 famil+' '+imja+' '+otch AS fio FROM dbo.F2 WHERE ntel='тут номер телефона' OR cellular='тут номер телефона' Выбираем клиента по номеру. это работает если руками. Куда прописать чтобы само пока не понятно. У меня Elastix 4 . Пока решил это выгрузкой из виндовой базы и последующей загрузкой в базу Elastix.
  5. Долго возился, поскольку телефонию кручу по большей части для самообразования. Хорошо начальство начинание поддерживает, в итоге решил свою проблему следующим образом: (найдено на просторах интернета с небольшими правками) Добавляем в extensions_custom.conf следующее: [from-trunk-gsmin] exten => _X.,1,Set(CHANNEL(language)=ru) exten => _X.,n,Set(CALLID=${CALLERID(num):-10}) exten => _X.,n,MYSQL(Connect connidcdr localhost root 1 asteriskcdrdb utf8) ; Для всех вызовов за последние 12 часов , как раз кто зонил сегодня. exten => _X.,n,MYSQL(Query resultidcdr ${connidcdr} SELECT * FROM cdr WHERE dst LIKE '%${CALLID}%' AND calldate > NOW() - INTERVAL 12 HOUR ORDER BY calldate DESC LIMIT 1) ; Для неотвеченных вызовов ; exten => _X.,n,MYSQL(Query resultidcdr ${connidcdr} SELECT * FROM cdr WHERE dst LIKE '%${CALLID}%' AND disposition LIKE 'NOANSWER' ORDER BY calldate DESC) exten => _X.,n,MYSQL(Fetch fetchid ${resultidcdr} calldate clid src dst) exten => _X.,n,set(number=${src}) exten => _X.,n,NoOp(кто звонил --> ${clid} кому звонил --> ${dst}) ; вот и узнали кто кому звонил exten => _X.,n,GOTOIF($["${dst}" = ""]?nodst:dst) exten => _X.,n(dst),MYSQL(Clear ${resultidcdr}) exten => _X.,n,MYSQL(Disconnect ${connidcdr}) exten => _X.,n,dial(SIP/${number},tT) ; звоним внутреннему абоненту exten => _X.,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?nodst) exten => _X.,n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?nodst) exten => _X.,n,GotoIf($["${DIALSTATUS}" = "FAILED"]?nodst) exten => _X.,n(nodst),MYSQL(Clear ${resultidcdr}) exten => _X.,n,MYSQL(Disconnect ${connidcdr}) exten => _X.,n,goto(from-trunk,101,1) ; ну и если он не отвечает то пускаем звонок секретарю (пускай работает) exten => h,1,handup() Создал custom destination и настроил входящий маршрут на это назначение , вот уже неделю вроде как работает, по крайней мере народ не жалуется и к человеку назначенному мной секретарём входящих с вопросом кто звонил звонков меньше. Забыл написать что у меня Elastix 4, и конечно приму критику по существу вопроса. Наверняка можно либо упростить или всё таки чтото не совсем верно записано.
  6. Как то попадалось мне такое обсуждение в интернете, но тогда про IP телефонию в конторе разговоров не велось и внедрение не планировалось. А сейчас не могу вспомнить по каким ключевым словам поиск вести. Хотя бы направление поиска, ключевые слова. Там уж наверное и докапаюсь.
  7. Работники звонят клиентам на мобильные но не всегда дозваниваются, когда клиенты перезванивают на номер организации то не понятно кто звонил и кому переводить звонок. Собственно вопрос: Как сделать так чтобы клиент попадал сразу к нужному человеку , а если сегодня ему никто не звонил то направить звонок на IVR или секретаря. С направлением в меню или на внутренний номер проблем нет, это работает. Надо только чтобы секретарь не думала на кого переключить. Просто один клиент может пользоваться услугами разных отделов и звонить ему могут все. Исходящий номер на мобильные только один и купить ещё несколько по количеству отделов не вариант ибо интенсивность звонков не большая и все успевают поговорить.
  8. Выбираем CPE как режим, а там в принципе всё должно быть понятно. Включаем NAT и DHCP если надо.
  9. А +7 на 8 поменять знает кто?