Вход | Регистрация


1C + OkTell HTTP API

1C + OkTell HTTP API
Я
   DosBot
 
11.07.18 - 06:24
Добрый день.
Имеется:
1) Сервер OkTell'а с включенным встроенным web-сервером (http://wiki.oktell.ru/Серверный_HTTP_интерфейс).
2) Адноэска: Медицина. Больница, редакция 1.4 (1.4.2.1).
Платформа 8.3.9.2170

Хочу по ссылке выше выполнить тривиальную вещь: позвонить некому абоненту из 1С через ОкТелл.

Для этого выполняю код:
...
    HTTPСоединение = Новый HTTPСоединение(ДанныеПодключения.Адрес, ДанныеПодключения.Порт,,,,10); 

    ЗапросПозвонить = "http://ИмяПользователя:Пароль@192.168.XX.XX:4055/execsvcscript?name=SvcScript1&startparam1=221&startparam2=НОМЕРТЕЛЕФОНА&async=0&timeout=10";;
    HTTPЗапрос = Новый HTTPЗапрос(ЗапросПозвонитьСкрипт);
    Результат =  HTTPСоединение.Получить(HTTPЗапрос);
...

В итоге всё, что я получаю - это код ошибки 404.

Сначала грешил на криво написанный скрипт на самом сервер OkTell. Но самая простая команда из той же вики октелла:
http://ИмяПользователя:Пароль@192.168.XX.XX:4055/getversion
даёт тот же результат
Дальнейшая медитация в вики октелла на эту тему ясности не добавила.
В OkTell у пользователя, по данным которого отправляю запрос стоит настройка "Возможность исполнять методы Web-Api" = истина.

ЧЯДНТ?
 
 
   DosBot
 
1 - 11.07.18 - 06:25
Очапятка:
ЗапросПозвонитьСкрипт => ЗапросПозвонить
   DosBot
 
2 - 11.07.18 - 07:52
Кто-нибудь вообще развлекался с "Http-API" Oktell? :(
   Остап Сулейманович
 
3 - 11.07.18 - 08:30
(0) С этим адресом : 192.168.XX.XX все в порядке?
Это замылено для форума или так реально в коде забито?
   DosBot
 
4 - 11.07.18 - 08:38
(3) замылино специально. В коде все норм (о чём говорит наличие ответа от сервера)
   Остап Сулейманович
 
5 - 11.07.18 - 08:42
(4) Какой смысл мылить адрес из внутренней подсети?
   DosBot
 
6 - 11.07.18 - 09:10
(5) да никакого - просто писал адрес по памяти, не на рабочем месте (не вспомнил последние цифры)
   DosBot
 
7 - 11.07.18 - 10:07
апну
   DosBot
 
8 - 09.10.18 - 12:43
В общем, разобрался в чем беда. Оказывается в настройках пользователей ОкТелла небыло присвоено роли "Пользователь".

Теперь медитирую вот над чем:
Как "слепить простенький Софтфон" или "взять бесплатный готовый, работающий с софтовой АТСкой".

...
Вот есть статья по настройке софтфона в ОкТелле:
http://wiki.oktell.ru/Подключение_IP_телефонов_и_софтфонов

Опять же, есть функция веб-интерфейса ОкТелла wp_autocallstart
(http://wiki.oktell.ru/Серверный_HTTP_интерфейс).

Теперь, как связать одно с другим? Как получить список свободных линий, выполнить звонок (изменив статус линии и тп)?
Где можно увидеть пример и порядок взаимодействия софтфона с сервером ОкТелла? Что, ему, серверу ОкТелла надо, чтобы выполнить звонок через wp_autocallstart?
   DosBot
 
9 - 09.10.18 - 12:48
Собственно, код который организует сейчас телефонный звонок:

...
    HTTPСоединение = Новый HTTPСоединение(ДанныеПодключения.Адрес, ДанныеПодключения.Порт, Логин, Пароль,,10); 
    ЗапросПозвонитьСкрипт = "/execsvcscript?name=SvcScript1&startparam1="+ВнутреннийНомер+"&startparam2="+НомерТелефона+"&async=0&timeout=10";
    HTTPЗапрос = Новый HTTPЗапрос(ЗапросПозвонитьСкрипт);

    Результат =  HTTPСоединение.Получить(HTTPЗапрос);
...

При этом должно быть запущено (!) стороннее приложение ОкТелл клиента т.к. скрипт выполняется методами этого приложения... поэтому хочу собственно то что в (8) чтобы без всяких ОкТелл клиентов...
   palsergeich
 
10 - 09.10.18 - 13:20
Нц начнем с того что 404 - страница не найдена, стандартный HTTP ответ если что то не так с адресом
 
 Рекламное место пустует
   palsergeich
 
11 - 09.10.18 - 13:24
Я бы сделал так
    HTTPСоединение = Новый HTTPСоединение(ДанныеПодключения.Адрес, ДанныеПодключения.Порт,,,,10); 
    HTTPСоединение.Пользователь = ИмяПользователя;
    HTTPСоединение.Пароль = Пароль;
    HTTPСоединение.Порт = 4055; 
    ЗапросПозвонить = "execsvcscript?name=SvcScript1&startparam1=221&startparam2=НОМЕРТЕЛЕФОНА&async=0&timeout=10";;

    HTTPЗапрос = Новый HTTPЗапрос(ЗапросПозвонитьСкрипт);

    Результат =  HTTPСоединение.Получить(HTTPЗапрос);
   palsergeich
 
12 - 09.10.18 - 13:27
ТОчнее Вот Так
    
Я бы сделал так
    HTTPСоединение = Новый HTTPСоединение(192.168.XX.XX, 4055,,,,10); 
    HTTPСоединение.Пользователь = ИмяПользователя;
    HTTPСоединение.Пароль = Пароль;
    ЗапросПозвонить = "execsvcscript?name=SvcScript1&startparam1=221&startparam2=НОМЕРТЕЛЕФОНА&async=0&timeout=10";;

    HTTPЗапрос = Новый HTTPЗапрос(ЗапросПозвонитьСкрипт);

    Результат =  HTTPСоединение.Получить(HTTPЗапрос);
   palsergeich
 
13 - 09.10.18 - 13:28
Просто код в (0) безсмысленен - вы логинетесь на одном сервере и пытаетесь передать невалдный запрос в него
   DosBot
 
14 - 09.10.18 - 13:38
(13) Да. То что правильно и работает в итоге в (9)
   DosBot
 
15 - 09.10.18 - 13:41
Вопрос в вот в чём: как сделать исходящий вызов через функцию wp_autocallstart.
Только что проверил: она работает, но только когда включено приложение Oktell client.. :(

Список тем форума
Рекламное место пустует  Рекламное место пустует
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует