Приказ ФОИВ · Административное право

О внесении изменений в приказ Минкомсвязи России от 29 октября 2018 г. № 573 "Об утверждении Требований к техническим и программным средствам информационных систем, содержащих базы данных абонентов оператора связи и предоставленных им услугах связи, а также информацию о пользователях услугами связи и о предоставленных им услугах связи, обеспечивающих выполнение установленных действий при проведении оперативно-розыскных мероприятий"

действующая редакция оригинал

Текст очень длинный, поэтому разбит на части. Часть 2 из 2.

19. 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

supportsSEQUENCEOFObjectDescriptor --- весь список поддерживаемых COPM типов запросов, типов отчетов

}

--- согласование поддерживаемых типов со стороны ПУ

AdjustmentRequest::= SEQUENCE {

Supports SEQUENCE OF ObjectDescriptor --- список поддерживаемых ПУ типов запросов, типов отчетов. Данный список должен быть меньшим или равным списку в сообщении ConnectRequest

}

-- ответ на согласование списка поддерживаемых типов

AdjustmentResponse::= NULL --- ответ на запрос согласования данных

--- запрос завершения сессии

DisconnectRequest::= NULL

--- ответ на запрос завершения сессии

DisconnectResponse::= NULL

END

20. Sorm.asn

Sorm DEFINITIONS IMPLICIT TAGS::=

BEGIN

EXPORTS DateAndTime,

FindRange,

MessageID,

Message;

IMPORTS TAGGED FROM Classification

sessionMessage FROM Sessions

trapMessage FROM Traps

taskMessage FROM Tasks

reportMessage FROM Reports

managementMessage FROM Management

unformattedMessage FROM Unformatted

filterMessage FROM Filters;

Version::= PrintableString

vers Version::= "3.3.0" --- текущая версия протокола

--- Оболочка сообщения COPM

Message::= SEQUENCE {

version Version OPTIONAL, --- версия протокола

message-id MessageID, --- номер запроса

message-time DateAndTime, --- время и дата запроса

operator-name PrintableString (SIZE (1.. 128)) OPTIONAL, --- наименование оператора связи

id TAGGED.&id ({SormPDUs}), --- идентификатор блока данных

data TAGGED.&Data({SormPDUs}{@id}) --- данные блока данных

}

-- Блок данных сообщения

SormPDUsTAGGED::= {

sessionMessage --- сообщения организации сессии

| trapMessage --- сообщения сигналов

| taskMessage --- сообщения работы с задачами

| reportMessage --- сообщения работы с отчетами

| managementMessage --- сообщения канала передачи мониторинга (КПМ)

| unformattedMessage --- сообщения канала передачи неформатированных данных (КПНФ)

| filterMessage --- сообщения установки/снятия фильтров записываемого содержимого соединений сети передачи данных

}

--- Общие данные

-- Номер сообщения

MessageID INTEGER (0.. 4294967295)

-- Дата и время

DateAndTime::= UTCTime

-- Диапазон поиска

FindRange SEQUENCE {

begin-find [0] DateAndTime OPTIONAL, --- время и дата начала поиска информации

end-find [1] DateAndTimeOPTIONAL --- время и дата окончания поиска информации

}

END

21. TasksAbonents.asn

TasksAbonents DEFINITIONS IMPLICIT TAGS::=

BEGIN

EXPORTS AbonentsTask;

IMPORTS

LogicalOperation FROM Tasks

RequestedIdentifier FROM RequestedIdentifiers

RequestedAbonent FROM RequestedAbonents;

AbonentsTask::= CHOICE {

validate-abonents-task [0] ValidateAbonentsTask, --- задача на поиск информации о принадлежности идентификаторов абонентов сети оператора связи

validate-identifiers [1] ValidateIdentifiersTask, --- задача на поиск информации об идентификаторах абонентов сети оператора связи, зарегистрированных на физическое или юридическое лицо

validate-services [2] ValidateServicesTask --- задача на поиск информации о доступных абоненту видам услуг связи

}

--- задача на поиск информации о принадлежности идентификаторов абонентов сети оператора связи

ValidateAbonentsTask::= RequestedIdentifiers --- запрашиваемые идентификаторы

RequestedIdentifiers::= SEQUENCEOFRequestedIdentifierParameters -- последовательность из идентификаторов и логических операций

RequestedIdentifierParameters::= CHOICE {

separator [0] LogicalOperation, --- логическая операция или скобка

find-mask [1] RequestedIdentifier --- параметр - идентификатор

}

--- задача на поиск информации об идентификаторах абонентов сети оператора связи зарегистрированных на физическое или юридическое лицо

ValidateIdentifiersTask::= RequestedAbonents --- запрашиваемые абоненты

RequestedAbonents::= SEQUENCEOFRequestedAbonentsParameters --- последовательность логических операций и параметров

RequestedAbonentsParameters::= CHOICE {

separator [0] LogicalOperation, --- логический оператор связки

find-mask [1] RequestedAbonent --- информация запроса об абоненте

}

--- задача на поиск истории услуг связи, оказанных абоненту

--- запрос по маске запрещен, идентификатор указывается полностью

ValidateServicesTask::= SEQUENCE OF ValidateServicesParameters

ValidateServicesParameters::= CHOICE {

separator [0] LogicalOperation, --- логическая операция или скобка

find-mask [1] ValidateServicesParameter --- параметр - идентификатор

}

ValidateServicesParameter::= CHOICE {

contract [0] UTF8String (SIZE (1.. 64)), --- номер договора

identifier [1] RequestedIdentifier

}

END

22. Tasks.asn

Tasks DEFINITIONS IMPLICIT TAGS::=

BEGIN

EXPORTS taskMessage,

TaskID,

LogicalOperation,

CreateTaskResponse,

DataContentID;

IMPORTS TAGGED,

sorm-message-task

FROM Classification

FindRange,

MessageID

FROM Sorm

TelcoList,

DictionaryTask

FROM Dictionaries

AbonentsTask

FROM TasksAbonents

ConnectionsTask

FROM TasksConnections

LocationTask

FROM TasksLocation

PaymentsTask

FROM TasksPayments

PresenseTask

FROM TasksPresense

DataContentTask

FROM TasksContentTask

NonFormalizedTaskRequest,

NonFormalizedTaskResponse

FROM

TasksNonFormalized;

taskMessage TAGGED::= {

OID {sorm-message-task}

DATA CHOICE {

data-ready-request [0] DataReadyRequest, --- запрос готовности данных

data-ready-response [1] DataReady Response, --- ответ на запрос готовности данных

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, --- ответ на запрос создания задачи

non-formalized-task-request [10] NonFormalizedTaskRequest, --- запрос на создание задачи по обработке неформализованных данных

non-formalized-task-response [11] NonFormalizedTaskResponse --- ответ на запрос создания задачи по обработке неформализованных данных

}

}

--- в этом запросе не параметров

DataReadyRequest::= NULL

--- запрос загрузки данных конкретной задачи

DataLoadRequest::= TaskID

--- запрос удаления данных конкретной задачи

DataDropRequest::= TaskID

--- запрос прерывания загрузки данных

DataInterruptRequest TaskID

--- запрос на создание задачи поиска

CreateTaskRequest SEQUENCE {

telcos [0] TelcoList OPTIONAL, --- список операторов связи

range [1] FindRange OPTIONAL, --- временной диапазон поиска

report-limit [2] INTEGER (1.. 10000000) OPTIONAL, --- ограничение на максимальное количество возвращаемых записей

task [3] CHOICE {

dictionary [0] DictionaryTask, --- задачи пополнения справочников (нормативно-справочная информация)

abonents [1] AbonentsTask, --- задачи поисков по принадлежности абонентов

connections [2] ConnectionsTask, --- задачи поисков по соединениям абонентов

location [3] LocationTask, --- задача получения данных местоположения абонентов

payments [4] PaymentsTask, --- задачи поисков по совершенным платежам

presense [6] PresenseTask, --- задачи предоставления сведений о наличии данных

data-content [9] DataContentTask --- задачи получения содержимого потоков

}

}

------------------------------------------------------------------

--- последовательность записей о готовности данных задач

DataReadyResponse::= SEQUENCE OF DataReadyTaskRecord

DataReadyTaskRecord::= SEQUENCE {

task-id TaskID, --- идентификатор задачи

result TaskResult --- результат выполнения задачи

}

TaskResult::= SEQUENCE {

result ENUMERATED {

data-not-ready (0), --- данные не обработаны, задача в процессе выполнения

data-ready (1), --- данные в наличии, задача выполнена

data-not-found (2), --- данных отсутствуют, задача выполнена

error (3) --- в процессе выполнения задачи произошла ошибка

},

report-records-number [0] INTEGER (0.. 999999999999) OPTIONAL,

--- для выполненной задачи - количество записей в отчете

report-limit-exeeded [1] BOOLEANOPTIONAL, --- количество записей превысило лимит, заданный при создании задачи

error-description [2] UTF8String (SIZE (1.. 256)) OPTIONAL --- описание произошедшей ошибки (в случае выявления ошибки)

}

DataLoadResponse::= SEQUENCE {

task-id TaskID, --- идентификатор задачи, сгенерировавшей данный отчет

data-exists BOOLEAN, --- признак существования результатов исполнения задачи (имеются данные или отсутствуют)

data-blocks-number INTEGER (0.. 999999999999) OPTIONAL, --- количество блоков в отчете

error-description UTF8String (SIZE (1.. 256)) OPTIONAL --- описание ошибки (в случае выявления ошибки)

}

DataDropResponse::= SEQUENCE {

task-id TaskID, --- идентификатор задачи, данные которой будут удалены

successful BOOLEAN, --- признак корректного выполнения запроса

error-description UTF8String (SIZE (1.. 256)) OPTIONAL --- описание ошибки (в случае выявления ошибки)

}

DataInterruptResponse::= SEQUENCE {

request-id MessageID, --- идентификатор прерванного запроса загрузки данных

successful BOOLEAN, --- признак корректного выполнения запроса

data-blocks-available INTEGER (0.. 999999999999) OPTIONAL, --- количество оставшихся непереданными блоков

error-description UTF8String (SIZE (1.. 256)) OPTIONAL --- описание ошибки (в случае выявления ошибки)

}

CreateTaskResponse::= SEQUENCE {

task-id TaskID OPTIONAL, --- идентификатор задачи

successful BOOLEAN, --- признак корректного выполнения запроса

error-description UTF8String (SIZE (1.. 256)) OPTIONAL --- описание ошибки (в случае выявления ошибки)

}

------------------------------------------------------------------

--- идентификатор задачи

TaskID::= INTEGER (0.. 4294967295)

--- идентификатор потока

DataContentID::= UTF8String (SIZE (1.. 512))

LogicalOperation::= ENUMERATED {

operation-open-bracket (0), -- открывающая скобка - "("

operation-close-bracket (1), -- закрывающая скобка -")"

operation-or (2), -- логическое "или"

operation-and (3), -- логическое "и"

operation-not (4) -- логическое "не"

}

END 23. TasksConnections.asn

TasksConnections DEFINITIONS IMPLICIT TAGS::=

BEGIN

EXPORTS ConnectionsTask;

IMPORTS

LogicalOperation FROM Tasks

RequestedConnection FROM RequestedConnections

;

ConnectionsTask::= CHOICE {

validate-connections [0] ValidateConnectionsTask, --- задача на поиск соединений между абонентами в сети телефонной связи

validate-data [1] ValidateDataTask, --- задача на поиск соединений между абонентами сети передачи данных

validate-entrance [2] ValidateEntranceTask --- задача на поиск информации о действиях абонента в личном кабинете

}

--- задача на поиск по соединениям абонентов

ValidateConnectionsTask::= RequestedConnectionIdentifiers --- запрашиваемые идентификаторы указываются все, кроме RequestedDataNetworkIdentifier

ValidateDataTask::= RequestedConnectionIdentifiers --- запрашиваемые идентификаторы указываются RequestedDataNetworkIdentifier

ValidateEntranceTask::= RequestedConnectionIdentifiers --- задача на поиск информации о действиях абонента в личном кабинете

RequestedConnectionIdentifiers::= SEQUENCE OF RequestedConnectionParameter

RequestedConnectionParameter::= CHOICE {

separator [0] LogicalOperation, --- логический оператор связки

find-mask [1] RequestedConnection --- параметр запроса

}

END

24. TasksLocation.asn

TasksLocation DEFINITIONS IMPLICIT TAGS::=

BEGIN

EXPORTS LocationTask;

IMPORTS

IPAddress

FROM NetworkIdentifiers;

--- задача получения данных местоположения абонентов

LocationTask::= RequestedLocationIdentifier --- запрашиваемые идентификаторы для определения местоположения

RequestedLocationIdentifier::=

CHOICE {

directory-number [0] UTF8String (SIZE (1.. 32)), --- телефонный номер в международном формате

imsi [1] NumericString (SIZE (2.. 18)), --- идентификатор мобильного абонента

ip-address [2] IPAddress, --- IP-адрес абонента

imei [3] NumericString (SIZE (2.. 18)) --- идентификатор мобильной станции

}

END

25. TasksNonFormalized.asn

TasksNonFormalized DEFINITIONS IMPLICIT TAGS::=

BEGIN

EXPORTS

EntityId,

NonFormalizedTaskRequest,

NonFormalizedTaskResponse,

NonFormalizedEntityAttributeData;

IMPORTS TelcoList

FROM Dictionaries

FindRange,

MessageID,

DateAndTime

FROM Sorm

Location

FROM Locations

LogicalOperation,

CreateTaskResponse

FROM Tasks

;

--- TaskID,

-- LogicalOperation;

NonFormalizedTaskRequest::= CHOICE {

get-entities [0] GetEntities, --- тип сообщения "запрос получения списка типов сущностей"

get-attributes [1] GetEntityAtttibutes, --- тип сообщения "запрос получения списка атрибутов сущности"

validate-task [2] ValidateNonFormalizedTask, --- тип сообщения "задача поиска неформализованных данных"

validate-presense [3] NonFormalizedPresenseTask --- тип сообщения "задача предоставления сведений о наличии неформализованных данных"

NonFormalizedTaskResponse::= CHOICE {

entities [0] GetEntitiesResponse, --- ответ на запрос получения списка типов сущностей

entity-attributes [1] GetEntityAtttibutesResponse, --- ответ на запрос получения списка атрибутов сущности

validate-task [2] ValidateNonFormalizedTaskResponse, --- ответ на запрос задачи поиска неформализованных данных

validate-presense [3] NonFormalizedPresenseTaskResponse --- ответ на запрос задачи предоставления сведений о наличии неформализованных данных

}

--- тип сообщения "запрос получения списка типов сущностей"

GetEntities::= NULL

--- тип сообщения "запрос получения списка атрибутов сущности"

GetEntityAtttibutes::= EntityId

--- тип сообщения "задача поиск неформализованных данных"

ValidateNonFormalizedTask::= SEQUENCE {

entity-id EntityId, --- сущность для поиска по неформализованным данным

parameters NonFormalizedParameters, --- критерии поиска по неформализованным данным

range FindRangeOPTIONAL, --- временной диапазон поиска

report-limit INTEGER (1.. 10000000) OPTIONAL --- ограничение на максимальное количество возвращаемых записей

}

--- тип сообщения "задача предоставления сведений о наличии неформализованных данных"

NonFormalizedPresenseTask::= EntityId

NonFormalizedParameters::= SEQUENCE OF NonFormalizedParameter

NonFormalizedParameter CHOICE {

separator [0] LogicalOperation, --- логическая операция

find-mask [1] NonFormalizedEntityCondition --- условие

}

NonFormalizedEntityCondition::= SEQUENCE {

attribute NonFormalizedEntity Attribute, --- атрибут сущности

operation MathOperation, --- операция

attribute-value NonFormalizedEntity AttributeData --- значение атрибута

}

NonFormalizedEntity Attribute::= SEQUENCE {

attribute-name UTF8String (SIZE (1.. 256)), --- текстовое наименование атрибута сущности

attribute-type AttributeType --- тип данных атрибута

}

NonFormalizedEntityAttributeData::= CHOICE {

datetime [0] DateAndTime, --- дата и время (час, минута, секунда) с погрешностью +/- 1 секунда

integer [1] INTEGER, --- целочисленный

string [2] UTF8String, --- строковый

boolean [3] BOOLEAN, --- булевый

float [4] REAL, --- с плавающей запятой

location [5] Location, --- местоположение

empty [6] NULL --- не заполняется (null)

}

--- математические операции сравнения

MathOperation::= ENUMERATED {

equal (0), --- равно

less(1), --- меньше

greater (2), --- больше

not-equal (3), --- не равно

less-or-equal (4), --- меньше или равно

greater-or-equal (5) --- больше или равно

}

------------------------------------------------------------------

GetEntitiesResponse::= SEQUENCE OF NonFormalizedEntity

NonFormalizedEntity::= SEQUENCE {

entity-id EntityId, --- уникальный идентификатор сущности

entity-name UTF8String (SIZE (1.. 256)) --- текстовое наименование сущности

}

GetEntityAtttibutesResponse::= SEQUENCE {

entity-id EntityId, --- уникальный идентификатор сущности

entity-attributes SEQUENCE OF NonFormalizedEntityAttribute --- атрибуты сущности

}

ValidateNonFormalizedTaskResponse::= CreateTaskResponse

NonFormalizedPresenseTaskResponse::= CreateTaskResponse

------------------------------------------------------------------

--- типы данных атрибутов

AttributeType::= ENUMERATED {

date-time (0), --- дата и время (час, минута, секунда) с погрешностью +/- 1 секунда

integer (1), --- целочисленный

string (2), --- строковый

boolean (3), --- булевый

float (4), --- с плавающей запятой

location (5), --- местоположение

empty (6) --- пустое значение

}

--- Идентификатор сущности

EntityId INTEGER (0.. 4294967296)

END

26. TasksPayments.asn

TasksPayments DEFINITIONS IMPLICIT TAGS::=

BEGIN

EXPORTS PaymentsTask;

IMPORTS LogicalOperation

FROM Tasks

RequestedConnection

FROM RequestedConnections

RequestedIdentifier

FROM RequestedIdentifiers

RequestedAddress

FROM Addresses

TAGGED,

sorm-request-payment-bank-transaction,

sorm-request-payment-express-pays,

sorm-request-payment-terminal-pays,

sorm-request-payment-service-center,

sorm-request-payment-cross-account,

sorm-request-payment-telephone-card,

sorm-request-payment-balance-fillups,

sorm-request-payment-bank-division-transfer,

sorm-request-payment-bank-card-transfer,

sorm-request-payment-bank-account-transfer

FROM Classification;

PaymentsTask::= SEQUENCE {

id TAGGED.&id ({RequestedPayments Variants}),

data TAGGED.&Data ({RequestedPayments Variants} {@id})

}

--- варианты запрашиваемых параметров связей

RequestedPaymentsVariantsTAGGED::= {

bankTransactionTask

| expressCardTask

| publicTerminalTask

| serviceCenterTask

| crossAccountTask

| telephoneCardTask

| balanceFillupTask

| bankDivisionTransferTask

| bankCardTransferTask

| bankAccountTransferTask

}

--- задача на поиск пополнения баланса посредством банковского перевода

bankTransactionTask TAGGED::= {

OID {sorm-request-payment-bank-transaction}

DATA RequestedBankTransactionPays

}

RequestedBankTransactionPays::= SEQUENCE OF

RequestedBankTransactionPaysParameters

--- последовательность логических операций и параметров

RequestedBankTransactionPaysParameters::= CHOICE {

separator [0] LogicalOperation, --- логический оператор связки

bank-account [1] UTF8String (SIZE (1.. 64)), --- номер банковского счета, с которого совершен платеж

bank-name [2] UTF8String (SIZE (1.. 512)), --- наименование банка, со счета которого совершен перевод

identifier [3] RequestedIdentifier --- идентификатор абонента

}

--- задача на поиск пополнения баланса с использованием карты экспресс-оплаты

expressCardTask TAGGED::= {

OID {sorm-request-payment-express-pays}

DATA RequestedExpressPays

}

RequestedExpressPays::= SEQUENCE OF RequestedExpressPaysParameters --- последовательность логических операций и параметров

RequestedExpressPaysParameters::= CHOICE {

separator [0] LogicalOperation, --- логический оператор связки

express-card [1] NumericString (SIZE (2.. 20)), --- номер карты экспресс-оплаты

identifier [2] RequestedIdentifier --- идентификатор абонента

}

--- задача на поиск пополнения баланса с использованием терминалов моментальных платежей

publicTerminalTask TAGGED::= {

OID {sorm-request-payment-terminal-pays}

DATA RequestedTerminalPays

}

RequestedTerminalPays::= SEQUENCE OF RequestedTerminalPaysParameters --- последовательность логических операций и параметров

RequestedTerminalPaysParameters::= CHOICE {

separator [0] LogicalOperation, --- логический оператор связки

terminal-id [1] UTF8String (SIZE (1.. 64)), --- идентификатор терминала

terminal-number [2] NumericString (SIZE (2.. 20)), --- номер терминала

terminal-address [3] RequestedAddress, --- адрес терминала

identifier [4] RequestedIdentifier --- идентификатор абонента

}

--- задача на поиск пополнения баланса посредством центров

обслуживания клиентов (ЦОК)

serviceCenterTask TAGGED::= {

OID {sorm-request-payment-service-center}

DATA RequestedServiceCenterPays

}

RequestedServiceCenterPays ::= SEQUENCE OF RequestedServiceCenterPaysParameters --- последовательность логических операций и параметров

RequestedServiceCenterPaysParameters::= CHOICE {

separator [0] LogicalOperation, --- логический оператор связки

center-id [1]UTF8String (SIZE (1..

64)), --- идентификатор центра обслуживания клиентов

center-address [2] RequestedAddress, --- адрес центра обслуживания клиентов

identifier [3] RequestedIdentifier --- идентификатор абонента

}

--- задача на поиск пополнения баланса посредством снятия денег со счета другого абонента

crossAccountTask TAGGED::= {

OID {sorm-request-payment-cross-account}

DATA RequestedCrossAccountPays

}

RequestedCrossAccountPays ::= SEQUENCE OF RequestedCross AccountPaysParameters --- последовательность логических операций и параметров

RequestedCrossAccountPaysParameters::= CHOICE {

separator [0] LogicalOperation, --- логический оператор связки

source-identifier [1] RequestedIdentifier, --- идентификатор абонента, со счета которого переводятся средства

dest-identifier [2] RequestedIdentifier --- идентификатор абонента, на счет которого переводятся средства

}

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

telephoneCardTask TAGGED::= {

OID {sorm-request-payment-telephone-card}

DATA RequestedTelephoneCardPays

}

RequestedTelephoneCardPays ::= SEQUENCE OF RequestedTelephoneCardPaysParameters --- последовательность логических операций и параметров

RequestedTelephoneCardPaysParameters::= CHOICE {

separator [0] LogicalOperation, --- логический оператор связки

card-number [1] NumericString (SIZE (2.. 20)), --- номер телефонной карты

identifier [2] RequestedIdentifier --- идентификатор абонента

}

--- общая задача на поиск пополнения баланса личного счета абонента

balanceFillupTask TAGGED::= {

OID {sorm-request-payment-balance-fillups}

DATA RequestedBalanceFillups --- параметры запроса

}

RequestedBalanceFillups ::= SEQUENCE OF RequestedBalanceFillupsParameters --- последовательность логических операций и параметров

RequestedBalanceFillupsParameters::= CHOICE {

separator [0] LogicalOperation, --- логический оператор связки

identifier [1] RequestedIdentifier --- идентификатор абонента

}

--- задача на поиск перевода средств со счета абонента для их снятия в отделении банка

bankDivisionTransferTask TAGGED::= {

OID {sorm-request-payment-bank-division-transfer}

DATA RequestedBankDivisionTranferPays --- параметры запроса

}

RequestedBankDivisionTranferPays::= SEQUENCE OF

RequestedTranferParameters --- последовательность логических операций и параметров

--- задача на поиск перевода средств со счета абонента на банковскую карту

bankCardTransferTask TAGGED::= {

OID {sorm-request-payment-bank-card-transfer}

DATA RequestedBankCardTranferPays --- параметры запроса

}

RequestedBankCardTranferPays ::= SEQUENCE OF RequestedTranferParameters --- последовательность логических операций и параметров

--- задача на поиск перевода средств со счета абонента на счет в банке

bankAccountTransferTask TAGGED::= {

OID {sorm-request-payment-bank-account-transfer}

DATA RequestedBankAccountTranferPays --- параметры запроса

}

RequestedBankAccountTranferPays ::= SEQUENCE OF RequestedTranferParameters --- последовательность логических операций и параметров

RequestedTranferParameters::= CHOICE {

separator [0] LogicalOperation, --- логический оператор связки

source-identifier [1] RequestedIdentifier --- идентификатор абонента инициатора перевода средств

}

END

27. 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 ENUMERATED {

subscribers (0), --- запрос наличия информации об абонентах и их идентификаторах

connections (1), --- запрос наличия информации о соединениях

payments (2), --- запрос наличия имеющейся информации о платежах

dictionaries (3), --- запрос наличия справочников

locations (4) --- запрос наличия информации о местоположении абонентов

}

}

END

28. 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] Trap Ack --- тип сообщения "подтверждение сигнала"

}

}

-- Блок данных сообщения типа "сигнал"

Trap::= SEQUENCE {

trap-type TrapType, -- тип сообщения

trap-message UTF8String (SIZE (1.. 256)) OPTIONAL, -- описание сообщения

reference-message MessageIDOPTIONAL -- номер сообщения, к которому относится данный сигнал

}

TrapType::= ENUMERATED {

heartbeat (0), -- тестовый пакет

restart-software (1), -- перезагрузка программного обеспечения (далее - ПО)

unauthorized-access (2), -- попытка несанкционированного доступа

critical-error (3), -- ошибка ПО, данные утеряны, дальнейшая работа невозможна

major-error (4), -- ошибка ПО, данные утеряны, дальнейшая работа возможна

minor-error (5) -- ошибка ПО, данные не утеряны, дальнейшая работа возможна

}

-- Блок данных сообщения типа "подтверждение сигнала"

-- Номер сообщения TrapAck должен соответствовать номеру сообщения Trap

TrapAck::= NULL

END

29. Unformatted.asn

Unformatted DEFINITIONS IMPLICIT TAGS::=

BEGIN

EXPORTS unformattedMessage;

IMPORTS TAGGED,

sorm-message-unformatted

FROM Classification

TelcoList

FROM Dictionaries

Acknowledgement

FROM Reports

CallsRecords

FROM ReportsConnections

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

--- типы данных, передаваемых ИС ОРМ

RawDataType::= ENUMERATED {

raw-cdr (1), --- "сырые" (неформатированные) CDR-файлы, полученные с коммутационного оборудования

raw-ipdr (2), --- "сырые" (неформатированные) IPDR-файлы

raw-location (10), --- файлы с указанием местоположения в сетях подвижной радиотелефонной связи

raw-passive (11) --- файлы со статистической информацией, полученной от TC OPM 86

}

DataTypesRequest::= RawDataType

--- Команда на начало передачи данных любого типа передается от ПУ независимо от процесса передачи данных других типов, полученных от ИСБД

DataStartRequest::= SEQUENCE {

time-from DateAndTime, --- начало временного периода в буфере, от которого необходимо получить данные

time-to DateAndTime, --- окончание временного периода в буфере, от которого необходимо получить данные

raw-type RawDataType --- тип неформатированных данных передачи

}

DataStopRequest::= NULL

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 --- признак корректного выполнения команды

DataTypesResponse::= SEQUENCE {

successful BOOLEAN, --- признак наличия в ИС ОРМ запрошенного вида неформатированных данных

selected-type RawDataType, --- выбранный вид данных для передачи

time-from DateAndTime, --- начало временного периода в буфере, начиная с которого накоплены данные

time-to DateAndTime --- завершение временного периода в буфере, по которому накоплены данные

}

DataStartResponse::= BOOLEAN --- признак положительного результата выполнения команды

DataStopResponse::= BOOLEAN --- признак положительного результата выполнения команды

--- в поле stream-id передается имя файла

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 {

raw-cdr [1] RawBytesBlock, --- файлы с биллингом в сети телефонной связи, полученным от коммутационного оборудования

raw-ipdr [2] RawBytesBlock, --- файлы с биллингом в сети передачи данных

raw-location [10] RawBytesBlock, --- файлы с информацией о местоположении абонентов в сети подвижной радиотелефонной связи

raw-passive [11] RawBytesBlock --- файл с информацией, полученной от ТС ОРМ 86

}

RawBytesBlock::= SEQUENCE OF RawBytes

RawBytes::= OCTET STRING (SIZE (1.. 4096))

Raw Acknowledgement::= Acknowledgement

END

30. ReportsDataContent.asn

ReportsDataContent DEFINITIONS IMPLICIT TAGS::=

BEGIN

EXPORTS DataContentReport;

IMPORTS TAGGED,

sorm-report-data-content-raw

FROM Classification;

DataContentReport::= SEQUENCE {

id TAGGED.&id ({ReportedDataContentVariants}),

data TAGGED.&Data ({ReportedDataContentVariants} {@id})

}

ReportedDataContentVariants TAGGED::= {

reportDataContentRaw

}

reportDataContentRaw TAGGED::= {

OID {sorm-report-data-content-raw}

DATA SEQUENCE OF RawRecordContent

}

RawRecordContent::= SEQUENCE {

successful BOOLEAN, --- признак корректного формирования блока данных

data [0] OCTETSTRING (SIZE (1.. 1048576)) OPTIONAL, --- содержимое блока (в случае, если блок успешно сформирован)

error [1] UTF8String (SIZE (1.. 4096)) OPTIONAL, --- описание ошибки (в случае, если не удалось сформировать блок)

codec-info [2] UTF8String (SIZE (1.. 4096)) OPTIONAL, --- описание типа содержимого в поле data

direction [3] DataContentRawDirection OPTIONAL, --- направление передачи

channel [4] INTEGER OPTIONAL --- канал

}

DataContentRawDirection::= ENUMERATED {

client-server (0),

server-client (1)

}

END

31. TasksContentTask.asn

TasksContentTask DEFINITIONS IMPLICIT TAGS::=

BEGIN

EXPORTS

DataContentTask

;

IMPORTS

DataContentID

FROM Tasks;

DataContentTask::= DataContentID

END".

22. В приложении № 13 к Требованиям:

а) пункт 2 дополнить абзацем следующего содержания:

"Голосовая информация, получаемая ИС ОРМ от ТС ОРМ 86 в соответствии с протоколом взаимодействия с ТС ОРМ 86, передается на ПУ в виде и последовательности, в которых голосовая информация была получена от ТС ОРМ 86 без переупаковки и/или перекодирования ИС ОРМ.

ИС ОРМ при подключении к ТС ОРМ 86 в качестве дополнительного ПУ выставляет биты поля Transcode в команде получения результатов запроса статистических данных, равными "0".

В поле data структуры "RawRecordContent" пункта 30 приложения № 9 к Требованиям байты звуковой информации укладываются в формате "a-law" или в формате ИКМ (РСМ) в режиме стерео с частотой дискретизации 16 кГц для видео в соответствии с протоколом 3G-324M с использованием кодеков:

H.223 - для мультиплексирования;

H.245 - для управления;

G.723.1 (AMR) - для голоса;

H.264 (AVC) - для видеоконтента.";

б) пункт 3 изложить в следующей редакции:

"3. Для изображений, звуков и иных сообщений пользователей услугами связи, передаваемых в сетях передачи данных, информация должна содержать последовательность кадров канального уровня или датаграмм сетевого уровня в последовательности, в которой они прошли точку съема и записываться в формате "pcap".";

в) дополнить пунктом 4 следующего содержания:

"4. При передаче содержимого соединений по кпд5 соблюдаются следующие правила:

1) поле "channel" структуры "RawRecordContent" пункта 30 приложения № 9 к Требованиям используется в следующих случаях:

для передачи содержимого соединений из сети передачи данных, которые имеют несколько логических каналов (например - FTP, VoIP). Каждый логический канал разделяется по номеру и содержит данные в формате "pcap". В случае если размер Рсар-файла больше одного блока данных, то Pcap-файл разбивается на несколько блоков. Заголовок Рсар-файла является частью данных и приходит только в первом блоке для определенного канала данных;

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

2) поле "codec-info" структуры "RawRecordContent" пункта 30 приложения № 9 к Требованиям используется для передачи типа данных. Описание значений поля "codec-info" приведено в таблице.

Таблица. Описание значений поля "codec-info"

№№ ппЗначениеОписание

1 application/vnd.tcpdump.pcap

Данные в формате "pcap" для передачи содержимого интернет-соединений абонентов

2 application/vnd.tsngi.data

Формат передачи данных в соответствии с Приказом-86.

3 image/tiff

Данные в формате многостраничного TIFF документа. Используются для передачи факсов.

4 image/t38

Передача данных в формате факс.

Значения "tcpdump.pcap" и "tsngi.data" являются основными типами для передачи содержимого соединений. Иные типы значений применяются для расширения возможности передачи содержимого соединений. Отсутствие поля "codec-info" эквивалентно заполнению поля "codec-info" значением "application/vnd.tcpdump.pcap".".