krsl пишет:yuri20049
ИЗ SOAP протоколов у нас есть два в ретрансляторах на Wialon Hosting - это "EGTS"(это по 285 приказу) и "SOAP"(это по протоколу АСУ ОДС), но как правильно заметил Obscured - надо анализировать формат пакета, для этого необходима информация от принимающей стороны.
3.1 Информация, передаваемая в направлении от внешней системы к платформе, обслуживающей объект
В направлении от Клиента к Серверу осуществляется передача следующих видов информации:
- SOAP запрос местоположения и состояния объекта. В ответ от Сервера приходит телематическое сообщение
- Статусное SOAP сообщение о сбое или успешном подтверждении сообщения о местоположении и состоянии объекта, переданного со стороны Сервера. Отправляется Клиентом в ответ на телематическое сообщение, поступившее от Сервера по его собственной инициативе
- SOAP сообщение с командой для передачи на объект. Сервер в ответ передает статусное сообщение о приеме команды для дальнейшей обработки или ошибку
- SOAP сообщение с сообщением и, возможно, вариантами ответа для передачи на объект. Сервер в ответ передает статусное сообщение о приеме сообщения для дальнейшей обработки или ошибку
- Статусное SOAP сообщение о сбое или успешном подтверждении сообщения о подтверждении выполнения переданной ранее команды, переданного со стороны платформы. Передается Клиентом в ответ на сообщение от Сервера о подтверждении выполнения ранее переданной команды
- Статусное SOAP сообщение о сбое или успешном подтверждении сообщения о сообщении, поступившем с объекта, и переданного со стороны Сервера. Отправляется Клиентом в ответ на сообщение от Сервера, содержащее информацию о текстовом или ином сообщении, поступившем с объекта
- Статусное SOAP сообщение о сбое или успешном подтверждении сообщения о прочтении ранее переданного сообщения с возможным вариантом ответа на него, поступившем с объекта, и переданного со стороны Сервера. Передается Клиентом в ответ на сообщение от Сервера, содержащее информацию об ответе или подтверждении прочтения ранее переданного на объект сообщения.
3.2 Информация, передаваемая в направлении от платформы, обслуживающей объект, к внешней системе
В направлении от Сервера к Клиенту осуществляется передача следующих видов информации (последовательность видов информации соответствует последовательности вида информации, приведенной в разделе 3.1. Используйте совместно для лучшего понимания SOAP диалога):
- SOAP сообщение с телематической информацией, передаваемое в ответ на запрос Клиентом местоположения объекта. Может содержать не только координатную информацию, но и информацию о состоянии входов, выходов, аналоговых входов, данные о режиме движения, данные из пользовательского порта, мультимедийную информацию – все, что позволяют измерить, зафиксировать, записать аппаратные средства, установленные на объекте
- SOAP сообщение с телематической информацией, передаваемое сервером по его собственной инициативе в момент поступления данных от объекта. Клиент в ответ Серверу возвращает статусное SOAP сообщение о принятии информации или сбое
- Статусное SOAP сообщение о подтверждении приема команды для передачи на объект или сообщение об ошибке. Передается Сервером в ответ на сообщение от Клиента с командой для объекта
- Статусное SOAP сообщение о подтверждении приема сообщения для передачи на объект или сообщение об ошибке. Передается Сервером в ответ на сообщение от Клиента с сообщением для объекта
- SOAP сообщение с подтверждением выполнения команды, ранее переданной на объект. В ответ Клиент передает статусное сообщение о приеме подтверждения о выполнении команды или ошибку
- SOAP сообщение с сообщением, поступившем с объекта. В ответ Клиент отправляет статусное сообщение о подтверждении приема сообщения или ошибку
- SOAP сообщение с информацией о подтверждении прочтения или с вариантом ответа на ранее переданное на объект сообщение. Передается Сервером по собственной инициативе в момент поступления информации с объекта. Клиент подтверждает прием статусным сообщением или выдает ошибку.
4 Необходимые сервисы Клиентской и Серверной сторон
Из информации, приведенной в разделе 3, можно сделать вывод, что для построения полнофункционального взаимодействия необходимо организовать набор сервисов, как с Клиентской, так и с Серверной стороны. При отсутствии необходимости передачи на бортовое оборудование части информации, например, сообщений, соответствующая часть сервисов не требуется к реализации.
4.1 Сервисы Серверной стороны
- Прием запроса на определение местоположения и состояния объекта
- Прием запроса на отправку команды на объект
- Прием запроса на отправку сообщения на объект с вариантами ответа
4.2 Сервисы Клиентской стороны
- Прием местоположения и состояния объекта
- Прием сообщения от объекта
- Прием подтверждения о выполнении ранее переданной на объект команды
- Прием подтверждения о прочтении и варианта ответа на ранее переданное на объект сообщение
5 Формат сообщений сервисов
Ниже подробно описаны форматы соответствующих SOAP запросов и ответов на них от противоположной стороны, как наполненных информацией, так и сообщений о сбое.
Кроме того, указано, какие действия должен выполнить Сервер и Клиент после приема или передачи того или иного сообщения, получения успешного статуса или сообщения о сбое.
5.1 Формат сообщений сервисов Серверной стороны
5.1.1 Формат сообщений сервиса приема запроса на определение местоположение и состояние объекта
При необходимости получить внеочередное местоположение и состояние объекта Клиент выдает запрос вида:
<?xml version="1.0" encoding="windows-1251"?>
<soapenv:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope">
<soapenv:Header/>
<soapenv:Body>
<ws:GetCoord>
<ObjectID>ObjectNumber</ObjectID>
</ws:GetCoord>
</soapenv:Body>
</soapenv:Envelope>
После получения данного запроса Сервер пытается определить текущее местоположение и состояние объекта с идентификатором ObjectNumber и, если это удалось сделать, то выдает следующий SOAP ответ:
<?xml version="1.0" encoding="windows-1251"?>
<soapenv:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope">
<soapenv:Header/>
<soapenv:Body>
<ws:GetCoordResponce>
<ObjectID>ObjectNumber</ObjectID>
<Coord time="KMLTimeStamp" lon="Longitude" lat="Latitude" alt="Altitude" speed="Speed" dir="Direction" valid="Validity"/>
<AddInfo motion="Run_mode_on_off" dist="by_distance" online="point_type" mileage="Current_milage"/>
<DigI inpnum="Input_number"/>
...
<DigO outnum="Output_number"/>
...
<AnalogI num="Input_number" val="Sens_value"/>
...
<PortData port="Port_num" recvd="base64_data_from port"/>
<Multimedia mmtp="MIME-type_of_data" read="base64_multimedia_data"/>
</ws:GetCoordResponce>
</soapenv:Body>
</soapenv:Envelope>
В параметре ObjectID передается идентификатор объекта, чье местоположение определяется данным документом (например, номер телефона в формате 79032058458 или другого абонентского оборудования, например, 80066670).
Далее следует обязательная структура Coord, которая определяет географическую составляющую сообщения. Имеются обязательные атрибуты:
- time указывается момент времени UTC (Гринвичское время) определения местоположения. Формат соответствует формату кодирования даты и времени, передаваемого в Гринвиче (YYYY-MM-DDThh:mm:ssZ). Например, 2010-01-29T01:28:01Z соответствует четырем часам двадцати восьми минутам одной секунде московского стандартного времени двадцать девятого января 2010 года.
- lon, lat – градусы долготы и широты местоположения. Отрицательные значения широты соответствуют южному полушарию. Отрицательные значения долготы соответствуют западному полушарию. Количество знаков в дробной части определяется точностью измерения местоположения, достигаемой бортовым оборудованием, но общее количество значащих цифр целой и дробной частей вместе не должно превышать 15 знаков
- alt – высота в метрах – опциональный атрибут. Дробное значение
- speed – скорость в км/ч. Точность один знак после запятой
- dir – направление движения в градусах от северного направления при вращении по часовой стрелке. Целое число в пределах от 0 до 359
- valid – признак валидности полученных навигационных данных. Значение 1 соответствует валидным координатам, 0 – не валидным
Разделитель целой и дробной частей – точка.
Далее следует опциональная структура AddInfo, которая определяет дополнительную информацию к замеренной координате сообщения. Имеются обязательные атрибуты:
Атрибут motion устанавливается в 1, когда данная координата замерена в режиме, когда объект двигался. Если объект стоял, и не была осуществлена отбивка по дистанции, то устанавливается в 0. Соответственно, в случае отбивки по дистанции или отбивки по таймеру или превышения порога угла поворота, атрибут устанавливается в 1.
Атрибут dist устанавливается в 1, когда посылка сгенерирована после прохождения очередного участка заданной протяженностью (отбивка по пройденной дистанции). Иначе - 0.
Атрибут online устанавливается в 1, если эту замеренную координату удалось доставить на Сервер с первой попытки передачи между бортовым оборудованием и связным шлюзом на Сервере, в противном случае, точка передается из «черного ящика» прибора – значение 0.
Атрибут mileage является опциональным и содержит пробег в километрах, накопленный нарастающим итогом. Дробная часть имеет один знак.
Далее могут следовать структуры DigitIn, являющиеся опциональными. Структур может быть несколько друг за другом по числу логических датчиков (дискретных входов и виртуальных логических датчиков), чьё состояние было активно в момент замера координаты. Значением параметра является номер активного в момент измерения местоположения цифрового входа прибора, задействованного на объекте, или виртуального датчика.
Далее могут следовать структуры DigitOut, являющиеся опциональными. Таких структур может быть несколько, в зависимости от количества активных на момент измерения данной координаты выходов. Значением параметра является номер цифрового выхода, активного в момент определения данного местоположения.
Далее могут следовать структуры AnalogIn, являющиеся опциональными. Структур может быть несколько, в зависимости от количества одновременно измеряемых на объекте аналоговых величин. Параметр num задает номер аналогового входа, измеренное значение которого посылается вместе с данной координатой. Параметр val задает значение измеренной аналоговой величины. Разделитель дробной и целой частей - точка. Количество знаков в дробной части определяется точностью измерения величины, достигаемой бортовым оборудованием, но общее количество значащих цифр целой и дробной частей вместе не должно превышать 15 знаков
Структура PortData опциональна и содержит в себе два параметра: port - номер порта бортового оборудования, через который подключено дополнительное измерительное оборудование, с которого пришло данное сообщение, recvd - является base64 закодированная строка полученного с порта байтового потока.
Структура Multimedia является опциональной и парой параметров задает тип содержимого передаваемой мультимедийной информации - mmtp (в представлении MIME type) и само содержимое, base64 кодированное, - read.
Пример ответа Сервера на запрос местоположения объекта:
<?xml version="1.0" encoding="windows-1251"?>
<soapenv:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope">
<soapenv:Header/>
<soapenv:Body>
<ws:GetCoordResponce>
<ObjectID>79032058458</ObjectID>
<Coord time="2010-01-29T01:28:01Z" lon="37.754689" lat="55.6586458" speed="20.1" dir="301" valid="1"/>
</ws:GetCoordResponce>
</soapenv:Body>
</soapenv:Envelope>
Пример отправки телематического сообщения от полнофункционального AVL оборудования:
<?xml version="1.0" encoding="windows-1251"?>
<soapenv:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope">
<soapenv:Header/>
<soapenv:Body>
<ws:GetCoordResponce>
<ObjectID>80066670</ObjectID>
<Coord time="2010-01-29T01:28:01Z" lon="37.754689" lat="55.6586458" speed="20.1" dir="301" valid="1"/>
<AddInfo motion="1" dist="0" online="1" mileage="321.1"/>
<DigI inpnum="1"/>
<DigI inpnum="9"/>
<DigO outnum="1"/>
<AnalogI num="1" val="0.05"/>
<AnalogI num="10" val="662.5"/>
<PortData port="3" recvd="abcd1280"/>
</ws:GetCoordResponce>
</soapenv:Body>
</soapenv:Envelope>
Если Серверу не удалось получить информацию о местоположении и состоянии запрашиваемого объекта, то он возвращает сообщение о сбое вида:
<?xml version='1.0' encoding="windows-1251"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
<env:Body>
<env:Fault>
<env:Code>
<env:Value>env:Receiver</env:Value>
</env:Code>
<env:Reason>
<env:Text xml:lang="en-US">No location info</env:Text>
</env:Reason>
</env:Fault>
</env:Body>
</env:Envelope>
5.1.2 Формат сообщений сервиса приема запроса на отправку команды на объект
Если необходимо передать команду на абонентское оборудование, установленное на объекте, то Клиент инициирует передачу следующего XML документа:
<?xml version="1.0" encoding="windows-1251"?>
<soapenv:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope">
<soapenv:Header/>
<soapenv:Body>
<ws:SendCommand>
<ObjectID>ObjectNumber</ObjectID>
<CommandID>CommandIdentity</CommandID>
<CommandString>CommandToSend</CommandString>
</ws:SendCommand>
</soapenv:Body>
</soapenv:Envelope>
Все параметры обязательны. ObjectNumber задает идентификатор объекта, на который должна быть отправлена команда. CommandID задает уникальный идентификатор команды так, чтобы клиентская сторона позже могла однозначно связать данный идентификатор, используемый, например, в ответе на команду, с исходным идентификатором переданным в данном пакете. Целое число в десятичной системе исчисления от 1 до 2147483647. CommandString задает содержимое передаваемой команды. Зависит от типа абонентского оборудования на объекте.
В ответ на данный запрос Сервер передает статусное ответное сообщение SendCommandResponce или сообщение об ошибке, как это описано в разделе 5.1.1, указывая Envelope.Body.Fault.Reason.Text соответствующую причину ошибки, которая привела к невозможности принятия команды для отправки на объект.
Формат ответ в случае успешного приёма команды:
<?xml version="1.0" encoding="windows-1251"?>
<soapenv:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope">
<soapenv:Header/>
<soapenv:Body>
<ws:SendCommandResponce>
<ObjectID>ObjectNumber</ObjectID>
<CommandID>CommandIdentity</CommandID>
</ws:SendCommandResponce>
</soapenv:Body>
</soapenv:Envelope>
При постановке в очередь команд на отправку Сервер должен сохранять идентификатор команды, полученный в данном пакете. Кроме того, при отслеживании подтверждений команд он должен сопоставлять какой ответ от абонентского оборудования объекта соответствует какой ранее посланной на него команде, чтобы однозначно связывать строку ответа с изначальным идентификатором команды.
5.1.3 Формат сообщений сервиса приема запроса на отправку сообщения на объект с вариантами ответа
Если необходимо передать текстовое сообщение на абонентское оборудование, установленное на объекте, возможно, с предлагаемыми вариантами ответа, то Клиент инициирует передачу следующего XML документа:
<?xml version="1.0" encoding="windows-1251"?>
<soapenv:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope">
<soapenv:Header/>
<soapenv:Body>
<ws:SendMessage>
<ObjectID>ObjectNumber</ObjectID>
<MessageID>MessageIdentity</MessageID>
<MessageText>MessageToSend</MessageText>
<Answer num="Answer_number">AnswerString</Answer>
...
</ws:SendMessage>
</soapenv:Body>
</soapenv:Envelope>
Параметры ObjectID, MessageID, MessageText обязательны и задают идентификатор объекта, идентификатор сообщения (см. раздел 5.1.2 в части определения идентификатора команды) и текст сообщения для передачи на объект.
Далее идет произвольное количество необязательных структур Answer, в которых параметр num задает порядковый номер ответа, а содержимое самого тега определяет текст варианта ответа.
В ответ на данный запрос Сервер передает статусное ответное сообщение SendMessageResponce или сообщение об ошибке, как это описано в разделе 5.1.1, указывая Envelope.Body.Fault.Reason.Text соответствующую причину ошибки, которая привела к невозможности принятия сообщения для отправки на объект.
Формат ответ в случае успешного приёма сообщения:
<?xml version="1.0" encoding="windows-1251"?>
<soapenv:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope">
<soapenv:Header/>
<soapenv:Body>
<ws:SendMessageResponce>
<ObjectID>ObjectNumber</ObjectID>
<MessageID>MessageIdentity</MessageID>
</ws:SendMessageResponce>
</soapenv:Body>
</soapenv:Envelope>
Получение абонентским оборудованием сообщения и отображение его на экране квитируется как обычная команда. Поэтому значение параметра MessageID должно быть уникальным и среди идентификаторов сообщений, и среди идентификаторов команд CommandID (см. раздел 5.1.2). После получения Сервером подтверждения доставки сообщения, сервер инициирует отправку подтверждения выполнения команды, как это описано в разделе 5.2.3.
5.2 Формат сообщений сервисов Клиентской стороны
5.2.1 Формат сообщений сервиса приема местоположение и состояния объекта
Данным сервисом пользуется Сервер, когда по собственной инициативе передает местоположение объекта (например, сразу, как навигационная посылка с бортового оборудования поступила в связной шлюз Сервера). При этом он передает XML документ, практически, совпадающий с документом GetCoordResponce, за исключением самого названия структуры внутри Envelop.Body, которая, в данном случае, носит название PutCoord. Список подчиненных структур, параметров, их обязательность и смысл полностью совпадают с документом GetCoordResponce.
В ответ на данный запрос Клиент передает статусное ответное сообщение PutCoordResponce или сообщение об ошибке, как это описано в разделе 5.1.1, указывая Envelope.Body.Fault.Reason.Text соответствующую причину ошибки, которая привела к невозможности принятия команды для отправки на объект.
Формат ответ в случае успешного приёма координатной посылки:
<?xml version="1.0" encoding="windows-1251"?>
<soapenv:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope">
<soapenv:Header/>
<soapenv:Body>
<ws:PutCoordResponce>
<ObjectID>ObjectNumber</ObjectID>
</ws:PutCoordResponce>
</soapenv:Body>
</soapenv:Envelope>
Если Клиент подтвердил получение координаты, то Сервер уничтожает ее из своего временного хранилища для данного Клиента.
5.2.2 Формат сообщений сервиса приема сообщений, поступивших от объекта
Данным сервисом пользуется Сервер, когда по собственной инициативе передает поступившее от объекта текстовое сообщение. При этом инициируется документ PutMessage.
Формат ответ в случае успешного приёма сообщения:
<?xml version="1.0" encoding="windows-1251"?>
<soapenv:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope">
<soapenv:Header/>
<soapenv:Body>
<ws:PutMessage>
<ObjectID>ObjectNumber</ObjectID>
<MessageText>MessageFromObject</MessageText>
<Time>KMLTimeStamp</Time>
</ws:PutMessage>
</soapenv:Body>
</soapenv:Envelope>
Параметр ObjectID задает идентификатор объекта, с которого поступило сообщение. Параметр MessageText определяет непосредственно переданный текст. Параметр Time определяет момент времени, когда была инициирована отправка сообщения с бортового оборудования. Подчиняется правилам представления и дешифрации, описанным в разделе 5.1.1. Все параметры являются обязательными.
В ответ на данный запрос Клиент передает статусное ответное сообщение PutMessageResponce или сообщение об ошибке, как это описано в разделе 5.1.1, указывая Envelope.Body.Fault.Reason.Text соответствующую причину ошибки, которая привела к невозможности принятия команды для отправки на объект.
<?xml version="1.0" encoding="windows-1251"?>
<soapenv:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope">
<soapenv:Header/>
<soapenv:Body>
<ws:PutMessageResponce>
<ObjectID>ObjectNumber</ObjectID>
</ws:PutMessageResponce>
</soapenv:Body>
</soapenv:Envelope>
Если клиент подтвердил получение сообщения, то Сервер уничтожает его из своего временного хранилища для данного Клиента.
5.2.3 Формат сообщений сервиса приема подтверждений на ранее переданные на объект команды
Данным сервисом пользуется Сервер, когда по собственной инициативе передает поступившее от объекта подтверждение выполнения ранее переданной на объект команды (или ошибку выполнения команды). При этом инициируется документ PutComAnswer.
<?xml version="1.0" encoding="windows-1251"?>
<soapenv:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope">
<soapenv:Header/>
<soapenv:Body>
<ws:PutComAnswer>
<ObjectID>ObjectNumber</ObjectID>
<CommandID>CommandIdentity</CommandID>
<Time>KMLTimeStamp</Time>
<AnswerOk>Ok_or_Not</AnswerOk>
<AnswerString>CommandAnswerString</AnswerString>
</ws:PutComAnswer>
</soapenv:Body>
</soapenv:Envelope>
Параметр ObjectID задает идентификатор объекта, подтверждение команды с которого поступило на Сервер. Параметр CommandID указывает идентификатор команды, который был указан в момент инициирования команды Клиентом и подтверждение или ошибка на которую поступило с объекта. Параметр Time определяет момент времени, когда была инициирована отправка подтверждения выполнения команды с бортового оборудования. Подчиняется правилам представления и дешифрации, описанным в разделе 5.1.1. Параметр AnswerOk устанавливается в 1, если команда выполнена успешно, 0, если возникла ошибка во время выполнения команды на приборе. Все указанные параметры являются обязательными.
Далее следует необязательный параметр AnswerString, который представляет строку ответа абонентского оборудования в результате выполнения команды или ошибки. В частности, если сутью команды являлся запрос некоторого конфигурационного параметра бортового оборудования, то в содержимое параметра переносится полностью текст ответ прибора.
В ответ на данный запрос Клиент передает статусное ответное сообщение PutComAnswerResponce или сообщение об ошибке, как это описано в разделе 5.1.1, указывая Envelope.Body.Fault.Reason.Text соответствующую причину ошибки, которая привела к невозможности принятия команды для отправки на объект.
Формат ответ в случае успешного приёма подтверждения на отправленную ранее команду:
<?xml version="1.0" encoding="windows-1251"?>
<soapenv:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope">
<soapenv:Header/>
<soapenv:Body>
<ws:PutComAnswerResponce>
<ObjectID>ObjectNumber</ObjectID>
<CommandID>CommandIdentity</CommandID>
</ws:PutComAnswerResponce>
</soapenv:Body>
</soapenv:Envelope>
Если клиент подтвердил получение подтверждения на отправленную ранее команду, то Сервер уничтожает его из своего временного хранилища для данного Клиента.
5.2.4 Формат сообщений сервиса приема подтверждений о прочтении и варианта ответа на ранее переданное на объект сообщение
Данным сервисом пользуется Сервер, когда по собственной инициативе передает поступившее от объекта подтверждение о прочтении ранее переданного сообщения (возможно, с выбранным вариантом ответа). При этом инициируется документ PutMsgAnswer.
<?xml version="1.0" encoding="windows-1251"?>
<soapenv:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope">
<soapenv:Header/>
<soapenv:Body>
<ws:PutMsgAnswer>
<ObjectID>ObjectNumber</ObjectID>
<MessageID>MessageIdentity</MessageID>
<Time>KMLTimeStamp</Time>
<Answer>AnswerNum</Answer>
</ws:PutMsgAnswer>
</soapenv:Body>
</soapenv:Envelope>
Параметр ObjectID задает идентификатор объекта, подтверждение прочтения сообщения с которого поступило на Сервер. Параметр MessageID указывает идентификатор сообщения, который был указан в момент инициирования сообщения Клиентом и подтверждение о прочтении на которое поступило с объекта. Параметр Time определяет момент времени, когда бортовым оборудованием был зафиксирован факт прочтения отправленного ранее сообщения или был выбран вариант ответа на сообщение. Подчиняется правилам представления и дешифрации, описанным в разделе 5.1.1. Все указанные параметры являются обязательными.
Далее следует необязательный параметр Answer, который представляет номер выбранного ответа, если вместе с исходным с сообщением передавались варианты ответа. Если данный параметр отсутствует, то поступление XML документа означает факт прочтения переданного ранее сообщения, в котором не было указано вариантов ответа.
В ответ на данный запрос Клиент передает статусное ответное сообщение PutMsgAnswerResponce или сообщение об ошибке, как это описано в разделе 5.1.1, указывая Envelope.Body.Fault.Reason.Text соответствующую причину ошибки, которая привела к невозможности принятия команды для отправки на объект.
Формат ответ в случае успешного приёма подтверждения о прочтении или варианта ответа на отправленное ранее сообщение:
<?xml version="1.0" encoding="windows-1251"?>
<soapenv:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope">
<soapenv:Header/>
<soapenv:Body>
<ws:PutMsgAnswerResponce>
<ObjectID>ObjectNumber</ObjectID>
<MessageID>MessageIdentity</MessageID>
</ws:PutMsgAnswerResponce>
</soapenv:Body>
</soapenv:Envelope>
Если клиент подтвердил получение подтверждения о прочтении или варианта ответа на сообщение, то Сервер уничтожает его из своего временного хранилища для данного Клиента.
6 Статус документа
Версия документа 1.1.
Данный документ имеет статус спецификации.
В процессе жизненного цикла систем мониторинга объектов список параметров, атрибутов и их значений может быть изменен и уточнен.
компания "Magelan"
www.magelan-ssm Нижневартовский р-он, Мегион.
Ходак Ю.М.