III. Команды канала управления и соответствующие им ответные сообщения

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