1-- module(Mvrasn-18-4).
2-- vsn('%CCaseRev: %').
3-- date('%CCaseDate: %').
4-- author('eedkbu').
5-- =============================================================================
6
7-- =============================================================================
8--
9-- Title       : "Common data types".
10--
11-- ASN.1 module: "MAP-CommonDataTypes".
12--
13-- =============================================================================
14
15-- ==============================================================
16-- #1.    REVISION LOG
17-- ==============================================================
18-- Rev   Date    Name     What
19-- .... ....... .......  ........................................
20-- PA1  981014   eedkbu   First draft, based on GSM 09.02 v. 6.1.0.
21-- ..............................................................
22
23Mvrasn-18-4
24
25DEFINITIONS
26
27IMPLICIT TAGS
28
29::=
30
31BEGIN
32
33EXPORTS
34
35    -- general data types and values
36    AddressString,
37    ISDN-AddressString,
38    maxISDN-AddressLength,
39    ISDN-SubaddressString,
40--    ExternalSignalInfo,
41    LMSI,
42
43    -- data types for numbering and identification
44    IMSI,
45    NetworkResource,
46    NAEA-PreferredCI,
47
48    -- data types for subscriber management
49    Ext-BasicServiceCode,
50    EMLPP-Info
51;
52
53IMPORTS
54
55    ExtensionContainer
56FROM Mvrasn-21-4
57
58    Ext-BearerServiceCode
59FROM Mvrasn-20-4
60
61    Ext-TeleserviceCode
62FROM Mvrasn-19-4
63
64;
65
66-- general data types
67
68TBCD-STRING ::= OCTET STRING
69    -- This type (Telephony Binary Coded Decimal String) is used to
70    -- represent several digits from 0 through 9, *, #, a, b, c, two
71    -- digits per octet, each digit encoded 0000 to 1001 (0 to 9),
72    -- 1010 (*), 1011 (#), 1100 (a), 1101 (b) or 1110 (c); 1111 used
73    -- as filler when there is an odd number of digits.
74
75    -- bits 8765 of octet n encoding digit 2n
76    -- bits 4321 of octet n encoding digit 2(n-1) +1
77
78AddressString ::= OCTET STRING (SIZE (1..maxAddressLength))
79    -- This type is used to represent a number for addressing
80    -- purposes. It is composed of
81    --  a)  one octet for nature of address, and numbering plan
82    --      indicator.
83    --  b)  digits of an address encoded as TBCD-String.
84
85    -- a)   The first octet includes a one bit extension indicator, a
86    --      3 bits nature of address indicator and a 4 bits numbering
87    --      plan indicator, encoded as follows:
88
89    -- bit 8: 1  (no extension)
90
91    -- bits 765: nature of address indicator
92    --  000  unknown
93    --  001  international number
94    --  010  national significant number
95    --  011  network specific number
96    --  100  subscriber number
97    --  101  reserved
98    --  110  abbreviated number
99    --  111  reserved for extension
100
101    -- bits 4321: numbering plan indicator
102    --  0000  unknown
103    --  0001  ISDN/Telephony Numbering Plan (Rec CCITT E.164)
104    --  0010  spare
105    --  0011  data numbering plan (CCITT Rec X.121)
106    --  0100  telex numbering plan (CCITT Rec F.69)
107    --  0101  spare
108    --  0110  land mobile numbering plan (CCITT Rec E.212)
109    --  0111  spare
110    --  1000  national numbering plan
111    --  1001  private numbering plan
112    --  1111  reserved for extension
113
114    --  all other values are reserved.
115
116    -- b)   The following octets representing digits of an address
117    --      encoded as a TBCD-STRING.
118
119maxAddressLength  INTEGER ::= 20
120
121ISDN-AddressString ::=
122            AddressString (SIZE (1..maxISDN-AddressLength))
123    -- This type is used to represent ISDN numbers.
124
125maxISDN-AddressLength  INTEGER ::= 9
126
127ISDN-SubaddressString ::=
128            OCTET STRING (SIZE (1..maxISDN-SubaddressLength))
129    -- This type is used to represent ISDN subaddresses.
130    -- It is composed of
131    --  a)  one octet for type of subaddress and odd/even indicator.
132    --  b)  20 octets for subaddress information.
133
134    --  a)  The first octet includes a one bit extension indicator, a
135    --      3 bits type of subaddress and a one bit odd/even indicator,
136    --      encoded as follows:
137
138    --  bit 8: 1  (no extension)
139
140    --  bits 765: type of subaddress
141    --      000  NSAP (X.213/ISO 8348 AD2)
142    --      010  User Specified
143    --      All other values are reserved
144
145    --  bit 4: odd/even indicator
146    --      0  even number of address signals
147    --      1  odd number of address signals
148    --      The odd/even indicator is used when the type of subaddress
149    --      is "user specified" and the coding is BCD.
150
151    --  bits 321: 000 (unused)
152
153    --  b) Subaddress information.
154    --  The NSAP X.213/ISO8348AD2 address shall be formatted as specified
155    --  by octet 4 which contains the Authority and Format Identifier
156    --  (AFI). The encoding is made according to the "preferred binary
157    --  encoding" as defined in X.213/ISO834AD2. For the definition
158    --  of this type of subaddress, see CCITT Rec I.334.
159
160    --  For User-specific subaddress, this field is encoded according
161    --  to the user specification, subject to a maximum length of 20
162    --  octets. When interworking with X.25 networks BCD coding should
163    --  be applied.
164
165maxISDN-SubaddressLength  INTEGER ::= 21
166
167-- data types for numbering and identification
168
169IMSI ::= TBCD-STRING (SIZE (3..8))
170    -- digits of MCC, MNC, MSIN are concatenated in this order.
171
172LMSI ::= OCTET STRING (SIZE (4))
173
174NetworkResource ::= ENUMERATED {
175    plmn  (0),
176    hlr  (1),
177    vlr  (2),
178    pvlr  (3),
179    controllingMSC  (4),
180    vmsc  (5),
181    eir  (6),
182    rss  (7)}
183
184NAEA-PreferredCI ::= SEQUENCE {
185    naea-PreferredCIC   [0]  NAEA-CIC,
186    extensionContainer  [1]  ExtensionContainer OPTIONAL,
187    ...}
188
189NAEA-CIC ::= OCTET STRING (SIZE (3))
190    -- The internal structure is defined by the Carrier Identification
191    -- parameter in ANSI T1.113.3. Carrier codes between "000" and "999" may
192    -- be encoded as 3 digits using "000" to "999" or as 4 digits using
193    -- "0000" to "0999". Carrier codes between "1000" and "9999" are encoded
194    -- using 4 digits.
195
196
197-- data types for subscriber management
198
199Ext-BasicServiceCode ::= CHOICE {
200    ext-BearerService   [2]  Ext-BearerServiceCode,
201    ext-Teleservice     [3]  Ext-TeleserviceCode}
202
203EMLPP-Info ::= SEQUENCE {
204    maximumentitledPriority  EMLPP-Priority,
205    defaultPriority          EMLPP-Priority,
206    extensionContainer       ExtensionContainer       OPTIONAL,
207    ...}
208
209EMLPP-Priority ::= INTEGER (0..15)
210    -- The mapping from the values A,B,0,1,2,3,4 to the integer-value is
211    -- specified as follows where A is the highest and 4 is the lowest
212    -- priority level
213    -- the integer values 7-15 are spare and shall be mapped to value 4
214
215END
216