Господа, кто работал с вебсервисами помогите понять суть...

  1. 10 г. назад

    Собственно сабдж.
    Хочу подключится к серверу АТС и собсна из 1С смотреть, например, кто звонит.

    Ответы: (2)
  2. 11.09.2014 11:13:52 отредактировано sda553

    Суть такая.
    Веб сервис это как веб страница в интернете. Только читают эту страницу программы, написанные программистами. И вместо html оформления, там на странице чисто служебные теги (нафига программам оформление)?

  3. (0) веб-сервисы 1с - это немного другое.
    тебе нужно работать с веб-сервером, т.е. HTTPСоединение

  4. http://infostart.ru/public/255881/

  5. http://wiki.mcn.ru/Средства_интеграции вот мне дали эту ссылку Велтаймовцы и сказали что подставь свой сервер и вперед

    Ответы: (15)
  6. Да, из УТ 10.3 хочу подключаться.

  7. Написал вот такой код
    Определения = Новый WSОпределения("http://well.umnyeseti.ru/welltime/wsdl/phone_call.wsdl", "admin", "Пароль");
    WSСервис = Определения.Сервисы[0];
    Прокси = Новый WSПрокси(Определения, WSСервис.URIПространстваИмен, WSСервис.Имя, WSСервис.ТочкиПодключения[0].Имя);

    Ошибок не дает, а дальше то что делать?
    ЗЫ
    Сильно не пинайте, лох я в этом деле, в вебсервисах

    Ответы: (7)
  8. 11.09.2014 11:25:00 отредактировано sda553

    (6) по адресу http://well.umnyeseti.ru/welltime/wsdl/phone_call.wsdl ничего нет как то. Может адресом ошибся?

    Ответы: (10) (14)
  9. Да, хотел в конфигурации добавить WS-ссылку выше написанную, но пишет "Неверный формат". Из браузера файл phone_call.wsdl скачивается.

  10. А, на так выкладывай сюда wsdl из браузера и мы тебе скажем, что дальше делать

  11. (7) а у меня файл качается по этой ссылке

    Ответы: (11)
  12. (10) Он текстовый, по сути своей. Скопируй текст сюда по CUT

    Ответы: (12)
  13. (11)<?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <?xml-stylesheet type="text/xsl" href="../wsdl-viewer.xsl"?>
    <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:tns="http://www.example.org/phone_call/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="phone_call"
    targetNamespace="http://www.example.org/phone_call/">
    <wsdl:types>
    <xsd:schema targetNamespace="http://www.example.org/phone_call/">
    <xsd:element name="MakeCallResponse" type="xsd:boolean">

    </xsd:element>
    <xsd:complexType name="AddDialTarget">
    <xsd:sequence>
    <xsd:element name="SessionId" type="xsd:int" maxOccurs="1"
    minOccurs="1">
    <xsd:annotation>
    <xsd:documentation>Идентификатор сессии получается из интерфейса
    </xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    <xsd:element name="Number" type="xsd:string" maxOccurs="1"
    minOccurs="1">
    <xsd:annotation>
    <xsd:documentation>Номер для вызова</xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    <xsd:element name="SpyCallRequest" type="tns:CallRequest"></xsd:element>

    <xsd:element name="MakeCallRequest" type="tns:CallRequest">
    </xsd:element>
    <xsd:element name="SpyCallResponse" type="xsd:boolean"></xsd:element>
    <xsd:element name="HelpCallResponse" type="xsd:boolean"></xsd:element>
    <xsd:element name="HelpCallRequest" type="tns:CallRequest">
    </xsd:element>
    <xsd:complexType name="CallRequest">
    <xsd:annotation>
    <xsd:documentation>Тип CallRequest описывающий телефонный звонок.
    Поле From - внутренний номер абонента, тот кто осуществляет вызов
    Поле To - вызываемый номер внутренний или внешний
    Поле CallerID - CallerID в формате "Имя &lt;номер&gt;", который будет
    использовать при звонке
    Поле Timeout - сколько ждать
    </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
    <xsd:element name="From" type="xsd:string" maxOccurs="1"
    minOccurs="1">
    </xsd:element>
    <xsd:element name="To" type="xsd:string" maxOccurs="1"
    minOccurs="1">
    </xsd:element>
    <xsd:element name="Timeout" type="xsd:int" maxOccurs="1"
    minOccurs="0">
    </xsd:element>
    <xsd:element name="CallerID" type="xsd:string"
    maxOccurs="1" minOccurs="0">
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    <xsd:element name="PickUpCallRequest" type="tns:CallRequest">
    </xsd:element>
    <xsd:element name="PickUpCallResponse" type="xsd:string"></xsd:element>
    <xsd:element name="QueueAddRequest" type="tns:QueueRegRequest">
    </xsd:element>

    <xsd:element name="QueueDelRequest" type="tns:QueueRegRequest">
    </xsd:element>
    <xsd:element name="QueueDelResponse" type="tns:CmdResponse">
    </xsd:element>
    <xsd:element name="QueueAddResponse" type="tns:CmdResponse">
    </xsd:element>

    <xsd:complexType name="QueueRegRequest">
    <xsd:annotation>
    <xsd:documentation>Тип описывающий операцию с очередью и номером
    телефонии
    QueueNum - номер очереди
    SubscriberNum - номер агента или порта
    Penalty - опциональный параметр
    Paused - опциональный параметр
    </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
    <xsd:element name="QueueNum" type="xsd:string"
    maxOccurs="1" minOccurs="1">
    </xsd:element>
    <xsd:element name="SubscriberNum" type="xsd:string"
    maxOccurs="1" minOccurs="1">
    </xsd:element>
    <xsd:element name="Penalty" type="xsd:string"
    maxOccurs="1" minOccurs="0">
    </xsd:element>
    <xsd:element name="Paused" type="xsd:string" maxOccurs="1"
    minOccurs="0">
    </xsd:element>
    <xsd:element name="Timeout" type="xsd:int" maxOccurs="1"
    minOccurs="0">
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="CmdResponse">
    <xsd:annotation>
    <xsd:documentation>status - код ответа
    description - описание ответа либо ошибки
    ActionID - уникальный идентификатор присвоенный API
    </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
    <xsd:element name="status" type="xsd:int" maxOccurs="1"
    minOccurs="1">
    <xsd:annotation>
    <xsd:documentation></xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    <xsd:element name="description" type="xsd:string"
    maxOccurs="1" minOccurs="0"></xsd:element>
    <xsd:element name="ActionID" type="xsd:string"
    maxOccurs="1" minOccurs="0"></xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:schema>
    </wsdl:types>
    <wsdl:message name="MakeCallRequest">
    <wsdl:part element="tns:MakeCallRequest" name="MakeCallRequest" />
    </wsdl:message>
    <wsdl:message name="MakeCallResponse">
    <wsdl:part element="tns:MakeCallResponse" name="MakeCallResponse" />
    </wsdl:message>
    <wsdl:message name="SpyCallRequest">
    <wsdl:part name="SpyCallRequest" element="tns:SpyCallRequest"></wsdl:part>
    </wsdl:message>
    <wsdl:message name="SpyCallResponse">
    <wsdl:part name="SpyCallResponse" element="tns:SpyCallResponse"></wsdl:part>
    </wsdl:message>
    <wsdl:message name="HelpCallRequest">
    <wsdl:part name="HelpCallRequest" element="tns:HelpCallRequest"></wsdl:part>
    </wsdl:message>
    <wsdl:message name="HelpCallResponse">
    <wsdl:part name="HelpCallResponse" element="tns:HelpCallResponse"></wsdl:part>
    </wsdl:message>
    <wsdl:message name="PickUpCallRequest">
    <wsdl:part name="PickUpCallRequest" element="tns:PickUpCallRequest"></wsdl:part>
    </wsdl:message>
    <wsdl:message name="PickUpCallResponse">
    <wsdl:part name="PickUpCallResponse" element="tns:PickUpCallResponse"></wsdl:part>
    </wsdl:message>
    <wsdl:message name="QueueAddRequest">
    <wsdl:part name="QueueAddRequest" element="tns:QueueAddRequest"></wsdl:part>
    </wsdl:message>
    <wsdl:message name="QueueAddResponse">
    <wsdl:part name="QueueAddResponse" element="tns:QueueAddResponse"></wsdl:part>
    </wsdl:message>
    <wsdl:message name="QueueDelRequest">
    <wsdl:part name="QueueDelRequest" element="tns:QueueDelRequest"></wsdl:part>
    </wsdl:message>
    <wsdl:message name="QueueDelResponse">
    <wsdl:part name="QueueDelResponse" element="tns:QueueDelResponse"></wsdl:part>
    </wsdl:message>
    <wsdl:message name="AddDialTargetRequest">
    <wsdl:part name="AddDialTargetRequest" element="tns:AddDialTargetRequest"></wsdl:part>
    </wsdl:message>
    <wsdl:message name="AddDialTargetResponse">
    <wsdl:part name="AddDialTargetResponse" element="tns:AddDialTargetResponse"></wsdl:part>
    </wsdl:message>
    <wsdl:message name="DropDialTargetRequest">
    <wsdl:part name="DropDialTargetRequest" element="tns:DropDialTargetRequest"></wsdl:part>
    </wsdl:message>
    <wsdl:message name="DropDialTargetResponse">
    <wsdl:part name="DropDialTargetResponse" element="tns:DropDialTargetResponse"></wsdl:part>
    </wsdl:message>
    <wsdl:message name="DelayDialTargetRequest">
    <wsdl:part name="DelayDialTargetRequest" element="tns:DelayDialTarget"></wsdl:part>
    </wsdl:message>
    <wsdl:message name="DelayDialTargetResponse">
    <wsdl:part name="DelayDialTargetResponse" element="tns:DelayDialTargetResponse"></wsdl:part>
    </wsdl:message>
    <wsdl:portType name="phone_callInterface">
    <wsdl:operation name="MakeCall">
    <wsdl:documentation>Осуществляет телефонный звонок.
    Использует тип CallRequest описывающий телефонный звонок.
    Поле From - внутренний номер абонента, тот кто осуществляет вызов.
    Поле To - вызываемый номер внутренний или внешний.
    </wsdl:documentation>
    <wsdl:input message="tns:MakeCallRequest" />
    <wsdl:output message="tns:MakeCallResponse" />
    </wsdl:operation>
    <wsdl:operation name="SpyCall">
    <wsdl:documentation>Подслушивающий звонок супервизор подключается к
    звонящим и прослушивает телефонный звонок в реальном времени.
    Использует тип CallRequest описывающий телефонный звонок.
    Поле From - внутренний номер абонента, тот кто осуществляет вызов.
    Поле To - вызываемый номер внутренний или внешний.
    </wsdl:documentation>
    <wsdl:input message="tns:SpyCallRequest"></wsdl:input>
    <wsdl:output message="tns:SpyCallResponse"></wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="HelpCall">
    <wsdl:documentation>Звонок подсказка, супервизор подключается к
    звонящим и прослушивает телефонный звонок в реальном времени. При
    этом он может комментировать звонок. Комментарии супервизора слышит
    только оператор.
    Использует тип CallRequest описывающий телефонный звонок.
    Поле From - внутренний номер абонента, тот кто осуществляет вызов.
    Поле To - номер абонента звонок которому нужно прослушать.
    </wsdl:documentation>
    <wsdl:input message="tns:HelpCallRequest"></wsdl:input>
    <wsdl:output message="tns:HelpCallResponse"></wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="PickUpCall">
    <wsdl:documentation>Перехват звонка супервизор может перехватить
    телефонный звонок идущий другому оператору.
    Использует тип CallRequest описывающий телефонный звонок.
    Поле From - внутренний номер абонента, тот кто осуществляет вызов.
    Поле To - номер звонок на который нужно перехватить.
    </wsdl:documentation>
    <wsdl:input message="tns:PickUpCallRequest"></wsdl:input>
    <wsdl:output message="tns:PickUpCallResponse"></wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="QueueAdd">
    <wsdl:documentation>Регистрация номера в очереди номером может быть
    как агент так и порт
    Использует QueueRegRequest
    Тип описывающий операцию с очередью и номером телефонии
    QueueNum - номер очереди
    SubscriberNum - номер агента или порта
    Penalty - опциональный параметр
    Paused - опциональный параметр
    </wsdl:documentation>
    <wsdl:input message="tns:QueueAddRequest"></wsdl:input>
    <wsdl:output message="tns:QueueAddResponse"></wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="QueueDel">
    <wsdl:documentation>Снятие регистрации номера в очереди в качестве
    номера может быть как агент так и порт
    Использует QueueRegRequest тип описывающий операцию с очередью и номером
    телефонии
    QueueNum - номер очереди
    SubscriberNum - номер агента или порта
    Penalty - опциональный параметр
    Paused - опциональный параметр
    </wsdl:documentation>
    <wsdl:input message="tns:QueueDelRequest"></wsdl:input>
    <wsdl:output message="tns:QueueDelResponse"></wsdl:output>
    </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="phone_callSOAP"
    type="tns:phone_callInterface">

    <soap:binding style="document"
    transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="MakeCall">

    <soap:operation
    soapAction="http://www.example.org/phone_call/MakeCall" />
    <wsdl:input>

    <soap:body use="literal" />
    </wsdl:input>
    <wsdl:output>

    <soap:body use="literal" />
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="SpyCall">

    <soap:operation
    soapAction="http://www.example.org/phone_call/SpyCall" />
    <wsdl:input>

    <soap:body use="literal" />
    </wsdl:input>
    <wsdl:output>

    <soap:body use="literal" />
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="HelpCall">

    <soap:operation
    soapAction="http://www.example.org/phone_call/HelpCall" />
    <wsdl:input>

    <soap:body use="literal" />
    </wsdl:input>
    <wsdl:output>

    <soap:body use="literal" />
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="PickUpCall">

    <soap:operation
    soapAction="http://www.example.org/phone_call/PickUpCall" />
    <wsdl:input>

    <soap:body use="literal" />
    </wsdl:input>
    <wsdl:output>

    <soap:body use="literal" />
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="QueueAdd">

    <soap:operation
    soapAction="http://www.example.org/phone_call/QueueAdd" />
    <wsdl:input>

    <soap:body use="literal" />
    </wsdl:input>
    <wsdl:output>

    <soap:body use="literal" />
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="QueueDel">

    <soap:operation
    soapAction="http://www.example.org/phone_call/QueueDel" />
    <wsdl:input>

    <soap:body use="literal" />
    </wsdl:input>
    <wsdl:output>

    <soap:body use="literal" />
    </wsdl:output>
    </wsdl:operation>

    </wsdl:binding>
    <wsdl:service name="phone_callService">
    <wsdl:port binding="tns:phone_callSOAP" name="phone_callSOAP">
    <soap:address
    location="http://www.example.org/welltime/wsdl/phone_call/server.php" />
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>

  14. вот еще некое описание http://well.umnyeseti.ru/welltime/wsdl/phone_call/server.php?wsdl#src.id0xff129b80

  15. (7) адрес сервера well.umnyeseti.ru

  16. (4) а, вон чё. тогда да - веб-сервис

  17. 11.09.2014 11:55:57 отредактировано sda553

    после твоего кода..
    ТипРеквест = Определения.ФабрикаXDTO.Тип("http://www.example.org/phone_call/", "CallRequest");
    Что нибудь в ТипРеквест пишет?

    Ответы: (19) (21)
  18. ага, что-то пишет

  19. могу картинку выложить

  20. (16)http://www.imageup.ru/img225/1875951/fabrika.png.html

  21. http://www.imageup.ru/img225/1875951/fabrika.png.html

    Ответы: (21)
  22. (16) ТипРеквест такая-же картинка как в (20)

  23. Ну теперь давай делать вещи. Продолжение кода.

    Реквест = Определения.ФабрикаXDTO.Создать(типРеквест);
    Реквест.From = "89164555555"; //ну или какой там исходящий номер
    Реквест.To = "89164555555"; //ну или какой там куда звоним
    Реквест.Timeout= 100; //ну или сколько секунд ждать
    Результат = Прокси.MakeCall(Реквест);

    //ну а дальше, думаю, понятно

    Ответы: (23)
  24. (22) Ага, спасибо, спасибо дружище... с меня коньяк.

  25. http://infostart.ru/public/98019/ вот эту статейку почитывал, но всеравно каша была в голове.
    А тут ты мне все поставил на свои места. :-)

  26. продолжаю тупить
    делаю вот так:
    Определения = Новый WSОпределения("http://well.umnyeseti.ru/welltime/wsdl/phone_call.wsdl", "admin", "Пароль");
    WSСервис = Определения.Сервисы[0];
    Прокси = Новый WSПрокси(Определения, WSСервис.URIПространстваИмен, WSСервис.Имя, WSСервис.ТочкиПодключения[0].Имя);
    Прокси.Пользователь = "admin";
    Прокси.Пароль = "Пароль";
    ТипРеквест = Определения.ФабрикаXDTO.Тип("http://www.example.org/phone_call/", "CallRequest");
    Реквест = Определения.ФабрикаXDTO.Создать(типРеквест);
    Реквест.From = "+74959861171";
    Реквест.To = "+79853336781";
    Реквест.Timeout = 10;
    Результат = Прокси.MakeCall(Реквест);

    получаю ошибку 504 - Gateway Timeout

    Если посмотреть в "прокси", то в дереве "Точка подключения" местоположение вот такое http://www.example.org/welltime/wsdl/phone_call/server.php

    А должен быть же мой сервер или я что-то снова не допонимаю?

    Ответы: (26) (28) (33)
  27. Fedot то в дереве "Точка подключения" местоположение вот такое http://www.example.org/welltime/wsdl/phone_call/server.php

    ну, дык
    ТипРеквест = Определения.ФабрикаXDTO.Тип("http://www.example.org/phone_call/", "CallRequest");

    Ответы: (27)
  28. (26) ни че не знаю. У него в wsdl написано что ns=http://www.example.org/phone_call/
    К тому же тип с таким ns у него успешно создался

  29. (25) Должен быть веб сервер того, кто этот сервис звонилки предоставляет. Я фиг знает, какую ты сторону представляешь

    Ответы: (29)
  30. (28) http://well.umnyeseti.ru/ вот сервер

    Ответы: (32) (36)
  31. http://www.welltime.ru/ это производитель софта, где-то вычитал, что сделан он на астериксе, некий коробочный вариант.
    Девушка с прекрасной фамилией Яна из этого велтайма сказала мне что вот описалово как из 1С подключаться http://wiki.mcn.ru/Средства_интеграции

  32. все не читал. веб-сервисы рулят

  33. (29) не отвечает

    Ответы: (35)
  34. типа в http://your_server_name/welltime/wsdl/phone_call.wsdl меняй your_server_name на имя своего сервера и все должно поехать
    имя моего сервера http://well.umnyeseti.ru/

    Что тогда в (25) не так?

  35. + я сделал веб-сервисы в 1С и добавил тестовые файлы *.php, которые юзают эти вебсервисы.
    так веб-разрабы вместо того, чтобы использовать прямые ссылки на веб-сервисы 1С, вызывали эти файлы и долго на меня обижались, когда я их удалил

  36. (32) там наверно доступ по IP ограничен, мой видать разрешен. вот такая у меня картинка по http://well.umnyeseti.ru/
    http://www.imageup.ru/img225/1876204/vell.jpg.html

  37. (29) Это твой сервер?

    Ответы: (37)
  38. (36) ну грубо да, точнее конторы на которую я работаю. Может что-то на этом серваке надо настроить?

  39. http://www.validwsdl.com/ есть вот такая штуковина, она мне тоже сказала, что сервер не доступен.

  40. знаю, но бухаю

    Ответы: (40) (41)
  41. (39) бросай, потерять можешь много.

    Ответы: (41)
  42. Fedot (39) бросай, потерять можешь много.

    завтра завязка 100 %

    Ответы: (131)

или зарегистрируйтесь чтобы ответить!