Собственно сабдж.
Хочу подключится к серверу АТС и собсна из 1С смотреть, например, кто звонит.
Собственно сабдж.
Хочу подключится к серверу АТС и собсна из 1С смотреть, например, кто звонит.
Суть такая.
Веб сервис это как веб страница в интернете. Только читают эту страницу программы, написанные программистами. И вместо html оформления, там на странице чисто служебные теги (нафига программам оформление)?
(0) веб-сервисы 1с - это немного другое.
тебе нужно работать с веб-сервером, т.е. HTTPСоединение
http://wiki.mcn.ru/Средства_интеграции вот мне дали эту ссылку Велтаймовцы и сказали что подставь свой сервер и вперед
Да, из УТ 10.3 хочу подключаться.
Написал вот такой код
Определения = Новый WSОпределения("http://well.umnyeseti.ru/welltime/wsdl/phone_call.wsdl", "admin", "Пароль");
WSСервис = Определения.Сервисы[0];
Прокси = Новый WSПрокси(Определения, WSСервис.URIПространстваИмен, WSСервис.Имя, WSСервис.ТочкиПодключения[0].Имя);
Ошибок не дает, а дальше то что делать?
ЗЫ
Сильно не пинайте, лох я в этом деле, в вебсервисах
(6) по адресу http://well.umnyeseti.ru/welltime/wsdl/phone_call.wsdl ничего нет как то. Может адресом ошибся?
Да, хотел в конфигурации добавить WS-ссылку выше написанную, но пишет "Неверный формат". Из браузера файл phone_call.wsdl скачивается.
А, на так выкладывай сюда wsdl из браузера и мы тебе скажем, что дальше делать
(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 в формате "Имя <номер>", который будет
использовать при звонке
Поле 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>
(7) адрес сервера well.umnyeseti.ru
(4) а, вон чё. тогда да - веб-сервис
после твоего кода..
ТипРеквест = Определения.ФабрикаXDTO.Тип("http://www.example.org/phone_call/", "CallRequest");
Что нибудь в ТипРеквест пишет?
ага, что-то пишет
могу картинку выложить
Ну теперь давай делать вещи. Продолжение кода.
Реквест = Определения.ФабрикаXDTO.Создать(типРеквест);
Реквест.From = "89164555555"; //ну или какой там исходящий номер
Реквест.To = "89164555555"; //ну или какой там куда звоним
Реквест.Timeout= 100; //ну или сколько секунд ждать
Результат = Прокси.MakeCall(Реквест);
//ну а дальше, думаю, понятно
(22) Ага, спасибо, спасибо дружище... с меня коньяк.
http://infostart.ru/public/98019/ вот эту статейку почитывал, но всеравно каша была в голове.
А тут ты мне все поставил на свои места. :-)
продолжаю тупить
делаю вот так:
Определения = Новый 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
А должен быть же мой сервер или я что-то снова не допонимаю?
Fedot то в дереве "Точка подключения" местоположение вот такое http://www.example.org/welltime/wsdl/phone_call/server.php
ну, дык
ТипРеквест = Определения.ФабрикаXDTO.Тип("http://www.example.org/phone_call/", "CallRequest");
(26) ни че не знаю. У него в wsdl написано что ns=http://www.example.org/phone_call/
К тому же тип с таким ns у него успешно создался
http://www.welltime.ru/ это производитель софта, где-то вычитал, что сделан он на астериксе, некий коробочный вариант.
Девушка с прекрасной фамилией Яна из этого велтайма сказала мне что вот описалово как из 1С подключаться http://wiki.mcn.ru/Средства_интеграции
все не читал. веб-сервисы рулят
типа в http://your_server_name/welltime/wsdl/phone_call.wsdl меняй your_server_name на имя своего сервера и все должно поехать
имя моего сервера http://well.umnyeseti.ru/
Что тогда в (25) не так?
+ я сделал веб-сервисы в 1С и добавил тестовые файлы *.php, которые юзают эти вебсервисы.
так веб-разрабы вместо того, чтобы использовать прямые ссылки на веб-сервисы 1С, вызывали эти файлы и долго на меня обижались, когда я их удалил
(32) там наверно доступ по IP ограничен, мой видать разрешен. вот такая у меня картинка по http://well.umnyeseti.ru/
http://www.imageup.ru/img225/1876204/vell.jpg.html
(36) ну грубо да, точнее конторы на которую я работаю. Может что-то на этом серваке надо настроить?
http://www.validwsdl.com/ есть вот такая штуковина, она мне тоже сказала, что сервер не доступен.