summaryrefslogtreecommitdiffstats
path: root/epan/dissectors/asn1/gsm_map/GSMMAP.asn
blob: d4e1753fdcd11a5df3294bb9ead1c64b9399f3a1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
--          Expanded ASN1 Module 'MAP-Protocol'          
--SIEMENS ASN.1 Compiler       R5.70  (Production_5.70)    
--            Date: 2003-09-04 Time: 14:14:00            
-- Updated to version 3GPP TS 29.002 V7.5.0 (2006-09) Release 7
-- Partially from ETS 300 599: December 2000 (GSM 09.02 version 4.19.1)

DummyMAP{ 0 identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-Protocol (4) version5 (5) }

DEFINITIONS

IMPLICIT TAGS

::=

BEGIN


-- Must import data types for the "old" asn1 defs collected here.
IMPORTS
	AddressString,
	BasicServiceCode,
	ExternalSignalInfo,
	HLR-List,
	GlobalCellId,
	ISDN-AddressString,
	IMSI,
	IMSI-WithLMSI,
	LMSI,
	NetworkResource,
	ProtocolId,
	SignalInfo,
	TeleserviceCode,
        SubscriberIdentity,
        SubscriberId
FROM MAP-CommonDataTypes {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-CommonDataTypes (18) version11 (11)}

	ExtensionContainer
FROM MAP-ExtensionDataTypes {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version11 (11)}

   CUG-CheckInfo,
   NumberOfForwarding,
   RoutingInfo
FROM MAP-CH-DataTypes {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-CH-DataTypes (13) version11 (11)}

   CUG-Interlock,
    SubscriberData,
   -- WS modification
   TripletList,
   QuintupletList,
   -- End WS modification
    AuthenticationSetList
FROM MAP-MS-DataTypes {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-MS-DataTypes (11) version15 (15)}

   CorrelationID,
   SM-DeliveryNotIntended,
   SM-RP-MTI,
   SM-RP-SMEA
FROM MAP-SM-DataTypes {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-SM-DataTypes (16) version15 (15)}

;

-- ROS def's
-- Module Remote-Operations-Apdus (H.450.1:02/1998)
--Remote-Operations-Apdus {itu-t recommendation h 450 1 version1(0)
--  remote-operations-apdus(11)} DEFINITIONS AUTOMATIC TAGS ::=
--BEGIN

Component ::=	CHOICE {
				invoke				[1] Invoke,
				returnResultLast	[2] ReturnResult,
				returnError			[3] ReturnError,
				reject				[4] Reject,
-- TCAP adds returnResultNotLast to allow for the segmentation of a result.
				returnResultNotLast	[7] ReturnResult
}

Invoke ::=		SEQUENCE {
				invokeID			InvokeIdType,
				linkedID			[0] InvokeIdType OPTIONAL,
				opCode				MAP-OPERATION,
				invokeparameter	 	InvokeParameter OPTIONAL
}
InvokeParameter ::= ANY

 
-- ANY is filled by the single ASN.1 data type following the keyword PARAMETER or the keyword ARGUMENT
-- in the type definition of a particular operation.

ReturnResult ::=	SEQUENCE {
				invokeID				InvokeIdType,
				resultretres			SEQUENCE {
				opCode					MAP-OPERATION,
				returnparameter			ReturnResultParameter OPTIONAL
				} OPTIONAL
			}

ReturnResultParameter ::= ANY

-- ANY is filled by the single ASN.1 data type following the keyword RESULT in the type definition
-- of a particular operation.

ReturnError ::=	SEQUENCE {
				invokeID				InvokeIdType,
				errorCode				MAP-ERROR,
				parameter				ReturnErrorParameter  OPTIONAL }

ReturnErrorParameter ::= ANY
 
-- ANY is filled by the single ASN.1 data type following the keyword PARAMETER in the type definition
-- of a particular error.

Reject ::=		SEQUENCE {
				invokeIDRej CHOICE {
					derivable			InvokeIdType,
					not-derivable		NULL },
				problem CHOICE {
					generalProblem		[0] GeneralProblem,
					invokeProblem		[1] InvokeProblem,
					returnResultProblem	[2] ReturnResultProblem,
					returnErrorProblem	[3] ReturnErrorProblem } }

InvokeIdType ::=	INTEGER (-128..127)


MAP-OPERATION	::=	CHOICE {
							localValue OperationLocalvalue,
							globalValue OBJECT IDENTIFIER } 

GSMMAPOperationLocalvalue ::= INTEGER{
	updateLocation (2),
	cancelLocation (3),
	provideRoamingNumber (4),
	noteSubscriberDataModified (5),
	resumeCallHandling (6),
	insertSubscriberData (7),
	deleteSubscriberData (8),
	sendParameters (9),
	registerSS (10),
	eraseSS (11),
	activateSS (12),
	deactivateSS (13),
	interrogateSS (14),
	authenticationFailureReport (15),
	notifySS (16),
	registerPassword (17),
	getPassword (18),
	processUnstructuredSS-Data (19),
    releaseResources (20),
    mt-ForwardSM-VGCS (21),
	sendRoutingInfo (22),
	updateGprsLocation (23),
	sendRoutingInfoForGprs (24),
	failureReport (25),
	noteMsPresentForGprs (26),
	unAllocated (27),
	performHandover (28),
	sendEndSignal (29),
	performSubsequentHandover (30),
	provideSIWFSNumber (31),
	sIWFSSignallingModify (32),
	processAccessSignalling (33),
	forwardAccessSignalling (34),
	noteInternalHandover (35),
	cancelVcsgLocation (36),
	reset (37),
	forwardCheckSS (38),
	prepareGroupCall (39),
	sendGroupCallEndSignal (40),
	processGroupCallSignalling (41),
	forwardGroupCallSignalling (42),
	checkIMEI (43),
	mt-forwardSM (44),
	sendRoutingInfoForSM (45),
	mo-forwardSM (46),
	reportSM-DeliveryStatus (47),
	noteSubscriberPresent (48),
	alertServiceCentreWithoutResult (49),
	activateTraceMode (50),
	deactivateTraceMode (51),
	traceSubscriberActivity (52),
	updateVcsgLocation (53),
	beginSubscriberActivity (54),
	sendIdentification (55),
	sendAuthenticationInfo (56),
	restoreData (57),
	sendIMSI (58),
	processUnstructuredSS-Request (59),
	unstructuredSS-Request (60),
	unstructuredSS-Notify (61),
	anyTimeSubscriptionInterrogation (62),
	informServiceCentre (63),
	alertServiceCentre (64),
	anyTimeModification (65),
	readyForSM (66),
	purgeMS (67),
	prepareHandover (68),
	prepareSubsequentHandover (69),
	provideSubscriberInfo (70),
	anyTimeInterrogation (71),
	ss-InvocationNotification (72),
	setReportingState (73),
	statusReport (74),
	remoteUserFree (75),
	registerCC-Entry (76),
	eraseCC-Entry (77),
	secureTransportClass1 (78),
	secureTransportClass2 (79),
	secureTransportClass3 (80),
	secureTransportClass4 (81),
	unAllocated (82),
    provideSubscriberLocation (83),
    sendGroupCallInfo (84),
	sendRoutingInfoForLCS (85),
	subscriberLocationReport (86),
	ist-Alert (87),
	ist-Command (88),
	noteMM-Event (89),
	unAllocated (90),
	unAllocated (91),
	unAllocated (92),
	unAllocated (93),
	unAllocated (94),
	unAllocated (95),
	unAllocated (96),
	unAllocated (97),
	unAllocated (98),
	unAllocated (99),
	unAllocated (100),
	unAllocated (101),
	unAllocated (102),
	unAllocated (103),
	unAllocated (104),
	unAllocated (105),
	unAllocated (106),
	unAllocated (107),
	unAllocated (108),
	lcs-PeriodicLocationCancellation (109),
	lcs-LocationUpdate (110),
	lcs-PeriodicLocationRequest (111),
	lcs-AreaEventCancellation (112),
	lcs-AreaEventReport (113),
	lcs-AreaEventRequest (114),
	lcs-MOLR (115),
	lcs-LocationNotification (116),
	callDeflection (117),
	userUserService (118),
	accessRegisterCCEntry (119),
	forwardCUG-Info (120),
	splitMPTY (121),
	retrieveMPTY (122),
	holdMPTY(123),
	buildMPTY (124),
	forwardChargeAdvice(125),
	explicitCT (126)
        } 

OperationLocalvalue ::= GSMMAPOperationLocalvalue

MAP-ERROR	::=	CHOICE {
			localValue LocalErrorcode,
			globalValue OBJECT IDENTIFIER } 

GSMMAPLocalErrorcode ::= INTEGER{
	unknownSubscriber (1),
	unknownBaseStation (2),
	unknownMSC (3),
	secureTransportError (4),
	unidentifiedSubscriber (5),
	absentSubscriberSM (6),
	unknownEquipment (7),
	roamingNotAllowed (8),
	illegalSubscriber (9),
	bearerServiceNotProvisioned (10),
	teleserviceNotProvisioned (11),
	illegalEquipment (12),
	callBarred (13),
	forwardingViolation (14),
	cug-Reject (15),
	illegalSS-Operation (16),
	ss-ErrorStatus (17),
	ss-NotAvailable (18),
	ss-SubscriptionViolation (19),
	ss-Incompatibility (20),
	facilityNotSupported (21),
	ongoingGroupCall (22),
	invalidTargetBaseStation (23),
	noRadioResourceAvailable (24),
	noHandoverNumberAvailable (25),
	subsequentHandoverFailure (26),
	absentSubscriber (27),
	incompatibleTerminal (28),
	shortTermDenial (29),
	longTermDenial (30),
	subscriberBusyForMT-SMS (31),
	sm-DeliveryFailure (32),
	messageWaitingListFull (33),
	systemFailure (34),
	dataMissing (35),
	unexpectedDataValue (36),
	pw-RegistrationFailure (37),
	negativePW-Check (38),
	noRoamingNumberAvailable (39),
	tracingBufferFull (40),
	targetCellOutsideGroupCallArea (42),
	numberOfPW-AttemptsViolation (43),
	numberChanged (44),
	busySubscriber (45),
	noSubscriberReply (46),
	forwardingFailed (47),
	or-NotAllowed (48),
	ati-NotAllowed (49),
	noGroupCallNumberAvailable (50),
	resourceLimitation (51),
	unauthorizedRequestingNetwork (52),
	unauthorizedLCSClient (53),
	positionMethodFailure (54),
	unknownOrUnreachableLCSClient (58),
	mm-EventNotSupported (59),
	atsi-NotAllowed (60),
	atm-NotAllowed (61),
	informationNotAvailable (62),
	unknownAlphabet (71),
	ussd-Busy (72)
}

LocalErrorcode ::= GSMMAPLocalErrorcode

-- PROBLEMS

GeneralProblem		::=	INTEGER {		unrecognizedComponent (0),
								mistypedComponent (1),
								badlyStructuredComponent (2) }

InvokeProblem		::=	INTEGER {		duplicateInvokeID (0),
								unrecognizedOperation (1),
								mistypedParameter (2),
								resourceLimitation (3),
								initiatingRelease (4),
								unrecognizedLinkedID (5),
								linkedResponseUnexpected (6),
								unexpectedLinkedOperation (7) }

ReturnResultProblem	::=	INTEGER {		unrecognizedInvokeID (0),
								returnResultUnexpected (1),
								mistypedParameter (2) }

ReturnErrorProblem	::=	INTEGER {		unrecognizedInvokeID (0),
								returnErrorUnexpected (1),
								unrecognizedError (2),
								unexpectedError (3),
								mistypedParameter (4) }



--END

Bss-APDU ::=  SEQUENCE {
            protocolId			ProtocolId,
            signalInfo           SignalInfo, 
            extensionContainer   ExtensionContainer OPTIONAL, 
            ... } 

--provideSIWFSNumber OPERATION
--   ARGUMENT

ProvideSIWFSNumberArg ::= SEQUENCE {
	gsm-BearerCapability	[0] ExternalSignalInfo,
	isdn-BearerCapability	[1] ExternalSignalInfo,
	call-Direction			[2] CallDirection,
	b-Subscriber-Address	[3] ISDN-AddressString,
	chosenChannel			[4] ExternalSignalInfo,
	lowerLayerCompatibility [5] ExternalSignalInfo OPTIONAL,
	highLayerCompatibility	[6] ExternalSignalInfo OPTIONAL,
	extensionContainer		[7] ExtensionContainer OPTIONAL,
...}
--   RESULT
ProvideSIWFSNumberRes ::= SEQUENCE {
	sIWFSNumber				[0] ISDN-AddressString,
	extensionContainer		[1] ExtensionContainer OPTIONAL,
...}
--   ERRORS {
-- resourceLimitation   localValue : 51, 
-- dataMissing   localValue : 35, 
-- unexpectedDataValue   localValue : 36, 
-- systemFailure   localValue : 34}
-- ::= localValue : 31

CallDirection ::= OCTET STRING (SIZE (1))
-- OCTET 1
-- bit 1 (direction of call)
-- 0 Mobile Originated Call (MOC)
-- 1 Mobile Terminated Call (MTC)

PurgeMSArgV2 ::= SEQUENCE {
  imsi                 IMSI, 
  vlr-Number           ISDN-AddressString OPTIONAL, 
  ... }

PrepareHO-ArgOld ::= SEQUENCE {
         targetCellId           GlobalCellId OPTIONAL, 
         ho-NumberNotRequired   NULL OPTIONAL, 
         bss-APDU               Bss-APDU OPTIONAL, 
         ... }

PrepareHO-ResOld ::= SEQUENCE {
         handoverNumber   ISDN-AddressString OPTIONAL, 
         bss-APDU         Bss-APDU OPTIONAL, 
         ... }

SendAuthenticationInfoResOld ::= SEQUENCE  ( SIZE( 1 .. 5 ) ) OF
         SEQUENCE {
            rand       RAND, 
            sres       SRES, 
            kc         Kc, 
            ... }

RAND ::= OCTET STRING (SIZE (16))

SRES ::= OCTET STRING (SIZE (4))

Kc ::= OCTET STRING (SIZE (8))

SendIdentificationResV2 ::= SEQUENCE {
  imsi				IMSI OPTIONAL,
  tripletList    	        TripletListold OPTIONAL,
  ...}

TripletListold ::= SEQUENCE SIZE (1..5) OF
				AuthenticationTriplet-v2

AuthenticationTriplet-v2 ::= SEQUENCE {
	rand			RAND,
	sres			SRES,
	kc			Kc,
	...}

--sIWFSSignallingModify OPERATION
--   ARGUMENT
SIWFSSignallingModifyArg ::= SEQUENCE {
	channelType			[0] ExternalSignalInfo OPTIONAL,
	chosenChannel		[1] ExternalSignalInfo OPTIONAL,
	extensionContainer	[2] ExtensionContainer OPTIONAL,
...}
--   RESULT
SIWFSSignallingModifyRes ::= SEQUENCE {
	channelType			[0] ExternalSignalInfo OPTIONAL,
    extensionContainer  [1] ExtensionContainer OPTIONAL,
         ... }
--   ERRORS {
-- resourceLimitation   localValue : 51, 
-- dataMissing   localValue : 35, 
-- unexpectedDataValue   localValue : 36, 
-- systemFailure   localValue : 34}
-- ::= localValue : 32

-- not used
-- Ccbs-Monitoring ::= ENUMERATED {
--  stopMonitoring     ( 0 ), 
--  startMonitoring    ( 1 ), 
--  ...  }

--setReportingState OPERATION
--   ARGUMENT



NewPassword ::= NumericString (SIZE( 4 ) )
--   ERRORS {
-- systemFailure   localValue : 34, 
-- dataMissing   localValue : 35, 
-- unexpectedDataValue   localValue : 36, 
-- callBarred   localValue : 13, 
-- ss-SubscriptionViolation   localValue : 19, 
-- pw-RegistrationFailure   localValue : 37, 
-- negativePW-Check   localValue : 38, 
-- numberOfPW-AttemptsViolation   localValue : 43}
--LINKED {
     -- getPassword   localValue : 18}
-- ::= localValue : 17

--getPassword OPERATION
--   ARGUMENT
-- GetPasswordArg is GuidanceInfo
GetPasswordArg ::= ENUMERATED {
         enterPW             ( 0 ), 
         enterNewPW          ( 1 ), 
         enterNewPW-Again    ( 2 ) }
--   RESULT
CurrentPassword ::= NumericString (SIZE( 4 ) )
-- ::= localValue : 18

--registerCC-Entry OPERATION
--   ARGUMENT

SecureTransportArg ::= SEQUENCE {
	securityHeader		SecurityHeader,
	protectedPayload	ProtectedPayload OPTIONAL
}

SecureTransportErrorParam ::= SEQUENCE {
	securityHeader		SecurityHeader,
	protectedPayload	ProtectedPayload OPTIONAL
}

-- The protectedPayload carries the result of applying the security function
-- defined in 3GPP TS 33.200 to the encoding of the argument of the securely
-- transported operation

SecureTransportRes ::= SEQUENCE {
	securityHeader		SecurityHeader,
	protectedPayload	ProtectedPayload OPTIONAL
}
-- The protectedPayload carries the result of applying the security function
-- defined in 3GPP TS 33.200 to the encoding of the result of the securely
-- transported operation

SecurityHeader ::= SEQUENCE {
	securityParametersIndex			SecurityParametersIndex,
	originalComponentIdentifier		OriginalComponentIdentifier,
	initialisationVector			InitialisationVector OPTIONAL,
...}

ProtectedPayload ::= OCTET STRING(SIZE(1.. 3438))
-- In protection mode 0 (noProtection) the ProtectedPayload carries the transfer
-- syntax value of the component parameter identified by the
-- originalComponentIdentifier.
-- In protection mode 1 (integrityAuthenticity) the protectedPayload carries
-- the transfer syntax value of the component
-- parameter identified by the originalComponentIdentifier, followed by
-- the 32 bit integrity check value.
-- The integrity check value is the result of applying the hash algorithm
-- to the concatenation of the transfer syntax value of the SecurityHeader,
-- and the transfer syntax value of the component parameter.
-- In protection mode 2 (confidentialityIntegrityAuthenticity) the protected
-- payload carries the encrypted transfer syntax
-- value of the component parameter identified by the
-- originalComponentIdentifier, followed by the 32 bit integrity check value.
-- The integrity check value is the result of applying the hash algorithm
-- to the concatenation of the transfer syntax value of the SecurityHeader,
-- and the encrypted transfer syntax value of the component parameter.
-- See 33.200.
-- The length of the protectedPayload is adjusted according to the capabilities of
-- the lower protocol layers

SecurityParametersIndex ::= OCTET STRING (SIZE(4))

InitialisationVector ::= OCTET STRING (SIZE(14))
-- the internal structure is defined as follows:
-- Octets 1 to 4 : TVP. The TVP is a 32 bit time stamp. Its value is binary coded
-- and indicates the number of intervals of 100 milliseconds
-- elapsed since 1st January 2002, 0:00:00 UTC
-- Octets 5 to 10: NE-Id. The NE-Id uniquely identifies the sending network entity
-- within the PLMN. It is the entity's E.164 number without CC and
-- NDC. It is TBCD-coded, padded with zeros.
-- Octets 11 to 14: PROP. This 32 bit value is used to make the
-- InitialisationVector unique within the same TVP period.
-- The content is not standardized.

OriginalComponentIdentifier ::= CHOICE {
	operationCode	[0] OperationCode,
	errorCode		[1] ErrorCode,
	userInfo		[2] NULL}

OperationCode ::= CHOICE {
	localValue INTEGER,
	globalValue OBJECT IDENTIFIER}

ErrorCode ::= CHOICE {
	localValue INTEGER,
	globalValue OBJECT IDENTIFIER}


--PLMN_Data
-- Alcatel Specific extension container
PlmnContainer ::= [PRIVATE 2] SEQUENCE {
	msisdn			[0] ISDN-AddressString OPTIONAL, 
	category		[1] Category OPTIONAL,
	basicService		BasicServiceCode OPTIONAL,
	operatorSS-Code		[4] SEQUENCE ( SIZE( 1 .. 16 ) ) OF
				OCTET STRING ( SIZE ( 1 ) ) OPTIONAL,
	 ... 
}
Category ::= OCTET STRING (SIZE (1))
	-- The internal structure is defined in ITU-T Rec Q.763.

-- Special stuff from older spec's
--ForwardSM OPERATION
--   ARGUMENT
ForwardSM-Arg ::= SEQUENCE {
         sm-RP-DA             SM-RP-DAold, 
         sm-RP-OA             SM-RP-OAold, 
         sm-RP-UI             SignalInfo, 
         moreMessagesToSend   NULL OPTIONAL, 
         ... }
-- In fact, the 3GPP uses SignalInfo instead, but it is used for SMS content decoding
--Sm-RP-UI ::= OCTET STRING ( SIZE( 1 .. 200 ) )
-- Must be locally defined as they are not exported from SM-datatypes
SM-RP-DAold ::= CHOICE {
	imsi			[0] IMSI,
	lmsi			[1] LMSI,
	serviceCentreAddressDA	[4] AddressString,
	noSM-RP-DA	[5] NULL}

SM-RP-OAold ::= CHOICE {
	msisdn		[2] ISDN-AddressString,
	serviceCentreAddressOA	[4] AddressString,
	noSM-RP-OA	[5] NULL}

-- Private extensions
accessType-id	OBJECT IDENTIFIER ::=
		{1 3 12 2 1107 3 66 1 1}
	
	--iso (1)
	--identified-organization (3)
	--ecma (12)
	--member-company (2)
	--siemens-units (1107)
	--oen (3)
	--mn (66)
	--proprietary-extensions (1)
	--accessType (1)

accessTypeNotAllowed-id	OBJECT IDENTIFIER ::=
		{1 3 12 2 1107 3 66 1 2}
	
	--iso (1)
	--identified-organization (3)
	--ecma (12)
	--member-company (2)
	--siemens-units (1107)
	--oen (3)
	--mn (66)
	--proprietary-extensions (1)
	--accessTypeNotAllowed (2)

SendRoutingInfoArgV2 ::= SEQUENCE { 
	msisdn				[0] ISDN-AddressString, 
	cug-CheckInfo		[1] CUG-CheckInfo OPTIONAL, 
-- cug-CheckInfo must be absent in version 1 
	numberOfForwarding	[2] NumberOfForwarding OPTIONAL, 
	networkSignalInfo	[10] ExternalSignalInfo OPTIONAL, 
	...
	} 

SendRoutingInfoResV2 ::= SEQUENCE { 
	imsi				IMSI, 
	routingInfo			RoutingInfo, 
	cug-CheckInfo		CUG-CheckInfo OPTIONAL, 
-- cug-CheckInfo must be absent in version 1 
	...
	} 

-- Removed from SS-DataTypes.asn in Rel 9.0.0
BeginSubscriberActivityArg ::= SEQUENCE {
    imsi            IMSI,
    originatingEntityNumber ISDN-AddressString,
    msisdn                  [PRIVATE 28] AddressString OPTIONAL,
    ... }

RoutingInfoForSM-ArgV1 ::= SEQUENCE {
    msisdn      [0] ISDN-AddressString,
    sm-RP-PRI       [1] BOOLEAN,
    serviceCentreAddress    [2] AddressString,
    -- WS specific change to be backwards compatible with phase 1 (See Bug 9704)
    cug-Interlock       [3]  CUG-Interlock  OPTIONAL,
    teleserviceCode         [5] TeleserviceCode OPTIONAL,
    -- END Ws specific change
    --extensionContainer  [6] ExtensionContainer  OPTIONAL,
    ... ,
    --gprsSupportIndicator    [7] NULL        OPTIONAL,
    -- gprsSupportIndicator is set only if the SMS-GMSC supports
    -- receiving of two numbers from the HLR
    --sm-RP-MTI       [8] SM-RP-MTI   OPTIONAL,
    --sm-RP-SMEA  [9] SM-RP-SMEA  OPTIONAL,
    --sm-deliveryNotIntended  [10] SM-DeliveryNotIntended OPTIONAL,
    --ip-sm-gwGuidanceIndicator   [11] NULL       OPTIONAL,
    imsi            [12] IMSI       OPTIONAL  --,
    --t4-Trigger-Indicator    [14] NULL       OPTIONAL,
    --singleAttemptDelivery   [13]    NULL        OPTIONAL,
    --correlationID   [15] CorrelationID  OPTIONAL
    }

-- From ETS 300 599: December 2000 (GSM 09.02 version 4.19.1), clause 14.7.6
RoutingInfoForSM-ResV2::= SEQUENCE {
	imsi			IMSI,
	locationInfoWithLMSI		[0] LocationInfoWithLMSIv2,
	mwd-Set		[2] BOOLEAN	OPTIONAL,
	-- mwd-Set must be absent in version greater 1
	...}

-- From ETS 300 599: December 2000 (GSM 09.02 version 4.19.1), clause 14.7.6
LocationInfoWithLMSIv2 ::= SEQUENCE {
		locationInfo	LocationInfo,
		lmsi		LMSI			OPTIONAL,
	...}

-- From ETS 300 599: December 2000 (GSM 09.02 version 4.19.1), clause 14.7.6
LocationInfo ::= CHOICE {
	roamingNumber	[0] ISDN-AddressString,
	-- roamingNumber must not be used in version greater 1
	msc-Number	[1] ISDN-AddressString}

Ki ::= OCTET STRING (SIZE (16))

SendParametersArg	::= SEQUENCE {
	subscriberId SubscriberId,
	requestParameterList RequestParameterList}

RequestParameter	::= ENUMERATED {
	requestIMSI (0),
	requestAuthenticationSet (1),
	requestSubscriberData (2),
	requestKi (4)}

RequestParameterList	::= SEQUENCE SIZE (1..2) OF
					RequestParameter

SentParameter	::= CHOICE {
	imsi			[0] IMSI,
	authenticationSet	[1] AuthenticationSetListOld,
	subscriberData		[2] SubscriberData,
	ki			[4] Ki}

AuthenticationSetListOld ::= CHOICE {
	tripletList	[0] TripletList,
	quintupletList	[1] QuintupletList }

maxNumOfSentParameter	INTEGER ::= 6
	-- This NamedValue corresponds to the maximum number of
	-- authentication set which may be returned by a HLR plus 1

SentParameterList	::= SEQUENCE SIZE (1..maxNumOfSentParameter) OF
					SentParameter


sendParameters	OPERATION ::= {
	ARGUMENT
		SendParametersArg
	RESULT
		SentParameterList
		-- optional
		-- nothing is returned, if no requested parameter is
		-- available or exists
	ERRORS {
		UnexpectedDataValue,
		UnknownSubscriber,
		UnidentifiedSubscriber}
	CODE	local:9 }

ResetArgV1 ::= SEQUENCE {
	networkResource NetworkResource OPTIONAL,
	-- networkResource must be present in version 1
	-- networkResource must be absent in version greater 1
	hlr-Number ISDN-AddressString,
	hlr-List HLR-List OPTIONAL,
	...}

END