1-- module(Mvrasn-DataTypes-1).
2-- vsn('%CCaseRev: %').
3-- date('%CCaseDate: %').
4-- author('eedkbu').
5-- =============================================================================
6
7-- =============================================================================
8--
9-- Title       : "MAP Data Types".
10--
11-- ASN.1 module: "MAP-DataTypes".
12--
13-- =============================================================================
14
15-- =============================================================================
16--
17-- NOTE:
18--
19-- In GSM 09.02 v. 6.1.0 all ASN.1 modules have 'Object Identifier' included
20-- to indicate these modules uniquely. To have a same kind of definite naming
21-- convention, parts of the these 'Object Identifier' have been included in
22-- the file names that store the respective ASN.1 modules.
23--
24-- Therefore, the file name "Mvrasn-20-4.asn" indicates moduls '20' in
25-- version '4' (PHASE 3).
26--
27-- As there is no such 'Object Identifier' in GSM 09.02 v. 3.11.0,
28-- the names for the ASN.1 files of the ASN.1 modules from
29-- this standard version are selected by the author. They are chosen the way
30-- that they are indicating the relation to those modules
31-- from GSM 09.02 v. 3.11.0.
32--
33-- =============================================================================
34
35-- ==============================================================
36-- #1.    REVISION LOG
37-- ==============================================================
38-- Rev   Date    Name     What
39-- .... ....... .......  ........................................
40-- PA1  981014   eedkbu   First draft, based on GSM 09.02 v. 3.11.0.
41-- ..............................................................
42-- PA2  990114   etord    Included Reset operation
43-- ..............................................................
44
45Mvrasn-DataTypes-1
46
47DEFINITIONS
48
49::=
50
51BEGIN
52
53IMPORTS
54-- imports upper boundaries for data types
55
56    maxNumberOfTeleServices,
57    maxNumberOfBearerServices,
58    maxNumberOfSupplServices,
59    maxNumberOfCUG,
60    maxNumberOfForwardingFeatures,
61    maxNumberOfCallBarringFeatures,
62    maxNumberOfHlrId,
63    maxAddressLength,
64    maxNumberOfSentParameters
65FROM Mvrasn-Constants-1
66
67;
68
69
70-- =========================================================
71--
72-- NOTE:
73--
74-- The data type "SendParameterArg" and "ResetArg" are not given in the
75-- original GSM 09.02 v. 3.11.0 standard, but have been
76-- introduced here for two reasons:
77--
78--  1. In the OPERATION MACRO "SendParameters" is a PARAMETER (=ARGument) and
79--     a RESULT defined. The ASN.1 en/decoder is not able to handle
80--     the MACRO definition. Therefore, the new data type has been
81--     introduced
82--
83--  2. To align the documentation of the ASN.1 data types in
84--     GSM 09.02 v. 3.11.0 with those of GSM 09.02 v. 6.1.0.
85--
86-- =========================================================
87
88SendParametersArg ::= SEQUENCE {
89    subscriberId             SubscriberId,
90    requestParameters        RequestParameters
91    }
92
93ResetArg ::= SEQUENCE {
94    networkResource          NetworkResource,
95    originatingEntityNumber  IsdnAddressString,
96    hlrId                    HlrList                OPTIONAL
97    }
98
99
100-- common data types
101
102SentParameters   ::= SEQUENCE
103             SIZE(1..maxNumberOfSentParameters)
104             OF SentParameter
105
106
107TBCD-STRING  ::= OCTET STRING
108        -- digits 0 through 9, two digits per octet,
109        -- each digit encoded 0000 to 1001,
110        -- 1111 used as filler when there is an odd number of digit.
111
112
113AddressString    ::= OCTET STRING (SIZE (1..maxAddressLength))
114        -- see internal description in section 6.4.1
115
116IsdnAddressString    ::= AddressString (SIZE (1..10))
117
118IMSI     ::= TBCD-STRING (SIZE (2..8))
119        -- MCC, MNC, MSIN concatenated in this order
120
121TMSI     ::= OCTET STRING (SIZE (1..4))
122
123
124SubscriberId     ::= CHOICE {
125        imsi            [0]  IMPLICIT IMSI,
126        tmsi            [1]  IMPLICIT TMSI}
127
128
129-- data types for numbering and identification
130
131HlrId	 ::= IMSI
132		-- leading digits of IMSI
133
134HlrList	 ::= SEQUENCE
135    SIZE(1.. maxNumberOfHlrId)
136    OF HlrId
137
138
139-- data types for subscriber management
140
141--
142Category     ::= OCTET STRING (SIZE (1))
143        -- internal structure defined in CCITT Rec Q.763
144
145BearerServiceCode    ::= OCTET STRING (SIZE (1))
146        -- Internal structure according to table 6.4/1
147        -- BIT 8 Transparency indicator (if applicable)
148        --     0 transparent
149        --     1 non transparent
150
151        -- BIT 7654  Bearer service group
152        --    0001 3.1 kHz ex PLMN
153        --    0010 Circuit data asynchronous
154        --    0011 Circuit data synchronous
155        --    0100 PAD access c.d.a
156        --    0101 Packet data synchrounous
157        --    0110 Alternate speech/c.d.a
158        --    0111 Alternate speech c.d.s
159        --    1000 Speech followed by data c.d.a
160        --    1001 Speech followed by data c.d.s
161        --    1111 12.6 kb/s unrestricted digital
162
163        -- BIT 321  Rate (when applicable)
164        --    000 Any
165        --    001 300-300 b/s
166        --    010 1200-1200 b/s
167        --    011 1200-75 b/s
168        --    100 2400-2400 b/s
169        --    101 4800-4800 b/s
170        --    110 9600-9600 b/s
171
172
173        -- Bits 321 = 000 can be used to refer to all
174        -- the bearer services of the corresponding group.
175        -- Value "00000000" can be used to refer to all the defined
176        -- bearer services.
177        -- For the codes referring to a group or all bearer services
178        -- the Transparency Indicator is not applicable and has to be set to "0"
179
180
181BearerServiceList    ::= SEQUENCE
182             SIZE(1 .. maxNumberOfBearerServices)
183             OF BearerServiceCode
184
185
186TeleserviceCode  ::= OCTET STRING (SIZE (1))
187        -- Internal structure according to table 6.4/2
188        -- Bit 8-5 encode the teleservice group
189
190        -- Bit 4-1 = 0000 can be used to refer to all the
191        -- teleservices of the corresponding group.
192        -- Value "00000000" can be used to refer to all the defined
193        -- teleservices
194
195TeleserviceList  ::= SEQUENCE
196             SIZE(1 .. maxNumberOfTeleServices)
197             OF TeleserviceCode
198
199
200BasicServiceCode     ::= CHOICE {
201        bearerService   [2]  IMPLICIT BearerServiceCode,
202        teleservice     [3]  IMPLICIT TeleserviceCode}
203
204--
205SubscriberStatus     ::= ENUMERATED{
206        serviceGranted  (0),
207        operatorOGCallBarring   (1)}
208
209 -- Data types for supplementary services
210
211SS-Code  ::= OCTET STRING (SIZE(1))
212        -- Internal structure according to
213        -- table 6.4/3
214        -- Bit 8-5
215        -- 0001 Number Identification services
216        -- 0010 Forwarding services
217        -- 0011 Call offering services
218        -- 0100 Call completion services
219        -- 0101 Multi-party services
220        -- 0110 Community of interest services
221        -- 0111 Charging services
222        -- 1000 Additional information transfer services
223        -- 1001 Call restriction services
224        -- Bit 4-1 = 0000 can be use to refer to
225        -- a group of supplementary services
226        -- eg, "00100000" can be used to refer to all
227        -- forwarding services
228        -- "00101000" can be used to refer to all
229        -- conditional forwarding services
230        -- "00000000" can be used to refer to all
231        -- supplementary services
232
233SS-Status    ::= OCTET STRING (SIZE (1))
234        -- Bit 8-4 Unused
235        -- Bit 3   Provision indicator
236        --     0 : Not provisioned
237        --     1 : Provisioned
238        -- Bit 2   Registration indicator (if applicable)
239        --     0 : Not Registered
240        --     1 : Registered
241        -- Bit 1   Activation indicator (If applicable)
242        --     0 : Not Active
243        --     1 : Active
244
245SS-Information   ::= CHOICE{
246        forwardingInfo  [0]  IMPLICIT ForwardingInfo,
247        callBarringInfo [1]  IMPLICIT CallBarringInfo,
248        cug-Information [2]  IMPLICIT CUG-Information,
249        ss-Data         [3]  IMPLICIT SS-Data}
250
251SS-InfoList  ::= SEQUENCE
252             SIZE(1 .. maxNumberOfSupplServices)
253             OF SS-Information
254
255
256--
257SS-Data  ::= SEQUENCE{
258    ss-Code                  SS-Code,
259    ss-Status           [4]  IMPLICIT SS-Status OPTIONAL,
260    ss-SubscriptionOption    SS-SubscriptionOption OPTIONAL}
261
262SS-SubscriptionOption    ::= CHOICE{
263    perCallBasis        [5]  IMPLICIT BOOLEAN,
264    notificationToHeldRetrievedParty   [6]  IMPLICIT BOOLEAN,
265    userToUserServiceIndicator  [7]  IMPLICIT UserToUserServiceIndicator,
266    maximumConfereesNumber  [8]  IMPLICIT MaximumConfereesNumber,
267    huntGroupAccessSelectionOrder  [9] IMPLICIT HuntGroupAccessSelectionOrder}
268
269
270
271ForwardingOptions    ::= OCTET STRING (SIZE(1))
272        -- Bit 8-7  Notification to forwarding party
273        --          00  No notification
274        --          01  notification with calling number identity
275        --          10  notification without calling number identity
276        -- Bit 6-5  Notification to calling party
277        --          00 No notification
278        --          01 Notification with forwarded-to number
279        --          10 Notification without forwarded-to number
280
281
282UserToUserServiceIndicator   ::= OCTET STRING (SIZE(1))
283        -- Bit 8   : service 1
284        -- Bit 7   : service 2
285        -- Bit 6   : service 3
286        -- Bit 5-1 : Reserved
287        -- Bit 8 to 6 coded "1" if the service
288        -- is available to the subscriber
289
290
291MaximumConfereesNumber   ::= INTEGER (1..10)
292
293
294
295HuntGroupAccessSelectionOrder ::= ENUMERATED{
296        random  (0),
297        sequential  (1)}
298
299
300NoReplyConditionTime     ::= INTEGER (5..30)
301
302
303CUG-Facilities   ::=  OCTET STRING (SIZE (1))
304        -- Bit 8-3 000000 (Unused)
305        -- Bit 2-1
306        --   00 CUG only facilities
307        --   01 CUG with outgoing access
308        --   10 CUG with incoming access
309        --   11 CUG with both outgoing and incoming access
310
311CUG-Interlock    ::= OCTET STRING (SIZE (4))
312        -- Internal structure defined in Rec CCITT Q.763
313
314CUG-Index    ::=  OCTET STRING (SIZE (1))
315        -- Internal structure defined in Rec CCITT Q.763
316
317CUG-Options  ::=  OCTET STRING (SIZE (1))
318        -- BIT 8-4 00000 (Unused)
319        -- BIT 3 preferential CUG indicator
320        -- 0 no preferential
321        -- 1 preferential CUG
322        -- BIT 2 barring of incoming calls within the CUG
323        -- 0 no barring
324        -- 1 barring
325        -- BIT 1 barring of outgoing calls within the CUG
326        -- 0 no barring
327        -- 1 barring
328
329CUG-Feature  ::= SEQUENCE {
330    cug-interlock            CUG-Interlock,
331    cug-Index                CUG-Index,
332    cug-Options              CUG-Options,
333    ss-Status                SS-Status}
334
335
336CUG-FeatureList ::=     SEQUENCE SIZE (
337        1..maxNumberOfCUG) OF CUG-Feature
338
339
340-- =========================================================
341--
342-- EEDKBU:
343--
344--      The original CUG-Information data type has been:
345--
346--   ------------------
347--
348-- CUG-Information   ::= SEQUENCE{
349--  cug-Facilities           CUG-Facilities,
350--          CHOICE{
351--                 cug-Feature      [0]  IMPLICIT CUG-Feature,
352--                 cug-FeatureList  [1]  IMPLICIT CUG-FeatureList}}
353        -- the first alternative of the choice should be used
354        -- for the preferred CUG.
355--
356--   ------------------
357--
358-- This is incorrect ASN.1 notation! The CHOICE has also to be a named
359-- type. Therefore, the definition was changed and can be seen below:
360--
361-- =========================================================
362
363
364CUG-Information  ::= SEQUENCE{
365    cug-Facilities           CUG-Facilities,
366    cug-FeatureChoice       CHOICE{
367                   cug-Feature      [0]  IMPLICIT CUG-Feature,
368                   cug-FeatureList  [1]  IMPLICIT CUG-FeatureList}}
369        -- the first alternative of the choice should be used
370        -- for the preferred CUG.
371
372--
373ForwardingInfo   ::= SEQUENCE{
374    ss-Code                  SS-Code OPTIONAL,
375    forwardingFeatureList    ForwardingFeatureList}
376
377ForwardingFeature    ::=  SEQUENCE {
378    basicService             BasicServiceCode OPTIONAL,
379    ss-Status           [4]  IMPLICIT SS-Status,
380    forwardedToNumber   [5]  IMPLICIT IsdnAddressString OPTIONAL,
381    forwardingOptions   [6]  IMPLICIT ForwardingOptions OPTIONAL,
382    noReplyConditionTime  [7] IMPLICIT NoReplyConditionTime  OPTIONAL}
383
384ForwardingFeatureList    ::= SEQUENCE SIZE (1.. maxNumberOfForwardingFeatures)
385    OF ForwardingFeature
386
387CallBarringInfo  ::= SEQUENCE {
388    ss-Code                  SS-Code,
389    callBarringFeatureList   CallBarringFeatureList}
390
391CallBarringFeature   ::= SEQUENCE{
392    basicServiceCode         BasicServiceCode OPTIONAL,
393    ss-Status           [4]  IMPLICIT SS-Status }
394
395CallBarringFeatureList   ::= SEQUENCE SIZE (1.. maxNumberOfCallBarringFeatures)
396OF CallBarringFeature
397
398SubscriberData   ::= SEQUENCE{
399    msIsdn              [1]  IMPLICIT IsdnAddressString OPTIONAL,
400    category            [2]  IMPLICIT Category OPTIONAL,
401    subscriberStatus    [3]  IMPLICIT SubscriberStatus OPTIONAL,
402    bearerServiceList   [4]  IMPLICIT BearerServiceList OPTIONAL,
403    teleserviceList     [6]  IMPLICIT TeleserviceList OPTIONAL,
404    provisonedSupplServices [7] IMPLICIT SS-InfoList OPTIONAL}
405
406-- Data types for security procedures
407
408AuthenticationSet    ::= SEQUENCE {
409    rand                     Rand,
410    sres                     Sres,
411    kc                       Kc}
412
413
414Rand     ::= OCTET STRING (SIZE (16))
415
416Sres     ::= OCTET STRING (SIZE (4))
417
418Kc   ::= OCTET STRING (SIZE (8))
419
420Ki   ::= OCTET STRING (SIZE (16))
421
422
423-- Data types for fault recovery, call tracing
424
425NetworkResource	 ::= ENUMERATED {
426    pLMN                     (0),
427    hLR                      (1),
428    vLR                      (2),
429    previous-VLR             (3),
430    controlling-MSC          (4),
431    vMSC                     (5),
432    eIR                      (6),
433    radioSubSystem           (7)}
434
435
436-- other data types
437
438RequestParameter     ::= ENUMERATED{
439        request-IMSI        (0),
440        request-AuthenticationSet   (1),
441        request-SubscriberData      (2),
442        request-CUG-Information     (3),
443        request-Ki          (4)}
444
445RequestParameters    ::= SEQUENCE SIZE (1..2) OF RequestParameter
446
447SentParameter    ::= CHOICE{
448    imsi                [0]  IMPLICIT IMSI,
449    authenticationSet   [1]  IMPLICIT AuthenticationSet,
450    subscriberData      [2]  IMPLICIT SubscriberData,
451    cug-information     [3]  IMPLICIT CUG-Information,
452    ki                  [4] IMPLICIT Ki}
453
454END
455