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

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

19. Команда аутентификации.

Команда начала аутентификации должна передаваться первой после установления ТСР/IP соединения между ТС ОРМ и СО.

Содержимое команды описано типом AuthenticateSorm.

20. Ответ на команду аутентификации

Блок данных ответа на команду аутентификации описан типом AuthenticateSormResponse.

21. Команда проверки связи.

Команда проверки связи используется для проверки работоспособности каналов передачи данных и управления.

Содержимое команды проверки связи описано типом ChannelHeartbeat.

22. Ответ на команду проверки связи.

Блок данных ответа на команду проверки связи описан типом ChannelHeartbeatResponse.

23. Команда начала ввода данных.

Команда начала ввода данных используется ТС ОРМ для информирования СО о необходимости начать передачу с СО информации о почтовых отправлениях.

Содержимое команды начала ввода данных описано типом StartDataTransfer.

24. Ответ на команду начала ввода данных.

Блок данных ответа на команду начала ввода данных описан типом StartDataTransferResponse.

25. Команда окончания ввода данных.

Команда окончания ввода данных используется ТС ОРМ для информирования СО о необходимости прекратить передачу с СО информации о почтовых отправлениях.

Содержимое команды окончания ввода данных описано типом StopDataTransfer.

26. Ответ на команду окончания ввода данных.

Блок данных ответа на команду окончания ввода данных описан типом StopDataTransferResponse.

27. Команда назначения ячейки почтового отправления.

Команда назначения ячейки почтового отправления используется для информирования СО о необходимости сменить ячейку назначения почтового отправления или сортировки почтового отправления согласно плану почтовой сортировки.

Содержимое команды назначения ячейки почтового отправления описано типом SegregateMailItem.

Команда имеет следующие параметры:

- id - идентификатор почтового отправления;

- Cell - идентификатор ячейки СО, выделенной для целей проведения ОРМ.

Идентификаторы выделенных ячеек для целей ОРМ на каждой СО сообщаются ТС ОРМ на этапе установки ТС ОРМ.

28. Ответ на команду назначения ячейки почтового отправления.

Блок данных ответа на команду назначения ячейки почтового отправления описан типом SegregateMailItemResponse.

29. Команда отмены смены ячейки сортировки почтового отправления.

Команда отмены смены ячейки сортировки почтового отправления используется для отмены ранее посланной команды назначения сортировки и сортировки почтового отправления в соответствии с планом сортировки.

Содержимое команды отмены смены ячейки сортировки описано типом CancelItemSegregation.

30. Команда запроса количества почтовых отправлений, информация по которым не была передана СО на ТС ОРМ.

Команда запроса количества почтовых отправлений, информация по которым не была передана СО на ТС ОРМ, используется для определения ТС ОРМ количества почтовых отправлений, по которым с СО не поступило информации либо информация поступила частично. СО при получении команды должно передать на ТС ОРМ количество почтовых отправлений, пропущенных к передаче на ТС ОРМ с момента поступления предыдущей аналогичной команды с ТС ОРМ.

Содержимое описано типом GetLostMailStatistic.

31. Ответ на команду запроса количества почтовых отправлений, информация по которым не была передана СО на ТС ОРМ.

Блок данных ответа на команду назначения ячейки почтового отправления описан типом GetLostMailStatisticResponse.

32. Извещение о завершении сортировки на СО отправления с измененной ячейкой назначения.

Извещение передается СО на ТС ОРМ по каналу передачи управления после помещения СО отправления с измененной по команде ТС ОРМ ячейкой сортировки почтового отправления.

Содержимое извещения описано типом SegregatedMailNotification.

VI. ASN.1-спецификация протокола взаимодействия СО и ТС ОРМ

MAIL-MESSAGES DEFINITIONS IMPLICIT TAGS ::=
BEGIN
EXPORTS;
Message ::= SEQUENCE {
  message-time DateAndTime, -- время и дата сообщения (формируется
                               отправителем)
  message-id MessageID,    -- циклический номер сообщения, формируемый
                               отправителем, действующий на протяжении
                               сетевого соединения
  data Data                 -- блок данных
}
Data ::= CHOICE {
control-message [0] ControlMessage,  -- блок канала управления
     data-message [1] DataMessage        -- блок канала данных
}
ControlMessage ::= CHOICE {
   auth-request [0] AuthenticateSorm,  -- команда аутентификации ТС ОРМ на СО
   auth-response [1] AuthenticateSormResponse, -- ответ на команду
                                                  аутентификации
   heartbeat [2] ChannelHeartbeat,   -- команда проверки связи ТС ОРМ с СО
   heartbeat-response [3] ChannelHeartbeatResponse,   -- ответ на команду
                                               проверки связи ТС ОРМ с СО
   start-transfer [4] StartDataTransfer, -- команда начала ввода данных СО на
                                            ТС ОРМ
   start-transfer-response [5] StartDataTransferResponse,   -- ответ на
                                 команду начала ввода данных СО на ТС ОРМ
   stop-transfer [6] StopDataTransfer,   -- команда окончания ввода данных СО
                                            на ТС ОРМ
   stop-transfer-response [7] StopDataTransferResponse,   -- ответ на команду
                                          окончания ввода данных СО на ТС ОРМ
   segregate-mail-item [8] SegregateMailItem,   -- команда назначения ячейки
                                             сортировки почтового отправления
   segregate-mail-item-resp [9] SegregateMailItemResponse, -- ответ на
                   команду назначения ячейки сортировки почтового отправления
   cancel-item-segregation [10] CancelitemSegregation,      -- команда отмены
                                смены ячейки сортировки почтового отправления
   cancel-item-segregation-resp [11] CancelItemSegregationAck, -- ответ на
                 команду отмены смены ячейки сортировки почтового отправления
   mail-stat-command [12] GetLostMailStatistic, -- команда запроса количества
                                  почтовых отправлений, информация по которым
                                  не была передана СО на ТС ОРМ
   mail-stat-response [13] GetLostMailStatisticResponse,  -- ответ на команду
                                   запроса не полученных почтовых отправлений
   segregated-item-notification [14] SegregatedMailNotification, -- извещение
          о завершении сортировки отправления с измененной ячейкой назначения
   segregated-item-notification-ack [15] SegregatedMailNotificationAck --
                              подтверждение извещения о завершении сортировки
                                  отправления с измененной ячейкой назначения
}
DataMessage ::= CHOICE {
   data-block [0] MailDataBlock,   -- блок данных с изображениями отправлений
   data-block-ack [1] MailDataBlockAck,  -- подтверждение приема блока данных
   heartbeat [2] ChannelHeartbeat,      -- команда проверки связи ТС ОРМ с СО
   heartbeat-response [3] ChannelHeartbeatResponse     -- ответ на команду
                                                   проверки связи ТС ОРМ с СО
}
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   -- признак успешности приема команды
                                          окончания ввода данных
SegregateMailItem ::= SEQUENCE {
   mail-id MailID,            -- идентификатор почтового отправления для
   которого изменяется ячейка сортировки
   sorting-cell  UTF8String (SIZE (1..64))   -- идентификатор новой ячейки
                              назначения для сортировки почтового отправления
}
SegregateMailItemResponse ::= BOOLEAN -- подтверждение приема СО команды
                                      изменения ячейки назначения отправления
CancelItemSegregation ::= MailID
CancelItemSegregationAck ::= BOOLEAN  -- подтверждение отмены смены ячейки
                                         сортировки
GetLostMailStatistic::= NULL
GetLostMailStatisticResponse ::= SEQUENCE {
   last-time DateAndTime,    -- дата и время предыдущего получения информации
   lost-mail-items INTEGER (0 .. 4294967295),    -- количество отправлений,
                             информация по которым не была передана на ТС ОРМ
   partially-lost-mail-items INTEGER (0 .. 4294967295)     -- количество
          отправлений, информация по которым была передана на ТС ОРМ частично
}
SegregatedMailNotification ::= SEQUENCE {
   last-time DateAndTime,              -- дата и время завершения сортировки
                                  отправления с измененной ячейкой назначения
   mail-id MailID        -- идентификатор почтового отправления для  которого
                            изменяется ячейка сортировки
}
SegregatedMailNotificationAck ::= NULL
MailDataBlock ::= SEQUENCE {
   last-time DateAndTime,            -- дата и время формирования изображения
                                        на оборудовании СО
   mail-type ENUMERATED {
                 mail (0),       -- письмо
                 flat (1),       -- flat
                 mail-parcel (2) -- посылка
         },
   mail-item-images MailItemImages,   -- изображения поверхностей почтового
                                          отправления, полученные на СО
   mail-id       MailID,                             -- идентификатор
почтового отправления
   post-item PostItem                 -- результаты распознавания OCR
}
MailItemImages ::= SEQUENCE {
   side-0 [0] OCTET STRING OPTIONAL, -- изображение лицевой стороны
                                        отправления
   side-1 [1] OCTET STRING OPTIONAL, -- изображение обратной стороны
                                         отправления
   side-2 [2] OCTET STRING OPTIONAL  -- изображение боковой стороны
                                        отправления (для посылок)
}
MailDataBlockAck ::= NULL
MailID ::= SEQUENCE {
   machine-id UTF8String (SIZE (1..10)), -- идентификатор машины, выполняющей
                                            обработку отправления
   stamp-id [0] UTF8String (SIZE (1..128)) OPTIONAL,   -- идентификатор
                                                        почтового отправления
   track-num [1] UTF8String (SIZE (1..128)) OPTIONAL   -- ШПИ почтового
                                                          отправления
}
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               -- адрес отправителя
}
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       -- адресные данные
}
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   --- адрес
                                                           "до востребования"
}
MessageID ::= INTEGER (0 .. 4294967295)
DateAndTime ::= UTCTime

END