ASN.1 протокол взаимодействия ПУ и ПТС ОРМ ОРИ




 

 


 


 

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::= OCTET STRING (SIZE (8))

 

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 --- дополнительная информация о пользователе

}

 

--- информация о пользователе

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.. 128)), --- наименование о дополнительных сведениях

content UTF8String (SIZE (1.. 4096)) --- содержание дополнительных сведений

}

 

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

 

unformattedMessage

FROM Unformatted

 

 

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 --- сообщения работы с отчётами

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

 

}

 

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

MessageID::= INTEGER (0.. 4294967295)

 

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

DateAndTime::= UTCTime

 

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

FindRange::= SEQUENCE {

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

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

}

 

END


ReportsConnectionsORI.asn

ReportsConnectionsORI DEFINITIONS IMPLICIT TAGS::=

BEGIN

 

EXPORTS ConnectionsORIReport;

 

IMPORTS TAGGED,

sorm-report-connection-ori-data,

sorm-report-connection-ori-link,

sorm-report-connection-ori-aaa,

sorm-report-connection-ori-streams-content,

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 --- содержимое изображений, звуков, голосовой информации, видео- и иных электронных сообщений

}

 

--- события информационного взаимодействия пользователей в ИС ОРИ

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

}

 

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

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 SEQUENCE OF ConnectionsStreamsContentORIRecord

}

 

ConnectionsStreamsContentORIRecord::= SEQUENCE {

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

data OCTET STRING (SIZE (1.. 1048576)), --- содержимое блока

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

}

 

END

RequestedAbonentsORI.asn

RequestedAbonentsORI DEFINITIONS IMPLICIT TAGS::=

BEGIN

 

EXPORTS RequestedAbonentORI;

 

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 --- содержимое изображений, звуков, голосовой информации, видео- и иных электронных сообщений

 

}

 

--- события информационного взаимодействия пользователей в ИС ОРИ (базовый набор критериев)

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 --- конечное смещение потоковых данных

}

 

 

TasksAbonentsORI.asn

TasksAbonentsORI DEFINITIONS IMPLICIT TAGS::=

BEGIN

 

EXPORTS AbonentsORITask;

 

IMPORTS LogicalOperation

FROM Tasks

 

RequestedAbonentORI

FROM RequestedAbonentsORI;

 

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, --- используется для запросов стандартного класса сложности

validate-extended [1] ValidateExtendedTask, --- используется для расширенных запросов

validate-streams-content [2] ValidateStreamsContentTask, --- используется для получения содержимого изображений, звуков, голосовой информации, видео- и иных электронных сообщений

}

 

ValidateStandartTask::= RequestedConnectionIdentifiersORI

ValidateExtendedTask::= RequestedConnectionIdentifiersORI

ValidateStreamsContentTask::= RequestedConnectionORI

 

RequestedConnectionIdentifiersORI::= SEQUENCE OF RequestedConnectionParameterORI

 

RequestedConnectionParameterORI::= CHOICE {

separator [0] LogicalOperation,

find-mask [1] RequestedConnectionORI

}

 

END

Classification.asn

Classification DEFINITIONS IMPLICIT TAGS::=

BEGIN

 

EXPORTS TAGGED,

 

sorm-message-session,

sorm-message-trap,

sorm-message-task,

sorm-message-report,

sorm-message-unformatted,

 

sorm-request-abonent-ori,

sorm-report-abonent-ori,

 

sorm-request-dictionaries,

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-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-unformatted OID::= "285"

 

--- Абоненты

sorm-request-abonent-ori OID::= "245"

sorm-report-abonent-ori OID::= "70"

 

--- Справочники

sorm-request-dictionaries OID::= "240"

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::= "120"

sorm-report-dictionary-ori-payment-services OID::= "121"

 

--- Запрос о наличии данных

sorm-request-presense OID::= "260"

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-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-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::= {

oriServices --- виды информационных сервисов, предоставляемых ОРИ для пользователей

| oriEvents --- виды событий, регистрируемых ИС ОРИ при взаимодействии ИС ОРИ с пользователем

| oriResources --- типы информационных ресурсов, создаваемых пользователями в ИС ОРИ

| oriUserTypes --- типы пользователей, обслуживаемых ИС ОРИ

| oriPaymentServices --- виды платежных услуг (платежных сервисов), используемых ОРИ

}

 

--- виды информационных сервисов, предоставляемых ОРИ для пользователей

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

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

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 ReportDataBlock --- блок данных отчета

}

 

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

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 {

range FindRange, --- интервал времени, на который имеются данные в ИС ОРИ

count INTEGER, --- количество записей

service-id INTEGER (0.. 65535) OPTIONAL --- идентификатор сервиса

}

 

--- отчет по наличию информации по соединениям пользователя ОРИ

connectionsORIPresence TAGGED::= {

OID {sorm-report-presense-connections-ori}

DATA SEQUENCE OF ConnectionsORIPresenseRecord

}

 

ConnectionsORIPresenseRecord::= SEQUENCE {

range FindRange, --- интервал времени, на который имеются данные в ИС ОРИ

count INTEGER, --- количество записей

data-type ConnectionsORIPresenseType, --- вид событий в ИС ОРИ, информация по которым есть в ИС СОРМ

service-id INTEGER (0.. 65535) OPTIONAL --- идентификатор сервиса

}

 

ConnectionsORIPresenseType::= ENUMERATED {

data (0), --- записи об информационном взаимодействии пользователей в ИС ОРИ

link (1), --- записи о добавлении/исключении связанных пользователей

aaa (2), --- записи о регистрации, прекращения регистрации, авторизации, выхода из информационного сервиса

}

 

END

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;

 

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

}

}

 

--- запрос готовности данных

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

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

 

LogicalOperation::= ENUMERATED {

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

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

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

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

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

}

 

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


 

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

 

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

raw-task RawRequestTask --- запрос получения неформатированных данных

}

 

RawRequestTask::= CHOICE {

data-types-request [0] DataTypesRequest, --- запрос проверки наличия вида неформатированных данных в ИС СОРМ

data-start-request [1] DataStartRequest, --- запрос на начало передачи неформатированных данных

data-stop-request [2] DataStopRequest --- запрос на остановку передачи неформатированных данных

}

 

RawResponse::= CHOICE {

data-types-response [0] DataTypesResponse, --- ответ на запрос проверки наличия неформатированных вида данных в ИС СОРМ

data-start-response [1] DataStartResponse, --- ответ на запрос начала передачи неформатированных данных

data-stop-response [2] DataStopResponse --- ответ на запрос остановки передачи неформатированных данных

}

 

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) --- записи о соединениях абонентов организаторов распространения информации в бинарном виде

}

 

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

}

 

RawBytesBlock::= SEQUENCE OF RawBytes

 

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

 

RawAcknowledgem



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-04-04 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: