Подсистема TCAP. Общие положения. Прикладная система возможности транзакций, страница 7

q  и другие типы, которые включают, например, тип CHOICE (выбор).

При записи операций присвоения в ASN.1 используется символ ::=. Этот же символ используется при создании новых типов.

Например,

My-type-1 ::= INTEGER

My-type-2 ::= SEQUENCE{

   first-item INTEGER,

   second-item BOOLEAN}

My-type-1 ::= 125

My-type-2 ::= {first-item 201, second-item true}

эквивалентно определениям, принятым в C:

typedef My-type-1 int;

typedef struct

{

      short first-item;

      boolean second-item

} My-type-2;

Каждый тип ASN.1, кроме CHOICE, имеет тег (признак, идентифицирующий тип), который состоит из класса и неотрицательного номера тега (кода признака). Два типа ASN.1 считаются одинаковыми только тогда, когда их теги одинаковы.

В таблице приведены некоторые типы универсального класса ASN.1 и номера их тегов.

ТИП

Номер тега

Комментарий

BOOLEAN

1

логический

INTEGER

2

целый

BIT STRING

3

строка битов

OCTET STRING

4

строка октетов

NULL

5

вырожденный тип

OBJECT IDENTIFIER

6

идентификатор объекта

ENUMERATED

10

перечисление

SEQUENCE

16

последовательность

BOOLEAN

Возможны два значения данного типа: true (истина) и false (ложь).

Формат:

VarName BOOLEAN

Пример присвоения:

VarName ::= true

INTEGER

Возможны любые целые значения данного типа: отрицательные, 0 и положительные.

Формат:

VarName INTEGER

Пример присвоения:

VarName ::= 234

BIT STRING

Обозначает произвольную последовательность битов (нулей и единиц). Переменная BIT STRING может иметь любую длину, включая нулевую.

Формат:

Var1Name BIT STRING

Var2Name BIT STRING SIZE ((size))

Var3Name BIT STRING SIZE ((size1..size2))

С помощью необязательного служебного слова SIZE задается ограничение длины строки.

Пример определения переменной:

odb-GeneralData BIT STRING {

   allOG-CallsBarred (0),

   internationalOGCallsBarred (1),

   internationalOGCallsNotToHPLMN-CountryBarred (2),

   interzonalOGCallsBarred (6),

   interzonalOGCallsNotToHPLMN-CountryBarred (7),

   interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred (8),

   premiumRateInformationOGCallsBarred (3),

   premiumRateEntertainementOGCallsBarred (4),

   ss-AccessBarred (5),

   allECT-Barred (9),

   chargeableECT-Barred (10),

   internationalECT-Barred (11),

   interzonalECT-Barred (12),

   doublyChargeableECT-Barred (13),

   multipleECT-Barred (14)} (SIZE (15..32))

Здесь с помощью необязательного служебного слова SIZE задается ограничение длины строки.

Пример присвоения

odb-GeneralData ::= {allOG-CallsBarred, ss-AccessBarred}

odb-GeneralData ::= '100001'B

odb-GeneralData ::= '21'H

OCTET STRING

Тип OCTET STRING обозначает произвольную последовательность октетов. OCTET STRING может иметь любую длину, включая нулевую.

Формат:

Var1Name OCTET STRING

Var2Name OCTET STRING (SIZE (size))

Var3Name OCTET STRING (SIZE (size1..size2))

С помощью необязательного служебного слова SIZE задается ограничение длины строки.

Пример определения переменной

imsi OCTET STRING (SIZE (3..8))

Пример присвоения

imsi ::= '52009300105100f7'H

NULL

NULL - вырожденный тип. Используется для обозначения отсутствия какого-либо значения. Этот тип имеет единственное вырожденное значение NULL.

Формат:

VarName NULL

Пример определения переменной

ho-NumberNotRequired NULL

Пример присвоения

ho-NumberNotRequired ::= NULL

OBJECT IDENTIFIER