Приказ Министерства цифрового развития, связи и массовых коммуникаций Российской Федерации от 28.08.2023 г. № 750 (Официальный интернет-портал правовой информации (www.pravo.gov.ru) от 28.11.2023 г., ст. 0001202311280012)
Исходная редакция
МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
ПРИКАЗ
Москва
28 августа 2023 г. № 750
О внесении изменений в Требования к оборудованию и программно-техническим средствам, используемым организатором распространения информации в сети "Интернет" в эксплуатируемых им информационных системах, для проведения уполномоченными государственными органами, осуществляющими оперативно-розыскную деятельность или обеспечение безопасности Российской Федерации, мероприятий в целях реализации возложенных на них задач, утвержденные приказом Министерства цифрового развития, связи и массовых коммуникаций Российской Федерации от 29.10.2018 № 571
Зарегистрирован Минюстом России 27 ноября 2023 г.
Регистрационный № 76124
В соответствии с частью 4 статьи 10.1 Федерального закона от 27 июля 2006 г. № 149-ФЗ "Об информации, информационных технологиях и о защите информации", пунктами 5 и 8 Правил взаимодействия организаторов распространения информации в информационно-телекоммуникационной сети "Интернет" с уполномоченными государственными органами, осуществляющими оперативно-разыскную деятельность или обеспечение безопасности Российской Федерации, утвержденных постановлением Правительства Российской Федерации от 31 июля 2014 г. № 743,
ПРИКАЗЫВАЮ:
Утвердить прилагаемые изменения, которые вносятся в Требования к оборудованию и программно-техническим средствам, используемым организатором распространения информации в сети "Интернет" в эксплуатируемых им информационных системах, для проведения уполномоченными государственными органами, осуществляющими оперативно-розыскную деятельность или обеспечение безопасности Российской Федерации, мероприятий в целях реализации возложенных на них задач, утвержденные приказом Министерства цифрового развития, связи и массовых коммуникаций Российской Федерации от 29.10.2018 № 571 (зарегистрирован Министерством кэстиции Российской Федерации 27 декабря 2018 г., регистрационный № 53207).
Министр М.И.Шадаев
УТВЕРЖДЕНЫ приказом Министерства цифрового развития, связи и массовых коммуникаций Российской Федерации от 28 августа 2023 г. № 750
ИЗМЕНЕНИЯ в Требования к оборудованию и программно-техническим средствам, используемым организатором распространения информации в сети "Интернет" в эксплуатируемых им информационных системах, для проведения уполномоченными государственными органами, осуществляющими оперативно-розыскную деятельность или обеспечение безопасности Российской Федерации, мероприятий в целях реализации возложенных на них задач, утвержденные приказом Министерства цифрового развития, связи и массовых коммуникаций Российской Федерации от 29.10.2018 № 571
1. Пункт 4 изложить в следующей редакции:
"4. Поиск, обработка и передача на пункт управления уполномоченного подразделения органа федеральной службы безопасности (далее - ПУ) следующих данных, хранимых в ИС ОРИ и (или) ПТС ОРИ при реализации ПТС ОРИ в соответствии с пунктом 2 настоящих требований, осуществляются с использованием ПТС ОРИ по запросу уполномоченного подразделения органа федеральной службы безопасности или в автоматическом режиме:
1) информации о зарегистрированных пользователях в соответствии с пунктами 13 и 15 Правил хранения организаторами распространения информации в информационно-телекоммуникационной сети "Интернет" информации о фактах приема, передачи, доставки и (или) обработки голосовой информации, письменного текста, изображений, звуков, видео- или иных электронных сообщений пользователей информационно-телекоммуникационной сети "Интернет" и информации об этих пользователях и предоставления ее уполномоченным государственным органам, осуществляющим оперативно-разыскную деятельность или обеспечение безопасности Российской Федерации, утвержденных постановлением Правительства Российской Федерации от 23 сентября 2020 г. № 1526 (далее - Правила хранения № 1526);
2) информации о фактах приема, передачи, доставки и (или) обработки голосовой информации, письменного текста, изображений, звуков, видео- или иных электронных сообщений пользователей информационно-телекоммуникационной сети "Интернет" (далее - пользователь) и информации об этих пользователях в соответствии с пунктами 3, 14 и 15 Правил хранения № 1526;
3) текстовых сообщений пользователей информационно-телекоммуникационной сети "Интернет", голосовой информации, изображений, звуков, видео-, иных электронных сообщений пользователей в соответствии с Правилами хранения организатором распространения информации в информационно-телекоммуникационной сети "Интернет" текстовых сообщений пользователей информационно-телекоммуникационной сети "Интернет", голосовой информации, изображений, звуков, видео-, иных электронных сообщений пользователей информационно-телекоммуникационной сети "Интернет", утвержденными постановлением Правительства Российской Федерации от 26 февраля 2022 г. № 256, действующим до 1 сентября 2028 г.;
4) информации, необходимой для декодирования принимаемых, передаваемых, доставляемых и (или) обрабатываемых электронных сообщений;
5) информации о событиях, зафиксированных в системных журналах в соответствии с подпунктом "т" пункта 14 настоящих требований.".
2. Пункт 16 дополнить абзацем следующего содержания:
"Срок хранения информации об объектах контроля, отобранной по критериям отбора, для доставки объектов на ПУ должен составлять не менее 12 часов с момента отбора.".
3. Приложение № 4 изложить в следующей редакции:
"Приложение № 4 к Требованиям к оборудованию и программно-техническим средствам, используемым организатором распространения информации в сети "Интернет" в эксплуатируемых им информационных системах, для проведения уполномоченными государственными органами, осуществляющими оперативно-розыскную деятельность или обеспечение безопасности Российской Федерации, мероприятий в целях реализации возложенных на них задач, утвержденным приказом Министерства цифрового развития, связи и массовых коммуникаций Российской Федерации от 29 октября 2018 г. № 571
Описание протокола взаимодействия ПУ и ПТС ОРИ
___________________________________________________________________________
Classification.asn
Classification DEFINITIONS IMPLICIT TAGS::=
BEGIN
EXPORTS TAGGED,
sorm-message-session,
sorm-message-trap,
sorm-message-task,
sorm-message-report,
sorm-message-management,
sorm-message-unformatted,
sorm-message-report-uni,
sorm-request-connection-ori-data-standart,
sorm-request-connection-ori-data-extended,
sorm-request-connection-ori-link,
sorm-request-connection-ori-aaa,
sorm-request-connection-ori-streams-content,
sorm-request-connection-ori-cert,
sorm-request-connection-ori-keys,
sorm-report-connection-ori-data,
sorm-report-connection-ori-link,
sorm-report-connection-ori-aaa,
sorm-report-connection-ori-streams-content,
sorm-report-connection-ori-cert,
sorm-report-connection-ori-keys,
sorm-request-abonent-ori,
sorm-report-abonent-ori,
sorm-request-dictionaries,
sorm-report-dictionary-telcos,
sorm-report-dictionary-ori-services,
sorm-report-dictionary-ori-events,
sorm-report-dictionary-ori-resources,
sorm-report-dictionary-ori-user-types,
sorm-report-dictionary-ori-payment-services,
sorm-request-presense,
sorm-report-presense-dictionaries,
sorm-report-presense-abonents-ori,
sorm-report-presense-connections-ori;
TAGGED::= CLASS {
&id ObjectDescriptor UNIQUE,
&Data
}
WITH SYNTAX {
OID &id
DATA &Data
}
---Классификация
OID::= ObjectDescriptor
---Подструктура сообщений
sorm-message-session OID::= "280"
sorm-message-trap OID::= "281"
sorm-message-task OID::= "282"
sorm-message-report OID::= "283"
sorm-message-management OID::= "284"
sorm-message-unformatted OID::= "285"
sorm-message-report-uni OID::= "289"
---Параметры соединений
sorm-request-connection-ori-data-standart OID::= "265"
sorm-request-connection-ori-data-extended OID::= "266"
sorm-request-connection-ori-link OID::= "267"
sorm-request-connection-ori-aaa OID::= "268"
sorm-request-connection-ori-streams-content OID::= "269"
sorm-request-connection-ori-cert OID::= "270"
sorm-request-connection-ori-keys OID::= "271"
sorm-report-connection-ori-data OID::= "10"
sorm-report-connection-ori-link OID::= "11"
sorm-report-connection-ori-aaa OID::= "12"
sorm-report-connection-ori-streams-content OID::= "13"
sorm-report-connection-ori-cert OID::= "14"
sorm-report-connection-ori-keys OID::= "15"
---Абоненты
sorm-request-abonent-ori OID::= "245"
sorm-report-abonent-ori OID::= "70"
---Справочники
sorm-request-dictionaries OID::= "240"
sorm-report-dictionary-telcos OID::= "112"
sorm-report-dictionary-ori-services OID::= "117"
sorm-report-dictionary-ori-events OID::= "118"
sorm-report-dictionary-ori-resources OID::= "119"
sorm-report-dictionary-ori-user-types OID::= "130"
sorm-report-dictionary-ori-payment-services OID::= "131"
---Запрос о наличии данных
sorm-request-presense OID::= "260"
sorm-report-presense-dictionaries OID::= "123"
sorm-report-presense-abonents-ori OID::= "125"
sorm-report-presense-connections-ori OID::= "126"
END
___________________________________________________________________________
Dictionaries.asn
Dictionaries DEFINITIONS IMPLICIT TAGS::=
BEGIN
EXPORTS DictionaryTask,
DictionaryReport;
IMPORTS DateAndTime
FROM Sorm
TAGGED,
sorm-request-dictionaries,
sorm-report-dictionary-telcos,
sorm-report-dictionary-ori-services,
sorm-report-dictionary-ori-events,
sorm-report-dictionary-ori-resources,
sorm-report-dictionary-ori-user-types,
sorm-report-dictionary-ori-payment-services
FROM Classification;
---Запрос
DictionaryTask::= SEQUENCE {
id TAGGED.&id ({DictionaryTaskVariants}),
data TAGGED.&Data ({DictionaryTaskVariants}{@id})
}
DictionaryTaskVariants TAGGED::= {dictionaryTask}
dictionaryTask TAGGED::= {
OID {sorm-request-dictionaries}
DATA ObjectDescriptor ---тип запрашиваемого справочника (идентификатор отчета)
}
---DATA ObjectDescriptor принимает значение одно из:
---sorm-report-dictionary-telcos
---sorm-report-dictionary-ori-services
---sorm-report-dictionary-ori-events
---sorm-report-dictionary-ori-resources
---sorm-report-dictionary-ori-user-types
---sorm-report-dictionary-ori-payment-services
---Отчет
DictionaryReport::= SEQUENCE {
id TAGGED.&id ({DictionaryRecordsVariants}), ---идентификтор записи справочника
data TAGGED.&Data ({DictionaryRecordsVariants}{@id}) ---данные записи справочника
}
DictionaryRecordsVariants TAGGED::= {
telcosRecords ---коммуникационные интернет-сервисы ИС ОРИ
| oriServices ---виды информационных сервисов, предоставляемых ОРИ для пользователей
| oriEvents ---виды событий, регистрируемых ИС ОРИ при взаимодействии ИС ОРИ с пользователем
| oriResources ---типы информационных ресурсов, создаваемых пользователями в ИС ОРИ
| oriUserTypes ---типы пользователей, обслуживаемых ИС ОРИ
| oriPaymentServices ---виды платежных услуг (платежных сервисов), используемых ОРИ
}
---коммуникационные интернет-сервисы ИС ОРИ
telcosRecords TAGGED::= {
OID {sorm-report-dictionary-telcos}
DATA SEQUENCE OF TelcosRecord
}
TelcosRecord::= SEQUENCE {
telco-id TelcoID, ---идентификатор ИС ОРИ
begin-time DateAndTime, ---время начала действия
end-time DateAndTime OPTIONAL, ---время конца действия
description UTF8String (SIZE (1.. 256)), ---описание (наименование) коммуникационного интернет-сервиса ИС ОРИ
mcc [0] NumericString (SIZE (3)) OPTIONAL, ---код страны
mnc [1] NumericString (SIZE (3)) OPTIONAL - код ОРИ
}
---виды информационных сервисов, предоставляемых ОРИ для пользователей
oriServices TAGGED::= {
OID {sorm-report-dictionary-ori-services}
DATA SEQUENCE OF OriServiceRecord
}
OriServiceRecord::= SEQUENCE {
telco-id TelcoID, ---идентификатор ИС ОРИ
service-id INTEGER (0.. 65535), ---идентификатор сервиса
description UTF8String (SIZE (1.. 256)), ---описание
begin-time DateAndTime, ---время начала действия
end-time DateAndTime OPTIONAL ---время конца действия
}
---виды событий, регистрируемых ИС ОРИ при взаимодействии ИС ОРИ с пользователем
oriEvents TAGGED::= {
OID {sorm-report-dictionary-ori-events}
DATA SEQUENCE OF OriEventRecord
}
OriEventRecord::= SEQUENCE {
telco-id TelcoID, ---идентификатор ИС ОРИ
service-id INTEGER (0.. 65535), ---идентификатор сервиса
event-id INTEGER (0.. 65535), ---идентификатор события
description UTF8String (SIZE (1.. 256)), ---описание
begin-time DateAndTime, ---время начала действия
end-time DateAndTime OPTIONAL ---время конца действия
}
---типы информационных ресурсов, создаваемых пользователями в ИС ОРИ
oriResources TAGGED::= {
OID {sorm-report-dictionary-ori-resources}
DATA SEQUENCE OF OriResourceRecord
}
OriResourceRecord::= SEQUENCE {
telco-id TelcoID, ---идентификатор ИС ОРИ
service-id INTEGER (0.. 65535), ---идентификатор сервиса
resource-id INTEGER (0.. 65535), ---идентификатор ресурса
description UTF8String (SIZE (1.. 256)), ---описание
begin-time DateAndTime, ---время начала действия
end-time DateAndTime OPTIONAL ---время конца действия
}
---типы пользователей, обслуживаемых ИС ОРИ
oriUserTypes TAGGED::= {
OID {sorm-report-dictionary-ori-user-types}
DATA SEQUENCE OF OriUserTypeRecord
}
OriUserTypeRecord::= SEQUENCE {
telco-id TelcoID, ---идентификатор ИС ОРИ
service-id INTEGER (0.. 65535), ---идентификатор сервиса
user-type-id INTEGER (0.. 65535), ---тип пользователя
description UTF8String (SIZE (1.. 256)), ---описание
begin-time DateAndTime, ---время начала действия
end-time DateAndTime OPTIONAL ---время конца действия)
}
---виды платежных услуг (платежных сервисов), используемых ОРИ
oriPaymentServices TAGGED::= {
OID {sorm-report-dictionary-ori-payment-services}
DATA SEQUENCE OF OriPaymentServiceRecord
}
OriPaymentServiceRecord::= SEQUENCE {
telco-id TelcoID, ---идентификатор ИС ОРИ
service-id INTEGER (0.. 65535), ---идентификатор сервиса
payment-service-id INTEGER (0.. 65535), ---идентификатор платежной услуги
description UTF8String (SIZE (1.. 256)), ---описание
begin-time DateAndTime, ---время начала действия
end-time DateAndTime OPTIONAL ---время конца действия
}
END
___________________________________________________________________________
IdentifiersORI.asn
IdentifiersORI DEFINITIONS IMPLICIT TAGS::=
BEGIN
EXPORTS UserID,
UserIdentifier,
UserTechnicalIdentifier,
ResourceIdentifier,
ResourceName,
ORIStreamID;
UserIdentifier::= SEQUENCE {
user-id [0] UserID, ---идентификатор пользователя в системе (имя пользователя)
user-type [1] INTEGER (0.. 65535) ---тип пользователя (расшифровывается по справочнику)
}
UserTechnicalIdentifier::= CHOICE {
ip-address [0] UserIPAddress, ---ip-адрес и порт
msisdn [1] UTF8String (SIZE (1.. 64)), ---номер телефона
email [2] UTF8String (SIZE (1.. 256)), ---электронная почта
program-name [3] UTF8String (SIZE (1.. 1024)), ---имя программы клиента
other [4] UTF8String (SIZE (1.. 1024)) ---прочая техническая информация
}
UserIPAddress::= SEQUENCE {
ip-address [0] UTF8String (SIZE (1.. 64)), ---ip-адрес
ip-port [1] INTEGER (0.. 65535) OPTIONAL ---TCP/UDP порт
}
UserID::= UTF8String (SIZE (1.. 128))
ResourceIdentifier::= SEQUENCE {
resource-name [0] ResourceName, ---наименование ресурса
resource-type[1]INTEGER(0..65535)OPTIONAL ---тип ресурса (расшифровывается по справочнику)
}
ResourceName::= UTF8String (SIZE (1.. 4096))
ORIStreamID::= UTF8String (SIZE (1.. 1024))
END
___________________________________________________________________________
Locations.asn
Locations DEFINITIONS IMPLICIT TAGS::=
BEGIN
EXPORTS LocationInfo;
IMPORTS ProjectionType
FROM NetworkIdentifiers;
MobileORILocation::= SEQUENCE {
mcc [0] UTF8String (SIZE (1.. 4)) OPTIONAL, ---код страны оператора связи пользователя ОРИ
mnc [1] UTF8String (SIZE (1.. 3)) OPTIONAL, ---код оператора связи пользователя ОРИ
lac [2] INTEGER (0.. 65535) OPTIONAL, ---код LAC оператора связи пользователя ОРИ
cell [3] INTEGER (0.. 4294967295) OPTIONAL, ---код БС оператора связи пользователя ОРИ
network-operator [4] UTF8String (SIZE (1.. 64)) OPTIONAL ---наименование оператора связи пользователя ОРИ
}
GeoLocation::= SEQUENCE {
latitude-grade REAL, ---широта
longitude-grade REAL, ---долгота
projection-type ProjectionType ---тип проекции координат
}
LocationInfo::= SEQUENCE {
mobile-ori-location [0] MobileORILocation OPTIONAL,
geo-location [1] GeoLocation OPTIONAL,
description [2] UTF8String (SIZE (1.. 4096)) OPTIONAL
}
END
___________________________________________________________________________
Management.asn
Management DEFINITIONS IMPLICIT TAGS::=
BEGIN
EXPORTS managementMessage;
IMPORTS TAGGED,
sorm-message-management
FROM Classification;
managementMessage TAGGED::= {
OID {sorm-message-management}
DATA 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 {
hw-modules [0] RequestedHardwareModules, ---идентификаторы узлов КТС, для которых запрашивается состояние
sw-modules [1] RequestedSoftwareModules ---идентификаторы модулей СПО, для которых запрашивается состояние
}
---запрос на получение типов модулей КТС и СПО
GetModuleTypesRequest::= NULL
---тип сообщения "ответ на команду управления ИС СОРМ"
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 {
hw-modules SormHardwareModules, ---перечень всех узлов КТС
sw-modules SormSoftwareModules ---перечень всех модулей СПО
}
---ответ на запрос получения конфигурации КТС/модуля СПО
GetModuleConfigResponse::= SEQUENCE {
hw-modules SormHardwareModules, ---конфигурации запрошенных узлов КТС
sw-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)) ---расшифровка типа модуля
}
SormHardwareModules::= SEQUENCE OF SormHardwareModule
SormHardwareModule::= SEQUENCE {
module-id ModuleId, ---уникальный идентификатор данного модуля
block-name INTEGER (0.. 1024), ---номер блока КТС
module-name UTF8String (SIZE (1.. 512)), ---наименование модуля
module-parameters HwParameterGroups ---значение группы параметров КТС
}
HwParameterGroups::= SEQUENCE OF HwParameterGroup
HwParameterGroup::= SEQUENCE {
group-name UTF8String (SIZE (1.. 512)), ---наименование группы параметров для КТС
module-parameters ModuleParameters ---перечень параметров для КТС
}
SormSoftwareModules::= SEQUENCE OF SormSoftwareModule
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 SormSoftwareModules OPTIONAL ---субмодули
}
ModuleParameters::= SEQUENCE OF ModuleParameter
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
}
---уникальный идентификатор КТС/модуля СПО ИС СОРМ
ModuleId::= OCTET STRING (SIZE (8))
END
___________________________________________________________________________
NetworkIdentifiers.asn
NetworkIdentifiers DEFINITIONS IMPLICIT TAGS::=
BEGIN
EXPORTS NetworkPeerInfo,
ProjectionType;
---информация об участнике соединения передачи данных
NetworkPeerInfo::= SEQUENCE {
ip-address IPAddress, ---IP-адрес
ip-port IPPort OPTIONAL ---IP-порт
}
---IP-адрес
IPAddress::= CHOICE {
ipv4 [0] IPV4Address, ---IPv4-адрес
ipv6 [1] IPV6Address ---IPv6-адрес
}
---IPv4-адрес
IPV4Address::= OCTET STRING (SIZE (4))
---IPv6-адрес
IPV6Address::= OCTET STRING (SIZE (16))
---IP/UDP/TCP-порт
IPPort::= OCTET STRING (SIZE (2)) ---порт
---тип проекции координат
ProjectionType::= ENUMERATED {
wgs84 (0),
utm (1),
sgs85 (2)
}
END
___________________________________________________________________________
Reports.asn
Reports DEFINITIONS IMPLICIT TAGS::=
BEGIN
EXPORTS reportMessage,
Acknowledgement;
IMPORTS TAGGED,
sorm-message-report
FROM Classification
MessageID
FROM Sorm
TaskID
FROM Tasks
DictionaryReport
FROM Dictionaries
PresenseReport
FROM ReportsPresense
AbonentsORIReport
FROM ReportsAbonentsORI
ConnectionsORIReport
FROM ReportsConnectionsORI;
reportMessage TAGGED::= {
OID {sorm-message-report}
DATA CHOICE {
report [0] Report, ---тип сообщения "отчет"
ack [1] Acknowledgement ---тип сообщения "подтверждение"
}
}
---Блок данных сообщения типа "отчет"
Report::= SEQUENCE {
request-id MessageID, ---идентификатор запроса, запросивший отчет
task-id TaskID, ---идентификатор задачи, сгенерировавшей данный отчет
total-blocks-number INTEGER, ---общее количество блоков в отчете
block-number INTEGER, ---порядковый номер текущего блока
report-block ReportDataBiock ---блок данных отчета
}
ReportDataBlock::= CHOICE {
dictionary [0] DictionaryReport, ---отчеты задач пополнения справочников (нормативно-справочная информация)
presense [6] PresenseReport, ---отчеты задач по запросу наличия в ИС СОРМ информации
abonents-ori [8] AbonentsORIReport, ---отчеты задач по принадлежности абонентов организаторов распространения
информации
connections-ori [9] ConnectionsORIReport ---отчеты задач по соединениям абонентов организаторов распространения
информации
}
---Подтверждение приема блока, передается с номером сообщения соответствующему номеру сообщения блока
отчета
Acknowledgement::= SEQUENCE {
successful BOOLEAN, ---признак успешного приема блока
broken-record INTEGER OPTIONAL, ---номер записи в отчете, обработанной на ПУ с ошибкой
error-description UTF8String (SIZE (1.. 1024)) OPTIONAL ---описание ошибки приема блока в произвольной форме
}
END
___________________________________________________________________________
ReportsAbonentsORI.asn
ReportsAbonentsORI DEFINITIONS IMPLICIT TAGS::=
BEGIN
EXPORTS AbonentsORIReport;
IMPORTS TAGGED,
sorm-report-abonent-ori
FROM Classification
DateAndTime
FROM Sorm
TelcoID
FROM Tasks
UserID,
UserIdentifier
FROM IdentifiersORI;
AbonentsORIReport::= SEQUENCE {
id TAGGED.&id ({AbonentsORIReportVariants}),
data TAGGED.&Data ({AbonentsORIReportVariants}{@id})
}
AbonentsORIReportVariants TAGGED::= {
reportAbonentORI
}
reportAbonentORI TAGGED::= {
OID {sorm-report-abonent-ori}
DATA SEQUENCE OF AbonentsORIRecord
}
AbonentsORIRecord::= SEQUENCE {
telco-id TelcoID, ---идентификатор ИС ОРИ,
user-identifier UserIdentifier, ---идентификатор пользователя
datetime-registered DateAndTime, ---дата и время регистрации
abonent-info AbonentInfoORI, ---информация о пользователе
abonent-contacts [0] AbonentContactsORI OPTIONAL, ---контактные данные пользователя
im-identifiers [1] SEQUENCE OF AbonentImIdentifierORI OPTIONAL, ---идентификаторы пользователя в других
средствах электронного взаимодействия
datetime-updated [2] DateAndTime OPTIONAL, ---дата и время обновления информации
datetime-unregistered [3] DateAndTime OPTIONAL, ---дата и время прекращения регистрации
contract-date [4] DateAndTime OPTIONAL, ---дата и время заключения договора
contract [5] UTF8String (SIZE (1.. 64)) OPTIONAL, ---номер договора
additional [6] SEQUENCE OF AdditionalInfo OPTIONAL ---дополнительная информация о пользователе
service-id [7] INTEGER (0.. 65535) OPTIONAL, ---идентификатор сервиса (расшифровывается по справочнику)
}
---информация о пользователе
AbonentInfoORI::= SEQUENCE {
nick-name [0] UTF8String (SIZE (1.. 1024)) OPTIONAL, ---псевдоним пользователя
birth-date GeneralizedTime OPTIONAL, ---дата рождения
address [1] ReportedAddressORI OPTIONAL, ---адресные данные
name-info [2] ReportedNameInfoORI OPTIONAL, ---ФИО
passport-info [3] ReportedPassportInfoORI OPTIONAL, ---паспортные данные
langs [4] SEQUENCE OF UTF8String (SIZE (1.. 64)) OPTIONAL, ---список языков, которыми владеет пользователь
relatives [5] SEQUENCE OF UserID OPTIONAL ---список родственников пользователя
}
---адресные данные
ReportedAddressORI::= CHOICE {
struct-info [0] ReportedStructAddressORI,
unstruct-info [1] UTF8String (SIZE (1.. 1024))
}
ReportedStructAddressORI::= SEQUENCE {
country [0] UTF8String (SIZE (1.. 128)) OPTIONAL, ---страна
region (1) UTF8String (SIZE (1.. 128)) OPTIONAL, ---область
city [2] UTF8String (SIZE (1.. 128)) OPTIONAL, ---город, поселок, деревня
street [3] UTF8String (SIZE (1.. 128)) OPTIONAL, ---улица
building [4] UTF8String (SIZE (1.. 128)) OPTIONAL, ---дом, строение
apartment [5] UTF8String (SIZE (1.. 128)) OPTIONAL ---квартира, офис
}
---ФИО
ReportedNameInfoORI::= CHOICE {
struct-info [0] ReportedStructNameInfoORI,
unstruct-info [1] UTF8String (SIZE (1.. 1024))
}
ReportedStructNameInfoORI::= SEQUENCE {
given-name [0] UTF8String (SIZE (1.. 128)) OPTIONAL, ---имя
initial [1] UTF8String (SIZE (1.. 128)) OPTIONAL, ---отчество (при наличии)
family-name [2] UTF8String (SIZE (1.. 128)) OPTIONAL ---фамилия
}
---паспортные данные
ReportedPassportInfoORI::= CHOICE {
struct-info [0] ReportedStructPassroptInfoORI,
unstruct-info [1] UTF8String (SIZE (1.. 1024))
}
ReportedStructPassroptInfoORI::= SEQUENCE {
passport-serial [0] UTF8String (SIZE (1..16)) OPTIONAL, ---серия паспорта
passport-number [1] UTF8String (SIZE (1..16)) OPTIONAL ---номер паспорта
}
---контактные данные пользователя
AbonentContactsORI::= SEQUENCE {
msisdn [0] SEQUENCE OF UTF8String (SIZE (1.. 64)) OPTIONAL, ---список номеров телефона пользователя
email [1] SEQUENCE OF UTF8String (SIZE (1.. 256)) OPTIONAL ---список адресов электронной почты пользователя
}
---идентификаторы пользователя в других средствах электронного взаимодействия
AbonentImIdentifierORI::= SEQUENCE {
service-name UTF8String (SIZE (1.. 128)), ---наименование сервиса
service-id UTF8String (SIZE (1.. 256)) ---идентификатор пользователя в сервисе
}
---дополнительная информация о пользователе
AdditionalInfo::= SEQUENCE {
title UTF8String (SIZE (1.. 1024)), ---наименование о дополнительных сведениях
content UTF8String (SIZE (1.. 4096)) ---содержание дополнительных сведений
}
END
___________________________________________________________________________
ReportsConnectionsORI.asn
ReportsConnectionsORI DEFINITIONS IMPLICIT TAGS::=
BEGIN
EXPORTS ConnectionsORIReport,
reportConnectionsDataORI,
reportConnectionsLinkORI,
reportConnectionsAAAORI,
reportConnectionsStreamsContentORI,
reportConnectionsCertORI,
reportConnectionsKeysORI;
IMPORTS TAGGED,
sorm-report-connection-ori-data,
sorm-report-connection-ori-link,
sorm-report-connection-ori-aaa,
sorm-report-connection-ori-streams-content,
sorm-report-connection-ori-cert,
sorm-report-connection-ori-keys
FROM Classification
DateAndTime
FROM Sorm
TelcoID
FROM Tasks
UserID,
UserIdentifier,
UserTechnicalIdentifier,
ResourceIdentifier,
ORIStreamID
FROM IdentifiersORI
NetworkPeerInfo
FROM NetworkIdentifiers
LocationInfo
FROM Locations;
ConnectionsORIReport::= SEQUENCE {
id TAGGED.&id ({ReportedConnectionsORIVariants}),
data TAGGED.&Data ({ReportedConnectionsORIVariants}{@id})
}
ReportedConnectionsORIVariants TAGGED::= {
reportConnectionsDataORI - события информационного взаимодействия пользователей в ИС ОРИ
| reportConnectionsLinkORI ---события добавления/исключения связанных пользователей
| reportConnectionsAAAORI ---события регистрации, прекращения регистрации, авторизации, выхода
из информационного сервиса
| reportConnectionsStreamsContentORI - содержимое изображений, звуков, голосовой информации, видео-и иных
электронных сообщений
| reportConnectionsCertORI
| reportConnectionsKeysORI
}
---события информационного взаимодействия пользователей в ИС ОРИ
reportConnectionsDataORI TAGGED::= {
OID {sorm-report-connection-ori-data}
DATA SEQUENCE OF ConnectionDataORIRecord
}
ConnectionDataORIRecord::= SEQUENCE {
telco-id TelcoID, - идентификатор ИС ОРИ
arrive-datetime DateAndTime, ---дата и время поступления информации
datetime DateAndTime, ---дата и время
service-id INTEGER (0.. 65535), ---идентификатор сервиса (расшифровывается по справочнику)
abonent-identifier UserIdentifier, ---идентификатор пользователя
abonent-technical-identifier SEQUENCE OF UserTechnicalIdentifier, - технические данные, идентифицирующие
пользователя
event-id INTEGER (0.. 65535), - тип события (расшифровывается по справочнику)
contacts-identifier SEQUENCE OF UserIdentifier, ---идентификаторы контактов
abonent-location [0] Locationinfo OPTIONAL, ---местоположение пользователя
resource-identifier [1] ResourceIdentifier OPTIONAL, ---ресурс
resource-info [2] ResourceMetadataInfoORI OPTIONAL, ---техническая информация о ресурсе
owner-identifier [3] UserIdentifier OPTIONAL, ---идентификатор владельца ресурса
message-text [4] UTF8String OPTIONAL, ---текст сообщения без разметки и иной служебной коммуникационной
информации
payment-id [5] PaymentInfoORI OPTIONAL, ---техническая информация о платеже
stream-id [6] ORIStreamID OPTIONAL ---идентификатор содержимого
}
ResourceMetadataInfoORI::= CHOICE {
files-metadata [0] SEQUENCE OF FileMetadata,
stream-metadata [1] StreamMetadata
}
---техническая информация о файловых данных
FileMetadata::= SEQUENCE {
filename UTF8String (SIZE (1.. 256)),
filesize INTEGER,
file-type UTF8String (SIZE (1.. 256)) OPTIONAL ---MIME-тип данных для файла
}
---техническая информация о потоковых данных
StreamMetadata::= SEQUENCE {
timestamp [0] GeneralizedTime OPTIONAL,
duration [1] INTEGER OPTIONAL,
start-offset [2] INTEGER OPTIONAL,
stop-offset [3] INTEGER OPTIONAL
}
PaymentInfoORI::= SEQUENCE {
payment-identifier UTF8String (SIZE (1.. 128)), ---идентификатор транзакции, счета, кошелька
payment-service-id INTEGER (0.. 65535), ---идентификатор платежного сервиса (расшифровывается по справочнику)
payment-info UTF8String (SIZE (1.. 4096)) OPTIONAL ---дополнительная информация
}
---события добавления/исключения связанных пользователей
reportConnectionsLinkORI TAGGED::= {
OID {sorm-report-connection-ori-link}
DATA SEQUENCE OF ConnectionLinkORIRecord
}
ConnectionLinkORIRecord::= SEQUENCE {
telco-id TelcoID, - идентификатор ИС ОРИ,
arrive-datetime DateAndTime, ---дата и время поступления информации
datetime DateAndTime, - дата и время
service-id INTEGER (0.. 65535), ---идентификатор сервиса (расшифровывается по справочнику)
abonent-id UserIdentifier, ---идентификатор пользователя, устанавливающего связь
event-id INTEGER (0.. 65535), ---тип события (расшифровывается по справочнику)
linked-identifier LinkedIdentifier - идентификатор объекта, с которым установлена связь
}
LinkedIdentifier::= CHOICE {
connected-user-identifier [0] UserIdentifier, ---идентификатор пользователя
connected-resource-identifier [1] ResourceIdentifier ---ресурс
}
---события регистрации, прекращения регистрации, авторизации, выхода из информационного сервиса
reportConnectionsAAAORI TAGGED::= {
OID {sorm-report-connection-ori-aaa}
DATA SEQUENCE OF ConnectionAAAORIRecord
}
ConnectionAAAORIRecord::= SEQUENCE {
telco-id TelcoID, - идентификатор ИС ОРИ,
arrive-datetime DateAndTime, ---дата и время поступления информации
datetime DateAndTime, ---дата и время
service-id INTEGER (0..
65535), ---идентификатор сервиса (расшифровывается по справочнику)
abonent-identifier UserIdentifier, ---идентификатор пользователя
abonent-technical-identifier SEQUENCE OF UserTechnicalIdentifier, - технические данные, идентифицирующие пользователя
event-id INTEGER (0.. 65535), ---тип события (расшифровывается по справочнику)
abonent-location [0] LocationInfo OPTIONAL ---местоположение пользователя
}
---содержимое изображений, звуков, голосовой информации, видео-и иных электронных сообщений
reportConnectionsStreamsContentORI TAGGED::= {
OID {sorm-report-connection-ori-streams-content}
DATA ConnectionsStreamsContentORIRecords
}
ConnectionsStreamsContentORIRecords::= CHOICE {
flow-data [0] SEQUENCE OF ConnectionsStreamsContentORIRecordFlow,
file-data [1] SEQUENCE OF ConnectionsStreamsContentORIRecordFile
}
ConnectionsStreamsContentORIRecordFlow::= SEQUENCE {
data OCTET STRING (SIZE (1..1048576)), ---содержимое блока
codec UTF8String (SIZE (1.. 4096)) OPTIONAL, ---описание способа кодирования в формате SDP в соответствии
с форматом RFC 2327;
direction StreamsContentORIDirection OPTIONAL ---направление передачи
}
StreamsContentORIDirection::= ENUMERATED {
client-server (0),
server-client (1)
}
ConnectionsStreamsContentORIRecordFile::= OCTET STRING (SIZE (1.. 1048576))
reportConnectionsCertORI TAGGED::= {
OID {sorm-report-connection-ori-cert}
DATA SEQUENCE OF ConnectionCertORIRecord
}
ConnectionCertORIRecord::= SEQUENCE {
telco-id TelcoID,
arrive-datetime DateAndTime,
datetime-from DateAndTime,
datetime-to DateAndTime OPTIONAL,
client NetworkPeerInfo,
server NetworkPeerInfo,
client-random OCTET STRING (SIZE (1.. 512)),
pre-master-key OCTET STRING (SIZE (1.. 512)),
server-random [0] OCTET STRING (SIZE (1.. 512)) OPTIONAL
}
reportConnectionsKeysORI TAGGED::= {
OID {sorm-report-connection-ori-keys}
DATA SEQUENCE OF ConnectionKeysORIRecord
}
ConnectionKeysORIRecord::= SEQUENCE {
telco-id TelcoID,
arrive-datetime DateAndTime,
datetime-from DateAndTime,
datetime-to [0] DateAndTime OPTIONAL,
as-server [1] INTEGER OPTIONAL,
as-client [2] INTEGER OPTIONAL,
client NetworkPeerInfo,
server NetworkPeerInfo,
client-random OCTET STRING (SIZE (1.. 512)),
pre-master-key OCTET STRING (SIZE (1.. 512)),
server-random [0] OCTET STRING (SIZE (1.. 512)) OPTIONAL,
sni [1] UTF8String (SIZE (1.. 128)) OPTIONAL,
user-id [2] UTF8String (SIZE (1.. 64)) OPTIONAL,
user-login [3] UTF8String (SIZE (1.. 64)) OPTIONAL,
key-exchange [4] UTF8String (SIZE (1.. 16)) OPTIONAL,
chipher-suite [5] INTEGER OPTIONAL,
client-region [6] UTF8String (SIZE (1.. 10)) OPTIONAL,
server-region [7] UTF8String (SIZE (1.. 10)) OPTIONAL,
service-name [8] UTF8String (SIZE (1.. 16)) OPTIONAL
}
END
___________________________________________________________________________
ReportsPresense.asn
ReportsPresense DEFINITIONS IMPLICIT TAGS::=
BEGIN
EXPORTS PresenseReport;
IMPORTS TAGGED,
sorm-report-presense-dictionaries,
sorm-report-presense-abonents-ori,
sorm-report-presense-connections-ori
FROM Classification
FindRange
FROM Sorm
TelcoID
FROM Tasks;
---отчет по запросу наличия информации
PresenseReport::= SEQUENCE {
id TAGGED.&id ({ReportedPresensesVariants}),
data TAGGED.&Data ({ReportedPresensesVariants}{@id})
}
ReportedPresensesVariants TAGGED::= {
dictionariesPresence ---отчет по наличию информации по справочникам
| abonentsORIPresence ---отчет по наличию информации по данным о пользователях ОРИ и их идентификаторам
| connectionsORIPresence ---отчет по наличию информации по соединениям пользователя ОРИ
}
---отчет по наличию информации по справочникам
---если какой-либо из справочников не публикуется ИС СОРМ, запись о нем отсутствует
dictionariesPresence TAGGED::= {
OID {sorm-report-presense-dictionaries}
DATA SEQUENCE OF DictionaryInfo
}
---запись отчета о наличии справочной информации
DictionaryInfo::= SEQUENCE {
telco-id TelcoID, ---идентификатор ИС ОРИ
dict ObjectDescriptor, - тип справочника, по которому есть информация
count INTEGER (1.. 4294967295), ---количество записей в справочнике
change-dates FindRange ---минимальная и максимальная дата, минимальное и максимальное время изменения
записей в справочнике
}
---отчет по наличию информации по данным о пользователях ОРИ и их идентификаторам
abonentsORIPresence TAGGED::= {
OID {sorm-report-presense-abonents-ori}
DATA SEQUENCE OF AbonentsORIPresenseRecord
}
AbonentsORIPresenseRecord::= SEQUENCE {
telco-id TelcoID, ---идентификатор ИС ОРИ
range FindRange, ---интервал времени, на который имеются данные в ИС ОРИ
count INTEGER, ---количество записей
service-id INTEGER (0.. 65535) OPTIONAL ---идентификатор сервиса
}
---отчет по наличию информации по соединениям пользователя ОРИ
connectionsORIPresence TAGGED::= {
OID {sorm-report-presense-connections-ori}
DATA SEQUENCE OF ConnectionsORIPresenseRecord
}
ConnectionsORIPresenseRecord::= SEQUENCE {
telco-id TelcoID, ---идентификатор ИС ОРИ
range FindRange, ---интервал времени, на который имеются данные в ИС ОРИ
count INTEGER, ---количество записей
data-type ConnectionsORIPresenseType, ---вид событий в ИС ОРИ, информация по которым есть в ИС СОРМ
service-id INTEGER (0.. 65535) OPTIONAL ---идентификатор сервиса
}
ConnectionsORIPresenseType::= ENUMERATED {
data (0), ---записи об информационном взаимодействии пользователей в ИС ОРИ
link (1), ---записи о добавлении/исключении связанных пользователей
aaa (2), - записи о регистрации, прекращения регистрации, авторизации, выхода из информационного сервиса
certs (3),
keys (4)
}
END
___________________________________________________________________________
ReportsUNI.asn
ReportsUNI DEFINITIONS IMPLICIT TAGS::=
BEGIN
EXPORTS reportMessageUNI;
IMPORTS TAGGED,
sorm-message-report-uni
FROM Classification
ObjectUNI
FROM Tasks
Acknowledgement
FROM Reports
reportConnectionsDataORI,
reportConnectionsLinkORI,
reportConnectionsAAAORI,
reportConnectionsStreamsContentORI
FROM ReportsConnectionsORI;
reportMessageUNI TAGGED::= {
OID {sorm-message-report-uni}
DATA CHOICE {
report [0] ReportUNI, - тип сообщения "отчет"
ack [1] Acknowledgement - тип сообщения "подтверждение"
}
}
---Блок данных сообщения типа "отчет"
ReportUNI::= SEQUENCE {
object-unis SEQUENCE OF ObjectUNI, ---идентификаторы объектов наблюдения, по которым отобраны данные
report-block ReportBlockUNI - блок данных отчета
}
ReportBlockUNI::= CHOICE {
statistics [0] StatisticsReportedConnections,
content [1] ContentReportBlockUNI
}
StatisticsReportedConnections::= SEQUENCE {
id TAGGED.&id ({StatisticsReportedConnectionsVariants}),
data TAGGED.&Data ({StatisticsReportedConnectionsVariants}{@id})
}
StatisticsReportedConnectionsVariants TAGGED::= {
reportConnectionsDataORI ---события информационного взаимодействия пользователей в ИС ОРИ
| reportConnectionsLinkORI ---события добавления/исключения связанных пользователей
| reportConnectionsAAAORI ---события регистрации, прекращения регистрации, авторизации, выхода
из информационного сервиса
}
ContentReportBlockUNI::= SEQUENCE {
report-block ContentReportedConnections, ---блок данных отчета
stream-id ORIStreamID, ---идентификатор содержимого
last-block BOOLEAN ---признак последнего блока
}
ContentReportedConnections::= SEQUENCE {
id TAGGED.&id ({ContentReportedConnectionsVariants}),
data TAGGED.&Data ({ContentReportedConnectionsVariants}{@id})
}
ContentReportedConnectionsVariants TAGGED::= {
reportConnectionsStreamsContentORI ---содержимое изображений, звуков, голосовой информации,
видео-и иных электронных сообщений
}
END
___________________________________________________________________________
RequestedAbonentsORI.asn
RequestedAbonentsORI DEFINITIONS IMPLICIT TAGS::=
BEGIN
EXPORTS RequestedAbonentsORI;
IMPORTS TAGGED,
sorm-request-abonent-ori
FROM Classification
UserID
FROM IdentifiersORI;
RequestedAbonentORI:= SEQUENCE {
id TAGGED.&id ({RequestedAbonentORIVariants}),
data TAGGED.&Data ({RequestedAbonentORIVariants)(@id})
}
RequestedAbonentORIVariants TAGGED::= {
requestedORIabonent
}
requestedORIabonent TAGGED::= {
OID {sorm-request-abonent-ori}
DATA CHOICE {
user-id [0] UserID, ---идентификатор пользователя
nick-name [1] UTF8String (SIZE (1.. 1024)), ---псевдоним пользователя
given-name [2] UTF8String (SIZE (1.. 128)), ---имя
initial [3] UTF8String (SIZE (1.. 128)), ---отчество (при наличии)
family-name [4] UTF8String (SIZE (1.. 128)), ---фамилия
address [5] RequestedAddressORI, ---адресные данные
passport [6] RequestedPassportORI, ---паспортные данные
relatives [7] UserID, ---идентификатор родственника
msisdn [8] UTF8String (SIZE (1.. 64)), ---номер телефона пользователя
email [9] UTF8String (SIZE (1.. 256)), ---электронная почта пользователя
im-id [10] UTF8String (SIZE (1.. 256)), ---идентификатор в сетях мгновенного обмена сообщениями
contract [11] UTF8String (SIZE (1.. 64)) ---номер договора
}
}
RequestedAddressORI::= SEQUENCE {
country [0] UTF8String (SIZE (1.. 128)) OPTIONAL, ---страна
region [1] UTF8String (SIZE (1.. 128)) OPTIONAL, ---область
city [2] UTF8String (SIZE (1.. 128)) OPTIONAL, ---город, поселок, деревня, населенный пункт
street [3] UTF8String (SIZE (1.. 128)) OPTIONAL, ---улица
building [4] UTF8String (SIZE (1.. 128)) OPTIONAL, ---дом, строение
apartment [5] UTF8String (SIZE (1.. 128)) OPTIONAL ---квартира, офис
}
RequestedPassportORI::= SEQUENCE {
passport-serial [0] UTF8String (SIZE (1.. 16)) OPTIONAL, ---серия паспорта
passport-number [1] UTF8String (SIZE (1.. 16)) OPTIONAL ---номер паспорта
}
END
___________________________________________________________________________
RequestedConnectionsORI.asn
RequestedConnectionsORI DEFINITIONS IMPLICIT TAGS::=
BEGIN
EXPORTS RequestedConnectionORI;
IMPORTS TAGGED,
sorm-request-connection-ori-data-standart,
sorm-request-connection-ori-data-extended,
sorm-request-connection-ori-link,
sorm-request-connection-ori-aaa,
sorm-request-connection-ori-streams-content,
sorm-request-connection-ori-cert,
sorm-request-connection-ori-keys
FROM Classification
UserID,
UserTechnicalIdentifier,
ResourceName,
ORIStreamID
FROM IdentifiersORI
NetworkPeerInfo
FROM NetworkIdentifiers
LocationInfo
FROM Locations;
RequestedConnectionORI::= SEQUENCE {
id TAGGED.&id ({RequestedConnectionORIVariants}),
data TAGGED.&Data ({RequestedConnectionORIVariants}{@id})
}
RequestedConnectionORIVariants TAGGED::= {
requestedORIDataStandart ---события информационного взаимодействия пользователей в ИС ОРИ
(базовый набор критериев)
| requestedORIDataExtended ---события информационного взаимодействия пользователей в ИС ОРИ
(расширенный набор критериев)
| requestedORILink ---события добавления/исключения связанных пользователей
| requestedORIAAA ---события регистрации, прекращения регистрации, авторизации, выхода из информационного
сервиса
| requestedORIStreamsContent ---содержимое изображений, звуков, голосовой информации, видео-и иных
электронных сообщений
| requestedORICert
| requestedORIKeys
}
---события информационного взаимодействия пользователей в ИС ОРИ (базовый набор критериев)
requestedORIDataStandart TAGGED::= {
OID {sorm-request-connection-ori-data-standart}
DATA CHOICE {
abonent-id [0] UserID, ---идентификатор пользователя
abonent-technical-identifier [1] UserTechnicalIdentifier ---технические данные, идентифицирующие
пользователя
}
}
---события информационного взаимодействия пользователей в ИС ОРИ (расширенный набор критериев)
requestedORIDataExtended TAGGED::= {
OID {sorm-request-connection-ori-data-extended}
DATA CHOICE {
service-id [0] INTEGER (0.. 65535), ---идентификатор сервиса (расшифровывается по справочнику)
abonent-id [1] UserID, ---идентификатор абонента
abonent-technical-identifier [2] UserTechnicalIdentifier, ---технические данные, идентифицирующие абонента
abonent-location [3] LocationInfo, ---местоположение абонента
contact-id [4] UserID, ---идентификатор контакта
resource-name [5] ResourceName, ---наименование ресурса
event-id [6] INTEGER (0.. 65535), ---тип события (расшифровывается по справочнику)
owner-id [7] UserID, ---идентификатор владельца ресурса
message-text [8] UTF8String, ---текст сообщения без разметки и иной служебной коммуникационной информации
payment-identifier [9] UTF8String(SIZE (1.. 128)), ---идентификатор платежа
payment-info [10] UTF8String (SIZE (1.. 4096)) ---платежная информация
}
}
---события добавления/исключения связанных пользователей
requestedORILink TAGGED::= {
OID {sorm-request-connection-ori-link}
DATA CHOICE {
user-id [0] UserID, ---идентификатор пользователя, установившего связь
connected-user-id [1] UserID, ---идентификатор пользователя, с которым установили связь
connected-resource-name [2] ResourceName ---наименование ресурса, с которым установили связь
}
}
---события регистрации, прекращения регистрации, авторизации, выхода из информационного сервиса
requestedORIAAA TAGGED::= {
OID {sorm-request-connection-ori-aaa}
DATA CHOICE {
service-id [0] INTEGER (0.. 65535), ---идентификатор сервиса (расшифровывается по справочнику)
user-id [1] UserID, ---идентификатор пользователя
user-technical-identifier [2] UserTechnicalIdentifier, ---технические данные, идентифицирующие пользователя
user-location [3] LocationInfo, ---местоположение пользователя
event-id [4] INTEGER (0.. 65535) ---тип события (расшифровывается по справочнику)
}
}
---содержимое изображений, звуков, голосовой информации, видео-и иных электронных сообщений
requestedORIStreamsContent TAGGED::= {
OID {sorm-request-connection-ori-streams-content}
DATA ORIStreamsContentRequest
}
ORIStreamsContentRequest::= SEQUENCE {
stream-id ORIStreamID, ---идентификатор запрашиваемых данных
duration [1] INTEGER OPTIONAL, ---длительность потоковых данных
start-offset [2] INTEGER OPTIONAL, ---начальное смещение потоковых данных
stop-offset [3] INTEGER OPTIONAL ---конечное смещение потоковых данных
}
requestedORICert TAGGED::= {
OID {sorm-request-connection-ori-cert}
DATA CHOICE {
client [0] NetworkPeerInfo,
server [1] NetworkPeerInfo
}
}
requestedORIKeys TAGGED::= {
OID (sorm-request-connection-ori-keys)
DATA CHOICE {
as-server [0] INTEGER,
as-client [1] INTEGER,
client [2] NetworkPeerInfo,
server [3] NetworkPeerInfo,
sni [4] UTF8String (SIZE (1.. 128)),
user-id [5] UTF8String (SIZE (1.. 64)),
user-login [6] UTF8String (SIZE (1.. 64)),
client-region [7] UTF8String (SIZE (1.. 10)),
server-region [8] UTF8String (SIZE (1.. 10)),
service-name [9] UTF8String (SIZE (1.. 16))
}
}
END
___________________________________________________________________________
Sessions.asn
Sessions DEFINITIONS IMPLICIT TAGS::=
BEGIN
EXPORTS sessionMessage;
IMPORTS TAGGED,
sorm-message-session
FROM Classification;
sessionMessage TAGGED::={
OID {sorm-message-session}
DATA CHOICE {
connect [0] ConnectRequest, ---запрос на открытие сессии
connect-response [1] ConnectResponse, ---ответ на запрос открытия сессии
adjustment [2] AdjustmentRequest, ---согласование поддерживаемых типов со стороны ПУ
adjustment-response [3] AdjustmentResponse, ---ответ на запрос согласования данных
disconnect [4] DisconnectRequest, ---запрос на закрытие сессии
disconnect-response [5] DisconnectResponse ---ответ на запрос закрытия сессии
}
}
---запрос на открытие сессии
ConnectRequest::= SEQUENCE {
session-timeout INTEGER (60.. 2592000), ---максимальное время неактивности
max-data-length INTEGER (10.. 100000), ---максимальная длина блока отчета (в строках)
data-packet-window-size INTEGER (4.. 256), ---окно канала передачи данных (максимальное число)
блоков данных, которое может быть отправлено без подтверждения приема
data-load-timeout INTEGER (1.. 60), ---таймаут начала передачи блоков отчетов
request-response-timeout INTEGER (1.. 60), ---таймаут ответа на запрос
data-packet-response-timeout INTEGER (1.. 60) ---таймаут подтверждения приема блока данных отчета
}
---ответ на запрос создания сессии
ConnectResponse::= SEQUENCE {
confirmed-data-packet-window-size INTEGER (4.. 256), ---подтвержденное окно передачи данных (окно, которое
может обеспечить ИС СОРМ); должно быть меньше или равно окну, переданному в сообщении ConnectRequest
confirmed-session-timeout INTEGER (60.. 2592000), ---подтвержденное максимальное время неактивности; должно
быть больше или равно значению времени, переданному в сообщении ConnectRequest
confirmed-data-load-timeout INTEGER (1.. 60), ---подтвержденный таймаут начала передачи блоков отчетов; должен
быть больше или равен значению таймаута, переданному в сообщении ConnectRequest
confirmed-request-response-timeout INTEGER (1.. 60), ---подтвержденный таймаут ответа на запрос; должен быть
больше или равен значению таймаута, переданному в сообщении ConnectRequest
supports SEQUENCE OF ObjectDescriptor ---весь список поддерживаемых СОРМ типов запросов, типов отчетов
}
---согласование поддерживаемых типов со стороны ПУ
AdjustmentRequest::= SEQUENCE {
supports SEQUENCE OF ObjectDescriptor ---список поддерживаемых ПУ типов запросов, типов отчетов; данный список
должен быть меньшим либо равным списку в сообщении ConnectRequest
}
---ответ на запрос согласования данных
AdjustmentResponse::= NULL
---запрос на закрытие сессии
DisconnectRequest::= NULL
---ответ на запрос закрытия сессии
DisconnectResponse::= NULL
END
___________________________________________________________________________
Sorm.asn
Sorm DEFINITIONS IMPLICIT TAGS::=
BEGIN
EXPORTS DateAndTime,
FindRange,
MessageID;
IMPORTS TAGGED
FROM Classification
sessionMessage
FROM Sessions
trapMessage
FROM Traps
taskMessage
FROM Tasks
reportMessage
FROM Reports
managementMessage
FROM Management
unformatted Message
FROM Unformatted
reportMessageUNI
FROM ReportsUNI
Version::= PrintableString
vers Version::= "3.0.0" ---текущая версия протокола
---Оболочка сообщения СОРМ
Message::= SEQUENCE {
version Version DEFAULT vers, ---версия протокола
message-id MessageID, ---номер запроса
message-time DateAndTime, ---время и дата запроса
operator-name PrintableString (SIZE (1.. 128)) OPTIONAL, - наименование оператора связи
id TAGGED.&id ({SormPDUs}), ---идентификатор блока данных
data TAGGED.&Data ({SormPDUs}{@id}) ---данные блока данных
}
---Блок данных сообщения
SormPDUs TAGGED::= {
sessionMessage ---сообщения организации сессии
| trapMessage ---сообщения сигналов
| taskMessage ---сообщения работы с задачами
| reportMessage ---сообщения работы с отчетами
| managementMessage ---сообщения канала передачи мониторинга (КПМ)
| unformattedMessage ---сообщения канала передачи неформатированных данных (КПНФ)
| reportMessageUNI ---сообщения с отобранными по объектам контроля данными
}
---Номер сообщения
MessageID::= INTEGER (0.. 4294967295)
---Дата и время
DateAndTime::= UTCTime
---Диапазон поиска
FindRange::= SEQUENCE {
begin-find [0] DateAndTime OPTIONAL, ---время и дата начала поиска информации
end-find [1] DateAndTime OPTIONAL ---время и дата окончания поиска информации
}
END
___________________________________________________________________________
Sorm743.set.asn
Classification.asn
Dictionaries.asn
IdentifiersORI.asn
Locations.asn
Management.asn
NetworkIdentifiers.asn
Reports.asn
ReportsAbonentsORI.asn
ReportsConnectionsORI.asn
ReportsPresense.asn
ReportsUNI.asn
RequestedAbonentsORI.asn
RequestedConnectionsORI.asn
Sessions.asn
Sorm.asn
Tasks.asn
TasksAbonentsORI.asn
TasksConnectionsORI.asn
TasksPresense.asn
TasksUNI.asn
Traps.asn
Unformatted.asn
___________________________________________________________________________
Tasks.asn
Tasks DEFINITIONS IMPLICIT TAGS::=
BEGIN
EXPORTS taskMessage,
TaskID,
TelcoID,
TelcoList,
LogicalOperation,
CreateTaskResponse;
IMPORTS TAGGED,
sorm-message-task
FROM Classification
FindRange,
MessageID
FROM Sorm
DictionaryTask
FROM Dictionaries
PresenseTask
FROM TasksPresense
AbonentsORITask
FROM TasksAbonentsORI
ConnectionsORITask
FROM TasksConnectionsORI;
UNIControlTaskRequest,
UNIControlTaskResponse
FROM TasksUNI;
taskMessage TAGGED::= {
OID {sorm-message-task}
DATA CHOICE {
data-ready-request [0] DataReadyRequest, ---запрос готовности данных
data-ready-response [1] DataReadyResponse, ---ответ на запрос готовности данных
data-load-request [2] DataLoadRequest, ---запрос загрузки данных
data-load-response [3] DataLoadResponse, ---ответ на запрос загрузки данных
data-drop-request [4] DataDropRequest, ---запрос удаления данных
data-drop-response [5] DataDropResponse, ---ответ на запрос удаления данных
data-interrupt-request [6] DataInterruptRequest, ---запрос прерывания загрузки данных
data-interrupt-response [7] DataInterruptResponse, ---ответ на запрос прерывания загрузки данных
create-task-request [8] CreateTaskRequest, ---запрос на создание задачи по обработке информации
create-task-response [9] CreateTaskResponse, ---ответ на запрос создания задачи
uni-task-request [12] UNIControlTaskRequest, ---запрос на постановку/снятие объекта наблюдения на контроль
uni-task-response [13] UNIControlTaskResponse ---ответ на запрос постановки/снятия объекта наблюдения
с контроля
}
}
---запрос готовности данных
DataReadyRequest::= NULL
---ответ на запрос готовности данных
DataReadyResponse::= SEQUENCE OF DataReadyTaskRecord
DataReadyTaskRecord::= SEQUENCE {
task-id TaskID, ---идентификатор задачи
result TaskResult ---результат выполнения задачи
}
TaskResult::= SEQUENCE {
result TaskStatus,
report-records-number [0] INTEGER (0.. 999999999999) OPTIONAL, ---для выполненной задачи количество записей
в отчете
report-limit-exeeded [1] BOOLEAN OPTIONAL, ---количество записей превысило лимит, заданный при создании задачи
error-description [2] UTF8String (SIZE (1.. 256)) OPTIONAL ---краткое описание произошедшей ошибки, если
обнаружена
}
TaskStatus::= ENUMERATED {
data-not-ready (0), ---данные не готовы, задача еще выполняется
data-ready (1), ---данные есть, задача выполнена
data-not-found (2), ---данных нет, задача выполнена
error (3) ---в процессе выполнения задачи произошла ошибка
}
---запрос загрузки данных
DataLoadRequest::= TaskID
---ответ на запрос загрузки данных
DataLoadResponse::= SEQUENCE {
task-id TaskID, ---идентификатор задачи, сгенерировавшей данный отчет
data-exists BOOLEAN, ----признак существования результатов исполнения задачи (есть данные или нет)
data-blocks-number INTEGER (0.. 999999999999) OPTIONAL, ---количество блоков в отчете
error-description UTF8String (SIZE (1.. 256)) OPTIONAL ---краткое описание ошибки, если обнаружена
}
---запрос удаления данных
DataDropRequest::= TaskID
---ответ на запрос удаления данных
DataDropResponse::= SEQUENCE {
task-id TaskID, ---идентификатор задачи, данные которой будут удалены
successful BOOLEAN, ---признак успешного выполнения запроса
error-description UTF8String (SIZE (1.. 256)) OPTIONAL ---краткое описание ошибки, если обнаружена
}
---запрос прерывания загрузки данных
DataInterruptRequest::= TaskID
---ответ на запрос прерывания загрузки данных
DataInterruptResponse::= SEQUENCE {
request-id MessageID, ---идентификатор прерванного запроса загрузки данных
successful BOOLEAN, ---признак успешного выполнения запроса
data-blocks-available INTEGER (0.. 999999999999) OPTIONAL, ---количество оставшихся непереданными блоков
error-description UTF8String (SIZE (1.. 256)) OPTIONAL ---краткое описание ошибки, если обнаружена
}
---запрос на создание задачи по обработке информации
CreateTaskRequest::= SEQUENCE {
telcos [0] TelcoList OPTIONAL, ---список ИС ОРИ (других обслуживаемых ОРИ)
range [1] FindRange OPTIONAL, ---временной диапазон поиска
report-limit [2] INTEGER (1.. 10000000) OPTIONAL, ---ограничение на максимальное количество возвращаемых
записей
task [3] CHOICE {
dictionary [0] DictionaryTask, ---задачи пополнения справочников (нормативно-справочная информация)
presense [6] PresenseTask, ---задачи предоставления сведений о наличии данных
abonents-ori [7] AbonentsORITask, ---задачи поисков по принадлежности абонентов организаторов распространения
информации
connections-ori [8] ConnectionsORITask ---задачи поисков по соединениям абонентов организаторов распространения
информации
},
find-by-arrive-time BOOLEAN OPTIONAL ---режим поиска информации (true - по дате и времени поступления;
false - по дате и времени события; по умолчанию - false)
}
---ответ на запрос создания задачи
CreateTaskResponse::= SEQUENCE {
task-id TaskID OPTIONAL, ---идентификатор задачи
successful BOOLEAN, ---признак успешного выполнения запроса
error-description UTF8String (SIZE (1.. 256)) OPTIONAL ---краткое описание ошибки, если обнаружена
}
---идентификатор задачи
TaskID::= INTEGER (0.. 4294967295)
---идентификатор ОРИ или коммуникационного интернет-сервиса ИС ОРИ
TelcoID::= INTEGER (0.. 65535)
---список ИС ОРИ (других обслуживаемых ОРИ)
TelcoList::= SEQUENCE OF TelcoID
---идентификатор объекта наблюдения
ObjectUNI::= INTEGER (0..
4294967295)
LogicalOperation::= ENUMERATED {
operation-open-bracket (0), ---открывающая скобка - "("
operation-close-bracket (1), ---закрывающая скобка - ")"
operation-or (2), ---логическое "или"
operation-and (3), - логическое "и"
operation-not (4) - логическое "не"
}
END
___________________________________________________________________________
TasksAbonentsORI.asn
TasksAbonentsORI DEFINITIONS IMPLICIT TAGS::=
BEGIN
EXPORTS AbonentsORITask;
IMPORTS LogicalOperation
FROM Tasks
RequestedAbonentORI
FROM RequestedAbonentsORI;
---Заданный при поиске временной интервал применяется к дате и времени регистрации (datetime-registered)
AbonentsORITask::= CHOICE {
validate-abonents [0] ValidateAbonentsORITask
}
ValidateAbonentsORITask::= RequestedAbonentORIIdentifiers
RequestedAbonentORIIdentifiers::= SEQUENCE OF RequestedAbonentORIIdentifier
RequestedAbonentORIIdentifier::= CHOICE {
separator [0] LogicalOperation,
find-mask [1] RequestedAbonentORI
}
END
___________________________________________________________________________
TasksConnectionsORI.asn
TasksConnectionsORI DEFINITIONS IMPLICIT TAGS::=
BEGIN
EXPORTS ConnectionsORITask;
IMPORTS LogicalOperation
FROM Tasks
RequestedConnectionORI
FROM RequestedConnectionsORI;
ConnectionsORITask::= CHOICE {
validate-standart [0] ValidateStandartTask, ---используется для запросов стандартного класса сложности
(sorm-request-connection-ori-data-standart; sorm-request-connection-ori-link; sorm-request-connection-ori-aaa)
validate-extended [1] ValidateExtendedTask, ---используется для расширенных запросов
(sorm-request-connection-ori-data-extended)
validate-streams-content [2] ValidateStreamsContentTask, ---используется для получения содержимого изображений,
звуков, голосовой информации, видео-и иных электронных сообщений (sorm-request-connection-ori-streams-content)
valide-keys [3] ValidateTaskF1
}
ValidateStandartTask::= RequestedConnectionIdentifiersORI
ValidateExtendedTask::= RequestedConnectionIdentifiersORI
ValidateStreamsContentTask::= RequestedConnectionORI
ValidateTaskF1::= RequestedConnectionIdentifiersORI
RequestedConnectionIdentifiersORI::= SEQUENCE OF
RequestedConnectionParameterORI
RequestedConnectionParameterORI::= CHOICE {
separator [0] LogicalOperation,
find-mask [1] RequestedConnectionORI
}
END
___________________________________________________________________________
TasksPresense.asn
TasksPresense DEFINITIONS IMPLICIT TAGS::=
BEGIN
EXPORTS PresenseTask;
IMPORTS TAGGED,
sorm-request-presense
FROM Classification;
PresenseTask::= SEQUENCE {
id TAGGED.&id ({PresenseListVariants}),
data TAGGED.&Data ({PresenseListVariants}{@id})
}
PresenseListVariants TAGGED::= {presenseinfo}
presenseInfo TAGGED::= {
OID {sorm-request-presense}
DATA RequestPresenseData
}
RequestPresenseData::= ENUMERATED {
dictionaries (3), ---запрос наличия справочников
abonents-ori (5), ---запрос наличия информации по данным о пользователях ОРИ и их идентификаторам
connections-ori (6) ---запрос наличия информации по соединениям пользователя ОРИ
}
END
___________________________________________________________________________
TasksUNI.asn
TasksUNI DEFINITIONS IMPLICIT TAGS::=
BEGIN
EXPORTS UNIControlTaskRequest,
UNIControlTaskResponse;
IMPORTS TAGGED
FROM Classification
UserID,
UserTechnicalIdentifier
FROM IdentifiersORI
TelcoList,
ObjectUNI
FROM Tasks;
UNIControlTaskRequest::= CHOICE {
create-uni [0] CreateUNIRequest, ---запрос на создание объекта наблюдения и постановки его на контроль
drop-uni [1] DropUNIRequest ---запрос на снятие объекта наблюдения с контроля и удаление объекта наблюдения
get-uni [2] GetUNIRequest ---запрос на получение списка объектов наблюдения установленных на контроль
}
UNIControlTaskResponse::= CHOICE {
create-uni [0] CreateUNIResponse, ---ответ на запрос создания объекта наблюдения и постановки его на контроль
drop-uni [1] DropUNIResponse ---ответ на запрос снятия объекта наблюдения с контроля и удаление объекта
наблюдения
get-uni [2] GetUNIResponse ---ответ на запрос на получение списка объектов наблюдения установленных на контроль
}
CreateUNIRequest::= SEQUENCE {
uni-id ObjectUNI, ---идентификатор объекта наблюдения, переданный ПУ
uni-criteria UNIParameterORI, ---критерии отбора для объекта наблюдения
content-load BOOLEAN, ---режим выгрузки содержимого (true - статистика и содержимое; false - только статистика)
telcos TelcoList OPTIONAL ---список ИС ОРИ (других обслуживаемых ОРИ)
}
UNIParameterORI::= CHOICE {
user-id [0] UserID, ---идентификатор пользователя в системе (имя пользователя)
user-technical-identifier [1] UserTechnicalIdentifier, ---технические данные, идентифицирующие пользователя
resource-name [2] UTF8String (SIZE (1.. 4096)) ---наименование ресурса
}
CreateUNIResponse::= SEQUENCE {
uni-successful BOOLEAN, ---признак успешной постановки объекта наблюдения на контроль
uni-error-description UTF8String (SIZE (1.. 256)) OPTIONAL ---краткое описание ошибки, если обнаружена
}
DropUNIRequest::= ObjectUNI ---идентификатор объекта наблюдения для снятия с контроля
DropUNIResponse::= SEQUENCE {
uni-successful BOOLEAN, - признак успешного снятия объекта наблюдения с контроля
uni-error-description UTF8String (SIZE (1.. 256)) OPTIONAL ---краткое описание ошибки, если обнаружена
}
GetUNIRequest::= NULL
GetUNIResponse::= SEQUENCE OF UNIResponse
UNIResponse::= SEQUENCE {
uni-id ObjectUNI, ---идентификатор объекта наблюдения, переданный ПУ
uni-criteria UNIParameterORI, ---критерии отбора для объекта наблюдения
content-load BOOLEAN, ---режим выгрузки содержимого (true - статистика и содержимое; false - только статистика)
telcos TelcoList OPTIONAL - список филиалов ОРИ (других обслуживаемых ОРИ)
}
END
___________________________________________________________________________
Traps.asn
Traps DEFINITIONS IMPLICIT TAGS::=
BEGIN
EXPORTS trapMessage;
IMPORTS TAGGED,
sorm-message-trap
FROM Classification
MessageID
FROM Sorm;
trapMessage TAGGED::= {
OID {sorm-message-trap}
DATA CHOICE {
trap [0] Trap, ---тип сообщения "сигнал"
trap-ack [1] TrapAck ---тип сообщения "подтверждение сигнала"
}
}
---блок данных сообщения типа "сигнал"
Trap::= SEQUENCE {
trap-type TrapType, ---тип сообщения
trap-message UTF8String (SIZE (1.. 256)) OPTIONAL, ---описание сообщения
reference-message MessageID OPTIONAL ---номер сообщения, к которому относится
данный сигнал
}
TrapType::= ENUMERATED {
heartbeat (0), ---тестовый пакет
restart-software (1), ---перезапуск ПО
unauthorized-access (2), ---попытка несанкционированного доступа
critical-error (3), ---критическая ошибка ПО, потеря данных, дальнейшая работа невозможна
major-error (4), ---серьезная ошибка ПО, потеря данных, но дальнейшая работа возможна
minor-error (5) ---незначительная ошибка ПО, данные не потеряны, дальнейшая работа возможна
}
---блок данных сообщения типа "подтверждение сигнала" (номер сообщения TrapAck должен соответствовать
номеру сообщения Trap)
TrapAck::= NULL
END
___________________________________________________________________________
Unformatted.asn
Unformatted DEFINITIONS IMPLICIT TAGS::=
BEGIN
EXPORTS unformattedMessage;
IMPORTS TAGGED,
sorm-message-unformatted
FROM Classification
TelcoList
FROM Tasks
Acknowledgement
FROM Reports
ConnectionsORIReport
FROM ReportsConnectionsORI
AbonentsORIReport
FROM ReportsAbonentsORI
DateAndTime,
MessageID
FROM Sorm;
unformattedMessage TAGGED::= {
OID {sorm-message-unformatted}
DATA CHOICE {
request [0] RawRequest,
response [1] RawResponse,
report [2] RawReport,
report-ack [3] RawAcknowledgement
}
}
RawRequest::= SEQUENCE {
telcos TelcoList, ---список ИС ОРИ (других обслуживаемых ОРИ)
raw-task RawRequestTask ---запрос получения неформатированных данных
}
RawRequestTask::= CHOICE {
data-types-request [0] DataTypesRequest, ---запрос проверки наличия вида неформатированных данных в ИС СОРМ
data-start-request [1] DataStartRequest, ---запрос на начало передачи неформатированных данных
data-stop-request [2] DataStopRequest ---запрос на остановку передачи неформатированных данных
data-stop-typed-request [3] DataStopTypedRequest ---запрос на остановку передачи неформатированных данных по
типу данных
}
DataStopTypedRequest::= RawDataType
RawResponse::= CHOICE {
data-types-response [0] DataTypesResponse, ---ответ на запрос проверки наличия вида неформатированных данных
в ИС СОРМ
data-start-response [1] DataStartResponse, ---ответ на запрос начала передачи неформатированных данных
data-stop-response [2] DataStopResponse ---ответ на запрос остановки передачи неформатированных данных
data-stop-typed-response [3] DataStopTypedResponse ---ответ на запрос остановки передачи неформатированных
данных по типу данных
}
DataStopTypedResponse::= BOOLEAN ---признак успешности выполнения команды
DataTypesRequest::= RawDataType
DataTypesResponse::= SEQUENCE {
successful BOOLEAN, ---признак наличия в ИС СОРМ запрошенного вида неформатированных данных
selected-type RawDataType, ---выбранный вид данных для передачи
time-from DateAndTime, ---начало временного периода в буфере, начиная с которого накоплены данные
time-to DateAndTime ---конец временного периода в буфере, по которому накоплены данные
}
DataStartRequest::= SEQUENCE {
time-from DateAndTime, ---начало временного периода в буфере, с которого необходимо получить данные
time-to DateAndTime, ---конец временного периода в буфере, с которого необходимо получить данные
raw-type RawDataType ---тип неформатированных данных передачи
}
DataStartResponse::= BOOLEAN
DataStopRequest::= NULL
DataStopResponse::= BOOLEAN
---типы данных, передаваемых ИС СОРМ
RawDataType::= ENUMERATED {
data-reports-ori (3), ---записи о соединениях абонентов организаторов распространения информации
raw-ori (4) ---записи о соединениях абонентов организаторов распространения информации в бинарном виде
data-reports-abonents-ori (5), ---записи о принадлежности абонентов организаторов распространения информации
raw-abonents-ori (6), ---записи о принадлежности абонентов организаторов распространения информации
в бинарном виде
}
RawReport::= SEQUENCE {
request-id MessageID, ---идентификатор запроса
stream-id UTF8String (SIZE (1.. 256)), ---идентификатор потока в сессии
total-blocks-number INTEGER (0.. 999999999999), ---общее количество блоков в отчете
block-number INTEGER (1.. 1000000000000), ---порядковый номер текущего блока
report-block RawDataBlock ---блок данных отчета
}
RawDataBlock::= CHOICE {
reports-ori [3] ConnectionsORIReport,
raw-ori [4] RawBytesBlock
reports-abonents-ori [5] AbonentsORIReport
raw-abonents-ori [6] RawBytesBlock
}
RawBytesBlock::= SEQUENCE OF RawBytes
RawBytes::= OCTET STRING (SIZE (1.. 4096))
RawAcknowledgement::= Acknowledgement
END".
4. В приложении № 8:
а) пункт 1 изложить в следующей редакции:
"1. ПТС ОРИ должны обеспечивать подключение ПУ и обработку поступающих запросов по каналу кпд4 (канал неформатированных данных).";
б) пункт 4 дополнить абзацем следующего содержания:
"ПТС ОРИ и (или) ИС ОРИ должны обеспечивать длительность хранения информации о принадлежности абонентов - 1 сутки со дня регистрации абонента в ИС ОРИ, длительность хранения информации о соединениях абонентов - 3 суток со дня наступления события.";
в) дополнить пунктом 4.1 следующего содержания:
"4.1. Посредством ПТС ОРИ обеспечивается запись в буфер информации о принадлежности абонентов, о соединениях абонентов организаторов распространения информации - файлы в формате "csv" в сжатом виде. Содержимое файлов, содержащих информацию о принадлежности абонентов, генерируется в соответствии с полями, описанными в структуре "AbonentsORIRecord" модуля "ReportsAbonentsORI.asn", содержащейся в приложении № 4 к настоящим требованиям, о соединениях абонентов организаторов распространения информации генерируется в соответствии с полями, описанными в структуре "ConnectionsAAAORIRecord" модуля "ReportsConnectionsORI.asn", содержащейся в приложении № 4 к настоящим требованиям.".
