III. Команды канала управления и соответствующие им ответные сообщения
17. Команда аутентификации.
Команда начала аутентификации должна передаваться первой после установления соединения между ПУ ОРМ и ТС ОРМ по каждому каналу взаимодействия ПУ ОРМ и ТС ОРМ.
Содержимое команды описано типом AuthenticateSorm.
18. Ответ на команду аутентификации.
Блок данных ответа на команду начала аутентификации описан типом AuthenticateSormResponse.
19. Команда проверки связи.
Команда проверки связи используется для проверки работоспособности каналов передачи данных и управления.
Содержимое команды проверки связи описано типом ChannelHeartbeat.
20. Ответ на команду проверки связи.
Блок данных ответа на команду проверки связи описан типом ChannelHeartbeatResponse.
21. Команда запроса времени.
Команда запроса времени используется ПУ ОРМ для запроса текущего системного времени ТС ОРМ.
Содержимое команды запроса времени описано типом GetSormTime.
22. Ответ на команду запроса времени.
Блок данных ответа на команду запроса времени типом GetSormTimeResponse.
23. Команда коррекции времени.
Команда коррекции времени используется ПУ ОРМ для коррекции системного времени ТС ОРМ.
Содержимое команды коррекции времени описано типом SetSormTime.
24. Ответ на команду коррекции времени.
Блок данных ответа на команду коррекции времени описан типом SetSormTimeResponse.
25. Команда начала ввода данных.
Команда начала ввода данных используется ПУ ОРМ для информирования ТС ОРМ о необходимости начать передачу с ТС ОРМ информации с электронными образами (изображениями) почтовых отправлениях.
Содержимое команды начала ввода данных описано типом StartDataTransfer.
26. Ответ на команду начала ввода данных.
Блок данных ответа на команду начала ввода данных описан типом StartDataTransferResponse.
27. Команда окончания ввода данных.
Команда окончания ввода данных используется ПУ ОРМ для информирования ТС ОРМ о необходимости прекратить передачу с ТС ОРМ информации с электронными образами (изображениями) почтовых отправлениях.
Содержимое команды окончания ввода данных описано типом StopData Transfer.
28. Ответ на команду окончания ввода данных.
Блок данных ответа на команду окончания ввода данных описан типом StopDataTransferResponse.
29. Команда постановки объекта на контроль.
Команда постановки объекта на контроль передается с ПУ ОРМ на ТС ОРМ и содержит два варианта задания критериев отбора: по комбинации критериев (логическому правилу) фамильной, адресной и т.д. информации об отправителе и получателе, прочей информации о почтовом отправлении и по графическому образцу штемпеля организации.
Содержимое команды окончания ввода данных описано типом CreateUNI.
30. Ответ на команду постановки объекта на контроль.
Блок данных ответа на команду окончания ввода данных описан типом CreateUNIResponse.
31. Команда снятия объекта с контроля.
Команда снятия объекта с контроля посылается ПУ ОРМ на ТС ОРМ для прекращения отбора отправлений по идентификатору объекта контроля, с которым на ТС ОРМ связаны принятые ранее с ПУ ОРМ критерии отбора.
Содержимое команды коррекции времени описано типом DropUNI.
32. Ответ на команду снятия объекта с контроля.
Блок данных ответа на команду снятия объекта с контроля описан типом DropUNIResponse.
33. Команда принудительного отбора отправления.
Команда принудительного отбора посылается ПУ ОРМ на ТС ОРМ для отбора отправления по его идентификатору в случае, если отправление необходимо отсортировать в выделенную для целей ОРМ на СО ячейку, при это соответствующих критериев отбора по объектам контроля ПУ ОРМ на ТС ОРМ еще установлено не было.
Содержимое команды коррекции времени описано типом ForceUNIMailItemCommand.
34. Ответ на команду принудительного отбора отправления.
Блок данных ответа на команду окончания ввода данных описан типом ForceUNIMailItemCommandResponse.
35. Команда отправки на ТС ОРМ результатов видеокодирования.
Команда отправки на ТС ОРМ результатов видеокодирования выполняется ПУ ОРМ после завершения оператором ПУ ОРМ ручного видеокодирования изображения почтового отправления, после чего дополненная к исходным распознанным данным информация передается на ТС ОРМ.
Содержимое команды коррекции времени описано типом SendEncodedImage.
36. Ответ на команду отправки результатов видеокодирования.
Блок данных ответа на команду отправки на ТС ОРМ результатов видеокодирования описан типом SendEncodedImageResponse.
37. Извещение о завершении сортировки отправления с измененной ячейкой назначения.
Извещение о завершении сортировки на СО почтового отправления с измененной ячейкой сортировки передается ТС ОРМ на ПУ ОРМ после получения аналогичного извещения с ТС ОРМ для сигнализации на ПУ ОРМ о завершении отбора отправления.
Содержимое извещения описано типом SegregatedMailNotification.
38. Подтверждение извещения о завершении сортировки отправления с измененной ячейкой назначения.
Блок данных ответа на извещение о завершении сортировки отправления описан типом SegregatedMailNotificationAck.
39. Извещение о несанкционированном доступе к ТС ОРМ.
Извещение о несанкционированном доступе передается с ТС ОРМ после обнаружения попытки несанкционированного доступа. ТС ОРМ передает текстовое описание обнаруженной попытки и номер блока ТС ОРМ по которому обнаружена попытка.
Содержимое извещения описано типом Trap.
40. Подтверждение извещения о несанкционированном доступе к ТС ОРМ.
Ответ на извещение о несанкционированном доступе описан типом TrapAck.
41. Команда отмены решения об отборе.
Команда отмены решения об отборе посылается ПУ ОРМ для отмены ранее посланной на СО команды смены ячейки сортировки почтового отправления.
Содержимое команды отмены решения об отборе описано типом CancelItemSegregation.
42. Ответ на команду отмены решения об отборе.
Блок данных ответа на команду отмены решения об отборе описан типом CancelItemSegregationAck.
IV. ASN.1-спецификация протокола взаимодействия
ТС ОРМ и ПУ ОРМ
CONTROL-MESSAGES DEFINITIONS IMPLICIT TAGS ::= BEGIN IMPORTS MachineID, CellID, MailID, ObjectUNI, DateAndTime, LogicalOperation, PostUNIItem, PostItem, ModuleId FROM SORM-TYPES; ControlMessage ::= CHOICE { auth-request [0] AuthenticateSorm, -- команда аутентификации ПУ ОРМ на ТС ОРМ auth-response [1] AuthenticateSormResponse, -- ответ на команду аутентификации heartbeat [2] ChannelHeartbeat, -- команда проверки связи ПУ ОРМ с ТС ОРМ heartbeat-response [3] ChannelHeartbeatResponse, -- ответ на команду проверки связи ПУ ОРМ с ТС ОРМ get-time [4] GetSormTime, -- команда запроса времени ТС ОРМ get-time-response [5] GetSormTimeResponse, -- ответ на команду запроса времени ТС ОРМ set-time [6] SetSormTime, -- команда коррекции времени ТС ОРМ set-time-response [7] SetSormTimeResponse, -- ответ на команду коррекции времени ТС ОРМ start-transfer [8] StartDataTransfer, -- команда начала ввода данных с ТС ОРМ на ПУ ОРМ start-transfer-response [9] StartDataTransferResponse, -- ответ на команду начала ввода данных с ТС ОРМ на ПУ ОРМ stop-transfer [10] StopDataTransfer, -- команда окончания ввода данных с ТС ОРМ на ПУ ОРМ stop-transfer-response [11] StopDataTransferResponse, -- ответ на команду окончания ввода данных с ТС ОРМ на ПУ ОРМ create-uni [12] CreateUNI, -- команда постановки объекта на контроль create-uni-response [13] CreateUNIResponse, -- ответ на команду постановки объекта на контроль drop-uni [14] DropUNI, -- команда снятия объекта с контроля drop-uni-response [15] DropUNIResponse, -- ответ на команду снятия объекта с контроля force-uni-command [16] ForceUNIMailItemCommand, -- команда принудительного отбора отправления force-uni-command-response [17] ForceUNIMailItemCommandResponse, -- ответ на команду принудительного отбора отправления match-uni-notification [18] MatchUNINotification, -- извещение о срабатывании ОК для отправления match-uni-notification-ack [19] MatchUNINotificationAck, -- подтверждение о срабатывании ОК для отправления cancel-item-segregation [20] CancelItemSegregation, -- команда отмены решения об смене ячейки сортировки cancel-item-segregation-ack [21] CancelItemSegregationAck, -- подтверждение команды отмены решения об смене ячейки сортировки send-encoded-image [22] SendEncodedImage, -- команда отправки на ТС ОРМ результатов видеокодирования изображения оператором send-encoded-image-response [23] SendEncodedImageResponse, -- ответ на команду отправки результатов видеокодирования segregated-item-notification [24] SegregatedMailNotification, -- извещение о завершении сортировки отправления с измененной ячейкой назначения segregated-item-notification-ack [25] SegregatedMailNotificationAck, -- подтверждение извещения о завершении сортировки отправления с измененной ячейкой назначения trap [26] Trap, trap-ack [27] TrapAck } AuthenticateSorm ::= SEQUENCE { user-name UTF8String (SIZE (1..64)), -- пользователь ТС ОРМ в СО user-password OCTET STRING (SIZE(8)) -- пользовательский пароль } AuthenticateSormResponse ::= BOOLEAN -- признак успешности аутентификации ChannelHeartbeat ::= NULL ChannelHeartbeatResponse ::= NULL StartDataTransfer ::= NULL StartDataTransferResponse ::= BOOLEAN -- признак успешности приема команды начала ввода данных StopDataTransfer ::= NULL StopDataTransferResponse ::= BOOLEAN -- признак успешности приема команды окончания ввода данных GetSormTime ::= NULL GetSormTimeResponse ::= DateAndTime SetSormTime ::= DateAndTime SetSormTimeResponse ::= BOOLEAN -- признак успешности коррекции времени на всех блоках ТС ОРМ CreateUNI ::= CHOICE { uni-text [0] UNITextObject, -- контроль по распознанной текстовой информации uni-stamp [1] UNIStampObject, -- контроль по образцу штемпеля организации uni-handwrite-sample [2] UNIHandwriteSample } UNITextObject ::= SEQUENCE { machine-ids SEQUENCE OF MachineID, -- идентификатор подключенной к ТС ОРМ СО uni-criteria SEQUENCE OF UNITextParameter -- критерии отбора для объекта } UNITextParameter ::= CHOICE { separator [0] LogicalOperation, -- логический оператор связки find-mask [1] UNIRequestedTextIdentifiers -- параметр запроса } UNIRequestedTextIdentifiers ::= SEQUENCE { uni-criteria PostUNIItem, -- критерий в записи об отправлении для контроля mispelling-distance INTEGER (1..10) OPTIONAL -- количество ошибок ввода, заполняется для строковых критериев } UNIStampObject ::= SEQUENCE { machine-ids SEQUENCE OF MachineID, stamp-data SEQUENCE OF StampData -- образцы штемпеля организации в различных разрешениях } StampData ::= SEQUENCE { resolution-dpi INTEGER (0 .. 1000), stamp-data OCTET STRING -- образец штемпеля } UNIHandwriteSample ::= SEQUENCE { resolution-dpi INTEGER (0 .. 1000), sample OCTET STRING -- образец почерка } CreateUNIResponse ::= SEQUENCE { uni-created ObjectUNI, machine-id MachineID, -- идентификатор СО, на которую установлен объект uni-successful BOOLEAN, -- признак успешной постановки объекта на контроль uni-error-description UTF8String (SIZE (1 .. 256)) OPTIONAL -- краткое описание ошибки, если обнаружена } DropUNI ::= ObjectUNI --- идентификатор объекта для снятия с контроля DropUNIResponse ::= SEQUENCE { uni-dropped ObjectUNI, uni-successful BOOLEAN, --- признак успешного снятия объекта с контроля uni-error-description UTF8String (SIZE (1 .. 256)) OPTIONAL --- краткое описание ошибки, если обнаружена } ForceUNIMailItemCommand ::= MailID ForceUNIMailItemCommandResponse ::= SEQUENCE { mail-id MailID, -- идентификатор принудительно отобранного отправления cell-id CellID, -- идентификатор выделенной ячейки для целей ОРМ на СО, в которую сортируется отправление successful BOOLEAN, -- признак успешной передачи команды принудительного отбора на СО error-description UTF8String (SIZE (1 .. 256)) OPTIONAL --- краткое описание ошибки, если обнаружена } MatchUNINotification ::= SEQUENCE { mail-id MailID, matched-unis SEQUENCE OF ObjectUNI } MatchUNINotificationAck ::= NULL CancelItemSegregation ::= MailID CancelItemSegregationAck ::= SEQUENCE { result BOOLEAN -- true - ПО еще не было отобрано, false - ПО уже было отобрано } SendEncodedImage ::= SEQUENCE { mail-id MailID, -- идентификатор почтового отправления post-item PostItem, -- введенная оператором при видеокодировании изображения информация additional-data SEQUENCE OF AdditionalEncodedData OPTIONAL -- дополнительная полученная при видеокодировании текстовая информация по поверхностям отправлений } AdditionalEncodedData ::= UTF8String (SIZE (1 .. 512)) SendEncodedImageResponse ::= NULL SegregatedMailNotification ::= SEQUENCE { mail-id MailID, -- идентификатор почтового отправления для которого изменяется ячейка сортировки last-time DateAndTime, -- дата и время завершения сортировки отправления с измененной ячейкой назначения matched-unis SEQUENCE OF ObjectUNI -- список объектов контроля, в соответствии с которыми был произведен отбор } SegregatedMailNotificationAck ::= NULL Trap ::= SEQUENCE { module-id ModuleId, description UTF8String (SIZE (1 .. 1024)) } TrapAck ::= NULL END DATA-MESSAGES DEFINITIONS IMPLICIT TAGS ::= BEGIN IMPORTS MachineID, MailID, PostItem FROM SORM-TYPES; DataMessage ::= CHOICE { request [0] SormDataBlock, response [1] SormDataBlockAck } SormDataBlock ::= SEQUENCE { last-time DateAndTime, -- дата и время формирования изображения на оборудовании СО mail-type ENUMERATED { mail (0), -- конверт flat (1), -- flat mail-parcel (2) -- посылка }, mail-id MailID, -- идентификатор почтового отправления direction Direction, -- направление следования ПО mail-item-images MailItemImages, -- изображения поверхностей почтового отправления, полученные на СО post-item PostItem, -- результат распознавания изображений отправления на ТС ОРМ ocr-status OCRStatus -- статус распознавания на ТС ОРМ } Direction ::= ENUMERATED { in-zone (0), -- направление в зоне обслуживания out-zone (1) -- направление из зоны обслуживания } OCRStatus ::= ENUMERATED { not-recognized (0), -- изображения сторон ПО не распознаны partially-recognized (1), -- изображения сторон ПО частично распознаны (требуется видеокодирование) full-recognized (2) -- изображения сторон ПО полностью распознаны } MailItemImages ::= SEQUENCE { side-0 [0] OCTET STRING OPTIONAL, -- изображение лицевой стороны отправления side-1 [1] OCTET STRING OPTIONAL, -- изображение обратной стороны отправления side-2 [2] OCTET STRING OPTIONAL, -- изображение боковой стороны отправления (для посылок) side-3 [3] OCTET STRING OPTIONAL -- изображение еще стороны отправления } SormDataBlockAck ::= NULL END MANAGEMENT-MESSAGES DEFINITIONS IMPLICIT TAGS ::= BEGIN EXPORTS ManagementMessage; IMPORTS ModuleId FROM SORM-TYPES; ManagementMessage ::= CHOICE { request [0] ManagementRequest, response [1] ManagementResponse } --- тип сообщения "команда управления ТС СОРМ" ManagementRequest ::= CHOICE { get-structure [0] GetStructureRequest, --- запрос на получение структуры ТС ОРМ - КТС и модулей СПО get-module-config [1] GetModuleConfigRequest, --- запрос на получение конфигурации КТС/модуля СПО set-module-config [2] SetModuleConfigRequest, --- запрос на изменение конфигурации КТС/модуля СПО check-module [3] CheckModuleRequest, --- запрос на получение состояния модуля get-module-types [4] GetModuleTypesRequest --- запрос на получение типов модулей КТС и СПО } --- запрос на получение структуры ТС ОРМ - КТС и модулей СПО GetStructureRequest ::= NULL --- запрос на получение конфигурации КТС/модуля СПО GetModuleConfigRequest::= CHOICE { hw-modules-list [0] RequestedHardwareModules, --- перечень идентификаторов узлов КТС ТС ОРМ sw-modules-list [1] RequestedSoftwareModules --- перечень идентификаторов модулей СПО ТС ОРМ } RequestedHardwareModules ::= SEQUENCE OF ModuleId --- перечень идентификаторов узлов КТС ТС ОРМ RequestedSoftwareModules ::= SEQUENCE OF ModuleId --- перечень идентификаторов модулей СПО ТС ОРМ --- запрос на изменение конфигурации КТС/модуля СПО SetModuleConfigRequest::= SEQUENCE { module-id ModuleId, --- идентификатор конфигурируемого модуля module-config ConfiguratedModule --- устанавливаемая в модуль конфигурация } ConfiguratedModule ::= CHOICE { sw-module [0] SormSoftwareModule, --- для узла КТС hw-module [1] SormHardwareModule --- для узла СПО } --- запрос на получение состояния модуля CheckModuleRequest::= RequestedModulesList RequestedModulesList ::= CHOICE { sw-modules [0] RequestedHardwareModules, --- идентификаторы узлов КТС, для которых запрашивается состояние hw-modules [1] RequestedSoftwareModules --- идентификаторы модулей ТС ОРМ, для которых запрашивается состояние } --- запрос на получение типов модулей КТС и СПО GetModuleTypesRequest ::= NULL --- параметр модуля ModuleParameter ::= SEQUENCE { parameter-name UTF8String (SIZE (1 .. 256)), --- наименование параметра read-only BOOLEAN, --- контролируемый или измеряемый параметр parameter-value ParameterValue --- значение параметра } --- варианты значений параметров ParameterValue ::= CHOICE { string [0] UTF8String (SIZE (1 .. 256)), integer [1] INTEGER (0 .. 999999999), boolean [2] BOOLEAN } ModuleParameters ::= SEQUENCE OF ModuleParameter SormSoftwareModule ::= SEQUENCE { module-id ModuleId, --- уникальный идентификатор данного модуля hardware-module-id ModuleId, --- идентификатор КТС, на котором работает данный блок модуля СПО block-name INTEGER (0 .. 1024), --- номер блока СПО модуля module-name UTF8String (SIZE (1 .. 512)), --- наименование модуля module-type INTEGER (1 .. 512), --- идентификатор типа модуля module-parameters ModuleParameters, --- список параметров модуля sub-modules-list SubmodulesList OPTIONAL --- субмодули } SubmodulesList ::= SEQUENCE OF SormSoftwareModule SormHardwareModule ::= SEQUENCE { module-id ModuleId, --- уникальный идентификатор данного модуля block-name INTEGER (0 .. 1024), --- номер блока КТС module-name UTF8String (SIZE (1 .. 512)), --- наименование модуля module-parameters HwParameterGroups --- значение группы параметров КТС } HwParameterGroup ::= SEQUENCE { group-name UTF8String (SIZE (1 .. 512)), --- наименование группы параметров для КТС module-parameters ModuleParameters --- перечень параметров для КТС } HwParameterGroups ::= SEQUENCE OF HwParameterGroup SormSoftwareModules ::= SEQUENCE OF SormSoftwareModule SormHardwareModules ::= SEQUENCE OF SormHardwareModule --- тип сообщения "ответ на команду управления ТС ОРМ" ManagementResponse ::= CHOICE { get-structure [0] GetStructureResponse, --- ответ на запрос получения структуры ТС ОРМ - КТС и модулей СПО get-module-config [1] GetModuleConfigResponse, --- ответ на запрос получения конфигурации КТС/модуля СПО set-module-config [2] SetModuleConfigResponse, --- ответ на запрос изменения конфигурации КТС/модуля СПО check-module [3] CheckModuleResponse, --- ответ на запрос получения состояния модуля get-module-types [4] GetModuleTypesResponse --- ответ на запрос получения типов модулей КТС и СПО } --- ответ на запрос получения структуры ТС ОРМ - КТС и модулей СПО GetStructureResponse ::= SEQUENCE { sw-modules SormHardwareModules, --- перечень всех узлов КТС hw-modules SormSoftwareModules --- перечень всех модулей СПО ТС ОРМ } --- ответ на запрос получения конфигурации КТС/модуля СПО GetModuleConfigResponse ::= SEQUENCE { sw-modules SormHardwareModules, --- конфигурации запрошенных узлов КТС hw-modules SormSoftwareModules --- конфигурации запрошенных модулей СПО ТС ОРМ } --- отчет на запрос изменения конфигурации КТС/модуля СПО SetModuleConfigResponse::= ConfiguratedModule --- установленная в модуль конфигурация --- ответ на запрос получения состояния модуля CheckModuleResponse ::= CHOICE { hw-modules [0] SormHardwareModules, --- текущее состояние запрошенных модулей СПО ТС ОРМ sw-modules [1] SormSoftwareModules --- текущее состояние запрошенных узлов КТС } --- ответ на запрос получения типов модулей КТС и СПО GetModuleTypesResponse ::= SEQUENCE OF ModuleType ModuleType ::= SEQUENCE { module-type INTEGER (1 .. 512), --- идентификатор типа модуля type-description UTF8String (SIZE (1 .. 128)) --- расшифровка типа модуля } END POST-TYPES DEFINITIONS IMPLICIT TAGS ::= BEGIN EXPORTS PostItem, PostUNIItem; PostUNIItem ::= CHOICE { sender-info [0] UTF8String (SIZE (1 .. 1024)), -- информация об отправителе receiver-info [1] UTF8String (SIZE (1 .. 1024)), -- информация об адресате почтового отправления sender-address [4] UNIAddress, -- адрес доставки отправления receiver-address [5] UNIAddress, -- адрес доставки отправления post-description [6] UTF8String (SIZE (1 .. 1024)) -- заявленное описание содержимого отправления } UNIAddress ::= CHOICE { structured-address [0] UNIStructuredAddress, country-code [1] UTF8String (SIZE (1 .. 3)), index [2] UTF8String (SIZE (1 .. 12)), unstructured-address [3] UTF8String (SIZE (1 .. 1024)) } UNIStructuredAddress ::= CHOICE { country [0] UTF8String (SIZE (1 .. 128)), --- страна region [1] UTF8String (SIZE (1 .. 128)), --- область zone [2] UTF8String (SIZE (1 .. 128)), --- район, муниципальный округ city [3] UTF8String (SIZE (1 .. 128)), --- город, поселок, деревня street [4] UTF8String (SIZE (1 .. 128)), --- улица building [5] UTF8String (SIZE (1 .. 128)), --- дом, строение build-sect [6] UTF8String (SIZE (1 .. 128)), --- корпус apartment [7] UTF8String (SIZE (1 .. 128)), --- квартира, офис priv-box [8] UTF8String (SIZE (1 .. 128)), --- абонентный почтовый ящик получателя acc-addr [9] UTF8String (SIZE (1 .. 128)) --- адрес "до востребования" получателя } PostItem ::= SEQUENCE { receiver-info [0] UTF8String (SIZE (1..1024)) OPTIONAL, -- получатель ПО receiver-address [1] PostAddress OPTIONAL, -- адрес получателя sender-info [2] UTF8String (SIZE (1..1024)) OPTIONAL, -- отправитель ПО sender-address [3] PostAddress OPTIONAL, -- адрес отправителя post-info [4] PostInfo OPTIONAL, -- характеристики отправления probability INTEGER (0 .. 100) OPTIONAL -- вероятность распознавания данных } PostAddress ::= SEQUENCE { country-code UTF8String (SIZE (1..3)), -- название страны получателя в соответствии с ISO-3166-1 index [0] UTF8String (SIZE (1..12)) OPTIONAL, -- индекс отделения почтовой связи unstruct-address [1] UTF8String (SIZE (1..1024)) OPTIONAL, struct-address [2] PostAddressStructData OPTIONAL -- адресные данные } -- характеристики отправления PostInfo ::= SEQUENCE { post-weight [0] UTF8String (SIZE (1 .. 128)) OPTIONAL, -- вес почтового отправления post-cost [1] UTF8String (SIZE (1 .. 10)) OPTIONAL, -- объявленная стоимость отправления post-description [2] UTF8String (SIZE (1 .. 1024)) OPTIONAL -- заявленное описание содержимого отправления } PostAddressStructData ::= SEQUENCE { country [0] UTF8String (SIZE (1 .. 128)) OPTIONAL, --- страна region [1] UTF8String (SIZE (1 .. 128)) OPTIONAL, --- область zone [2] UTF8String (SIZE (1 .. 128)) OPTIONAL, --- район, муниципальный округ city [3] UTF8String (SIZE (1 .. 128)) OPTIONAL, --- город, поселок, деревня street [4] UTF8String (SIZE (1 .. 128)) OPTIONAL, --- улица building [5] UTF8String (SIZE (1 .. 128)) OPTIONAL, --- дом, строение build-sect [6] UTF8String (SIZE (1 .. 128)) OPTIONAL, --- корпус apartment [7] UTF8String (SIZE (1 .. 128)) OPTIONAL, --- квартира, офис priv-box [8] UTF8String (SIZE (1 .. 128)) OPTIONAL, --- абонентный почтовый ящик получателя acc-addr [9] UTF8String (SIZE (1 .. 128)) OPTIONAL --- адрес "до востребования" получателя } END SORM-MESSAGES DEFINITIONS IMPLICIT TAGS ::= BEGIN IMPORTS MessageID, DateAndTime FROM SORM-TYPES ControlMessage FROM CONTROL-MESSAGES DataMessage FROM DATA-MESSAGES ManagementMessage FROM MANAGEMENT-MESSAGES; Message ::= SEQUENCE { message-time DateAndTime, -- время и дата сообщения (формируется отправителем) message-id MessageID, -- циклический номер сообщения, формируемый отправителем, действующий на протяжении сетевого соединения data Data -- блок данных } Data ::= CHOICE { control-message [0] ControlMessage, -- блок канала управления data-message [1] DataMessage, -- блок канала данных management-message [2] ManagementMessage -- блок канала мониторинга } END SORM-TYPES DEFINITIONS IMPLICIT TAGS ::= BEGIN EXPORTS MachineID, CellID, MailID, ObjectUNI, MessageID, DateAndTime, ModuleId, LogicalOperation; MachineID ::= UTF8String (SIZE (1..10)) -- идентификатор СО, подключенной к ТС ОРМ MailID ::= SEQUENCE { machine-id MachineID, -- идентификатор СО, выполняющей обработку отправления stamp-id [0] UTF8String (SIZE (1..128)) OPTIONAL, -- идентификатор почтового отправления track-num [1] UTF8String (SIZE (1..128)) OPTIONAL -- ШПИ почтового отправления } CellID ::= UTF8String (SIZE (1..64)) -- идентификатор ячейки для сортировки ObjectUNI ::= INTEGER (0 .. 4294967295) -- идентификатор объекта контроля MessageID :: = INTEGER (0 .. 4294967295) DateAndTime ::= UTCTime --- уникальный идентификатор КТС/модуля СПО ТС ОРМ ModuleId ::= OCTET STRING (SIZE (8)) LogicalOperation ::= ENUMERATED { operation-open-bracket (0), -- открывающая скобка - "(" operation-close-bracket (1), -- закрывающая скобка - ")" operation-or (2), -- логическое "или" operation-and (3), -- логическое "и" operation-not (4) -- логическое "не" } END