add erlang MAP code (from OTP)
diff --git a/asn1/DialoguePDUs.asn b/asn1/DialoguePDUs.asn
new file mode 100644
index 0000000..541dc55
--- /dev/null
+++ b/asn1/DialoguePDUs.asn
@@ -0,0 +1,80 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+-- Module DialoguePDUs (Q.773:06/1997)
+DialoguePDUs {itu-t recommendation q 773 modules(2) dialoguePDUs(2) version1(1)} 
+DEFINITIONS ::=
+BEGIN
+
+EXPORTS dialogue-as-id, DialoguePDU;
+
+-- abstract syntax name for structured dialogue APDUs
+dialogue-as-id OBJECT IDENTIFIER ::=
+  {itu-t recommendation q 773 as(1) dialogue-as(1) version1(1)}
+
+DialoguePDU ::= CHOICE {
+  dialogueRequest   AARQ-apdu,
+  dialogueResponse  AARE-apdu,
+  dialogueAbort     ABRT-apdu
+}
+
+AARQ-apdu ::= [APPLICATION 0] IMPLICIT SEQUENCE {
+  protocol-version
+    [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
+  application-context-name  [1]  OBJECT IDENTIFIER,
+  user-information          [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+AARE-apdu ::= [APPLICATION 1] IMPLICIT SEQUENCE {
+  protocol-version
+    [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
+  application-context-name  [1]  OBJECT IDENTIFIER,
+  result                    [2]  Associate-result,
+  result-source-diagnostic  [3]  Associate-source-diagnostic,
+  user-information          [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+-- RLRQ PDU is currently not used.
+-- It is included for completeness only.
+RLRQ-apdu ::= [APPLICATION 2] IMPLICIT SEQUENCE {
+  reason            [0] IMPLICIT Release-request-reason OPTIONAL,
+  user-information  [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+-- RLRE PDU is currently not used.
+-- It is included for completeness only
+RLRE-apdu ::= [APPLICATION 3] IMPLICIT SEQUENCE {
+  reason            [0] IMPLICIT Release-response-reason OPTIONAL,
+  user-information  [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+ABRT-apdu ::= [APPLICATION 4] IMPLICIT SEQUENCE {
+  abort-source      [0] IMPLICIT ABRT-source,
+  user-information  [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+ABRT-source ::= INTEGER {dialogue-service-user(0), dialogue-service-provider(1)
+}
+
+Associate-result ::= INTEGER {accepted(0), reject-permanent(1)}
+
+Associate-source-diagnostic ::= CHOICE {
+  dialogue-service-user
+    [1]  INTEGER {null(0), no-reason-given(1),
+                  application-context-name-not-supported(2)},
+  dialogue-service-provider
+    [2]  INTEGER {null(0), no-reason-given(1), no-common-dialogue-portion(2)}
+}
+
+-- Release-request-reason is currently not used.
+-- It is included for completeness only.
+Release-request-reason ::= INTEGER {normal(0), urgent(1), user-defined(30)
+}
+
+-- Release-response-reason is currently not used. 
+-- It is included for completeness only.
+Release-response-reason ::= INTEGER {
+  normal(0), not-finished(1), user-defined(30)}
+
+END -- DialoguePDUs
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/asn1/MAP-ApplicationContexts.asn b/asn1/MAP-ApplicationContexts.asn
new file mode 100644
index 0000000..26367c8
--- /dev/null
+++ b/asn1/MAP-ApplicationContexts.asn
@@ -0,0 +1,186 @@
+MAP-ApplicationContexts {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-ApplicationContexts (2) version9 (9)}

+

+DEFINITIONS

+

+::=

+

+BEGIN

+

+

+-- EXPORTS everything

+

+

+IMPORTS

+	gsm-NetworkId,

+	ac-Id

+FROM MobileDomainDefinitions {

+   itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)

+   mobileDomainDefinitions (0) version1 (1)}

+;

+

+-- application-context-names

+

+map-ac  OBJECT IDENTIFIER ::= {gsm-NetworkId ac-Id}

+

+networkLocUpContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac networkLocUp(1) version3(3)}

+

+locationCancellationContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac locationCancel(2) version3(3)}

+

+roamingNumberEnquiryContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac roamingNbEnquiry(3) version3(3)}

+

+authenticationFailureReportContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac authenticationFailureReport(39) version3(3)}

+

+locationInfoRetrievalContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac locInfoRetrieval(5) version3(3)}

+

+resetContext-v2  OBJECT IDENTIFIER ::=

+	{map-ac reset(10) version2(2)}

+

+handoverControlContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac handoverControl(11) version3(3)}

+

+equipmentMngtContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac equipmentMngt(13) version3(3)}

+

+infoRetrievalContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac infoRetrieval(14) version3(3)}

+

+interVlrInfoRetrievalContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac interVlrInfoRetrieval(15) version3(3)}

+

+subscriberDataMngtContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac subscriberDataMngt(16) version3(3)}

+

+tracingContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac tracing(17) version3(3)}

+

+networkFunctionalSsContext-v2  OBJECT IDENTIFIER ::=

+	{map-ac networkFunctionalSs(18) version2(2)}

+

+networkUnstructuredSsContext-v2  OBJECT IDENTIFIER ::=

+	{map-ac networkUnstructuredSs(19) version2(2)}

+

+shortMsgGatewayContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac shortMsgGateway(20) version3(3)}

+

+shortMsgMO-RelayContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac shortMsgMO-Relay(21) version3(3)}

+

+shortMsgAlertContext-v2  OBJECT IDENTIFIER ::=

+	{map-ac shortMsgAlert(23) version2(2)}

+

+mwdMngtContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac mwdMngt(24) version3(3)}

+

+shortMsgMT-RelayContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac shortMsgMT-Relay(25) version3(3)}

+

+imsiRetrievalContext-v2  OBJECT IDENTIFIER ::=

+	{map-ac imsiRetrieval(26) version2(2)}

+

+msPurgingContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac msPurging(27) version3(3)}

+

+subscriberInfoEnquiryContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac subscriberInfoEnquiry(28) version3(3)}

+

+anyTimeInfoEnquiryContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac anyTimeInfoEnquiry(29) version3(3)}

+

+callControlTransferContext-v4  OBJECT IDENTIFIER ::=

+	{map-ac callControlTransfer(6) version4(4)}

+

+ss-InvocationNotificationContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac ss-InvocationNotification(36) version3(3)}

+

+groupCallControlContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac groupCallControl(31) version3(3)}

+

+gprsLocationUpdateContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac gprsLocationUpdate(32) version3(3)}

+

+gprsLocationInfoRetrievalContext-v4  OBJECT IDENTIFIER ::=

+	{map-ac gprsLocationInfoRetrieval(33) version4(4)}

+

+failureReportContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac failureReport(34) version3(3)}

+

+gprsNotifyContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac gprsNotify(35) version3(3)}

+

+reportingContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac reporting(7) version3(3)}

+

+callCompletionContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac callCompletion(8) version3(3)}

+

+istAlertingContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac istAlerting(4) version3(3)}

+

+serviceTerminationContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac immediateTermination(9) version3(3)}

+

+locationSvcGatewayContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac locationSvcGateway(37) version3(3)}

+

+locationSvcEnquiryContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac locationSvcEnquiry(38) version3(3)}

+

+mm-EventReportingContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac mm-EventReporting(42) version3(3)}

+

+anyTimeInfoHandlingContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac anyTimeInfoHandling(43) version3(3)}

+

+subscriberDataModificationNotificationContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac subscriberDataModificationNotification(22) version3(3)}

+

+secureTransportHandlingContext-v3  OBJECT IDENTIFIER ::=

+	{map-ac secureTransportHandling(40) version3(3)}

+

+-- The following Object Identifiers are reserved for application-contexts

+--  existing in previous versions of the protocol

+

+-- AC Name & Version	Object Identifier

+-- 

+-- networkLocUpContext-v1	map-ac networkLocUp (1)	version1 (1)

+-- networkLocUpContext-v2	map-ac networkLocUp (1)	version2 (2)

+-- locationCancellationContext-v1	map-ac locationCancellation (2)	version1 (1)

+-- locationCancellationContext-v2	map-ac locationCancellation (2)	version2 (2)

+-- roamingNumberEnquiryContext-v1	map-ac roamingNumberEnquiry (3)	version1 (1)

+-- roamingNumberEnquiryContext-v2	map-ac roamingNumberEnquiry (3)	version2 (2)

+-- locationInfoRetrievalContext-v1	map-ac locationInfoRetrieval (5)	version1 (1)

+-- locationInfoRetrievalContext-v2	map-ac locationInfoRetrieval (5)	version2 (2)

+-- resetContext-v1	map-ac reset (10)	version1 (1)

+-- handoverControlContext-v1	map-ac handoverControl (11)	version1 (1)

+-- handoverControlContext-v2	map-ac handoverControl (11)	version2 (2)

+-- sIWFSAllocationContext-v3	map-ac sIWFSAllocation (12)	version3 (3)

+-- equipmentMngtContext-v1	map-ac equipmentMngt (13)	version1 (1)

+-- equipmentMngtContext-v2	map-ac equipmentMngt (13)	version2 (2)

+-- infoRetrievalContext-v1	map-ac infoRetrieval (14)	version1 (1) 

+-- infoRetrievalContext-v2	map-ac infoRetrieval (14)	version2 (2)

+-- interVlrInfoRetrievalContext-v2	map-ac interVlrInfoRetrieval (15)	version2 (2)

+-- subscriberDataMngtContext-v1	map-ac subscriberDataMngt (16)	version1 (1)

+-- subscriberDataMngtContext-v2	map-ac subscriberDataMngt (16)	version2 (2)

+-- tracingContext-v1	map-ac tracing (17)	version1 (1)

+-- tracingContext-v2	map-ac tracing (17)	version2 (2)

+-- networkFunctionalSsContext-v1	map-ac networkFunctionalSs (18)	version1 (1)

+-- shortMsgGatewayContext-v1	map-ac shortMsgGateway (20)	version1 (1)

+-- shortMsgGatewayContext-v2	map-ac shortMsgGateway (20)	version2 (2)

+-- shortMsgRelayContext-v1	map-ac shortMsgRelay (21)	version1 (1)

+-- shortMsgAlertContext-v1	map-ac shortMsgAlert (23)	version1 (1)

+-- mwdMngtContext-v1	map-ac mwdMngt (24)	version1 (1)

+-- mwdMngtContext-v2	map-ac mwdMngt (24)	version2 (2)

+-- shortMsgMT-RelayContext-v2	map-ac shortMsgMT-Relay (25)	version2 (2)

+-- msPurgingContext-v2	map-ac msPurging (27)	version2 (2) 

+-- callControlTransferContext-v3	map-ac callControlTransferContext (6)	version3 (3) 

+-- gprsLocationInfoRetrievalContext-v3	map-ac gprsLocationInfoRetrievalContext (33) version3 (3)

+

+

+END

diff --git a/asn1/MAP-BS-Code.asn b/asn1/MAP-BS-Code.asn
new file mode 100644
index 0000000..d125010
--- /dev/null
+++ b/asn1/MAP-BS-Code.asn
@@ -0,0 +1,126 @@
+MAP-BS-Code {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-BS-Code (20) version9 (9)}

+

+DEFINITIONS

+

+::=

+

+BEGIN

+

+BearerServiceCode ::= OCTET STRING (SIZE (1))

+	-- This type is used to represent the code identifying a single

+	-- bearer service, a group of bearer services, or all bearer

+	-- services. The services are defined in TS 3GPP TS 22.002 [3].

+	-- The internal structure is defined as follows:

+	--

+	-- plmn-specific bearer services:

+	-- bits 87654321: defined by the HPLMN operator

+

+	-- rest of bearer services:

+	-- bit 8: 0 (unused)

+	-- bits 7654321: group (bits 7654), and rate, if applicable

+	-- (bits 321)

+

+Ext-BearerServiceCode ::= OCTET STRING (SIZE (1..5))

+	-- This type is used to represent the code identifying a single

+	-- bearer service, a group of bearer services, or all bearer

+	-- services. The services are defined in TS 3GPP TS 22.002 [3].

+	-- The internal structure is defined as follows:

+	--

+	-- OCTET 1:

+	-- plmn-specific bearer services:

+	-- bits 87654321: defined by the HPLMN operator

+	--

+	-- rest of bearer services:

+	-- bit 8: 0 (unused)

+	-- bits 7654321: group (bits 7654), and rate, if applicable

+	-- (bits 321)

+

+	-- OCTETS 2-5: reserved for future use. If received the

+    -- Ext-TeleserviceCode shall be

+	-- treated according to the exception handling defined for the

+	-- operation that uses this type. 

+

+

+	-- Ext-BearerServiceCode includes all values defined for BearerServiceCode.

+

+allBearerServices	BearerServiceCode ::= '00000000'B

+

+allDataCDA-Services	BearerServiceCode ::= '00010000'B

+dataCDA-300bps		BearerServiceCode ::= '00010001'B

+dataCDA-1200bps	BearerServiceCode ::= '00010010'B

+dataCDA-1200-75bps	BearerServiceCode ::= '00010011'B

+dataCDA-2400bps	BearerServiceCode ::= '00010100'B

+dataCDA-4800bps	BearerServiceCode ::= '00010101'B

+dataCDA-9600bps	BearerServiceCode ::= '00010110'B

+general-dataCDA	BearerServiceCode ::= '00010111'B

+

+allDataCDS-Services	BearerServiceCode ::= '00011000'B

+dataCDS-1200bps	BearerServiceCode ::= '00011010'B

+dataCDS-2400bps	BearerServiceCode ::= '00011100'B

+dataCDS-4800bps	BearerServiceCode ::= '00011101'B

+dataCDS-9600bps	BearerServiceCode ::= '00011110'B

+general-dataCDS	BearerServiceCode ::= '00011111'B

+

+allPadAccessCA-Services	BearerServiceCode ::= '00100000'B

+padAccessCA-300bps	BearerServiceCode ::= '00100001'B

+padAccessCA-1200bps	BearerServiceCode ::= '00100010'B

+padAccessCA-1200-75bps	BearerServiceCode ::= '00100011'B

+padAccessCA-2400bps	BearerServiceCode ::= '00100100'B

+padAccessCA-4800bps	BearerServiceCode ::= '00100101'B

+padAccessCA-9600bps	BearerServiceCode ::= '00100110'B

+general-padAccessCA	BearerServiceCode ::= '00100111'B

+

+allDataPDS-Services	BearerServiceCode ::= '00101000'B

+dataPDS-2400bps	BearerServiceCode ::= '00101100'B

+dataPDS-4800bps	BearerServiceCode ::= '00101101'B

+dataPDS-9600bps	BearerServiceCode ::= '00101110'B

+general-dataPDS	BearerServiceCode ::= '00101111'B

+

+allAlternateSpeech-DataCDA	BearerServiceCode ::= '00110000'B

+

+allAlternateSpeech-DataCDS	BearerServiceCode ::= '00111000'B

+

+allSpeechFollowedByDataCDA	BearerServiceCode ::= '01000000'B

+

+allSpeechFollowedByDataCDS	BearerServiceCode ::= '01001000'B

+

+-- The following non-hierarchical Compound Bearer Service

+-- Groups are defined in TS 3GPP TS 22.030:

+allDataCircuitAsynchronous	BearerServiceCode ::= '01010000'B

+	-- covers "allDataCDA-Services", "allAlternateSpeech-DataCDA" and

+	-- "allSpeechFollowedByDataCDA"

+allAsynchronousServices	BearerServiceCode ::= '01100000'B

+	-- covers "allDataCDA-Services", "allAlternateSpeech-DataCDA",

+	-- "allSpeechFollowedByDataCDA" and "allPadAccessCDA-Services"

+allDataCircuitSynchronous	BearerServiceCode ::= '01011000'B

+	-- covers "allDataCDS-Services", "allAlternateSpeech-DataCDS" and

+	-- "allSpeechFollowedByDataCDS"

+allSynchronousServices	BearerServiceCode ::= '01101000'B

+	-- covers "allDataCDS-Services", "allAlternateSpeech-DataCDS",

+	-- "allSpeechFollowedByDataCDS" and "allDataPDS-Services"

+--

+-- Compound Bearer Service Group Codes are only used in call

+-- independent supplementary service operations, i.e. they

+-- are not used in InsertSubscriberData or in

+-- DeleteSubscriberData messages.

+

+allPLMN-specificBS	BearerServiceCode ::= '11010000'B

+plmn-specificBS-1	BearerServiceCode ::= '11010001'B

+plmn-specificBS-2	BearerServiceCode ::= '11010010'B

+plmn-specificBS-3	BearerServiceCode ::= '11010011'B

+plmn-specificBS-4	BearerServiceCode ::= '11010100'B

+plmn-specificBS-5	BearerServiceCode ::= '11010101'B

+plmn-specificBS-6	BearerServiceCode ::= '11010110'B

+plmn-specificBS-7	BearerServiceCode ::= '11010111'B

+plmn-specificBS-8	BearerServiceCode ::= '11011000'B

+plmn-specificBS-9	BearerServiceCode ::= '11011001'B

+plmn-specificBS-A	BearerServiceCode ::= '11011010'B

+plmn-specificBS-B	BearerServiceCode ::= '11011011'B

+plmn-specificBS-C	BearerServiceCode ::= '11011100'B

+plmn-specificBS-D	BearerServiceCode ::= '11011101'B

+plmn-specificBS-E	BearerServiceCode ::= '11011110'B

+plmn-specificBS-F	BearerServiceCode ::= '11011111'B

+

+END

diff --git a/asn1/MAP-CH-DataTypes.asn b/asn1/MAP-CH-DataTypes.asn
new file mode 100644
index 0000000..10e9d8f
--- /dev/null
+++ b/asn1/MAP-CH-DataTypes.asn
@@ -0,0 +1,438 @@
+MAP-CH-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-CH-DataTypes (13) version9 (9)}

+

+DEFINITIONS

+

+IMPLICIT TAGS

+

+::=

+

+BEGIN

+

+EXPORTS

+	SendRoutingInfoArg,

+	SendRoutingInfoRes,

+	ProvideRoamingNumberArg,

+	ProvideRoamingNumberRes,

+	ResumeCallHandlingArg,

+	ResumeCallHandlingRes,

+	NumberOfForwarding,

+	SuppressionOfAnnouncement,

+	CallReferenceNumber,

+	SetReportingStateArg,

+	SetReportingStateRes,

+	StatusReportArg,

+	StatusReportRes,

+	RemoteUserFreeArg,

+	RemoteUserFreeRes,

+	IST-AlertArg,

+	IST-AlertRes,

+	IST-CommandArg,

+IST-CommandRes

+;

+

+IMPORTS

+	SubscriberInfo,

+	SupportedCamelPhases,

+	OfferedCamel4CSIs,

+	CUG-Interlock,

+	O-CSI, 

+	D-CSI,

+	O-BcsmCamelTDPCriteriaList, 

+	T-BCSM-CAMEL-TDP-CriteriaList,

+	IST-SupportIndicator,

+	IST-AlertTimerValue,

+	T-CSI,

+	NumberPortabilityStatus

+FROM MAP-MS-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-MS-DataTypes (11) version9 (9)}

+

+	ForwardingOptions,

+	SS-List,

+	CCBS-Feature

+FROM MAP-SS-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-SS-DataTypes (14) version9 (9)}

+

+	ISDN-AddressString,

+	ISDN-SubaddressString,

+	FTN-AddressString,

+	ExternalSignalInfo,

+	Ext-ExternalSignalInfo,

+	IMSI,

+	LMSI,

+	Ext-BasicServiceCode,

+	AlertingPattern,

+	NAEA-PreferredCI

+FROM MAP-CommonDataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}

+

+	ExtensionContainer

+FROM MAP-ExtensionDataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}

+;

+

+

+CUG-CheckInfo ::= SEQUENCE {

+	cug-Interlock	CUG-Interlock,

+	cug-OutgoingAccess	NULL			OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+NumberOfForwarding ::= INTEGER (1..5)

+

+SendRoutingInfoArg ::= SEQUENCE {

+	msisdn		[0] ISDN-AddressString,

+	cug-CheckInfo	[1] CUG-CheckInfo	OPTIONAL,

+	numberOfForwarding	[2] NumberOfForwarding	OPTIONAL,

+	interrogationType	[3] InterrogationType,

+	or-Interrogation	[4] NULL		OPTIONAL,

+	or-Capability	[5] OR-Phase	OPTIONAL,

+	gmsc-OrGsmSCF-Address	[6] ISDN-AddressString,

+	callReferenceNumber	[7] CallReferenceNumber	OPTIONAL,

+	forwardingReason	[8] ForwardingReason	OPTIONAL,

+	basicServiceGroup	[9] Ext-BasicServiceCode	OPTIONAL,

+	networkSignalInfo	[10] ExternalSignalInfo	OPTIONAL,

+	camelInfo		[11] CamelInfo	OPTIONAL,

+	suppressionOfAnnouncement	[12] SuppressionOfAnnouncement 	OPTIONAL,

+	extensionContainer	[13] ExtensionContainer	OPTIONAL,

+	...,

+	alertingPattern	[14] AlertingPattern	OPTIONAL,

+	ccbs-Call		[15] NULL			OPTIONAL,

+	supportedCCBS-Phase	[16]	 SupportedCCBS-Phase	OPTIONAL,

+	additionalSignalInfo	[17] Ext-ExternalSignalInfo	OPTIONAL,

+	istSupportIndicator	[18] IST-SupportIndicator	OPTIONAL,

+	pre-pagingSupported	[19]	NULL		OPTIONAL,

+	callDiversionTreatmentIndicator	[20]	CallDiversionTreatmentIndicator	OPTIONAL,

+	longFTN-Supported	[21]	NULL		OPTIONAL,

+	suppress-VT-CSI	[22]	NULL		OPTIONAL,

+	suppressIncomingCallBarring	[23]	NULL		OPTIONAL,

+	gsmSCF-InitiatedCall	[24]	NULL		OPTIONAL,

+	basicServiceGroup2	[25] Ext-BasicServiceCode	OPTIONAL,

+	networkSignalInfo2	[26] ExternalSignalInfo	OPTIONAL

+	 }

+

+SuppressionOfAnnouncement ::= NULL

+

+InterrogationType ::= ENUMERATED {

+	basicCall  (0),

+	forwarding  (1)}

+

+OR-Phase ::= INTEGER (1..127)

+

+CallReferenceNumber ::= OCTET STRING (SIZE (1..8))

+

+ForwardingReason ::= ENUMERATED {

+	notReachable  (0),

+	busy  (1),

+	noReply  (2)}

+

+SupportedCCBS-Phase ::= INTEGER (1..127) 

+-- exception handling:

+-- Only value 1 is used.

+-- Values in the ranges 2-127 are reserved for future use.

+-- If received values 2-127 shall be mapped on to value 1.

+

+CallDiversionTreatmentIndicator ::= OCTET STRING (SIZE(1))

+--	callDiversionAllowed (xxxx xx01)

+--	callDiversionNotAllowed (xxxx xx10)

+--	network default is call diversion allowed

+

+SendRoutingInfoRes ::= [3] SEQUENCE {

+	imsi			[9] IMSI		OPTIONAL,

+	-- IMSI must be present if SendRoutingInfoRes is not segmented.

+	-- If the TC-Result-NL segmentation option is taken the IMSI must be

+	-- present in one segmented transmission of SendRoutingInfoRes.

+	extendedRoutingInfo	ExtendedRoutingInfo	OPTIONAL,

+	cug-CheckInfo	[3] CUG-CheckInfo	OPTIONAL,

+	cugSubscriptionFlag	[6] NULL		OPTIONAL,

+	subscriberInfo	[7] SubscriberInfo	OPTIONAL,

+	ss-List		[1] SS-List	OPTIONAL,

+	basicService	[5] Ext-BasicServiceCode	OPTIONAL,

+	forwardingInterrogationRequired	[4] NULL		OPTIONAL,

+	vmsc-Address	[2] ISDN-AddressString	OPTIONAL,

+	extensionContainer	[0] ExtensionContainer	OPTIONAL,

+	... ,

+	naea-PreferredCI	[10] NAEA-PreferredCI	OPTIONAL,

+	-- naea-PreferredCI is included at the discretion of the HLR operator.

+	ccbs-Indicators	[11] CCBS-Indicators	OPTIONAL,

+	msisdn		[12] ISDN-AddressString	OPTIONAL,

+	numberPortabilityStatus	[13] NumberPortabilityStatus	OPTIONAL,

+	istAlertTimer	[14] IST-AlertTimerValue	OPTIONAL,

+	supportedCamelPhasesInVMSC	[15]	SupportedCamelPhases	OPTIONAL,

+	offeredCamel4CSIsInVMSC	[16] OfferedCamel4CSIs	OPTIONAL,

+	routingInfo2	[17] RoutingInfo	OPTIONAL,

+	ss-List2		[18] SS-List	OPTIONAL,

+	basicService2	[19] Ext-BasicServiceCode	OPTIONAL,

+	allowedServices	[20] AllowedServices	OPTIONAL,

+	unavailabilityCause	[21] UnavailabilityCause	OPTIONAL

+	}

+

+AllowedServices ::= BIT STRING {

+	firstServiceAllowed	(0),

+	secondServiceAllowed	(1) } (SIZE (2..8))

+	--	firstService is the service indicated in the networkSignalInfo

+	--	secondService is the service indicated in the networkSignalInfo2

+	--	Other bits than listed above shall be discarded

+

+UnavailabilityCause ::= ENUMERATED {

+	bearerServiceNotProvisioned	(1),

+	teleserviceNotProvisioned	(2),

+	absentSubscriber	(3),

+	busySubscriber	(4),

+	callBarred	(5),

+	cug-Reject	(6),

+	...}

+	--	exception handling: 

+	--	Reception of other values than the ones listed shall result in the service

+	--	being unavailable for that call.

+

+CCBS-Indicators ::= SEQUENCE {

+	ccbs-Possible	[0]	NULL		OPTIONAL,

+	keepCCBS-CallIndicator	[1]	NULL		OPTIONAL,

+	extensionContainer	[2]	ExtensionContainer	OPTIONAL,

+	...}

+

+RoutingInfo ::= CHOICE {

+	roamingNumber	ISDN-AddressString,

+	forwardingData	ForwardingData}

+

+ForwardingData ::= SEQUENCE {

+	forwardedToNumber	[5] ISDN-AddressString	OPTIONAL,

+	-- When this datatype is sent from an HLR which supports CAMEL Phase 2

+	-- to a GMSC which supports CAMEL Phase 2 the GMSC shall not check the

+	-- format of the number

+	forwardedToSubaddress	[4] ISDN-SubaddressString	OPTIONAL,

+	forwardingOptions	[6] ForwardingOptions	OPTIONAL,

+	extensionContainer	[7] ExtensionContainer	OPTIONAL,

+	...,

+	longForwardedToNumber	[8] FTN-AddressString	OPTIONAL}

+

+ProvideRoamingNumberArg ::= SEQUENCE {

+	imsi			[0] IMSI,

+	msc-Number	[1] ISDN-AddressString,

+	msisdn		[2] ISDN-AddressString	OPTIONAL,

+	lmsi			[4] LMSI		OPTIONAL,

+	gsm-BearerCapability	[5] ExternalSignalInfo	OPTIONAL,

+	networkSignalInfo	[6] ExternalSignalInfo	OPTIONAL,

+	suppressionOfAnnouncement	[7] SuppressionOfAnnouncement	OPTIONAL,

+	gmsc-Address	[8] ISDN-AddressString	OPTIONAL,

+	callReferenceNumber	[9] CallReferenceNumber	OPTIONAL,

+	or-Interrogation	[10] NULL		OPTIONAL,

+	extensionContainer	[11] ExtensionContainer	OPTIONAL,

+	... ,

+	alertingPattern	[12] AlertingPattern	OPTIONAL,

+	ccbs-Call		[13] NULL		OPTIONAL,

+	supportedCamelPhasesInInterrogatingNode	[15] SupportedCamelPhases	OPTIONAL,

+	additionalSignalInfo	[14] Ext-ExternalSignalInfo	OPTIONAL,

+	orNotSupportedInGMSC	[16] NULL		OPTIONAL,

+	pre-pagingSupported	[17] NULL		OPTIONAL,

+	longFTN-Supported	[18]	NULL		OPTIONAL,

+	suppress-VT-CSI	[19]	NULL		OPTIONAL,

+	offeredCamel4CSIsInInterrogatingNode	[20] OfferedCamel4CSIs	OPTIONAL

+	 }

+

+ProvideRoamingNumberRes ::= SEQUENCE {

+	roamingNumber	ISDN-AddressString,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+ResumeCallHandlingArg ::= SEQUENCE {

+	callReferenceNumber	[0] CallReferenceNumber	OPTIONAL,

+	basicServiceGroup	[1] Ext-BasicServiceCode	OPTIONAL,

+	forwardingData	[2] ForwardingData	OPTIONAL,

+	imsi			[3] IMSI		OPTIONAL,

+	cug-CheckInfo	[4] CUG-CheckInfo	OPTIONAL,

+	o-CSI		[5] O-CSI		OPTIONAL,

+	extensionContainer	[7] ExtensionContainer	OPTIONAL,

+	ccbs-Possible	[8]	NULL		OPTIONAL,

+	msisdn		[9]	ISDN-AddressString	OPTIONAL,

+	uu-Data		[10] UU-Data	OPTIONAL,

+	allInformationSent	[11] NULL		OPTIONAL,

+	...,

+	d-csi		[12]	D-CSI	OPTIONAL,

+	o-BcsmCamelTDPCriteriaList 	[13]	O-BcsmCamelTDPCriteriaList 	OPTIONAL,

+	basicServiceGroup2	[14] Ext-BasicServiceCode	OPTIONAL

+	 }

+

+UU-Data ::= SEQUENCE {

+	uuIndicator	[0] UUIndicator	OPTIONAL,

+	uui			[1] UUI		OPTIONAL,

+	uusCFInteraction	[2] NULL		OPTIONAL,

+	extensionContainer	[3] ExtensionContainer	OPTIONAL,

+	...}

+

+UUIndicator ::= OCTET STRING (SIZE (1))

+	-- Octets are coded according to ETS 300 356

+

+UUI  ::= OCTET STRING (SIZE (1..131))

+	-- Octets are coded according to ETS 300 356

+

+ResumeCallHandlingRes ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+CamelInfo ::= SEQUENCE {

+	supportedCamelPhases	SupportedCamelPhases,

+	suppress-T-CSI	NULL			OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	... ,

+	offeredCamel4CSIs	[0] OfferedCamel4CSIs	OPTIONAL }

+

+ExtendedRoutingInfo ::= CHOICE {

+	routingInfo	RoutingInfo,

+	camelRoutingInfo	[8] CamelRoutingInfo}

+

+CamelRoutingInfo ::= SEQUENCE {

+	forwardingData	ForwardingData	OPTIONAL,

+	gmscCamelSubscriptionInfo	[0] GmscCamelSubscriptionInfo,

+	extensionContainer	[1] ExtensionContainer	OPTIONAL,

+	...}

+

+GmscCamelSubscriptionInfo ::= SEQUENCE {

+	t-CSI		[0] T-CSI	OPTIONAL,

+	o-CSI		[1] O-CSI	OPTIONAL,

+	extensionContainer	[2] ExtensionContainer	OPTIONAL,

+	...,

+	o-BcsmCamelTDP-CriteriaList	[3] O-BcsmCamelTDPCriteriaList	OPTIONAL,

+	t-BCSM-CAMEL-TDP-CriteriaList	[4]	T-BCSM-CAMEL-TDP-CriteriaList	OPTIONAL,

+	d-csi		[5]	D-CSI	OPTIONAL}

+

+SetReportingStateArg ::= SEQUENCE {

+	imsi			[0]	IMSI		OPTIONAL,

+	lmsi			[1]	LMSI		OPTIONAL,

+	ccbs-Monitoring	[2]	ReportingState	OPTIONAL,

+	extensionContainer	[3]	ExtensionContainer	OPTIONAL,

+	...}

+

+ReportingState ::= ENUMERATED {

+	stopMonitoring	(0),

+	startMonitoring	(1),

+	...}

+	-- exception handling:

+	-- reception of values 2-10 shall be mapped to 'stopMonitoring' 

+	-- reception of values > 10 shall be mapped to 'startMonitoring'

+

+SetReportingStateRes ::= SEQUENCE{

+	ccbs-SubscriberStatus 	[0]	CCBS-SubscriberStatus	OPTIONAL,

+	extensionContainer	[1]	ExtensionContainer	OPTIONAL,

+	...}

+

+CCBS-SubscriberStatus ::= ENUMERATED {

+	ccbsNotIdle 	(0),

+	ccbsIdle 		(1),

+	ccbsNotReachable	(2),

+	...}

+	--  exception handling: 

+	--  reception of values 3-10 shall be mapped to 'ccbsNotIdle'

+	--  reception of values 11-20 shall be mapped to 'ccbsIdle'

+	--  reception of values > 20 shall be mapped to 'ccbsNotReachable' 

+

+StatusReportArg ::= SEQUENCE{

+	imsi 		[0]	IMSI,

+	eventReportData	[1]	EventReportData	OPTIONAL,

+	callReportdata	[2]	CallReportData	OPTIONAL,

+	extensionContainer	[3]	ExtensionContainer	OPTIONAL,

+	...}

+

+EventReportData ::= SEQUENCE{

+	ccbs-SubscriberStatus	[0]	CCBS-SubscriberStatus	OPTIONAL,

+	extensionContainer	[1]	ExtensionContainer	OPTIONAL,

+	...}

+

+CallReportData ::= SEQUENCE{

+	monitoringMode	[0]	MonitoringMode	OPTIONAL,

+	callOutcome	[1]	CallOutcome	OPTIONAL,

+	extensionContainer	[2]	ExtensionContainer	OPTIONAL,

+	...}

+

+MonitoringMode ::= ENUMERATED {

+	a-side		(0),

+	b-side		(1),

+	...}

+	--	exception handling: 

+	--  reception of values 2-10 shall be mapped 'a-side'

+	--  reception of values > 10 shall be mapped to 'b-side'

+

+CallOutcome ::= ENUMERATED {

+	success		(0),

+	failure		(1),

+	busy			(2),

+	...}

+	--	exception handling: 

+	--  reception of values 3-10 shall be mapped to 'success'

+	--  reception of values 11-20 shall be mapped to 'failure'

+	--  reception of values > 20 shall be mapped to 'busy'

+

+StatusReportRes ::= SEQUENCE {

+	extensionContainer	[0]	ExtensionContainer	OPTIONAL,

+	...}

+

+RemoteUserFreeArg ::= SEQUENCE{

+	imsi			[0]	IMSI,

+	callInfo		[1]	ExternalSignalInfo,

+	ccbs-Feature	[2]	CCBS-Feature,

+	translatedB-Number	[3]	ISDN-AddressString,

+	replaceB-Number	[4] 	NULL		OPTIONAL,

+	alertingPattern	[5]	AlertingPattern	OPTIONAL,

+	extensionContainer	[6]	ExtensionContainer	OPTIONAL,

+	...}

+

+RemoteUserFreeRes ::= SEQUENCE{

+	ruf-Outcome	[0]	RUF-Outcome,

+	extensionContainer	[1]	ExtensionContainer	OPTIONAL,

+	...}

+

+RUF-Outcome ::= ENUMERATED{

+	accepted (0),

+	rejected (1),

+	noResponseFromFreeMS (2), -- T4 Expiry

+	noResponseFromBusyMS (3), -- T10 Expiry

+	udubFromFreeMS (4),

+	udubFromBusyMS (5),

+	...}

+	-- exception handling:

+	-- reception of values 6-20 shall be mapped to 'accepted'

+	-- reception of values 21-30 shall be mapped to 'rejected'

+	-- reception of values 31-40 shall be mapped to 'noResponseFromFreeMS'

+	-- reception of values 41-50 shall be mapped to 'noResponseFromBusyMS'

+	-- reception of values 51-60 shall be mapped to 'udubFromFreeMS'

+	-- reception of values > 60 shall be mapped to 'udubFromBusyMS'

+

+IST-AlertArg ::= SEQUENCE{

+	imsi			[0]	IMSI,

+	extensionContainer	[1]	ExtensionContainer	OPTIONAL,

+	...}

+

+IST-AlertRes ::= SEQUENCE{

+	istAlertTimer	[0]	IST-AlertTimerValue 	OPTIONAL,

+	istInformationWithdraw	[1]	NULL		OPTIONAL,

+	callTerminationIndicator	[2]	CallTerminationIndicator	OPTIONAL,

+	extensionContainer	[3]	ExtensionContainer	OPTIONAL,

+	...}

+

+IST-CommandArg ::= SEQUENCE{

+	imsi			[0]	IMSI,

+	extensionContainer	[1]	ExtensionContainer	OPTIONAL,

+	...}

+

+IST-CommandRes ::= SEQUENCE{

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+CallTerminationIndicator ::= ENUMERATED {

+	terminateCallActivityReferred	(0),

+	terminateAllCallActivities	(1),

+	...}

+	-- exception handling:

+	-- reception of values 2-10 shall be mapped to ' terminateCallActivityReferred ' 

+	-- reception of values > 10 shall be mapped to ' terminateAllCallActivities '

+

+	-- In MSCs not supporting linkage of all call activities, any value received shall

+	-- be interpreted as ' terminateCallActivityReferred '

+

+END

diff --git a/asn1/MAP-CallHandlingOperations.asn b/asn1/MAP-CallHandlingOperations.asn
new file mode 100644
index 0000000..473e968
--- /dev/null
+++ b/asn1/MAP-CallHandlingOperations.asn
@@ -0,0 +1,198 @@
+MAP-CallHandlingOperations {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-CallHandlingOperations (7)

+   version9 (9)}

+

+DEFINITIONS

+

+::=

+

+BEGIN

+

+EXPORTS

+	sendRoutingInfo,

+	provideRoamingNumber,

+	resumeCallHandling,

+	setReportingState,

+	statusReport,

+	remoteUserFree,

+	ist-Alert,

+	ist-Command

+;

+

+IMPORTS

+	OPERATION

+FROM Remote-Operations-Information-Objects {

+joint-iso-itu-t remote-operations(4)

+  informationObjects(5) version1(0)}

+

+	systemFailure,

+	dataMissing,

+	unexpectedDataValue,

+	facilityNotSupported,

+	or-NotAllowed,

+	unknownSubscriber,

+	numberChanged,

+	bearerServiceNotProvisioned,

+	teleserviceNotProvisioned,

+	noRoamingNumberAvailable,

+	absentSubscriber,

+	busySubscriber,

+	noSubscriberReply,

+	callBarred,

+	forwardingViolation,

+	forwardingFailed,

+	cug-Reject,

+	resourceLimitation,

+	incompatibleTerminal,

+	unidentifiedSubscriber

+

+FROM MAP-Errors {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-Errors (10) version9 (9)}

+	SendRoutingInfoArg,

+	SendRoutingInfoRes,

+	ProvideRoamingNumberArg,

+	ProvideRoamingNumberRes,

+	ResumeCallHandlingArg,

+	ResumeCallHandlingRes,

+	SetReportingStateArg,

+	SetReportingStateRes,

+	StatusReportArg,

+	StatusReportRes,

+	RemoteUserFreeArg,

+	RemoteUserFreeRes,

+	IST-AlertArg,

+	IST-AlertRes,

+	IST-CommandArg,

+	IST-CommandRes

+FROM MAP-CH-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-CH-DataTypes (13) version9 (9)}

+

+;

+

+sendRoutingInfo  OPERATION ::= {				--Timer m

+-- The timer is set to the upper limit of the range if the GMSC supports pre-paging.

+	ARGUMENT

+		SendRoutingInfoArg

+	RESULT

+		SendRoutingInfoRes

+	ERRORS {

+		systemFailure |

+		dataMissing |

+		unexpectedDataValue |

+		facilityNotSupported |

+		or-NotAllowed |

+		unknownSubscriber |

+		numberChanged |

+		bearerServiceNotProvisioned |

+		teleserviceNotProvisioned |

+		absentSubscriber |

+		busySubscriber |

+		noSubscriberReply |

+		callBarred |

+		cug-Reject |

+		forwardingViolation}

+	CODE	local:22 }

+

+provideRoamingNumber  OPERATION ::= {				--Timer m

+-- The timer is set to the upper limit of the range if the HLR supports pre-paging.

+	ARGUMENT

+		ProvideRoamingNumberArg

+	RESULT

+		ProvideRoamingNumberRes

+	ERRORS {

+		systemFailure |

+		dataMissing |

+		unexpectedDataValue |

+		facilityNotSupported |

+		or-NotAllowed |

+		absentSubscriber |

+		noRoamingNumberAvailable}

+	CODE	local:4 }

+

+resumeCallHandling  OPERATION ::= {				--Timer m

+	ARGUMENT

+		ResumeCallHandlingArg

+	RESULT

+		ResumeCallHandlingRes

+		-- optional

+	ERRORS {

+		forwardingFailed |

+		or-NotAllowed |

+		unexpectedDataValue |

+		dataMissing }

+	CODE	local:6 }

+

+setReportingState  OPERATION ::= {				--Timer m

+	ARGUMENT

+		SetReportingStateArg

+	RESULT

+		SetReportingStateRes

+		-- optional

+	ERRORS {

+		systemFailure |

+		unidentifiedSubscriber |

+		unexpectedDataValue |

+		dataMissing |

+		resourceLimitation |

+		facilityNotSupported}

+	CODE	local:73 }

+

+statusReport  OPERATION ::= {				--Timer m

+	ARGUMENT

+		StatusReportArg

+	RESULT

+		StatusReportRes

+		-- optional

+	ERRORS {

+		unknownSubscriber |

+		systemFailure |

+		unexpectedDataValue |

+		dataMissing}

+	CODE	local:74 }

+

+remoteUserFree  OPERATION ::= {				--Timer ml

+	ARGUMENT

+		RemoteUserFreeArg

+	RESULT

+		RemoteUserFreeRes

+	ERRORS {

+		unexpectedDataValue |

+		dataMissing |

+		incompatibleTerminal |

+		absentSubscriber |

+		systemFailure |

+		busySubscriber}

+	CODE	local:75 }

+

+ist-Alert  OPERATION ::= {				--Timer m

+	ARGUMENT

+		IST-AlertArg

+	RESULT

+		IST-AlertRes

+		-- optional

+	ERRORS {

+		unexpectedDataValue |

+		resourceLimitation |

+		unknownSubscriber |

+		systemFailure |

+		facilityNotSupported}

+	CODE	local:87 }

+

+ist-Command  OPERATION::= {				--Timer m

+	ARGUMENT

+		IST-CommandArg

+	RESULT

+		IST-CommandRes

+		-- optional

+	ERRORS {

+		unexpectedDataValue |

+		resourceLimitation |

+		unknownSubscriber |

+		systemFailure |

+		facilityNotSupported}

+	CODE	local:88 }

+

+END

diff --git a/asn1/MAP-CommonDataTypes.asn b/asn1/MAP-CommonDataTypes.asn
new file mode 100644
index 0000000..55d234e
--- /dev/null
+++ b/asn1/MAP-CommonDataTypes.asn
@@ -0,0 +1,612 @@
+MAP-CommonDataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}

+

+DEFINITIONS

+

+IMPLICIT TAGS

+

+::=

+

+BEGIN

+

+EXPORTS

+

+	-- general data types and values

+	AddressString,

+	ISDN-AddressString,

+	maxISDN-AddressLength,

+	FTN-AddressString,

+	ISDN-SubaddressString,

+	ExternalSignalInfo, 

+	Ext-ExternalSignalInfo, 

+	AccessNetworkSignalInfo,

+	SignalInfo,

+	maxSignalInfoLength,

+	AlertingPattern,

+	TBCD-STRING,

+

+	-- data types for numbering and identification

+	IMSI,

+	TMSI, 

+	Identity,

+	SubscriberId,

+	IMEI,

+	HLR-List,

+	LMSI,

+	GlobalCellId,

+	NetworkResource,

+	AdditionalNetworkResource,

+	NAEA-PreferredCI, 

+	NAEA-CIC, 

+	ASCI-CallReference,

+	SubscriberIdentity,

+

+	-- data types for CAMEL

+	CellGlobalIdOrServiceAreaIdOrLAI, 

+	CellGlobalIdOrServiceAreaIdFixedLength,

+	LAIFixedLength,

+

+	-- data types for subscriber management

+	BasicServiceCode,

+	Ext-BasicServiceCode,

+	EMLPP-Info,

+	EMLPP-Priority, 

+	MC-SS-Info,

+	MaxMC-Bearers,

+	MC-Bearers,

+	Ext-SS-Status,

+

+	-- data types for geographic location

+	AgeOfLocationInformation,

+	LCSClientExternalID,

+	LCSClientInternalID,

+	LCSServiceTypeID

+;

+

+IMPORTS

+	TeleserviceCode,

+	Ext-TeleserviceCode

+FROM MAP-TS-Code {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-TS-Code (19) version9 (9)}

+

+	BearerServiceCode,

+	Ext-BearerServiceCode

+FROM MAP-BS-Code {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-BS-Code (20) version9 (9)}

+

+	SS-Code

+FROM MAP-SS-Code {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-SS-Code (15) version9 (9)}

+

+	ExtensionContainer

+FROM MAP-ExtensionDataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}

+;

+

+

+-- general data types

+

+TBCD-STRING ::= OCTET STRING

+	-- This type (Telephony Binary Coded Decimal String) is used to

+	-- represent several digits from 0 through 9, *, #, a, b, c, two

+	-- digits per octet, each digit encoded 0000 to 1001 (0 to 9),

+	-- 1010 (*), 1011 (#), 1100 (a), 1101 (b) or 1110 (c); 1111 used

+	-- as filler when there is an odd number of digits.

+

+	-- bits 8765 of octet n encoding digit 2n

+	-- bits 4321 of octet n encoding digit 2(n-1) +1

+

+AddressString ::= OCTET STRING (SIZE (1..maxAddressLength))

+	-- This type is used to represent a number for addressing

+	-- purposes. It is composed of

+	--	a)	one octet for nature of address, and numbering plan

+	--		indicator.

+	--	b)	digits of an address encoded as TBCD-String.

+

+	-- a)	The first octet includes a one bit extension indicator, a

+	--		3 bits nature of address indicator and a 4 bits numbering

+	--		plan indicator, encoded as follows:

+

+	-- bit 8: 1  (no extension)

+

+	-- bits 765: nature of address indicator

+	--	000  unknown

+	--	001  international number

+	--	010  national significant number

+	--	011  network specific number

+	--	100  subscriber number

+	--	101  reserved

+	--	110  abbreviated number

+	--	111  reserved for extension

+

+	-- bits 4321: numbering plan indicator

+	--	0000  unknown

+	--	0001  ISDN/Telephony Numbering Plan (Rec ITU-T E.164)

+	--	0010  spare

+	--	0011  data numbering plan (ITU-T Rec X.121)

+	--	0100  telex numbering plan (ITU-T Rec F.69)

+	--	0101  spare

+	--	0110  land mobile numbering plan (ITU-T Rec E.212)

+	--	0111  spare

+	--	1000  national numbering plan

+	--	1001  private numbering plan

+	--	1111  reserved for extension

+

+	--	all other values are reserved.

+

+	-- b)	The following octets representing digits of an address

+	--		encoded as a TBCD-STRING.

+

+maxAddressLength  INTEGER ::= 20

+

+ISDN-AddressString ::= 

+			AddressString (SIZE (1..maxISDN-AddressLength))

+	-- This type is used to represent ISDN numbers.

+

+maxISDN-AddressLength  INTEGER ::= 9

+

+FTN-AddressString ::= 

+			AddressString (SIZE (1..maxFTN-AddressLength))

+	-- This type is used to represent forwarded-to numbers. 

+	-- For long forwarded-to numbers (longer than 15 digits) NPI shall be unknown;

+	-- if NAI = international the first digits represent the country code (CC)

+	-- and the network destination code (NDC) as for E.164.

+

+maxFTN-AddressLength  INTEGER ::= 15

+

+ISDN-SubaddressString ::= 

+			OCTET STRING (SIZE (1..maxISDN-SubaddressLength))

+	-- This type is used to represent ISDN subaddresses.

+	-- It is composed of

+	--	a)	one octet for type of subaddress and odd/even indicator.

+	--	b)	20 octets for subaddress information.

+

+	--	a)	The first octet includes a one bit extension indicator, a

+	--		3 bits type of subaddress and a one bit odd/even indicator,

+	--		encoded as follows:

+

+	--	bit 8: 1  (no extension)

+

+	--	bits 765: type of subaddress

+	--		000  NSAP (X.213/ISO 8348 AD2)

+	--		010  User Specified

+	--		All other values are reserved

+

+	--	bit 4: odd/even indicator

+	--		0  even number of address signals

+	--		1  odd number of address signals

+	--		The odd/even indicator is used when the type of subaddress

+	--		is "user specified" and the coding is BCD.

+

+	--	bits 321: 000 (unused)

+

+	--	b) Subaddress information.

+	--	The NSAP X.213/ISO8348AD2 address shall be formatted as specified

+	--	by octet 4 which contains the Authority and Format Identifier

+	--	(AFI). The encoding is made according to the "preferred binary

+	--	encoding" as defined in X.213/ISO834AD2. For the definition

+	--	of this type of subaddress, see ITU-T Rec I.334.

+

+	--	For User-specific subaddress, this field is encoded according

+	--	to the user specification, subject to a maximum length of 20

+	--	octets. When interworking with X.25 networks BCD coding should

+	--	be applied.

+

+maxISDN-SubaddressLength  INTEGER ::= 21

+

+ExternalSignalInfo ::= SEQUENCE {

+	protocolId	ProtocolId,

+	signalInfo	SignalInfo,

+	-- Information about the internal structure is given in

+	-- clause 7.6.9.

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	-- extensionContainer must not be used in version 2

+	...}

+

+SignalInfo ::= OCTET STRING (SIZE (1..maxSignalInfoLength))

+

+maxSignalInfoLength  INTEGER ::= 200

+	-- This NamedValue represents the theoretical maximum number of octets which is

+	-- available to carry a single instance of the SignalInfo data type,

+	-- without requiring segmentation to cope with the network layer service.

+	-- However, the actual maximum size available for an instance of the data

+	-- type may be lower, especially when other information elements

+	-- have to be included in the same component.

+

+ProtocolId ::= ENUMERATED {

+	gsm-0408  (1),

+	gsm-0806  (2),

+	gsm-BSSMAP  (3),

+	-- Value 3 is reserved and must not be used

+	ets-300102-1  (4)}

+

+Ext-ExternalSignalInfo ::= SEQUENCE {

+	ext-ProtocolId	Ext-ProtocolId,

+	signalInfo	SignalInfo,

+	-- Information about the internal structure is given in

+	-- clause 7.6.9.10

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+Ext-ProtocolId ::= ENUMERATED {

+	ets-300356  (1),

+	... 

+	 }

+-- exception handling:

+-- For Ext-ExternalSignalInfo sequences containing this parameter with any

+-- other value than the ones listed the receiver shall ignore the whole 

+-- Ext-ExternalSignalInfo sequence.

+

+AccessNetworkSignalInfo ::= SEQUENCE {

+	accessNetworkProtocolId	AccessNetworkProtocolId,

+	signalInfo	LongSignalInfo,

+	-- Information about the internal structure is given in clause 7.6.9.1

+	

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+LongSignalInfo ::= OCTET STRING (SIZE (1..maxLongSignalInfoLength))

+

+maxLongSignalInfoLength  INTEGER ::= 2560

+	-- This Named Value represents the maximum number of octets which is available

+	-- to carry a single instance of the LongSignalInfo data type using

+	-- White Book SCCP with the maximum number of segments.

+	-- It takes account of the octets used by the lower layers of the protocol, and

+	-- other information elements which may be included in the same component.

+

+AccessNetworkProtocolId ::= ENUMERATED {

+	ts3G-48006   (1),

+	ts3G-25413 (2),

+	...}

+	-- exception handling:

+	-- For AccessNetworkSignalInfo sequences containing this parameter with any

+	-- other value than the ones listed the receiver shall ignore the whole 

+	-- AccessNetworkSignalInfo sequence.

+

+AlertingPattern ::= OCTET STRING (SIZE (1) )

+	-- This type is used to represent Alerting Pattern

+

+	--	bits 8765 : 0000 (unused)

+

+	--	bits 43 : type of Pattern

+	--		00 level

+	--		01 category

+	--		10 category

+	--		all other values are reserved.

+

+	--	bits 21 : type of alerting

+

+alertingLevel-0   AlertingPattern ::= '00000000'B

+alertingLevel-1   AlertingPattern ::= '00000001'B

+alertingLevel-2   AlertingPattern ::= '00000010'B

+	-- all other values of Alerting level are reserved

+	-- Alerting Levels are defined in GSM 02.07

+	

+alertingCategory-1   AlertingPattern ::= '00000100'B

+alertingCategory-2   AlertingPattern ::= '00000101'B

+alertingCategory-3   AlertingPattern ::= '00000110'B

+alertingCategory-4   AlertingPattern ::= '00000111'B

+alertingCategory-5   AlertingPattern ::= '00001000'B

+	-- all other values of Alerting Category are reserved

+	-- Alerting categories are defined in GSM 02.07

+

+-- data types for numbering and identification

+

+IMSI ::= TBCD-STRING (SIZE (3..8))

+	-- digits of MCC, MNC, MSIN are concatenated in this order.

+

+Identity ::= CHOICE {

+	imsi			IMSI,

+	imsi-WithLMSI	IMSI-WithLMSI}

+

+IMSI-WithLMSI ::= SEQUENCE {

+	imsi			IMSI,

+	lmsi			LMSI,

+	-- a special value 00000000 indicates that the LMSI is not in use

+	...}

+

+ASCI-CallReference ::= TBCD-STRING (SIZE (1..8))

+	-- digits of VGCS/VBC-area,Group-ID are concatenated in this order.

+

+TMSI ::= OCTET STRING (SIZE (1..4))

+

+SubscriberId ::= CHOICE {

+	imsi			[0] IMSI,

+	tmsi			[1] TMSI}

+

+IMEI ::= TBCD-STRING (SIZE (8))

+	--	Refers to International Mobile Station Equipment Identity

+	--	and Software Version Number (SVN) defined in TS 3GPP TS 23.003 [17].

+	--	If the SVN is not present the last octet shall contain the

+	--	digit 0 and a filler.

+	--	If present the SVN shall be included in the last octet.

+

+HLR-Id ::= IMSI

+	-- leading digits of IMSI, i.e. (MCC, MNC, leading digits of

+	-- MSIN) forming HLR Id defined in TS 3GPP TS 23.003 [17].

+

+HLR-List ::= SEQUENCE SIZE (1..maxNumOfHLR-Id) OF

+				HLR-Id

+

+maxNumOfHLR-Id  INTEGER ::= 50

+

+LMSI ::= OCTET STRING (SIZE (4))

+

+GlobalCellId ::= OCTET STRING (SIZE (5..7))

+	-- Refers to Cell Global Identification defined in TS 3GPP TS 23.003 [17].

+	-- The internal structure is defined as follows:

+	-- octet 1 bits 4321	Mobile Country Code 1st digit

+	--         bits 8765	Mobile Country Code 2nd digit

+	-- octet 2 bits 4321	Mobile Country Code 3rd digit

+	--         bits 8765	Mobile Network Code 3rd digit

+	--			or filler (1111) for 2 digit MNCs

+	-- octet 3 bits 4321	Mobile Network Code 1st digit

+	--         bits 8765	Mobile Network Code 2nd digit

+	-- octets 4 and 5	Location Area Code according to TS 3GPP TS 24.008 [35]

+	-- octets 6 and 7	Cell Identity (CI) according to TS 3GPP TS 24.008 [35]

+

+NetworkResource ::= ENUMERATED {

+	plmn  (0),

+	hlr  (1),

+	vlr  (2),

+	pvlr  (3),

+	controllingMSC  (4),

+	vmsc  (5),

+	eir  (6),

+	rss  (7)}

+

+AdditionalNetworkResource ::= ENUMERATED {

+	sgsn (0),

+	ggsn (1),

+	gmlc (2),

+	gsmSCF (3),

+	nplr (4),

+	auc (5),

+	...}

+	-- if unknown value is received in AdditionalNetworkResource

+	-- it shall be ignored.

+

+

+NAEA-PreferredCI ::= SEQUENCE {

+	naea-PreferredCIC	[0] NAEA-CIC,

+	extensionContainer	[1] ExtensionContainer	OPTIONAL,

+	...}

+

+NAEA-CIC ::= OCTET STRING (SIZE (3))

+	-- The internal structure is defined by the Carrier Identification

+	-- parameter in ANSI T1.113.3. Carrier codes between "000" and "999" may

+	-- be encoded as 3 digits using "000" to "999" or as 4 digits using 

+	-- "0000" to "0999". Carrier codes between "1000" and "9999" are encoded

+	-- using 4 digits.

+

+SubscriberIdentity ::= CHOICE {

+	imsi			[0] IMSI,

+	msisdn		[1] ISDN-AddressString

+	}

+

+LCSClientExternalID ::= SEQUENCE {

+	externalAddress	[0] ISDN-AddressString	OPTIONAL,

+	extensionContainer	[1] ExtensionContainer	OPTIONAL,

+	... }

+

+LCSClientInternalID ::= ENUMERATED {

+	broadcastService	(0),

+	o-andM-HPLMN	(1),

+	o-andM-VPLMN	(2),

+	anonymousLocation	(3),

+	targetMSsubscribedService	(4),

+	... }

+-- for a CAMEL phase 3 PLMN operator client, the value targetMSsubscribedService shall be used

+

+LCSServiceTypeID ::= INTEGER (0..127)

+	-- the integer values 0-63 are reserved for Standard LCS service types

+	-- the integer values 64-127 are reserved for Non Standard LCS service types

+

+-- Standard LCS Service Types

+emergencyServices		LCSServiceTypeID ::= 0

+emergencyAlertServices		LCSServiceTypeID ::= 1

+personTracking			LCSServiceTypeID ::= 2

+fleetManagement		LCSServiceTypeID ::= 3

+assetManagement		LCSServiceTypeID ::= 4

+trafficCongestionReporting		LCSServiceTypeID ::= 5

+roadsideAssistance		LCSServiceTypeID ::= 6

+routingToNearestCommercialEnterprise		LCSServiceTypeID ::= 7

+navigation			LCSServiceTypeID ::= 8

+	--this service type is reserved for use in previous releases

+citySightseeing		LCSServiceTypeID ::= 9

+localizedAdvertising		LCSServiceTypeID ::= 10

+mobileYellowPages		LCSServiceTypeID ::= 11 

+trafficAndPublicTransportationInfo		LCSServiceTypeID ::= 12

+weather				LCSServiceTypeID ::= 13

+assetAndServiceFinding		LCSServiceTypeID ::= 14

+gaming				LCSServiceTypeID ::= 15

+findYourFriend			LCSServiceTypeID ::= 16

+dating				LCSServiceTypeID ::= 17

+chatting				LCSServiceTypeID ::= 18

+routeFinding			LCSServiceTypeID ::= 19

+whereAmI				LCSServiceTypeID ::= 20

+

+-- The values of LCSServiceTypeID are defined according to 3GPP TS 22.071.

+

+-- Non Standard LCS Service Types

+serv64				LCSServiceTypeID ::= 64

+serv65				LCSServiceTypeID ::= 65

+serv66				LCSServiceTypeID ::= 66

+serv67				LCSServiceTypeID ::= 67

+serv68				LCSServiceTypeID ::= 68

+serv69				LCSServiceTypeID ::= 69

+serv70				LCSServiceTypeID ::= 70

+serv71				LCSServiceTypeID ::= 71

+serv72				LCSServiceTypeID ::= 72

+serv73				LCSServiceTypeID ::= 73

+serv74				LCSServiceTypeID ::= 74

+serv75				LCSServiceTypeID ::= 75

+serv76				LCSServiceTypeID ::= 76

+serv77				LCSServiceTypeID ::= 77

+serv78				LCSServiceTypeID ::= 78

+serv79				LCSServiceTypeID ::= 79

+serv80				LCSServiceTypeID ::= 80

+serv81				LCSServiceTypeID ::= 81

+serv82				LCSServiceTypeID ::= 82

+serv83				LCSServiceTypeID ::= 83

+serv84				LCSServiceTypeID ::= 84

+serv85				LCSServiceTypeID ::= 85

+serv86				LCSServiceTypeID ::= 86

+serv87				LCSServiceTypeID ::= 87

+serv88				LCSServiceTypeID ::= 88

+serv89				LCSServiceTypeID ::= 89

+serv90				LCSServiceTypeID ::= 90

+serv91				LCSServiceTypeID ::= 91

+serv92				LCSServiceTypeID ::= 92

+serv93				LCSServiceTypeID ::= 93

+serv94				LCSServiceTypeID ::= 94

+serv95				LCSServiceTypeID ::= 95

+serv96				LCSServiceTypeID ::= 96

+serv97				LCSServiceTypeID ::= 97

+serv98				LCSServiceTypeID ::= 98

+serv99				LCSServiceTypeID ::= 99

+serv100				LCSServiceTypeID ::= 100

+serv101				LCSServiceTypeID ::= 101

+serv102				LCSServiceTypeID ::= 102

+serv103				LCSServiceTypeID ::= 103

+serv104				LCSServiceTypeID ::= 104

+serv105				LCSServiceTypeID ::= 105

+serv106				LCSServiceTypeID ::= 106

+serv107				LCSServiceTypeID ::= 107

+serv108				LCSServiceTypeID ::= 108

+serv109				LCSServiceTypeID ::= 109

+serv110				LCSServiceTypeID ::= 110

+serv111				LCSServiceTypeID ::= 111

+serv112				LCSServiceTypeID ::= 112

+serv113				LCSServiceTypeID ::= 113

+serv114				LCSServiceTypeID ::= 114

+serv115				LCSServiceTypeID ::= 115

+serv116				LCSServiceTypeID ::= 116

+serv117				LCSServiceTypeID ::= 117

+serv118				LCSServiceTypeID ::= 118

+serv119				LCSServiceTypeID ::= 119

+serv120				LCSServiceTypeID ::= 120

+serv121				LCSServiceTypeID ::= 121

+serv122				LCSServiceTypeID ::= 122

+serv123				LCSServiceTypeID ::= 123

+serv124				LCSServiceTypeID ::= 124

+serv125				LCSServiceTypeID ::= 125

+serv126				LCSServiceTypeID ::= 126

+serv127				LCSServiceTypeID ::= 127

+

+-- data types for CAMEL

+

+CellGlobalIdOrServiceAreaIdOrLAI ::= CHOICE {

+	cellGlobalIdOrServiceAreaIdFixedLength	[0] CellGlobalIdOrServiceAreaIdFixedLength,

+	laiFixedLength	[1] LAIFixedLength}

+

+CellGlobalIdOrServiceAreaIdFixedLength ::= OCTET STRING (SIZE (7))

+	-- Refers to Cell Global Identification or Service Are Identification

+	-- defined in 3GPP TS 23.003.

+	-- The internal structure is defined as follows:

+	-- octet 1 bits 4321	Mobile Country Code 1st digit

+	--         bits 8765	Mobile Country Code 2nd digit

+	-- octet 2 bits 4321	Mobile Country Code 3rd digit

+	--         bits 8765	Mobile Network Code 3rd digit

+	--			or filler (1111) for 2 digit MNCs

+	-- octet 3 bits 4321	Mobile Network Code 1st digit

+	--         bits 8765	Mobile Network Code 2nd digit

+	-- octets 4 and 5	Location Area Code according to 3GPP TS 24.008

+	-- octets 6 and 7	Cell Identity (CI) value or 

+	-- 			Service Area Code (SAC) value 

+	--			according to 3GPP TS 23.003

+

+LAIFixedLength ::= OCTET STRING (SIZE (5))

+	-- Refers to Location Area Identification defined in TS 3GPP TS 23.003 [17].

+	-- The internal structure is defined as follows:

+	-- octet 1 bits 4321	Mobile Country Code 1st digit

+	--         bits 8765	Mobile Country Code 2nd digit

+	-- octet 2 bits 4321	Mobile Country Code 3rd digit

+	--         bits 8765	Mobile Network Code 3rd digit

+	--			or filler (1111) for 2 digit MNCs

+	-- octet 3 bits 4321	Mobile Network Code 1st digit

+	--         bits 8765	Mobile Network Code 2nd digit

+	-- octets 4 and 5	Location Area Code according to TS 3GPP TS 24.008 [35]

+

+-- data types for subscriber management

+

+BasicServiceCode ::= CHOICE {

+	bearerService	[2] BearerServiceCode,

+	teleservice	[3] TeleserviceCode}

+

+Ext-BasicServiceCode ::= CHOICE {

+	ext-BearerService	[2] Ext-BearerServiceCode,

+	ext-Teleservice	[3] Ext-TeleserviceCode}

+

+EMLPP-Info ::= SEQUENCE {

+	maximumentitledPriority	EMLPP-Priority,

+	defaultPriority	EMLPP-Priority,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+EMLPP-Priority ::= INTEGER (0..15)

+	-- The mapping from the values A,B,0,1,2,3,4 to the integer-value is

+	-- specified as follows where A is the highest and 4 is the lowest

+	-- priority level

+	-- the integer values 7-15 are spare and shall be mapped to value 4

+

+priorityLevelA		EMLPP-Priority ::= 6

+priorityLevelB		EMLPP-Priority ::= 5

+priorityLevel0		EMLPP-Priority ::= 0

+priorityLevel1		EMLPP-Priority ::= 1

+priorityLevel2		EMLPP-Priority ::= 2

+priorityLevel3		EMLPP-Priority ::= 3

+priorityLevel4		EMLPP-Priority ::= 4

+

+MC-SS-Info ::= SEQUENCE {

+	ss-Code		[0] SS-Code,

+	ss-Status		[1] Ext-SS-Status,

+	nbrSB		[2] MaxMC-Bearers,

+	nbrUser		[3] MC-Bearers,

+	extensionContainer	[4] ExtensionContainer	OPTIONAL,

+	...}

+

+MaxMC-Bearers ::= INTEGER (2..maxNumOfMC-Bearers)

+

+MC-Bearers ::= INTEGER (1..maxNumOfMC-Bearers)

+

+maxNumOfMC-Bearers  INTEGER ::= 7

+

+Ext-SS-Status ::= OCTET STRING (SIZE (1..5))

+

+	-- OCTET 1:

+	--

+	-- bits 8765: 0000 (unused)

+	-- bits 4321: Used to convey the "P bit","R bit","A bit" and "Q bit",

+	--		    representing supplementary service state information

+	--		    as defined in TS 3GPP TS 23.011 [22]

+

+	-- bit 4: "Q bit"

+

+	-- bit 3: "P bit"

+

+	-- bit 2: "R bit"

+

+	-- bit 1: "A bit"

+

+	-- OCTETS 2-5: reserved for future use. They shall be discarded if

+	-- received and not understood.

+

+

+	-- data types for geographic location

+

+AgeOfLocationInformation ::= INTEGER (0..32767)

+-- the value represents the elapsed time in minutes since the last

+-- network contact of the mobile station (i.e. the actuality of the

+-- location information).

+-- value "0" indicates that the MS is currently in contact with the

+--           network

+-- value "32767" indicates that the location information is at least

+--               32767 minutes old

+

+END

diff --git a/asn1/MAP-DialogueInformation.asn b/asn1/MAP-DialogueInformation.asn
new file mode 100644
index 0000000..5854cbe
--- /dev/null
+++ b/asn1/MAP-DialogueInformation.asn
@@ -0,0 +1,149 @@
+MAP-DialogueInformation {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-DialogueInformation (3) version9 (9)}

+

+DEFINITIONS

+

+IMPLICIT TAGS

+

+::=

+

+BEGIN

+

+EXPORTS

+	map-DialogueAS,

+	MAP-DialoguePDU,

+	map-ProtectedDialogueAS,

+	MAP-ProtectedDialoguePDU

+

+;

+

+IMPORTS

+	gsm-NetworkId,

+	as-Id

+FROM MobileDomainDefinitions {

+   itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)

+   mobileDomainDefinitions (0) version1 (1)}

+

+	AddressString

+FROM MAP-CommonDataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network(1) modules (3) map-CommonDataTypes (18) version9 (9)}

+

+	ExtensionContainer

+FROM MAP-ExtensionDataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}

+

+	SecurityHeader,

+	ProtectedPayload

+FROM MAP-ST-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-ST-DataTypes (27) version9 (9)}

+

+;

+

+

+-- abstract syntax name for MAP-DialoguePDU

+

+map-DialogueAS  OBJECT IDENTIFIER ::=

+	{gsm-NetworkId as-Id map-DialoguePDU (1) version1 (1)}

+

+MAP-DialoguePDU ::= CHOICE {

+	map-open		[0] MAP-OpenInfo,

+	map-accept	[1] MAP-AcceptInfo,

+	map-close		[2] MAP-CloseInfo,

+	map-refuse	[3] MAP-RefuseInfo,

+	map-userAbort	[4] MAP-UserAbortInfo,

+	map-providerAbort	[5] MAP-ProviderAbortInfo}

+

+MAP-OpenInfo ::= SEQUENCE {

+	destinationReference	[0] AddressString	OPTIONAL,

+	originationReference	[1] AddressString	OPTIONAL,

+	...,

+	extensionContainer	ExtensionContainer	OPTIONAL

+	-- extensionContainer must not be used in version 2

+	}

+

+MAP-AcceptInfo ::= SEQUENCE {

+	...,

+	extensionContainer	ExtensionContainer	OPTIONAL

+	-- extensionContainer must not be used in version 2

+	}

+

+MAP-CloseInfo ::= SEQUENCE {

+	...,

+	extensionContainer	ExtensionContainer	OPTIONAL

+	-- extensionContainer must not be used in version 2

+	}

+

+MAP-RefuseInfo ::= SEQUENCE {

+	reason	Reason,

+	...,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	-- extensionContainer must not be used in version 2

+	alternativeApplicationContext	OBJECT IDENTIFIER	OPTIONAL

+	-- alternativeApplicationContext must not be used in version 2

+	}

+

+Reason ::= ENUMERATED {

+	noReasonGiven	(0),

+	invalidDestinationReference	(1),

+	invalidOriginatingReference	(2),

+	encapsulatedAC-NotSupported	(3) ,

+	transportProtectionNotAdequate	(4)}

+	-- encapsulatedAC-NotSupported and transportProtectionNotAdequate must not be used in 

+	-- dialogues with an AC different from secureTransportHandling

+

+MAP-UserAbortInfo ::= SEQUENCE {

+	map-UserAbortChoice	MAP-UserAbortChoice,

+	...,

+	extensionContainer	ExtensionContainer	OPTIONAL

+	-- extensionContainer must not be used in version 2

+	}

+

+MAP-UserAbortChoice ::= CHOICE {

+	userSpecificReason	[0] NULL,

+	userResourceLimitation	[1] NULL,

+	resourceUnavailable	[2] ResourceUnavailableReason,

+	applicationProcedureCancellation	[3] ProcedureCancellationReason}

+

+ResourceUnavailableReason ::= ENUMERATED {

+	shortTermResourceLimitation  (0),

+	longTermResourceLimitation  (1)}

+

+ProcedureCancellationReason ::= ENUMERATED {

+	handoverCancellation  (0),

+	radioChannelRelease  (1),

+	networkPathRelease  (2),

+	callRelease  (3),

+	associatedProcedureFailure  (4),

+	tandemDialogueRelease  (5),

+	remoteOperationsFailure  (6)}

+

+MAP-ProviderAbortInfo ::= SEQUENCE {

+	map-ProviderAbortReason	MAP-ProviderAbortReason,

+	...,

+	extensionContainer	ExtensionContainer	OPTIONAL

+	-- extensionContainer must not be used in version 2

+	}

+

+MAP-ProviderAbortReason ::= ENUMERATED {

+	abnormalDialogue  (0),

+	invalidPDU  (1)}

+

+-- abstract syntax name for MAP-ProtectedDialoguePDU

+

+map-ProtectedDialogueAS  OBJECT IDENTIFIER ::=

+	{gsm-NetworkId as-Id map-ProtectedDialoguePDU (3) version1 (1)}

+

+MAP-ProtectedDialoguePDU ::= SEQUENCE {

+	encapsulatedAC	OBJECT IDENTIFIER,

+	securityHeader	SecurityHeader	OPTIONAL,

+	protectedPayload	ProtectedPayload	OPTIONAL,

+	...}

+	-- The protectedPayload carries the result of applying the security function 

+	-- defined in 3GPP TS 33.200 to the encoding of the securely transported 

+	-- MAP-DialoguePDU

+

+END

diff --git a/asn1/MAP-ER-DataTypes.asn b/asn1/MAP-ER-DataTypes.asn
new file mode 100644
index 0000000..b66702c
--- /dev/null
+++ b/asn1/MAP-ER-DataTypes.asn
@@ -0,0 +1,405 @@
+MAP-ER-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-ER-DataTypes (17) version9 (9)}

+

+DEFINITIONS

+

+IMPLICIT TAGS

+

+::=

+

+BEGIN

+

+EXPORTS

+	RoamingNotAllowedParam,

+	CallBarredParam,

+	CUG-RejectParam,

+	SS-IncompatibilityCause,

+	PW-RegistrationFailureCause,

+	SM-DeliveryFailureCause,

+	SystemFailureParam,

+	DataMissingParam,

+	UnexpectedDataParam,

+	FacilityNotSupParam,

+	OR-NotAllowedParam,

+	UnknownSubscriberParam,

+	NumberChangedParam,

+	UnidentifiedSubParam,

+	IllegalSubscriberParam,

+	IllegalEquipmentParam,

+	BearerServNotProvParam,

+	TeleservNotProvParam,

+	TracingBufferFullParam,

+	NoRoamingNbParam,

+	AbsentSubscriberParam,

+	BusySubscriberParam,

+	NoSubscriberReplyParam,

+	ForwardingViolationParam,

+	ForwardingFailedParam, 

+	ATI-NotAllowedParam,

+	SubBusyForMT-SMS-Param,

+	MessageWaitListFullParam,

+	AbsentSubscriberSM-Param,

+	AbsentSubscriberDiagnosticSM,

+	ResourceLimitationParam,

+	NoGroupCallNbParam,

+	IncompatibleTerminalParam,

+	ShortTermDenialParam,

+	LongTermDenialParam,

+	UnauthorizedRequestingNetwork-Param,

+	UnauthorizedLCSClient-Param,

+	PositionMethodFailure-Param,

+	UnknownOrUnreachableLCSClient-Param,

+	MM-EventNotSupported-Param,

+	SecureTransportErrorParam,

+	ATSI-NotAllowedParam,

+	ATM-NotAllowedParam,

+	IllegalSS-OperationParam,

+	SS-NotAvailableParam,

+	SS-SubscriptionViolationParam,

+	InformationNotAvailableParam,

+	TargetCellOutsideGCA-Param

+

+;

+

+IMPORTS

+	SS-Status

+FROM MAP-SS-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-SS-DataTypes (14) version9 (9)}

+

+	SignalInfo,

+	BasicServiceCode,

+	NetworkResource,

+	AdditionalNetworkResource

+FROM MAP-CommonDataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}

+

+	SecurityHeader,

+	ProtectedPayload

+FROM MAP-ST-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-ST-DataTypes (27) version9 (9)}

+

+

+	SS-Code

+FROM MAP-SS-Code {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-SS-Code (15) version9 (9)}

+

+	ExtensionContainer

+FROM MAP-ExtensionDataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}

+;

+

+RoamingNotAllowedParam ::= SEQUENCE {

+	roamingNotAllowedCause	RoamingNotAllowedCause,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+RoamingNotAllowedCause ::= ENUMERATED {

+	plmnRoamingNotAllowed  (0),

+	operatorDeterminedBarring  (3)}

+

+CallBarredParam ::= CHOICE {

+	callBarringCause	CallBarringCause,

+	-- call BarringCause must not be used in version 3 and higher

+	extensibleCallBarredParam	ExtensibleCallBarredParam

+	-- extensibleCallBarredParam must not be used in version <3

+	}

+

+CallBarringCause ::= ENUMERATED {

+	barringServiceActive  (0),

+	operatorBarring  (1)}

+

+ExtensibleCallBarredParam ::= SEQUENCE {

+	callBarringCause	CallBarringCause	OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	... ,

+	unauthorisedMessageOriginator	[1] NULL		OPTIONAL }

+

+CUG-RejectParam ::= SEQUENCE {

+	cug-RejectCause	CUG-RejectCause	OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+CUG-RejectCause ::= ENUMERATED {

+	incomingCallsBarredWithinCUG  (0),

+	subscriberNotMemberOfCUG  (1),

+	requestedBasicServiceViolatesCUG-Constraints  (5),

+	calledPartySS-InteractionViolation  (7)}

+

+SS-IncompatibilityCause ::= SEQUENCE {

+	ss-Code		[1] SS-Code	OPTIONAL,

+	basicService	BasicServiceCode	OPTIONAL,

+	ss-Status		[4] SS-Status	OPTIONAL,

+	...}

+

+PW-RegistrationFailureCause ::= ENUMERATED {

+	undetermined  (0),

+	invalidFormat  (1),

+	newPasswordsMismatch  (2)}

+

+SM-EnumeratedDeliveryFailureCause ::= ENUMERATED {

+	memoryCapacityExceeded  (0),

+	equipmentProtocolError  (1),

+	equipmentNotSM-Equipped  (2),

+	unknownServiceCentre  (3),

+	sc-Congestion  (4),

+	invalidSME-Address  (5),

+	subscriberNotSC-Subscriber  (6)}

+

+SM-DeliveryFailureCause ::= SEQUENCE {

+	sm-EnumeratedDeliveryFailureCause	SM-EnumeratedDeliveryFailureCause,

+	diagnosticInfo	SignalInfo	OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+AbsentSubscriberSM-Param ::= SEQUENCE {

+	absentSubscriberDiagnosticSM	AbsentSubscriberDiagnosticSM	OPTIONAL,

+	-- AbsentSubscriberDiagnosticSM can be either for non-GPRS 

+	-- or for GPRS

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...,

+	additionalAbsentSubscriberDiagnosticSM  	[0] 	AbsentSubscriberDiagnosticSM	OPTIONAL }

+	-- if received, additionalAbsentSubscriberDiagnosticSM 

+	-- is for GPRS and absentSubscriberDiagnosticSM is 

+	-- for non-GPRS

+

+AbsentSubscriberDiagnosticSM ::= INTEGER (0..255)

+	-- AbsentSubscriberDiagnosticSM values are defined in 3GPP TS 23.040

+

+SystemFailureParam ::= CHOICE {

+	networkResource	NetworkResource,

+	-- networkResource must not be used in version 3

+	extensibleSystemFailureParam	ExtensibleSystemFailureParam

+	-- extensibleSystemFailureParam must not be used in version <3

+	}

+

+ExtensibleSystemFailureParam ::= SEQUENCE {

+	networkResource	NetworkResource	OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...,

+	additionalNetworkResource	[0] AdditionalNetworkResource	OPTIONAL }

+

+DataMissingParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+UnexpectedDataParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+FacilityNotSupParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...,

+	shapeOfLocationEstimateNotSupported [0]	NULL		OPTIONAL,

+	neededLcsCapabilityNotSupportedInServingNode [1] NULL	OPTIONAL }

+

+OR-NotAllowedParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+UnknownSubscriberParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...,

+	unknownSubscriberDiagnostic	UnknownSubscriberDiagnostic	OPTIONAL}

+

+UnknownSubscriberDiagnostic ::= ENUMERATED {

+	imsiUnknown  (0),

+	gprsSubscriptionUnknown  (1),

+	...,

+	npdbMismatch  (2)}

+	-- if unknown values are received in 	

+	-- UnknownSubscriberDiagnostic they shall be discarded

+

+NumberChangedParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+UnidentifiedSubParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+IllegalSubscriberParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+IllegalEquipmentParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+BearerServNotProvParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+TeleservNotProvParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+TracingBufferFullParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+NoRoamingNbParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+AbsentSubscriberParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...,

+	absentSubscriberReason	[0] AbsentSubscriberReason	OPTIONAL}

+

+AbsentSubscriberReason ::= ENUMERATED {

+	imsiDetach (0),

+	restrictedArea (1),

+	noPageResponse (2),

+	... ,

+	purgedMS (3)}

+-- exception handling: at reception of other values than the ones listed the 

+-- AbsentSubscriberReason shall be ignored. 

+-- The AbsentSubscriberReason: purgedMS is defined for the Super-Charger feature 

+-- (see TS 23.116). If this value is received in a Provide Roaming Number response

+-- it shall be mapped to the AbsentSubscriberReason: imsiDetach in the Send Routeing

+-- Information response

+

+BusySubscriberParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...,

+	ccbs-Possible	[0] NULL		OPTIONAL,

+	ccbs-Busy		[1] NULL		OPTIONAL}

+

+NoSubscriberReplyParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+ForwardingViolationParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+ForwardingFailedParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+ATI-NotAllowedParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+ATSI-NotAllowedParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+ATM-NotAllowedParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+IllegalSS-OperationParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+SS-NotAvailableParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+SS-SubscriptionViolationParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+InformationNotAvailableParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+SubBusyForMT-SMS-Param ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	... ,

+	gprsConnectionSuspended	NULL			OPTIONAL }

+	-- If GprsConnectionSuspended is not understood it shall 

+	-- be discarded

+

+MessageWaitListFullParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+ResourceLimitationParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+NoGroupCallNbParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+IncompatibleTerminalParam ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+ShortTermDenialParam ::= SEQUENCE {

+	...}

+

+LongTermDenialParam ::= SEQUENCE {

+	...}

+

+UnauthorizedRequestingNetwork-Param ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+UnauthorizedLCSClient-Param ::= SEQUENCE {

+	unauthorizedLCSClient-Diagnostic	[0] UnauthorizedLCSClient-Diagnostic	OPTIONAL,

+	extensionContainer	[1] ExtensionContainer			OPTIONAL,

+	... }

+

+UnauthorizedLCSClient-Diagnostic ::= ENUMERATED {

+	noAdditionalInformation (0),

+	clientNotInMSPrivacyExceptionList (1),

+	callToClientNotSetup (2),

+	privacyOverrideNotApplicable (3),

+	disallowedByLocalRegulatoryRequirements (4),

+	...,

+	unauthorizedPrivacyClass (5),

+	unauthorizedCallSessionUnrelatedExternalClient (6),

+	unauthorizedCallSessionRelatedExternalClient (7) }

+--	exception handling:

+--	any unrecognized value shall be ignored

+

+PositionMethodFailure-Param ::= SEQUENCE {

+	positionMethodFailure-Diagnostic	[0] PositionMethodFailure-Diagnostic	OPTIONAL,

+	extensionContainer	[1] ExtensionContainer			OPTIONAL,

+	... }

+

+PositionMethodFailure-Diagnostic ::= ENUMERATED {

+	congestion  (0),

+	insufficientResources  (1),

+	insufficientMeasurementData  (2),

+	inconsistentMeasurementData  (3),

+	locationProcedureNotCompleted  (4),

+	locationProcedureNotSupportedByTargetMS  (5),

+	qoSNotAttainable  (6),

+	positionMethodNotAvailableInNetwork	(7),

+	positionMethodNotAvailableInLocationArea	(8),

+	... }

+--	exception handling:

+--	any unrecognized value shall be ignored

+

+UnknownOrUnreachableLCSClient-Param ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+MM-EventNotSupported-Param ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+TargetCellOutsideGCA-Param ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	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 securely transported error 

+	-- parameter

+

+

+END

diff --git a/asn1/MAP-Errors.asn b/asn1/MAP-Errors.asn
new file mode 100644
index 0000000..f0aa2b0
--- /dev/null
+++ b/asn1/MAP-Errors.asn
@@ -0,0 +1,507 @@
+MAP-Errors {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-Errors (10) version9 (9)}

+

+DEFINITIONS

+

+::=

+

+BEGIN

+

+EXPORTS

+

+	-- generic errors

+	systemFailure,

+	dataMissing,

+	unexpectedDataValue,

+	facilityNotSupported,

+	incompatibleTerminal,

+	resourceLimitation,

+

+	-- identification and numbering errors

+	unknownSubscriber,

+	numberChanged,

+	unknownMSC,

+	unidentifiedSubscriber,

+	unknownEquipment,

+

+	-- subscription errors

+	roamingNotAllowed,

+	illegalSubscriber,

+	illegalEquipment,

+	bearerServiceNotProvisioned,

+	teleserviceNotProvisioned,

+

+	-- handover errors

+	noHandoverNumberAvailable,

+	subsequentHandoverFailure, 

+	targetCellOutsideGroupCallArea,

+

+	-- operation and maintenance errors

+	tracingBufferFull,

+

+	-- call handling errors

+	or-NotAllowed,

+	noRoamingNumberAvailable,

+	busySubscriber,

+	noSubscriberReply,

+	absentSubscriber,

+	callBarred,

+	forwardingViolation,

+	forwardingFailed,

+	cug-Reject,

+

+	-- any time interrogation errors

+	ati-NotAllowed,

+

+	-- any time information handling errors

+	atsi-NotAllowed,

+	atm-NotAllowed,

+	informationNotAvailable,

+

+	-- supplementary service errors

+	illegalSS-Operation,

+	ss-ErrorStatus,

+	ss-NotAvailable,

+	ss-SubscriptionViolation,

+	ss-Incompatibility,

+	unknownAlphabet,

+	ussd-Busy,

+	pw-RegistrationFailure,

+	negativePW-Check,

+	numberOfPW-AttemptsViolation,

+	shortTermDenial,

+	longTermDenial,

+

+	-- short message service errors

+	subscriberBusyForMT-SMS,

+	sm-DeliveryFailure,

+	messageWaitingListFull,

+	absentSubscriberSM,

+

+	-- Group Call errors

+	noGroupCallNumberAvailable,

+

+	-- location service errors

+	unauthorizedRequestingNetwork,

+	unauthorizedLCSClient,

+	positionMethodFailure,

+	unknownOrUnreachableLCSClient,

+

+	-- Mobility Management errors

+	mm-EventNotSupported,

+

+	-- Secure transport errors

+	secureTransportError

+

+;

+

+IMPORTS

+	ERROR

+FROM Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4)

+  informationObjects(5) version1(0) }

+

+	SS-Status

+FROM MAP-SS-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-SS-DataTypes (14) version9 (9)}

+

+	SS-IncompatibilityCause,

+	PW-RegistrationFailureCause,

+	SM-DeliveryFailureCause,

+	SystemFailureParam,

+	DataMissingParam,

+	UnexpectedDataParam,

+	FacilityNotSupParam,

+	UnknownSubscriberParam,

+	NumberChangedParam,

+	UnidentifiedSubParam,

+	RoamingNotAllowedParam,

+	IllegalSubscriberParam,

+	IllegalEquipmentParam,

+	BearerServNotProvParam,

+	TeleservNotProvParam,

+	TracingBufferFullParam,

+	NoRoamingNbParam,

+	OR-NotAllowedParam,

+	AbsentSubscriberParam,

+	BusySubscriberParam,

+	NoSubscriberReplyParam,

+	CallBarredParam,

+	ForwardingViolationParam,

+	ForwardingFailedParam,

+	CUG-RejectParam, 

+	ATI-NotAllowedParam,

+	SubBusyForMT-SMS-Param,

+	MessageWaitListFullParam,

+	AbsentSubscriberSM-Param,

+	ResourceLimitationParam,

+	NoGroupCallNbParam,

+	IncompatibleTerminalParam,

+	ShortTermDenialParam,

+	LongTermDenialParam,

+	UnauthorizedRequestingNetwork-Param,

+	UnauthorizedLCSClient-Param,

+	PositionMethodFailure-Param,

+	UnknownOrUnreachableLCSClient-Param,

+	MM-EventNotSupported-Param,

+	ATSI-NotAllowedParam,

+	ATM-NotAllowedParam,

+	IllegalSS-OperationParam,

+	SS-NotAvailableParam,

+	SS-SubscriptionViolationParam,

+	InformationNotAvailableParam,

+	TargetCellOutsideGCA-Param,

+	SecureTransportErrorParam

+FROM MAP-ER-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-ER-DataTypes (17) version9 (9)}

+;

+

+-- generic errors

+

+systemFailure  ERROR ::= {

+	PARAMETER

+		SystemFailureParam

+		-- optional

+	CODE	local:34 }

+

+dataMissing  ERROR ::= {

+	PARAMETER

+		DataMissingParam

+		-- optional

+		-- DataMissingParam must not be used in version <3

+	CODE	local:35 }

+

+unexpectedDataValue  ERROR ::= {

+	PARAMETER

+		UnexpectedDataParam

+		-- optional

+		-- UnexpectedDataParam must not be used in version <3

+	CODE	local:36 }

+

+facilityNotSupported  ERROR ::= {

+	PARAMETER

+		FacilityNotSupParam

+		-- optional

+		-- FacilityNotSupParam must not be used in version <3

+	CODE	local:21 }

+

+incompatibleTerminal  ERROR ::= {

+	PARAMETER

+		IncompatibleTerminalParam

+		-- optional

+	CODE	local:28 }

+

+resourceLimitation  ERROR ::= {

+	PARAMETER

+		ResourceLimitationParam

+		-- optional

+	CODE	local:51 }

+

+-- identification and numbering errors

+

+unknownSubscriber  ERROR ::= {

+	PARAMETER

+		UnknownSubscriberParam

+		-- optional

+		-- UnknownSubscriberParam must not be used in version <3

+	CODE	local:1 }

+

+numberChanged  ERROR ::= {

+	PARAMETER

+		NumberChangedParam

+		-- optional

+	CODE	local:44 }

+

+unknownMSC  ERROR ::= {

+	CODE	local:3 }

+

+unidentifiedSubscriber  ERROR ::= {

+	PARAMETER

+		UnidentifiedSubParam

+		-- optional

+		-- UunidentifiedSubParam must not be used in version <3

+	CODE	local:5 }

+

+unknownEquipment  ERROR ::= {

+	CODE	local:7 }

+

+-- subscription errors

+

+roamingNotAllowed  ERROR ::= {

+	PARAMETER

+		RoamingNotAllowedParam

+	CODE	local:8 }

+

+illegalSubscriber  ERROR ::= {

+	PARAMETER

+		IllegalSubscriberParam

+		-- optional

+		-- IllegalSubscriberParam must not be used in version <3

+	CODE	local:9 }

+

+illegalEquipment  ERROR ::= {

+	PARAMETER

+		IllegalEquipmentParam

+		-- optional

+		-- IllegalEquipmentParam must not be used in version <3

+	CODE	local:12 }

+

+bearerServiceNotProvisioned  ERROR ::= {

+	PARAMETER

+		BearerServNotProvParam

+		-- optional

+		-- BearerServNotProvParam must not be used in version <3

+	CODE	local:10 }

+

+teleserviceNotProvisioned  ERROR ::= {

+	PARAMETER

+		TeleservNotProvParam

+		-- optional

+		-- TeleservNotProvParam must not be used in version <3

+	CODE	local:11 }

+

+-- handover errors

+

+noHandoverNumberAvailable  ERROR ::= {

+	CODE	local:25 }

+

+subsequentHandoverFailure  ERROR ::= {

+	CODE	local:26 }

+

+targetCellOutsideGroupCallArea  ERROR ::= {

+	PARAMETER

+		TargetCellOutsideGCA-Param

+		-- optional

+	CODE	local:42 }

+

+-- operation and maintenance errors

+

+tracingBufferFull  ERROR ::= {

+	PARAMETER

+		TracingBufferFullParam

+		-- optional

+	CODE	local: 40 }

+

+-- call handling errors

+

+noRoamingNumberAvailable  ERROR ::= {

+	PARAMETER

+		NoRoamingNbParam

+		-- optional

+	CODE	local:39 }

+

+absentSubscriber  ERROR ::= {

+	PARAMETER

+		AbsentSubscriberParam

+		-- optional

+		-- AbsentSubscriberParam must not be used in version <3

+	CODE	local:27 }

+

+busySubscriber  ERROR ::= {

+	PARAMETER

+		BusySubscriberParam

+		-- optional

+	CODE	local:45 }

+

+noSubscriberReply  ERROR ::= {

+	PARAMETER

+		NoSubscriberReplyParam

+		-- optional

+	CODE	local:46 }

+

+callBarred  ERROR ::= {

+	PARAMETER

+		CallBarredParam

+		-- optional

+	CODE	local:13 }

+

+forwardingViolation  ERROR ::= {

+	PARAMETER

+		ForwardingViolationParam

+		-- optional

+	CODE	local:14 }

+

+forwardingFailed  ERROR ::= {

+	PARAMETER

+		ForwardingFailedParam

+		-- optional

+	CODE	local:47 }

+

+cug-Reject  ERROR ::= {

+	PARAMETER

+		CUG-RejectParam

+		-- optional

+	CODE	local:15 }

+

+or-NotAllowed  ERROR ::= {

+	PARAMETER

+		OR-NotAllowedParam

+		-- optional

+	CODE	local:48 }

+

+-- any time interrogation errors

+ati-NotAllowed  ERROR ::= {

+	PARAMETER

+		ATI-NotAllowedParam

+		-- optional

+	CODE	local:49 }

+

+-- any time information handling errors

+atsi-NotAllowed  ERROR ::= {

+	PARAMETER

+		ATSI-NotAllowedParam

+		-- optional

+	CODE	local:60 }

+

+atm-NotAllowed  ERROR ::= {

+	PARAMETER

+		ATM-NotAllowedParam

+		-- optional

+	CODE	local:61 }

+

+informationNotAvailable  ERROR ::= {

+	PARAMETER

+		InformationNotAvailableParam

+		-- optional

+	CODE	local:62 }

+

+-- supplementary service errors

+

+illegalSS-Operation  ERROR ::= {

+	PARAMETER

+		IllegalSS-OperationParam

+		-- optional

+		-- IllegalSS-OperationParam must not be used in version <3

+	CODE	local:16 }

+

+ss-ErrorStatus  ERROR ::= {

+	PARAMETER

+		SS-Status

+		-- optional

+	CODE	local:17 }

+

+ss-NotAvailable  ERROR ::= {

+	PARAMETER

+		SS-NotAvailableParam

+		-- optional

+		-- SS-NotAvailableParam must not be used in version <3

+	CODE	local:18 }

+

+ss-SubscriptionViolation  ERROR ::= {

+	PARAMETER

+		SS-SubscriptionViolationParam

+		-- optional

+		-- SS-SubscriptionViolationParam must not be used in version <3

+	CODE	local:19 }

+

+ss-Incompatibility  ERROR ::= {

+	PARAMETER

+		SS-IncompatibilityCause

+		-- optional

+	CODE	local:20 }

+

+unknownAlphabet  ERROR ::= {

+	CODE	local:71 }

+

+ussd-Busy  ERROR ::= {

+	CODE	local:72 }

+

+pw-RegistrationFailure  ERROR ::= {

+	PARAMETER

+		PW-RegistrationFailureCause

+	CODE	local:37 }

+

+negativePW-Check  ERROR ::= {

+	CODE	local:38 }

+

+numberOfPW-AttemptsViolation  ERROR ::= {

+	CODE	local:43 }

+

+shortTermDenial  ERROR ::= {

+	PARAMETER

+		ShortTermDenialParam

+		-- optional

+	CODE	local:29 }

+

+longTermDenial  ERROR ::= {

+	PARAMETER

+		LongTermDenialParam

+		-- optional

+	CODE	local:30 }

+

+-- short message service errors

+

+subscriberBusyForMT-SMS  ERROR ::= {

+	PARAMETER

+		SubBusyForMT-SMS-Param

+		-- optional

+	CODE	local:31 }

+

+sm-DeliveryFailure  ERROR ::= {

+	PARAMETER

+		SM-DeliveryFailureCause

+	CODE	local:32 }

+

+messageWaitingListFull  ERROR ::= {

+	PARAMETER

+		MessageWaitListFullParam

+		-- optional

+	CODE	local:33 }

+

+absentSubscriberSM  ERROR ::= {

+	PARAMETER

+		AbsentSubscriberSM-Param

+		-- optional

+	CODE	local:6 }

+

+-- Group Call errors

+

+noGroupCallNumberAvailable  ERROR ::= {

+	PARAMETER

+		NoGroupCallNbParam

+		-- optional

+	CODE	local:50 }

+

+-- location service errors

+

+unauthorizedRequestingNetwork  ERROR ::= {

+	PARAMETER

+		UnauthorizedRequestingNetwork-Param

+		-- optional

+	CODE	local:52 }

+

+unauthorizedLCSClient  ERROR ::= {

+	PARAMETER

+		UnauthorizedLCSClient-Param

+		-- optional

+	CODE	local:53 }

+

+positionMethodFailure  ERROR ::= {

+	PARAMETER

+		PositionMethodFailure-Param

+		-- optional

+	CODE	local:54 }

+

+unknownOrUnreachableLCSClient  ERROR ::= {

+	PARAMETER

+		UnknownOrUnreachableLCSClient-Param

+		-- optional

+	CODE	local:58 }

+

+mm-EventNotSupported  ERROR ::= {

+	PARAMETER

+		MM-EventNotSupported-Param

+		-- optional

+	CODE	local:59 }

+

+	-- Secure transport errors

+

+secureTransportError  ERROR ::= {

+	PARAMETER

+		SecureTransportErrorParam

+	CODE	local:4 }

+

+

+END

diff --git a/asn1/MAP-ExtensionDataTypes.asn b/asn1/MAP-ExtensionDataTypes.asn
new file mode 100644
index 0000000..ab4cb9c
--- /dev/null
+++ b/asn1/MAP-ExtensionDataTypes.asn
@@ -0,0 +1,65 @@
+MAP-ExtensionDataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}

+

+DEFINITIONS

+

+IMPLICIT TAGS

+

+::=

+

+BEGIN

+

+EXPORTS

+

+	PrivateExtension,

+	ExtensionContainer,

+	SLR-ArgExtensionContainer;

+

+

+-- IOC for private MAP extensions

+

+

+MAP-EXTENSION  ::= CLASS {

+	&ExtensionType				OPTIONAL,

+	&extensionId 	OBJECT IDENTIFIER }

+	-- The length of the Object Identifier shall not exceed 16 octets and the

+	-- number of components of the Object Identifier shall not exceed 16

+

+-- data types

+

+ExtensionContainer ::= SEQUENCE {

+	privateExtensionList	[0]PrivateExtensionList	OPTIONAL, 

+	pcs-Extensions	[1]PCS-Extensions	OPTIONAL,

+	...}

+

+SLR-ArgExtensionContainer ::= SEQUENCE {

+	privateExtensionList	[0]PrivateExtensionList	OPTIONAL, 

+	slr-Arg-PCS-Extensions	[1]SLR-Arg-PCS-Extensions	OPTIONAL,

+	...}

+

+PrivateExtensionList ::= SEQUENCE SIZE (1..maxNumOfPrivateExtensions) OF

+				PrivateExtension

+

+PrivateExtension ::= SEQUENCE {

+	extId		MAP-EXTENSION.&extensionId

+				({ExtensionSet}),

+	extType		MAP-EXTENSION.&ExtensionType

+				({ExtensionSet}{@extId})	OPTIONAL}

+

+maxNumOfPrivateExtensions  INTEGER ::= 10

+

+ExtensionSet		MAP-EXTENSION ::=

+		{...

+		 -- ExtensionSet is the set of all defined private extensions

+	}

+	-- Unsupported private extensions shall be discarded if received.

+

+PCS-Extensions ::= SEQUENCE {

+	...}

+

+SLR-Arg-PCS-Extensions ::= SEQUENCE {

+	...,

+	na-ESRK-Request	[0]	NULL		OPTIONAL }

+

+END

diff --git a/asn1/MAP-GR-DataTypes.asn b/asn1/MAP-GR-DataTypes.asn
new file mode 100644
index 0000000..8ceeea1
--- /dev/null
+++ b/asn1/MAP-GR-DataTypes.asn
@@ -0,0 +1,122 @@
+MAP-GR-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-GR-DataTypes (23) version9 (9)}

+

+DEFINITIONS

+

+IMPLICIT TAGS

+

+::=

+

+BEGIN

+

+EXPORTS

+	PrepareGroupCallArg,

+	PrepareGroupCallRes,

+	SendGroupCallEndSignalArg,

+	SendGroupCallEndSignalRes,

+	ForwardGroupCallSignallingArg,

+	ProcessGroupCallSignallingArg

+;

+

+IMPORTS

+	ISDN-AddressString,

+	IMSI,

+	EMLPP-Priority,

+	ASCI-CallReference

+FROM MAP-CommonDataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}

+

+	Ext-TeleserviceCode

+FROM MAP-TS-Code {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-TS-Code (19) version9 (9)}

+

+	Kc

+FROM MAP-MS-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-MS-DataTypes (11) version9 (9)}

+

+	ExtensionContainer

+FROM MAP-ExtensionDataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}

+;

+

+

+PrepareGroupCallArg ::= SEQUENCE {

+	teleservice	Ext-TeleserviceCode,

+	asciCallReference	ASCI-CallReference,

+	codec-Info	CODEC-Info,

+	cipheringAlgorithm	CipheringAlgorithm,

+	groupKeyNumber	[0] GroupKeyNumber	OPTIONAL,

+	groupKey		[1] Kc		OPTIONAL,

+	priority		[2] EMLPP-Priority	OPTIONAL,

+	uplinkFree	[3] NULL		OPTIONAL,

+	extensionContainer	[4] ExtensionContainer	OPTIONAL,

+	...}

+

+PrepareGroupCallRes ::= SEQUENCE {

+	groupCallNumber	ISDN-AddressString,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+SendGroupCallEndSignalArg ::= SEQUENCE {

+	imsi			IMSI			OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+SendGroupCallEndSignalRes ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+ForwardGroupCallSignallingArg ::= SEQUENCE {

+	imsi			IMSI			OPTIONAL,

+	uplinkRequestAck	[0] NULL		OPTIONAL,

+	uplinkReleaseIndication	[1] NULL		OPTIONAL,

+	uplinkRejectCommand	[2] NULL		OPTIONAL,

+	uplinkSeizedCommand	[3] NULL		OPTIONAL,

+	uplinkReleaseCommand	[4] NULL		OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	..., 

+	stateAttributes	[5] StateAttributes	OPTIONAL }

+

+ProcessGroupCallSignallingArg ::= SEQUENCE {

+	uplinkRequest	[0] NULL		OPTIONAL,

+	uplinkReleaseIndication	[1] NULL		OPTIONAL,

+	releaseGroupCall	[2] NULL		OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+GroupKeyNumber ::= INTEGER (0..15)

+

+CODEC-Info ::= OCTET STRING (SIZE (5..10))

+	-- Refers to channel type

+	-- coded according to 3GPP TS 48.008 [49] and including Element identifier and Length	

+

+CipheringAlgorithm ::= OCTET STRING (SIZE (1))

+	-- Refers to 'permitted algorithms' in 'encryption information'

+	-- coded according to 3GPP TS 48.008 [49]:

+	

+	-- Bits 8-1 

+	-- 8765 4321

+	-- 0000 0001	No encryption

+	-- 0000 0010	GSM A5/1

+	-- 0000 0100	GSM A5/2

+	-- 0000 1000	GSM A5/3

+	-- 0001 0000	GSM A5/4

+	-- 0010 0000	GSM A5/5

+	-- 0100 0000	GSM A5/6

+	-- 1000 0000	GSM A5/7

+

+StateAttributes ::= SEQUENCE {

+	downlinkAttached			[5] NULL		OPTIONAL,

+	uplinkAttached			[6] NULL		OPTIONAL,

+	dualCommunication			[7] NULL		OPTIONAL,

+	callOriginator			[8] NULL		OPTIONAL }

+

+	-- Refers to 3GPP TS 44.068 for definitions of StateAttributes fields. 

+

+

+END

diff --git a/asn1/MAP-Group-Call-Operations.asn b/asn1/MAP-Group-Call-Operations.asn
new file mode 100644
index 0000000..55777fe
--- /dev/null
+++ b/asn1/MAP-Group-Call-Operations.asn
@@ -0,0 +1,72 @@
+MAP-Group-Call-Operations {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-Group-Call-Operations (22)

+   version9 (9)}

+

+DEFINITIONS

+

+::=

+

+BEGIN

+

+EXPORTS

+	prepareGroupCall,

+	sendGroupCallEndSignal,

+	forwardGroupCallSignalling,

+	processGroupCallSignalling

+;

+

+IMPORTS

+	OPERATION

+FROM Remote-Operations-Information-Objects {

+joint-iso-itu-t remote-operations(4)

+  informationObjects(5) version1(0)}

+

+	systemFailure,

+	unexpectedDataValue,

+	noGroupCallNumberAvailable

+FROM MAP-Errors {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-Errors (10) version9 (9)}

+

+	PrepareGroupCallArg,

+	PrepareGroupCallRes,

+	SendGroupCallEndSignalArg,

+	SendGroupCallEndSignalRes,

+	ForwardGroupCallSignallingArg,

+	ProcessGroupCallSignallingArg

+FROM MAP-GR-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-GR-DataTypes (23) version9 (9)}

+

+;

+

+prepareGroupCall  OPERATION ::= {				--Timer m

+	ARGUMENT

+		PrepareGroupCallArg

+	RESULT

+	PrepareGroupCallRes

+	ERRORS {

+		systemFailure |

+		noGroupCallNumberAvailable |

+		unexpectedDataValue}

+	CODE	local:39 }

+

+sendGroupCallEndSignal  OPERATION ::= {				--Timer l

+	ARGUMENT

+		SendGroupCallEndSignalArg

+	RESULT

+		SendGroupCallEndSignalRes

+	CODE	local:40 }

+

+processGroupCallSignalling  OPERATION ::= {				--Timer s

+	ARGUMENT

+		ProcessGroupCallSignallingArg

+	CODE	local:41 }

+

+forwardGroupCallSignalling  OPERATION ::= {				--Timer s

+	ARGUMENT

+		ForwardGroupCallSignallingArg

+	CODE	local:42 }

+

+END

diff --git a/asn1/MAP-LCS-DataTypes.asn b/asn1/MAP-LCS-DataTypes.asn
new file mode 100644
index 0000000..08962d6
--- /dev/null
+++ b/asn1/MAP-LCS-DataTypes.asn
@@ -0,0 +1,533 @@
+MAP-LCS-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-LCS-DataTypes (25) version9 (9)}

+

+DEFINITIONS

+IMPLICIT TAGS

+::=

+BEGIN

+

+EXPORTS

+	RoutingInfoForLCS-Arg,

+	RoutingInfoForLCS-Res,

+	ProvideSubscriberLocation-Arg,

+	ProvideSubscriberLocation-Res,

+	SubscriberLocationReport-Arg,

+	SubscriberLocationReport-Res,

+	LocationType, 

+	DeferredLocationEventType,

+	LCSClientName,

+	LCS-QoS,

+	Horizontal-Accuracy,

+	ResponseTime,

+	Ext-GeographicalInformation,

+	SupportedGADShapes,

+	Add-GeographicalInformation,

+	LCSRequestorID, 

+	LCS-ReferenceNumber,

+	LCSCodeword,

+	AreaEventInfo

+;

+

+IMPORTS

+	AddressString,

+	ISDN-AddressString,

+	IMEI,

+	IMSI,

+	LMSI,

+	SubscriberIdentity,

+	AgeOfLocationInformation,

+	LCSClientExternalID,

+	LCSClientInternalID,

+	LCSServiceTypeID,

+	CellGlobalIdOrServiceAreaIdOrLAI

+FROM MAP-CommonDataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}

+

+	ExtensionContainer

+FROM MAP-ExtensionDataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}

+

+	USSD-DataCodingScheme,

+	USSD-String

+FROM MAP-SS-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3)

+   map-SS-DataTypes (14) version9 (9)}

+

+	APN,

+	GSN-Address,

+	SupportedLCS-CapabilitySets

+FROM MAP-MS-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-MS-DataTypes (11) version9 (9)}

+

+	Additional-Number

+FROM MAP-SM-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-SM-DataTypes (16) version9 (9)}

+;

+

+

+RoutingInfoForLCS-Arg ::= SEQUENCE {

+	mlcNumber		[0] ISDN-AddressString,

+	targetMS		[1] SubscriberIdentity,

+	extensionContainer	[2] ExtensionContainer	OPTIONAL,

+	...}

+

+RoutingInfoForLCS-Res ::= SEQUENCE {

+	targetMS		[0] SubscriberIdentity,

+	lcsLocationInfo	[1] LCSLocationInfo,

+	extensionContainer	[2] ExtensionContainer	OPTIONAL,

+	...,

+	v-gmlc-Address	[3]	GSN-Address	OPTIONAL,

+	h-gmlc-Address	[4]	GSN-Address	OPTIONAL,

+	ppr-Address	[5]	GSN-Address	OPTIONAL,

+	additional-v-gmlc-Address	[6]	GSN-Address	OPTIONAL }

+

+LCSLocationInfo ::= SEQUENCE {

+	networkNode-Number	ISDN-AddressString,

+	-- NetworkNode-number can be either msc-number or sgsn-number

+	lmsi			[0] LMSI		OPTIONAL,

+	extensionContainer	[1] ExtensionContainer	OPTIONAL,

+	... ,

+	gprsNodeIndicator 	[2] NULL		OPTIONAL,

+	-- gprsNodeIndicator is set only if the SGSN number is sent as the Network Node Number

+	additional-Number	[3] Additional-Number	OPTIONAL,

+	supportedLCS-CapabilitySets	[4]	SupportedLCS-CapabilitySets	OPTIONAL,

+	additional-LCS-CapabilitySets	[5]	SupportedLCS-CapabilitySets	OPTIONAL

+	}

+

+ProvideSubscriberLocation-Arg ::= SEQUENCE {

+	locationType	LocationType,

+	mlc-Number	ISDN-AddressString,

+	lcs-ClientID	[0] LCS-ClientID	OPTIONAL,

+	privacyOverride	[1] NULL		OPTIONAL,

+	imsi			[2] IMSI		OPTIONAL,

+	msisdn		[3] ISDN-AddressString	OPTIONAL,

+	lmsi			[4] LMSI		OPTIONAL,

+	imei			[5] IMEI		OPTIONAL,

+	lcs-Priority	[6] LCS-Priority	OPTIONAL,

+	lcs-QoS		[7] LCS-QoS	OPTIONAL,

+	extensionContainer	[8] ExtensionContainer	OPTIONAL,

+	... ,

+	supportedGADShapes	[9]	SupportedGADShapes	OPTIONAL,

+	lcs-ReferenceNumber	[10]	LCS-ReferenceNumber	OPTIONAL,

+	lcsServiceTypeID	[11]	LCSServiceTypeID	OPTIONAL,

+	lcsCodeword	[12]	LCSCodeword	OPTIONAL,

+	lcs-PrivacyCheck	[13]	LCS-PrivacyCheck	OPTIONAL,

+	areaEventInfo	[14]	AreaEventInfo	OPTIONAL,

+	h-gmlc-Address	[15]	GSN-Address	OPTIONAL }

+

+	-- one of imsi or msisdn is mandatory

+	-- If a location estimate type indicates activate deferred location or cancel deferred 

+	-- location, a lcs-Reference number shall be included.

+

+LocationType ::= SEQUENCE {

+	locationEstimateType	[0] LocationEstimateType,

+	...,

+	deferredLocationEventType	[1] DeferredLocationEventType	OPTIONAL }

+

+LocationEstimateType ::= ENUMERATED {

+	currentLocation	(0),

+	currentOrLastKnownLocation	(1),

+	initialLocation	(2),

+	...,

+	activateDeferredLocation	(3),

+	cancelDeferredLocation	(4) }

+--	exception handling:

+--	a ProvideSubscriberLocation-Arg containing an unrecognized LocationEstimateType

+--	shall be rejected by the receiver with a return error cause of unexpected data value

+

+DeferredLocationEventType ::= BIT STRING {

+	msAvailable	(0) ,

+	enteringIntoArea	(1),

+	leavingFromArea	(2),

+	beingInsideArea	(3) } (SIZE (1..16)) 

+-- beingInsideArea is always treated as oneTimeEvent regardless of the possible value

+-- of occurrenceInfo inside areaEventInfo.

+-- exception handling:

+-- a ProvideSubscriberLocation-Arg containing other values than listed above in 

+-- DeferredLocationEventType shall be rejected by the receiver with a return error cause of 

+-- unexpected data value.

+

+LCS-ClientID ::= SEQUENCE {

+	lcsClientType	[0] LCSClientType,

+	lcsClientExternalID	[1] LCSClientExternalID	OPTIONAL,

+	lcsClientDialedByMS	[2] AddressString	OPTIONAL,

+	lcsClientInternalID	[3] LCSClientInternalID	OPTIONAL,

+	lcsClientName	[4] LCSClientName	OPTIONAL,

+	...,

+	lcsAPN		[5] APN		OPTIONAL,

+	lcsRequestorID	[6] LCSRequestorID	OPTIONAL }

+

+LCSClientType ::= ENUMERATED {

+	emergencyServices	(0),

+	valueAddedServices	(1),

+	plmnOperatorServices	(2),

+	lawfulInterceptServices	(3),

+	... }

+	--	exception handling:

+	--	unrecognized values may be ignored if the LCS client uses the privacy override

+	--	otherwise, an unrecognized value shall be treated as unexpected data by a receiver

+	--	a return error shall then be returned if received in a MAP invoke 

+

+LCSClientName ::= SEQUENCE {

+	dataCodingScheme	[0] USSD-DataCodingScheme,

+	nameString	[2] NameString,

+	...,

+	lcs-FormatIndicator	[3] LCS-FormatIndicator	OPTIONAL }

+

+-- The USSD-DataCodingScheme shall indicate use of the default alphabet through the

+-- following encoding

+--	bit	7 6 5 4 3 2 1 0

+--		0 0 0 0 1 1 1 1

+

+NameString ::= USSD-String (SIZE (1..maxNameStringLength))

+

+maxNameStringLength  INTEGER ::= 63

+

+LCSRequestorID ::= SEQUENCE {

+	dataCodingScheme	[0] USSD-DataCodingScheme,

+	requestorIDString	[1] RequestorIDString,

+	...,

+	lcs-FormatIndicator	[2] LCS-FormatIndicator	OPTIONAL }

+

+RequestorIDString ::= USSD-String (SIZE (1..maxRequestorIDStringLength))

+

+maxRequestorIDStringLength  INTEGER ::= 63

+

+LCS-FormatIndicator ::= ENUMERATED {

+	logicalName	(0),

+	e-mailAddress	(1),

+	msisdn		(2),

+	url			(3),

+	sipUrl		(4),

+	... }

+

+LCS-Priority ::= OCTET STRING (SIZE (1))

+	-- 0 = highest priority

+	-- 1 = normal priority

+	-- all other values treated as 1 

+

+LCS-QoS ::= SEQUENCE {

+	horizontal-accuracy	[0] Horizontal-Accuracy	OPTIONAL,

+	verticalCoordinateRequest	[1] NULL		OPTIONAL,

+	vertical-accuracy	[2] Vertical-Accuracy	OPTIONAL,	responseTime	[3] ResponseTime	OPTIONAL,

+	extensionContainer	[4] ExtensionContainer	OPTIONAL,

+	...}

+

+Horizontal-Accuracy ::= OCTET STRING (SIZE (1))

+	-- bit 8 = 0

+	-- bits 7-1 = 7 bit Uncertainty Code defined in 3GPP TS 23.032. The horizontal location 

+	-- error should be less than the error indicated by the uncertainty code with 67%

+	-- confidence.

+

+Vertical-Accuracy ::= OCTET STRING (SIZE (1))

+	-- bit 8 = 0

+	-- bits 7-1 = 7 bit Vertical Uncertainty Code defined in 3GPP TS 23.032. 

+	-- The vertical location error should be less than the error indicated 

+	-- by the uncertainty code with 67% confidence.

+

+ResponseTime ::= SEQUENCE {

+	responseTimeCategory	ResponseTimeCategory,

+	...}

+--	note: an expandable SEQUENCE simplifies later addition of a numeric response time.

+

+ResponseTimeCategory ::= ENUMERATED {

+	lowdelay  (0),

+	delaytolerant  (1),

+	... }

+--	exception handling:

+--	an unrecognized value shall be treated the same as value 1 (delaytolerant)

+

+SupportedGADShapes ::= BIT STRING {

+	ellipsoidPoint  (0),

+	ellipsoidPointWithUncertaintyCircle (1),

+	ellipsoidPointWithUncertaintyEllipse (2),

+	polygon (3),

+	ellipsoidPointWithAltitude (4),

+	ellipsoidPointWithAltitudeAndUncertaintyElipsoid (5),

+	ellipsoidArc  (6) } (SIZE (7..16))

+-- A node shall mark in the BIT STRING all Shapes defined in 3GPP TS 23.032 it supports.

+-- exception handling: bits 7 to 15 shall be ignored if received.

+

+LCS-ReferenceNumber::= OCTET STRING (SIZE(1))

+

+LCSCodeword ::= SEQUENCE {

+	dataCodingScheme	[0] USSD-DataCodingScheme,

+	lcsCodewordString	[1] LCSCodewordString,

+	...}

+

+LCSCodewordString ::= USSD-String (SIZE (1..maxLCSCodewordStringLength))

+

+maxLCSCodewordStringLength  INTEGER ::= 20

+

+LCS-PrivacyCheck ::= SEQUENCE {

+	callSessionUnrelated	[0] PrivacyCheckRelatedAction,

+	callSessionRelated	[1] PrivacyCheckRelatedAction	OPTIONAL,

+	...}

+

+PrivacyCheckRelatedAction ::= ENUMERATED {

+	allowedWithoutNotification (0),

+	allowedWithNotification (1),

+	allowedIfNoResponse (2),

+	restrictedIfNoResponse (3),

+	notAllowed (4),

+	...}

+--	exception handling:

+--	a ProvideSubscriberLocation-Arg containing an unrecognized PrivacyCheckRelatedAction

+--	shall be rejected by the receiver with a return error cause of unexpected data value

+

+AreaEventInfo ::= SEQUENCE {

+	areaDefinition	[0]	AreaDefinition,

+	occurrenceInfo	[1]	OccurrenceInfo	OPTIONAL,

+	intervalTime	[2]	IntervalTime	OPTIONAL,

+	...}

+

+AreaDefinition ::= SEQUENCE {

+	areaList		[0]	AreaList,

+	...}

+

+AreaList ::= SEQUENCE SIZE (1..maxNumOfAreas) OF Area

+

+maxNumOfAreas  INTEGER ::= 10

+

+Area ::= SEQUENCE {

+	areaType		[0]	AreaType,

+	areaIdentification	[1]	AreaIdentification,

+	...}

+

+AreaType ::= ENUMERATED {

+	countryCode	(0),

+	plmnId		(1),

+	locationAreaId	(2),

+	routingAreaId	(3),

+	cellGlobalId	(4),

+	...}

+

+AreaIdentification ::= OCTET STRING (SIZE (2..7))

+	-- The internal structure is defined as follows:

+	-- octet 1 bits 4321	Mobile Country Code 1st digit

+	--         bits 8765	Mobile Country Code 2nd digit

+	-- octet 2 bits 4321	Mobile Country Code 3rd digit

+	--         bits 8765	Mobile Network Code 3rd digit if 3 digit MNC included

+	--			or filler (1111)

+	-- octet 3 bits 4321	Mobile Network Code 1st digit

+	--         bits 8765	Mobile Network Code 2nd digit

+	-- octets 4 and 5	Location Area Code (LAC)

+	-- octet 6	Routing Area Code (RAC) for Routing Area Id

+	-- octets 6 and 7	Cell Identity (CI) for Cell Global Id

+

+OccurrenceInfo ::= ENUMERATED {

+	oneTimeEvent	(0),

+	multipleTimeEvent	(1),

+	...}

+

+IntervalTime ::= INTEGER (1..32767)

+	-- minimum interval time between area reports in seconds

+

+ProvideSubscriberLocation-Res ::= SEQUENCE {

+	locationEstimate	Ext-GeographicalInformation,

+	ageOfLocationEstimate	[0] AgeOfLocationInformation	OPTIONAL,

+	extensionContainer	[1] ExtensionContainer	OPTIONAL,

+	... ,

+	add-LocationEstimate	[2] Add-GeographicalInformation 	OPTIONAL,

+	deferredmt-lrResponseIndicator	[3] NULL		OPTIONAL,

+	geranPositioningData	[4] PositioningDataInformation	OPTIONAL,

+	utranPositioningData	[5] UtranPositioningDataInfo	OPTIONAL,

+	cellIdOrSai	[6] CellGlobalIdOrServiceAreaIdOrLAI	OPTIONAL,

+	sai-Present	[7] NULL		OPTIONAL }

+

+--	if deferredmt-lrResponseIndicator is set, locationEstimate is ignored.

+

+-- the add-LocationEstimate parameter shall not be sent to a node that did not indicate the

+-- geographic shapes supported in the ProvideSubscriberLocation-Arg

+-- The locationEstimate and the add-locationEstimate parameters shall not be sent if

+-- the supportedGADShapes parameter has been received in ProvideSubscriberLocation-Arg

+-- and the shape encoded in locationEstimate or add-LocationEstimate is not marked

+-- as supported in supportedGADShapes. In such a case ProvideSubscriberLocation

+-- shall be rejected with error FacilityNotSupported with additional indication

+-- shapeOfLocationEstimateNotSupported.

+-- sai-Present indicates that the cellIdOrSai parameter contains a Service Area Identity.

+

+Ext-GeographicalInformation ::= OCTET STRING (SIZE (1..maxExt-GeographicalInformation))

+	-- Refers to geographical Information defined in 3GPP TS 23.032.

+	-- This is composed of 1 or more octets with an internal structure according to

+	-- 3GPP TS 23.032

+	-- Octet 1: Type of shape, only the following shapes in 3GPP TS 23.032 are allowed:

+	--		(a) Ellipsoid point with uncertainty circle

+	--		(b) Ellipsoid point with uncertainty ellipse

+	--		(c) Ellipsoid point with altitude and uncertainty ellipsoid

+	--		(d) Ellipsoid Arc

+	--		(e) Ellipsoid Point

+	-- Any other value in octet 1 shall be treated as invalid

+	-- Octets 2 to 8 for case (a) - Ellipsoid point with uncertainty circle

+	--		Degrees of Latitude				3 octets

+	--		Degrees of Longitude				3 octets

+	--		Uncertainty code				1 octet

+	-- Octets 2 to 11 for case (b) - Ellipsoid point with uncertainty ellipse:

+	--		Degrees of Latitude				3 octets

+	--		Degrees of Longitude				3 octets

+	--		Uncertainty semi-major axis				1 octet

+	--		Uncertainty semi-minor axis				1 octet

+	--		Angle of major axis				1 octet

+	--		Confidence				1 octet

+	-- Octets 2 to 14 for case (c) - Ellipsoid point with altitude and uncertainty ellipsoid

+	--		Degrees of Latitude				3 octets

+	--		Degrees of Longitude				3 octets

+	--		Altitude				2 octets

+	--		Uncertainty semi-major axis				1 octet

+	--		Uncertainty semi-minor axis				1 octet

+	--		Angle of major axis				1 octet

+	--		Uncertainty altitude				1 octet

+	--		Confidence				1 octet

+	-- Octets 2 to 13 for case (d) - Ellipsoid Arc

+	--		Degrees of Latitude				3 octets

+	--		Degrees of Longitude				3 octets

+	--		Inner radius				2 octets

+	--		Uncertainty radius				1 octet

+	--		Offset angle				1 octet

+	--		Included angle				1 octet

+	--		Confidence				1 octet

+	-- Octets 2 to 7 for case (e) - Ellipsoid Point

+	--		Degrees of Latitude				3 octets

+	--		Degrees of Longitude				3 octets

+

+	--

+	-- An Ext-GeographicalInformation parameter comprising more than one octet and

+	-- containing any other shape or an incorrect number of octets or coding according

+	-- to 3GPP TS 23.032 shall be treated as invalid data by a receiver.

+	--

+	-- An Ext-GeographicalInformation parameter comprising one octet shall be discarded

+	-- by the receiver if an Add-GeographicalInformation parameter is received 

+	-- in the same message.

+	--

+	-- An Ext-GeographicalInformation parameter comprising one octet shall be treated as

+	-- invalid data by the receiver if an Add-GeographicalInformation parameter is not

+	-- received in the same message.

+

+maxExt-GeographicalInformation  INTEGER ::= 20

+	-- the maximum length allows for further shapes in 3GPP TS 23.032 to be included in later 

+	-- versions of 3GPP TS 29.002

+

+PositioningDataInformation ::= OCTET STRING (SIZE (2..maxPositioningDataInformation))

+	-- Refers to the Positioning Data defined in 3GPP TS 49.031.

+	-- This is composed of 2 or more octets with an internal structure according to

+	-- 3GPP TS 49.031. 

+

+maxPositioningDataInformation INTEGER ::= 10

+	-- 

+

+UtranPositioningDataInfo ::= OCTET STRING (SIZE (3..maxUtranPositioningDataInfo))

+	-- Refers to the Position Data defined in 3GPP TS 25.413.

+	-- This is composed of the positioningDataDiscriminator and the positioningDataSet

+	-- included in positionData as defined in 3GPP TS 25.413.

+

+maxUtranPositioningDataInfo INTEGER ::= 11

+	-- 

+

+Add-GeographicalInformation ::= OCTET STRING (SIZE (1..maxAdd-GeographicalInformation))

+	-- Refers to geographical Information defined in 3GPP TS 23.032.

+	-- This is composed of 1 or more octets with an internal structure according to 

+	-- 3GPP TS 23.032

+	-- Octet 1: Type of shape, all the shapes defined in 3GPP TS 23.032 are allowed:

+	-- Octets 2 to n (where n is the total number of octets necessary to encode the shape

+	-- according to 3GPP TS 23.032) are used to encode the shape itself in accordance with the

+	-- encoding defined in 3GPP TS 23.032

+	--

+	-- An Add-GeographicalInformation parameter, whether valid or invalid, received 

+	-- together with a valid Ext-GeographicalInformation parameter in the same message 

+	-- shall be discarded.

+	--

+	-- An Add-GeographicalInformation parameter containing any shape not defined in 

+	-- 3GPP TS 23.032 or an incorrect number of octets or coding according to 

+	-- 3GPP TS 23.032 shall be treated as invalid data by a receiver if not received 

+	-- together with a valid Ext-GeographicalInformation parameter in the same message.

+

+maxAdd-GeographicalInformation  INTEGER ::= 91

+	-- the maximum length allows support for all the shapes currently defined in 3GPP TS 23.032

+

+SubscriberLocationReport-Arg ::= SEQUENCE {

+	lcs-Event		LCS-Event,

+	lcs-ClientID	LCS-ClientID, 

+	lcsLocationInfo	LCSLocationInfo,

+	msisdn		[0] ISDN-AddressString	OPTIONAL,

+	imsi			[1] IMSI		OPTIONAL,

+	imei			[2] IMEI		OPTIONAL,

+	na-ESRD		[3] ISDN-AddressString	OPTIONAL,

+	na-ESRK		[4] ISDN-AddressString	OPTIONAL,

+	locationEstimate	[5] Ext-GeographicalInformation	OPTIONAL,

+	ageOfLocationEstimate	[6] AgeOfLocationInformation	OPTIONAL,

+	extensionContainer	[7] ExtensionContainer	OPTIONAL,

+	... ,

+	add-LocationEstimate	[8] Add-GeographicalInformation	OPTIONAL,

+	deferredmt-lrData	[9] Deferredmt-lrData	OPTIONAL, 

+	lcs-ReferenceNumber	[10] LCS-ReferenceNumber	OPTIONAL,

+	geranPositioningData	[11] PositioningDataInformation	OPTIONAL,

+	utranPositioningData	[12] UtranPositioningDataInfo	OPTIONAL,

+	na-ESRK-Request	[16]	NULL		OPTIONAL,

+	cellIdOrSai	[13]	CellGlobalIdOrServiceAreaIdOrLAI	OPTIONAL,

+	h-gmlc-Address	[14]	GSN-Address	OPTIONAL,

+	lcsServiceTypeID	[15]	LCSServiceTypeID	OPTIONAL,

+	sai-Present	[17] NULL		OPTIONAL }

+

+	-- one of msisdn or imsi is mandatory

+	-- a location estimate that is valid for the locationEstimate parameter should 

+	-- be transferred in this parameter in preference to the add-LocationEstimate.

+	-- the deferredmt-lrData parameter shall be included if and only if the lcs-Event

+	-- indicates a deferredmt-lrResponse.

+	-- if the lcs-Event indicates a deferredmt-lrResponse then the locationEstimate 

+	-- and the add-locationEstimate parameters shall not be sent if the 

+	-- supportedGADShapes parameter had been received in ProvideSubscriberLocation-Arg

+	-- and the shape encoded in locationEstimate or add-LocationEstimate was not marked

+	-- as supported in supportedGADShapes. In such a case terminationCause 

+	-- in deferredmt-lrData shall be present with value 

+	-- shapeOfLocationEstimateNotSupported. 

+	-- If a lcs event indicates deferred mt-lr response, the lcs-Reference number shall be 

+	-- included. 

+	-- sai-Present indicates that the cellIdOrSai parameter contains a Service Area Identity.

+

+Deferredmt-lrData ::= SEQUENCE {

+	deferredLocationEventType	DeferredLocationEventType,

+	terminationCause	[0] TerminationCause	OPTIONAL,

+	lcsLocationInfo	[1] LCSLocationInfo	OPTIONAL,

+	...}

+	-- lcsLocationInfo may be included only if a terminationCause is present 

+	-- indicating mt-lrRestart.

+

+LCS-Event ::= ENUMERATED {

+	emergencyCallOrigination  (0),

+	emergencyCallRelease  (1), 

+	mo-lr  (2),

+	...,

+	deferredmt-lrResponse  (3) }

+	--	exception handling:

+	--	a SubscriberLocationReport-Arg containing an unrecognized LCS-Event

+	--	shall be rejected by a receiver with a return error cause of unexpected data value

+

+TerminationCause ::= ENUMERATED {

+	normal  (0),

+	errorundefined  (1),

+	internalTimeout  (2),

+	congestion  (3),

+	mt-lrRestart  (4),

+	privacyViolation  (5),

+	...,

+	shapeOfLocationEstimateNotSupported (6) } 

+-- mt-lrRestart shall be used to trigger the GMLC to restart the location procedure, 

+-- either because the sending node knows that the terminal has moved under coverage 

+-- of another MSC or SGSN (e.g. Send Identification received), or because the subscriber

+-- has been deregistered due to a Cancel Location received from HLR.

+--

+-- exception handling

+-- an unrecognized value shall be treated the same as value 1 (errorundefined) 

+

+SubscriberLocationReport-Res ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL, 

+	..., 

+	na-ESRK		[0] ISDN-AddressString	OPTIONAL }

+

+

+END

diff --git a/asn1/MAP-LocationServiceOperations.asn b/asn1/MAP-LocationServiceOperations.asn
new file mode 100644
index 0000000..c28ac88
--- /dev/null
+++ b/asn1/MAP-LocationServiceOperations.asn
@@ -0,0 +1,103 @@
+MAP-LocationServiceOperations {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-LocationServiceOperations (24)

+   version9 (9)}

+

+DEFINITIONS

+

+::=

+

+BEGIN

+

+EXPORTS

+	provideSubscriberLocation,

+sendRoutingInfoForLCS,

+subscriberLocationReport

+;

+

+IMPORTS

+	OPERATION

+FROM Remote-Operations-Information-Objects {

+joint-iso-itu-t remote-operations(4)

+  informationObjects(5) version1(0)}

+

+systemFailure,

+	dataMissing,

+	unexpectedDataValue,

+	facilityNotSupported,

+	unknownSubscriber,

+	absentSubscriber,

+	unauthorizedRequestingNetwork,

+	unauthorizedLCSClient,

+	positionMethodFailure,

+	resourceLimitation,

+	unknownOrUnreachableLCSClient,

+	unidentifiedSubscriber,

+	illegalEquipment,

+	illegalSubscriber

+FROM MAP-Errors {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-Errors (10) version9 (9)}

+

+	RoutingInfoForLCS-Arg,

+	RoutingInfoForLCS-Res,

+	ProvideSubscriberLocation-Arg,

+	ProvideSubscriberLocation-Res,

+	SubscriberLocationReport-Arg,

+	SubscriberLocationReport-Res

+FROM MAP-LCS-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-LCS-DataTypes (25) version9 (9)}

+;

+

+sendRoutingInfoForLCS  OPERATION ::= {				--Timer m

+	ARGUMENT

+		RoutingInfoForLCS-Arg

+	RESULT

+		RoutingInfoForLCS-Res

+	ERRORS {

+		systemFailure |

+		dataMissing |

+		unexpectedDataValue |

+		facilityNotSupported |

+		unknownSubscriber |

+		absentSubscriber |

+		unauthorizedRequestingNetwork }

+	CODE	local:85 }

+

+provideSubscriberLocation  OPERATION ::= {				--Timer ml

+	ARGUMENT

+		ProvideSubscriberLocation-Arg

+	RESULT

+		ProvideSubscriberLocation-Res

+	ERRORS {

+		systemFailure |

+		dataMissing |

+		unexpectedDataValue |

+		facilityNotSupported |

+		unidentifiedSubscriber |

+		illegalSubscriber |

+		illegalEquipment |

+		absentSubscriber |

+		unauthorizedRequestingNetwork |

+		unauthorizedLCSClient |

+		positionMethodFailure }

+	CODE	local:83 }

+

+subscriberLocationReport  OPERATION ::= {				--Timer m

+	ARGUMENT

+		SubscriberLocationReport-Arg

+	RESULT

+		SubscriberLocationReport-Res

+	ERRORS {

+		systemFailure |

+		dataMissing |

+		resourceLimitation |

+		unexpectedDataValue |

+		unknownSubscriber |

+		unauthorizedRequestingNetwork |

+		unknownOrUnreachableLCSClient}

+	CODE	local:86 }

+

+

+END

diff --git a/asn1/MAP-MS-DataTypes.asn b/asn1/MAP-MS-DataTypes.asn
new file mode 100644
index 0000000..e905c44
--- /dev/null
+++ b/asn1/MAP-MS-DataTypes.asn
@@ -0,0 +1,2458 @@
+MAP-MS-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-MS-DataTypes (11) version9 (9)}

+

+DEFINITIONS

+

+IMPLICIT TAGS

+

+::=

+

+BEGIN

+

+EXPORTS

+

+	-- location registration types

+	UpdateLocationArg,

+	UpdateLocationRes,

+	CancelLocationArg,

+	CancelLocationRes, 

+	PurgeMS-Arg, 

+	PurgeMS-Res,

+	SendIdentificationArg,

+	SendIdentificationRes, 

+	UpdateGprsLocationArg,

+	UpdateGprsLocationRes,

+	IST-SupportIndicator, 

+	SupportedLCS-CapabilitySets,

+

+	-- gprs location registration types

+	GSN-Address,

+

+	-- handover types

+	ForwardAccessSignalling-Arg,

+	PrepareHO-Arg,

+	PrepareHO-Res,

+	PrepareSubsequentHO-Arg, 

+	PrepareSubsequentHO-Res,

+	ProcessAccessSignalling-Arg,

+	SendEndSignal-Arg,

+	SendEndSignal-Res,

+

+	-- authentication management types

+	SendAuthenticationInfoArg,

+	SendAuthenticationInfoRes, 

+	AuthenticationFailureReportArg,

+	AuthenticationFailureReportRes,

+

+	-- security management types

+	Kc,

+

+	-- equipment management types

+	CheckIMEI-Arg,

+	CheckIMEI-Res,

+

+	-- subscriber management types

+	InsertSubscriberDataArg,

+	InsertSubscriberDataRes, 

+	LSAIdentity,

+	DeleteSubscriberDataArg,

+	DeleteSubscriberDataRes,

+	Ext-QoS-Subscribed,

+	Ext2-QoS-Subscribed,

+	SubscriberData,

+	ODB-Data,

+	SubscriberStatus,

+	ZoneCodeList,

+	maxNumOfZoneCodes, 

+	O-CSI, 

+	D-CSI,

+	O-BcsmCamelTDPCriteriaList, 

+	T-BCSM-CAMEL-TDP-CriteriaList,

+	SS-CSI,

+	ServiceKey,

+	DefaultCallHandling,

+	CamelCapabilityHandling,

+	BasicServiceCriteria,

+	SupportedCamelPhases,

+	OfferedCamel4CSIs,

+	OfferedCamel4Functionalities,

+	maxNumOfCamelTDPData,

+	CUG-Index, 

+	CUG-Info,

+	CUG-Interlock,

+	InterCUG-Restrictions,

+	IntraCUG-Options,

+	NotificationToMSUser, 

+	QoS-Subscribed,

+	IST-AlertTimerValue,

+	T-CSI,

+	T-BcsmTriggerDetectionPoint,

+	APN,

+

+	-- fault recovery types

+	ResetArg,

+	RestoreDataArg,

+	RestoreDataRes,

+

+-- provide subscriber info types 

+	GeographicalInformation, 

+	MS-Classmark2,

+	GPRSMSClass,

+

+	-- subscriber information enquiry types

+	ProvideSubscriberInfoArg,

+	ProvideSubscriberInfoRes,

+	SubscriberInfo,

+	LocationInformation,

+	LocationInformationGPRS,

+	RAIdentity,

+	SubscriberState,

+	GPRSChargingID, 

+	MNPInfoRes,

+	RouteingNumber,

+

+	-- any time information enquiry types

+	AnyTimeInterrogationArg,

+	AnyTimeInterrogationRes,

+

+	-- any time information handling types

+	AnyTimeSubscriptionInterrogationArg,

+	AnyTimeSubscriptionInterrogationRes,

+	AnyTimeModificationArg,

+	AnyTimeModificationRes,

+

+	-- subscriber data modification notification types

+	NoteSubscriberDataModifiedArg,

+	NoteSubscriberDataModifiedRes,

+

+	-- gprs location information retrieval types

+	SendRoutingInfoForGprsArg,

+	SendRoutingInfoForGprsRes,

+

+	-- failure reporting types

+	FailureReportArg,

+	FailureReportRes,

+

+	-- gprs notification types

+	NoteMsPresentForGprsArg,

+	NoteMsPresentForGprsRes,

+

+	-- Mobility Management types

+	NoteMM-EventArg,

+	NoteMM-EventRes,

+	NumberPortabilityStatus

+

+;

+

+IMPORTS

+	maxNumOfSS,

+	SS-SubscriptionOption,

+	SS-List,

+	SS-ForBS-Code,

+	Password

+FROM MAP-SS-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-SS-DataTypes (14) version9 (9)}

+

+	SS-Code

+FROM MAP-SS-Code {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-SS-Code (15) version9 (9)}

+

+	Ext-BearerServiceCode

+FROM MAP-BS-Code {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-BS-Code (20) version9 (9)}

+

+	Ext-TeleserviceCode

+FROM MAP-TS-Code {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-TS-Code (19) version9 (9)}

+

+	AddressString,

+	ISDN-AddressString, 

+	ISDN-SubaddressString, 

+	FTN-AddressString,

+	AccessNetworkSignalInfo,

+	IMSI, 

+	IMEI,

+	TMSI,

+	HLR-List,

+	LMSI,

+	Identity,

+	GlobalCellId,

+	CellGlobalIdOrServiceAreaIdOrLAI,

+	Ext-BasicServiceCode,

+	NAEA-PreferredCI,

+	EMLPP-Info, 

+	MC-SS-Info,

+	SubscriberIdentity,

+	AgeOfLocationInformation,

+	LCSClientExternalID,

+	LCSClientInternalID,

+	Ext-SS-Status,

+	LCSServiceTypeID,

+	ASCI-CallReference,

+	TBCD-STRING

+FROM MAP-CommonDataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}

+

+	ExtensionContainer

+FROM MAP-ExtensionDataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}

+

+	AbsentSubscriberDiagnosticSM

+FROM MAP-ER-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-ER-DataTypes (17) version9 (9)}

+

+;

+

+-- location registration types

+

+UpdateLocationArg ::= SEQUENCE {

+	imsi			IMSI,

+	msc-Number	[1] ISDN-AddressString,

+	vlr-Number	ISDN-AddressString,

+	lmsi			[10] LMSI		OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	... ,

+	vlr-Capability	[6] VLR-Capability	OPTIONAL,

+	informPreviousNetworkEntity	[11]	NULL		OPTIONAL,

+	cs-LCS-NotSupportedByUE	[12]	NULL		OPTIONAL,

+	v-gmlc-Address	[2]	GSN-Address	OPTIONAL,

+	add-info		[13] ADD-Info	OPTIONAL }

+

+VLR-Capability ::= SEQUENCE{

+	supportedCamelPhases  	[0] SupportedCamelPhases	OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	... ,

+	solsaSupportIndicator	[2] NULL		OPTIONAL,

+	istSupportIndicator	[1] IST-SupportIndicator	OPTIONAL,

+	superChargerSupportedInServingNetworkEntity	[3] SuperChargerInfo	OPTIONAL,

+	longFTN-Supported	[4]	NULL		OPTIONAL,

+	supportedLCS-CapabilitySets	[5]	SupportedLCS-CapabilitySets	OPTIONAL,

+	offeredCamel4CSIs	[6] OfferedCamel4CSIs	OPTIONAL }

+

+SuperChargerInfo ::= CHOICE {

+	sendSubscriberData	[0] NULL,

+	subscriberDataStored	[1] AgeIndicator }

+

+AgeIndicator ::= OCTET STRING (SIZE (1..6))

+	-- The internal structure of this parameter is implementation specific.

+

+IST-SupportIndicator ::=  ENUMERATED {

+	basicISTSupported	(0),

+	istCommandSupported	(1),

+	...}

+-- exception handling:

+-- reception of values > 1 shall be mapped to ' istCommandSupported '

+

+SupportedLCS-CapabilitySets ::= BIT STRING {

+	lcsCapabilitySet1 (0),

+	lcsCapabilitySet2 (1),

+	lcsCapabilitySet3 (2),

+	lcsCapabilitySet4 (3) } (SIZE (2..16)) 

+-- Core network signalling capability set1 indicates LCS Release98 or Release99 version.

+-- Core network signalling capability set2 indicates LCS Release4.

+-- Core network signalling capability set3 indicates LCS Release5.

+-- Core network signalling capability set4 indicates LCS Release6 or later version.

+-- A node shall mark in the BIT STRING all LCS capability sets it supports. 

+-- If no bit is set then the sending node does not support LCS.

+-- If the parameter is not sent by an VLR then the VLR may support at most capability set1.

+-- If the parameter is not sent by an SGSN then no support for LCS is assumed.

+-- An SGSN is not allowed to indicate support of capability set1.

+-- Other bits than listed above shall be discarded.

+

+UpdateLocationRes ::= SEQUENCE {

+	hlr-Number	ISDN-AddressString,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...,

+	add-Capability	NULL			OPTIONAL }

+

+ADD-Info ::= SEQUENCE {

+	imeisv		[0] IMEI,

+	skipSubscriberDataUpdate	[1] NULL		OPTIONAL,

+	...}

+

+

+CancelLocationArg ::= [3] SEQUENCE {

+	identity		Identity,

+	cancellationType	CancellationType	OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+CancellationType ::= ENUMERATED {

+	updateProcedure	(0),

+	subscriptionWithdraw	(1),

+	...}

+	-- The HLR shall not send values other than listed above

+

+CancelLocationRes ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+PurgeMS-Arg ::= [3] SEQUENCE {

+	imsi			IMSI,

+	vlr-Number	[0] ISDN-AddressString	OPTIONAL,

+	sgsn-Number	[1]	ISDN-AddressString	OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+PurgeMS-Res ::= SEQUENCE {

+	freezeTMSI	[0]	NULL		OPTIONAL,

+	freezeP-TMSI	[1]	NULL		OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+SendIdentificationArg ::= SEQUENCE {

+	tmsi			TMSI,

+	numberOfRequestedVectors	NumberOfRequestedVectors 	OPTIONAL,

+	-- within a dialogue numberOfRequestedVectors shall be present in 

+	-- the first service request and shall not be present in subsequent service requests. 

+	-- If received in a subsequent service request it shall be discarded. 

+	segmentationProhibited	NULL			OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...,

+	msc-Number	ISDN-AddressString 	OPTIONAL }

+

+SendIdentificationRes ::= [3] SEQUENCE {

+	imsi			IMSI			OPTIONAL,

+	-- IMSI shall be present in the first (or only) service response of a dialogue.

+	-- If multiple service requests are present in a dialogue then IMSI

+	-- shall not be present in any service response other than the first one.

+	authenticationSetList	AuthenticationSetList	OPTIONAL,

+	currentSecurityContext	[2]CurrentSecurityContext	OPTIONAL,

+	extensionContainer	[3] ExtensionContainer	OPTIONAL,

+	...}

+

+-- authentication management types

+

+AuthenticationSetList ::= CHOICE {

+	tripletList	[0] TripletList,

+	quintupletList	[1] QuintupletList }

+

+TripletList ::= SEQUENCE SIZE (1..5) OF

+				AuthenticationTriplet

+

+QuintupletList ::= SEQUENCE SIZE (1..5) OF

+				AuthenticationQuintuplet

+

+AuthenticationTriplet ::= SEQUENCE {

+	rand			RAND,

+	sres			SRES,

+	kc			Kc,

+	...}

+

+AuthenticationQuintuplet ::= SEQUENCE {

+	rand			RAND,

+	xres			XRES,

+	ck			CK,

+	ik			IK,

+	autn			AUTN,

+	...}

+

+CurrentSecurityContext ::= CHOICE {

+	gsm-SecurityContextData	[0] GSM-SecurityContextData,

+	umts-SecurityContextData	[1] UMTS-SecurityContextData }

+

+GSM-SecurityContextData ::= SEQUENCE {

+	kc			Kc,

+	cksn			Cksn,

+	... }

+

+UMTS-SecurityContextData ::= SEQUENCE {

+	ck			CK,

+	ik			IK,

+	ksi			KSI,

+	... }

+

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

+

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

+

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

+

+XRES ::= OCTET STRING (SIZE (4..16))

+

+CK ::= OCTET STRING (SIZE (16))

+

+IK ::= OCTET STRING (SIZE (16))

+

+AUTN ::= OCTET STRING (SIZE (16))

+

+AUTS ::= OCTET STRING (SIZE (14))

+

+Cksn ::= OCTET STRING (SIZE (1))

+	-- The internal structure is defined in 3GPP TS 24.008

+

+KSI ::= OCTET STRING (SIZE (1))

+	-- The internal structure is defined in 3GPP TS 24.008

+

+AuthenticationFailureReportArg ::= SEQUENCE {

+	imsi			IMSI,

+	failureCause	FailureCause,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	... ,

+	re-attempt	BOOLEAN		OPTIONAL,

+	accessType	AccessType	OPTIONAL,

+	rand			RAND			OPTIONAL,

+	vlr-Number	[0] ISDN-AddressString	OPTIONAL,

+	sgsn-Number	[1] ISDN-AddressString	OPTIONAL }

+

+AccessType ::= ENUMERATED {

+	call (0),

+	emergencyCall (1),

+	locationUpdating (2),

+	supplementaryService (3),

+	shortMessage (4),

+	gprsAttach (5),

+	routingAreaUpdating (6),

+	serviceRequest (7),

+	pdpContextActivation (8),

+	pdpContextDeactivation (9),

+	...,

+	gprsDetach (10)}

+	-- exception handling:

+	-- received values greater than 10 shall be ignored.

+

+AuthenticationFailureReportRes ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+FailureCause ::= ENUMERATED {

+	wrongUserResponse  (0),

+	wrongNetworkSignature  (1)}

+

+-- gprs location registration types

+

+UpdateGprsLocationArg ::= SEQUENCE {

+	imsi			IMSI,

+	sgsn-Number	ISDN-AddressString,	

+	sgsn-Address	GSN-Address,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	... ,

+	sgsn-Capability	[0] SGSN-Capability	OPTIONAL,

+	informPreviousNetworkEntity	[1]	NULL		OPTIONAL,

+	ps-LCS-NotSupportedByUE	[2]	NULL		OPTIONAL,

+	v-gmlc-Address	[3]	GSN-Address	OPTIONAL,

+	add-info		[4]  ADD-Info	OPTIONAL }

+

+SGSN-Capability ::= SEQUENCE{

+	solsaSupportIndicator	NULL			OPTIONAL,

+	extensionContainer	[1] ExtensionContainer	OPTIONAL,

+	... ,

+	superChargerSupportedInServingNetworkEntity	[2] SuperChargerInfo	OPTIONAL ,

+	gprsEnhancementsSupportIndicator 	[3] NULL		OPTIONAL,

+	supportedCamelPhases  	[4] SupportedCamelPhases	OPTIONAL,

+	supportedLCS-CapabilitySets	[5]  SupportedLCS-CapabilitySets	OPTIONAL,

+	offeredCamel4CSIs	[6] OfferedCamel4CSIs	OPTIONAL,

+	smsCallBarringSupportIndicator	[7]	NULL		OPTIONAL }

+

+GSN-Address ::= OCTET STRING (SIZE (5..17))

+	-- Octets are coded according to TS 3GPP TS 23.003 [17]

+

+UpdateGprsLocationRes ::= SEQUENCE {

+	hlr-Number	ISDN-AddressString,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...,

+	add-Capability	NULL			OPTIONAL }

+

+-- handover types

+

+ForwardAccessSignalling-Arg ::= [3] SEQUENCE {

+	an-APDU		AccessNetworkSignalInfo,

+	integrityProtectionInfo	[0] IntegrityProtectionInformation		OPTIONAL,

+	encryptionInfo	[1] EncryptionInformation		OPTIONAL,

+	keyStatus		[2]	KeyStatus	OPTIONAL,

+	allowedGSM-Algorithms	[4]	AllowedGSM-Algorithms	OPTIONAL,

+	allowedUMTS-Algorithms	[5]	AllowedUMTS-Algorithms	OPTIONAL,

+	radioResourceInformation	[6] RadioResourceInformation	OPTIONAL,

+	extensionContainer	[3]	ExtensionContainer 	OPTIONAL,

+	...,

+	radioResourceList	[7]	RadioResourceList	OPTIONAL,

+	bssmap-ServiceHandover	[9]	BSSMAP-ServiceHandover	OPTIONAL,

+	ranap-ServiceHandover	[8]	RANAP-ServiceHandover	OPTIONAL,

+	bssmap-ServiceHandoverList	[10]	BSSMAP-ServiceHandoverList	OPTIONAL,

+	currentlyUsedCodec	[11] Codec	OPTIONAL,

+	iuSupportedCodecsList	[12] SupportedCodecsList	OPTIONAL,

+	rab-ConfigurationIndicator	[13] NULL		OPTIONAL,

+	iuSelectedCodec	[14]	Codec	OPTIONAL }

+

+AllowedGSM-Algorithms ::= OCTET STRING (SIZE (1))

+	-- internal structure is coded as Algorithm identifier octet from

+	-- Permitted Algorithms defined in 3GPP TS 48.008

+	-- A node shall mark all GSM algorithms that are allowed in MSC-B

+

+AllowedUMTS-Algorithms ::= SEQUENCE {

+	integrityProtectionAlgorithms	[0] 	PermittedIntegrityProtectionAlgorithms	OPTIONAL,

+	encryptionAlgorithms	[1] 	PermittedEncryptionAlgorithms		OPTIONAL,

+	extensionContainer	[2]	ExtensionContainer	OPTIONAL,

+	...}

+

+PermittedIntegrityProtectionAlgorithms ::=

+		OCTET STRING (SIZE (1..maxPermittedIntegrityProtectionAlgorithmsLength))

+	-- Octets contain a complete PermittedIntegrityProtectionAlgorithms data type 

+	-- as defined in 3GPP TS 25.413, encoded according to the encoding scheme 

+	-- mandated by 3GPP TS 25.413. 

+	-- Padding bits are included, if needed, in the least significant bits of the 

+	-- last octet of the octet string. 

+

+

+maxPermittedIntegrityProtectionAlgorithmsLength INTEGER ::= 9

+

+PermittedEncryptionAlgorithms ::=

+		OCTET STRING (SIZE (1..maxPermittedEncryptionAlgorithmsLength))

+	-- Octets contain a complete PermittedEncryptionAlgorithms data type 

+	-- as defined in 3GPP TS 25.413, encoded according to the encoding scheme 

+	-- mandated by 3GPP TS 25.413

+	-- Padding bits are included, if needed, in the least significant bits of the 

+	-- last octet of the octet string. 

+

+

+maxPermittedEncryptionAlgorithmsLength INTEGER ::= 9

+

+KeyStatus ::= ENUMERATED {

+	old  (0),

+	new  (1),

+	...}

+	-- exception handling:

+	-- received values in range 2-31 shall be treated as "old"

+	-- received values greater than 31 shall be treated as "new"

+

+PrepareHO-Arg ::= [3] SEQUENCE {

+	targetCellId	[0] GlobalCellId	OPTIONAL,

+	ho-NumberNotRequired	NULL			OPTIONAL, 

+	targetRNCId	[1] RNCId		OPTIONAL,

+	an-APDU		[2] AccessNetworkSignalInfo	OPTIONAL,

+	multipleBearerRequested	[3] NULL		OPTIONAL,

+	imsi			[4] IMSI		OPTIONAL,

+	integrityProtectionInfo	[5] IntegrityProtectionInformation		OPTIONAL,

+	encryptionInfo	[6] EncryptionInformation		OPTIONAL,

+	radioResourceInformation	[7] RadioResourceInformation	OPTIONAL,

+	allowedGSM-Algorithms	[9]	AllowedGSM-Algorithms	OPTIONAL,

+	allowedUMTS-Algorithms	[10]	AllowedUMTS-Algorithms	OPTIONAL,

+	radioResourceList	[11] RadioResourceList	OPTIONAL,

+	extensionContainer	[8] ExtensionContainer	OPTIONAL,

+	... ,

+	rab-Id		[12] RAB-Id	OPTIONAL,

+	bssmap-ServiceHandover	[13]	BSSMAP-ServiceHandover	OPTIONAL,

+	ranap-ServiceHandover	[14]	RANAP-ServiceHandover	OPTIONAL, 

+	bssmap-ServiceHandoverList	[15]	BSSMAP-ServiceHandoverList	OPTIONAL,

+	asciCallReference	[20]	ASCI-CallReference	OPTIONAL,

+	geran-classmark	[16] GERAN-Classmark	OPTIONAL,

+	iuCurrentlyUsedCodec	[17] Codec	OPTIONAL,

+	iuSupportedCodecsList	[18] SupportedCodecsList	OPTIONAL,

+	rab-ConfigurationIndicator	[19] NULL		OPTIONAL,

+	uesbi-Iu		[21]	UESBI-Iu	OPTIONAL	 }

+

+BSSMAP-ServiceHandoverList ::= SEQUENCE SIZE (1.. maxNumOfServiceHandovers) OF

+				BSSMAP-ServiceHandoverInfo

+

+BSSMAP-ServiceHandoverInfo ::= SEQUENCE {

+	bssmap-ServiceHandover	BSSMAP-ServiceHandover,

+	rab-Id		RAB-Id,

+	-- RAB Identity is needed to relate the service handovers with the radio access bearers. 

+	...}

+

+maxNumOfServiceHandovers  INTEGER ::= 7

+

+BSSMAP-ServiceHandover ::= OCTET STRING (SIZE (1))

+	-- Octets are coded according the Service Handover information element in

+	-- 3GPP TS 48.008.

+

+RANAP-ServiceHandover ::= OCTET STRING (SIZE (1))

+	-- Octet contains a complete Service-Handover data type 

+	-- as defined in 3GPP TS 25.413, encoded according to the encoding scheme 

+	-- mandated by 3GPP TS 25.413

+	-- Padding bits are included in the least significant bits. 

+

+

+RadioResourceList ::= SEQUENCE SIZE (1.. maxNumOfRadioResources) OF

+				RadioResource

+

+RadioResource ::= SEQUENCE {

+	radioResourceInformation	RadioResourceInformation,

+	rab-Id		RAB-Id,

+	-- RAB Identity is needed to relate the radio resources with the radio access bearers. 

+	...}

+

+maxNumOfRadioResources  INTEGER ::= 7

+

+PrepareHO-Res ::= [3] SEQUENCE {

+	handoverNumber	[0] ISDN-AddressString	OPTIONAL,

+	relocationNumberList	[1]	RelocationNumberList	OPTIONAL,

+	an-APDU		[2]	AccessNetworkSignalInfo	OPTIONAL,

+	multicallBearerInfo	[3]	MulticallBearerInfo	OPTIONAL,

+	multipleBearerNotSupported	NULL			OPTIONAL,

+	selectedUMTS-Algorithms	[5]	SelectedUMTS-Algorithms	OPTIONAL,

+	chosenRadioResourceInformation	[6] ChosenRadioResourceInformation	 OPTIONAL,

+	extensionContainer	[4]	ExtensionContainer	OPTIONAL,

+	...,

+	iuSelectedCodec	[7] Codec		OPTIONAL,

+	iuAvailableCodecsList	[8] CodecList	OPTIONAL }

+

+SelectedUMTS-Algorithms ::= SEQUENCE {

+	integrityProtectionAlgorithm	[0] 	ChosenIntegrityProtectionAlgorithm	OPTIONAL,

+	encryptionAlgorithm	[1] 	ChosenEncryptionAlgorithm	OPTIONAL,

+	extensionContainer	[2]	ExtensionContainer	OPTIONAL,

+	...}

+

+ChosenIntegrityProtectionAlgorithm ::= OCTET STRING (SIZE (1))

+	-- Octet contains a complete IntegrityProtectionAlgorithm data type 

+	-- as defined in 3GPP TS 25.413, encoded according to the encoding scheme 

+	-- mandated by 3GPP TS 25.413

+	-- Padding bits are included in the least significant bits. 

+

+ChosenEncryptionAlgorithm ::= OCTET STRING (SIZE (1))

+	-- Octet contains a complete EncryptionAlgorithm data type 

+	-- as defined in 3GPP TS 25.413, encoded according to the encoding scheme 

+	-- mandated by 3GPP TS 25.413

+	-- Padding bits are included in the least significant bits. 

+

+ChosenRadioResourceInformation ::= SEQUENCE {

+	chosenChannelInfo	[0] ChosenChannelInfo	OPTIONAL,

+	chosenSpeechVersion	[1] ChosenSpeechVersion	OPTIONAL,

+	...}

+

+ChosenChannelInfo ::= OCTET STRING (SIZE (1))

+	-- Octets are coded according the Chosen Channel information element in 3GPP TS 48.008

+

+ChosenSpeechVersion ::= OCTET STRING (SIZE (1))

+	-- Octets are coded according the Speech Version (chosen) information element in 3GPP TS

+	-- 48.008 

+

+PrepareSubsequentHO-Arg ::= [3] SEQUENCE {

+	targetCellId	[0] GlobalCellId	OPTIONAL,

+	targetMSC-Number	[1] ISDN-AddressString,

+	targetRNCId	[2] RNCId		OPTIONAL,

+	an-APDU		[3]	AccessNetworkSignalInfo	OPTIONAL,

+	selectedRab-Id	[4]	RAB-Id	OPTIONAL,

+	extensionContainer	[5]	ExtensionContainer	OPTIONAL,

+	...,

+	geran-classmark	[6] GERAN-Classmark	OPTIONAL,

+	rab-ConfigurationIndicator	[7] NULL		OPTIONAL }

+

+PrepareSubsequentHO-Res ::= [3] SEQUENCE {

+	an-APDU		AccessNetworkSignalInfo,

+	extensionContainer	[0]	ExtensionContainer	OPTIONAL,

+	...}

+

+ProcessAccessSignalling-Arg ::= [3] SEQUENCE {

+	an-APDU		AccessNetworkSignalInfo,

+	selectedUMTS-Algorithms	[1]	SelectedUMTS-Algorithms	OPTIONAL,

+	selectedGSM-Algorithm	[2]	SelectedGSM-Algorithm	OPTIONAL,

+	chosenRadioResourceInformation	[3] ChosenRadioResourceInformation OPTIONAL,

+	selectedRab-Id	[4] RAB-Id	OPTIONAL,

+	extensionContainer	[0]	ExtensionContainer 	OPTIONAL,

+	...,

+	iUSelectedCodec	[5] Codec		OPTIONAL,

+	iuAvailableCodecsList	[6] CodecList	OPTIONAL }

+

+SupportedCodecsList ::= SEQUENCE {

+	utranCodecList	[0] CodecList	OPTIONAL,

+	geranCodecList	[1] CodecList	OPTIONAL,

+	extensionContainer	[2] ExtensionContainer	OPTIONAL,

+	...}

+

+CodecList ::= SEQUENCE {

+	codec1		[1] Codec,

+	codec2		[2] Codec		OPTIONAL,

+	codec3		[3] Codec		OPTIONAL,

+	codec4		[4] Codec		OPTIONAL,

+	codec5		[5] Codec		OPTIONAL,

+	codec6		[6] Codec		OPTIONAL,

+	codec7		[7] Codec		OPTIONAL,

+	codec8		[8] Codec		OPTIONAL,

+	extensionContainer	[9] ExtensionContainer	OPTIONAL,

+	...}

+	-- Codecs are sent in priority order where codec1 has highest priority

+

+Codec ::= OCTET STRING (SIZE (1..4))

+

+	-- The internal structure is defined as follows:

+	-- octet 1	Coded as Codec Identification code in 3GPP TS 26.103

+	-- octets 2,3,4	Parameters for the Codec as defined in 3GPP TS

+	--			26.103, if available, length depending on the codec

+

+GERAN-Classmark ::= OCTET STRING (SIZE (2..87))

+	-- Octets are coded according the GERAN Classmark information element in 3GPP TS 48.008

+

+SelectedGSM-Algorithm ::= OCTET STRING (SIZE (1))

+	-- internal structure is coded as Algorithm identifier octet from Chosen Encryption

+	-- Algorithm defined in 3GPP TS 48.008

+	-- A node shall mark only the selected GSM algorithm

+

+SendEndSignal-Arg ::= [3] SEQUENCE {

+	an-APDU		AccessNetworkSignalInfo,

+	extensionContainer	[0]	ExtensionContainer 	OPTIONAL,

+	...}

+

+SendEndSignal-Res ::= SEQUENCE {

+	extensionContainer	[0]	ExtensionContainer 	OPTIONAL,

+	...}

+

+RNCId ::= OCTET STRING (SIZE (7))

+	-- The internal structure is defined as follows:

+	-- octet 1 bits 4321	Mobile Country Code 1st digit

+	--         bits 8765	Mobile Country Code 2nd digit

+	-- octet 2 bits 4321	Mobile Country Code 3rd digit

+	--         bits 8765	Mobile Network Code 3rd digit

+	--			or filler (1111) for 2 digit MNCs

+	-- octet 3 bits 4321	Mobile Network Code 1st digit

+	--         bits 8765	Mobile Network Code 2nd digit

+	-- octets 4 and 5	Location Area Code according to 3GPP TS 24.008

+	-- octets 6 and 7	RNC Id value according to 3GPP TS 25.413

+

+RelocationNumberList ::= SEQUENCE SIZE (1..maxNumOfRelocationNumber) OF

+				RelocationNumber

+

+MulticallBearerInfo ::= INTEGER (1..maxNumOfRelocationNumber)

+

+RelocationNumber ::= SEQUENCE {

+	handoverNumber	ISDN-AddressString,

+	rab-Id		RAB-Id,

+	-- RAB Identity is needed to relate the calls with the radio access bearers. 

+	...}

+

+RAB-Id ::= INTEGER (1..maxNrOfRABs)

+

+maxNrOfRABs INTEGER ::= 255

+

+maxNumOfRelocationNumber  INTEGER ::= 7

+

+RadioResourceInformation ::= OCTET STRING (SIZE (3..13))

+	-- Octets are coded according the Channel Type information element in 3GPP TS 48.008

+

+IntegrityProtectionInformation ::= OCTET STRING (SIZE (18..maxNumOfIntegrityInfo))

+	-- Octets contain a complete IntegrityProtectionInformation data type 

+	-- as defined in 3GPP TS 25.413, encoded according to the encoding scheme 

+	-- mandated by 3GPP TS 25.413

+	-- Padding bits are included, if needed, in the least significant bits of the 

+	-- last octet of the octet string. 

+

+maxNumOfIntegrityInfo INTEGER ::= 100

+

+EncryptionInformation ::= OCTET STRING (SIZE (18..maxNumOfEncryptionInfo))

+	-- Octets contain a complete EncryptionInformation data type 

+	-- as defined in 3GPP TS 25.413, encoded according to the encoding scheme 

+	-- mandated by 3GPP TS 25.413

+	-- Padding bits are included, if needed, in the least significant bits of the 

+	-- last octet of the octet string. 

+

+maxNumOfEncryptionInfo INTEGER ::= 100

+

+-- authentication management types

+

+SendAuthenticationInfoArg ::= SEQUENCE {

+	imsi			[0] IMSI,

+	numberOfRequestedVectors	NumberOfRequestedVectors,

+	segmentationProhibited	NULL			OPTIONAL,

+	immediateResponsePreferred	[1] NULL			OPTIONAL,

+	re-synchronisationInfo	Re-synchronisationInfo	OPTIONAL,

+	extensionContainer	[2] ExtensionContainer	OPTIONAL,

+	...,

+	requestingNodeType	[3] RequestingNodeType	OPTIONAL,

+	requestingPLMN-Id	[4] PLMN-Id	OPTIONAL }	

+

+PLMN-Id ::= OCTET STRING (SIZE (3))

+	-- The internal structure is defined as follows:

+	-- octet 1 bits 4321	Mobile Country Code 1st digit

+	--         bits 8765	Mobile Country Code 2nd digit

+	-- octet 2 bits 4321	Mobile Country Code 3rd digit

+	--         bits 8765	Mobile Network Code 3rd digit

+	--			or filler (1111) for 2 digit MNCs

+	-- octet 3 bits 4321	Mobile Network Code 1st digit

+	--         bits 8765	Mobile Network Code 2nd digit

+

+NumberOfRequestedVectors ::= INTEGER (1..5)

+

+Re-synchronisationInfo ::= SEQUENCE {

+	rand			RAND,

+	auts			AUTS,

+	...}

+

+SendAuthenticationInfoRes ::= [3] SEQUENCE {

+	authenticationSetList	AuthenticationSetList 	OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+RequestingNodeType ::= ENUMERATED {

+	vlr  (0),

+	sgsn  (1),

+	...}

+	-- exception handling:

+	-- received values in the range 2-15 shall be treated as "vlr"

+	-- received values greater than 15 shall be treated as "sgsn"

+

+-- equipment management types

+

+CheckIMEI-Arg ::= SEQUENCE {

+	imei			IMEI,

+	requestedEquipmentInfo	RequestedEquipmentInfo,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+CheckIMEI-Res ::= SEQUENCE {

+	equipmentStatus	EquipmentStatus	OPTIONAL,

+	bmuef		UESBI-Iu		OPTIONAL,

+	extensionContainer	[0] ExtensionContainer	OPTIONAL,

+	...}

+

+RequestedEquipmentInfo::= BIT STRING {

+	equipmentStatus  (0),

+	bmuef  (1)} (SIZE (2..8))

+	-- exception handling: reception of unknown bit assignments in the

+	-- RequestedEquipmentInfo data type shall be discarded by the receiver 

+

+UESBI-Iu ::= SEQUENCE {

+	uesbi-IuA	[0] UESBI-IuA				OPTIONAL,

+	uesbi-IuB	[1] UESBI-IuB				OPTIONAL,

+	...}

+

+UESBI-IuA				::= BIT STRING (SIZE(1..128))

+-- See 3GPP TS 25.413

+

+UESBI-IuB				::= BIT STRING (SIZE(1..128))

+-- See 3GPP TS 25.413

+

+EquipmentStatus ::= ENUMERATED {

+	whiteListed  (0),

+	blackListed  (1),

+	greyListed  (2)}

+

+-- subscriber management types

+

+InsertSubscriberDataArg ::= SEQUENCE {

+	imsi			[0] IMSI		OPTIONAL,

+	COMPONENTS OF	SubscriberData,

+	extensionContainer	[14] ExtensionContainer	OPTIONAL,

+	... ,	

+	naea-PreferredCI	[15] NAEA-PreferredCI	OPTIONAL,

+	-- naea-PreferredCI is included at the discretion of the HLR operator.

+	gprsSubscriptionData	[16] GPRSSubscriptionData	OPTIONAL,

+	roamingRestrictedInSgsnDueToUnsupportedFeature [23] 	NULL	

+							OPTIONAL, 

+	networkAccessMode	[24] NetworkAccessMode	OPTIONAL,

+	lsaInformation	[25] LSAInformation	OPTIONAL,

+	lmu-Indicator	[21]	NULL		OPTIONAL,

+	lcsInformation	[22]	LCSInformation	OPTIONAL,

+	istAlertTimer	[26] IST-AlertTimerValue	OPTIONAL,

+	superChargerSupportedInHLR	[27] AgeIndicator	OPTIONAL,

+	mc-SS-Info	[28] MC-SS-Info	OPTIONAL,

+	cs-AllocationRetentionPriority	[29] CS-AllocationRetentionPriority		OPTIONAL,

+	sgsn-CAMEL-SubscriptionInfo	[17] SGSN-CAMEL-SubscriptionInfo	OPTIONAL,

+	chargingCharacteristics 	[18]	ChargingCharacteristics 	OPTIONAL,

+	accessRestrictionData	[19] AccessRestrictionData	OPTIONAL

+ }

+	-- If the Network Access Mode parameter is sent, it shall be present only in 

+	-- the first sequence if seqmentation is used

+

+AccessRestrictionData ::= BIT STRING {

+	utranNotAllowed (0),

+	geranNotAllowed (1) } (SIZE (2..8))

+	-- exception handling:

+	-- bits 2 to 7 shall be ignored if received and not understood

+	

+

+CS-AllocationRetentionPriority ::= OCTET STRING (SIZE (1))

+	-- This data type encodes each priority level defined in TS 23.107 as the binary value

+	-- of the priority level.

+

+IST-AlertTimerValue ::= INTEGER (15..255)

+

+LCSInformation ::= SEQUENCE {

+	gmlc-List	[0]	GMLC-List	OPTIONAL,

+	lcs-PrivacyExceptionList	[1]	LCS-PrivacyExceptionList	OPTIONAL,

+	molr-List		[2]	MOLR-List	OPTIONAL,

+	...,

+	add-lcs-PrivacyExceptionList	[3]	LCS-PrivacyExceptionList	OPTIONAL }

+	-- add-lcs-PrivacyExceptionList may be sent only if lcs-PrivacyExceptionList is

+	-- present and contains four instances of LCS-PrivacyClass. If the mentioned condition

+	-- is not satisfied the receiving node shall discard add-lcs-PrivacyExceptionList.

+	-- If an LCS-PrivacyClass is received both in lcs-PrivacyExceptionList and in

+	-- add-lcs-PrivacyExceptionList with the same SS-Code, then the error unexpected 

+	-- data value shall be returned.

+

+GMLC-List ::= SEQUENCE SIZE (1..maxNumOfGMLC) OF

+				ISDN-AddressString

+	-- if segmentation is used, the complete GMLC-List shall be sent in one segment

+

+maxNumOfGMLC  INTEGER ::= 5

+

+NetworkAccessMode ::= ENUMERATED {

+	bothMSCAndSGSN	(0),

+	onlyMSC		(1),

+	onlySGSN		(2),

+	...}

+	-- if unknown values are received in NetworkAccessMode

+	-- they shall be discarded.

+

+GPRSDataList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF

+				PDP-Context

+

+maxNumOfPDP-Contexts  INTEGER ::= 50

+

+PDP-Context ::= SEQUENCE {

+	pdp-ContextId	ContextId,

+	pdp-Type		[16] PDP-Type,

+	pdp-Address	[17] PDP-Address	OPTIONAL,

+	qos-Subscribed	[18] QoS-Subscribed,

+	vplmnAddressAllowed	[19] NULL	OPTIONAL,

+	apn			[20] APN,

+	extensionContainer	[21] ExtensionContainer	OPTIONAL,

+	... ,

+	ext-QoS-Subscribed	[0] Ext-QoS-Subscribed	OPTIONAL, 

+	pdp-ChargingCharacteristics	[1] ChargingCharacteristics	OPTIONAL,

+	ext2-QoS-Subscribed	[2] Ext2-QoS-Subscribed	OPTIONAL

+	-- ext2-QoS-Subscribed may be present only if ext-QoS-Subscribed is present.

+	 }

+

+ContextId ::= INTEGER (1..maxNumOfPDP-Contexts)

+

+GPRSSubscriptionData ::= SEQUENCE {

+	completeDataListIncluded	NULL			OPTIONAL,

+		-- If segmentation is used, completeDataListIncluded may only be present in the

+		-- first segment.

+	gprsDataList	[1]	GPRSDataList,

+	extensionContainer	[2] ExtensionContainer	OPTIONAL,

+	... }

+

+SGSN-CAMEL-SubscriptionInfo ::= SEQUENCE {

+	gprs-CSI		[0]	GPRS-CSI	OPTIONAL,

+	mo-sms-CSI	[1]	SMS-CSI	OPTIONAL,

+	extensionContainer	[2]	ExtensionContainer	OPTIONAL,

+	...,

+	mt-sms-CSI	[3]	SMS-CSI	OPTIONAL,

+	mt-smsCAMELTDP-CriteriaList	[4]	MT-smsCAMELTDP-CriteriaList	OPTIONAL,

+	mg-csi		[5]	MG-CSI	OPTIONAL

+	}

+

+GPRS-CSI ::= SEQUENCE {

+	gprs-CamelTDPDataList	[0] GPRS-CamelTDPDataList	OPTIONAL,

+	camelCapabilityHandling	[1] CamelCapabilityHandling	OPTIONAL,

+	extensionContainer	[2] ExtensionContainer	OPTIONAL,

+	notificationToCSE	[3]	NULL		OPTIONAL,

+	csi-Active	[4]	NULL		OPTIONAL,

+	...}

+--	notificationToCSE and csi-Active shall not be present when GPRS-CSI is sent to SGSN.

+--	They may only be included in ATSI/ATM ack/NSDC message. 

+--	GPRS-CamelTDPData and  camelCapabilityHandling shall be present in 

+--	the GPRS-CSI sequence.

+--	If GPRS-CSI is segmented, gprs-CamelTDPDataList and camelCapabilityHandling shall be 

+--	present in the first segment

+

+GPRS-CamelTDPDataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF

+	GPRS-CamelTDPData

+--	GPRS-CamelTDPDataList shall not contain more than one instance of

+--	GPRS-CamelTDPData containing the same value for gprs-TriggerDetectionPoint.

+

+GPRS-CamelTDPData ::= SEQUENCE {

+	gprs-TriggerDetectionPoint	[0] GPRS-TriggerDetectionPoint,

+	serviceKey	[1] ServiceKey,

+	gsmSCF-Address	[2] ISDN-AddressString,

+	defaultSessionHandling	[3] DefaultGPRS-Handling,

+	extensionContainer	[4] ExtensionContainer	OPTIONAL,

+	...

+	}

+

+DefaultGPRS-Handling ::= ENUMERATED {

+	continueTransaction (0) ,

+	releaseTransaction (1) ,

+	...}

+-- exception handling:

+-- reception of values in range 2-31 shall be treated as "continueTransaction"

+-- reception of values greater than 31 shall be treated as "releaseTransaction"

+

+GPRS-TriggerDetectionPoint ::= ENUMERATED {

+	attach 			(1),

+	attachChangeOfPosition 		(2),

+	pdp-ContextEstablishment 		(11),

+	pdp-ContextEstablishmentAcknowledgement	(12),

+	pdp-ContextChangeOfPosition 		(14),

+	... }

+-- exception handling:

+-- For GPRS-CamelTDPData sequences containing this parameter with any

+-- other value than the ones listed the receiver shall ignore the whole 

+-- GPRS-CamelTDPDatasequence.

+

+APN ::=  OCTET STRING (SIZE (2..63))

+	-- Octets are coded according to TS 3GPP TS 23.003 [17] 

+

+PDP-Type ::= OCTET STRING (SIZE (2))

+	-- Octets are coded according to TS 3GPP TS 29.060 [105]

+

+PDP-Address ::= OCTET STRING (SIZE (1..16))

+	-- Octets are coded according to TS 3GPP TS 29.060 [105]

+

+	-- The possible size values are:

+	-- 1-7 octets  X.25 address type

+	--  4  octets  IPv4 address type

+	-- 16  octets  Ipv6 address type

+

+QoS-Subscribed ::= OCTET STRING (SIZE (3))

+	-- Octets are coded according to TS 3GPP TS 24.008 [35] Quality of Service Octets 

+	-- 3-5.

+

+Ext-QoS-Subscribed ::= OCTET STRING (SIZE (1..9))

+	-- OCTET 1: 

+	--  Allocation/Retention Priority (This octet encodes each priority level defined in

+	--     23.107 as the binary value of the priority level, declaration in 29.060)

+	-- Octets 2-9 are coded according to 3GPP TS 24.008 [35] Quality of Service Octets 

+	-- 6-13.

+

+Ext2-QoS-Subscribed ::= OCTET STRING (SIZE (1..3))

+	-- Octets 1-3 are coded according to 3GPP TS 24.008 [35] Quality of Service Octets 14-16.

+	-- If Quality of Service information is structured with 14 octet length, then

+	-- Octet 1 is coded according to 3GPP TS 24.008 [35] Quality of Service Octet 14.

+

+ChargingCharacteristics ::= OCTET STRING (SIZE (2))

+	-- Octets are coded according to 3GPP TS 32.215.

+

+LSAOnlyAccessIndicator ::= ENUMERATED {

+	accessOutsideLSAsAllowed  (0),

+	accessOutsideLSAsRestricted (1)}

+

+LSADataList ::= SEQUENCE SIZE (1..maxNumOfLSAs) OF

+				LSAData

+

+maxNumOfLSAs  INTEGER ::= 20

+

+LSAData ::= SEQUENCE {

+	lsaIdentity	[0] LSAIdentity,

+	lsaAttributes	[1] LSAAttributes,

+	lsaActiveModeIndicator	[2] NULL		OPTIONAL,

+	extensionContainer	[3] ExtensionContainer	OPTIONAL,

+	...}

+

+LSAInformation ::= SEQUENCE {

+	completeDataListIncluded	NULL			OPTIONAL,

+

+		-- If segmentation is used, completeDataListIncluded may only be present in the

+		-- first segment.

+	lsaOnlyAccessIndicator	[1]	LSAOnlyAccessIndicator	OPTIONAL,

+	lsaDataList	[2]	LSADataList	OPTIONAL,

+	extensionContainer	[3] ExtensionContainer	OPTIONAL,

+	...}

+

+LSAIdentity ::= OCTET STRING (SIZE (3))

+	-- Octets are coded according to TS 3GPP TS 23.003 [17]

+

+LSAAttributes ::= OCTET STRING (SIZE (1))

+	-- Octets are coded according to TS 3GPP TS 48.008 [49]

+

+SubscriberData ::= SEQUENCE {

+	msisdn		[1] ISDN-AddressString	OPTIONAL,

+	category		[2] Category	OPTIONAL,

+	subscriberStatus	[3] SubscriberStatus	OPTIONAL,

+	bearerServiceList	[4] BearerServiceList	OPTIONAL,

+	-- The exception handling for reception of unsupported / not allocated

+	-- bearerServiceCodes is defined in section 8.8.1

+	teleserviceList	[6] TeleserviceList	OPTIONAL,

+	-- The exception handling for reception of unsupported / not allocated

+	-- teleserviceCodes is defined in section 8.8.1

+	provisionedSS	[7] Ext-SS-InfoList	OPTIONAL,

+	odb-Data		[8] ODB-Data	OPTIONAL,

+	roamingRestrictionDueToUnsupportedFeature  [9] NULL	OPTIONAL,

+	regionalSubscriptionData	[10] ZoneCodeList	OPTIONAL,

+	vbsSubscriptionData	[11] VBSDataList	OPTIONAL,

+	vgcsSubscriptionData	[12] VGCSDataList	OPTIONAL,

+	vlrCamelSubscriptionInfo	[13] VlrCamelSubscriptionInfo	OPTIONAL

+	}

+

+Category ::= OCTET STRING (SIZE (1))

+	-- The internal structure is defined in ITU-T Rec Q.763.

+

+SubscriberStatus ::= ENUMERATED {

+	serviceGranted  (0),

+	operatorDeterminedBarring  (1)}

+

+BearerServiceList ::= SEQUENCE SIZE (1..maxNumOfBearerServices) OF

+				Ext-BearerServiceCode

+

+maxNumOfBearerServices  INTEGER ::= 50

+

+TeleserviceList ::= SEQUENCE SIZE (1..maxNumOfTeleservices) OF

+				Ext-TeleserviceCode

+

+maxNumOfTeleservices  INTEGER ::= 20

+

+ODB-Data ::= SEQUENCE {

+	odb-GeneralData	ODB-GeneralData,

+	odb-HPLMN-Data	ODB-HPLMN-Data	OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+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),

+	allPacketOrientedServicesBarred (15),

+	roamerAccessToHPLMN-AP-Barred  (16),

+	roamerAccessToVPLMN-AP-Barred  (17),

+	roamingOutsidePLMNOG-CallsBarred  (18),

+	allIC-CallsBarred  (19),

+	roamingOutsidePLMNIC-CallsBarred  (20),

+	roamingOutsidePLMNICountryIC-CallsBarred  (21),

+	roamingOutsidePLMN-Barred  (22),

+	roamingOutsidePLMN-CountryBarred  (23),

+	registrationAllCF-Barred  (24),

+	registrationCFNotToHPLMN-Barred  (25),

+	registrationInterzonalCF-Barred  (26),

+	registrationInterzonalCFNotToHPLMN-Barred  (27),

+	registrationInternationalCF-Barred  (28)} (SIZE (15..32))

+	-- exception handling: reception of unknown bit assignments in the

+	-- ODB-GeneralData type shall be treated like unsupported ODB-GeneralData

+	-- When the ODB-GeneralData type is removed from the HLR for a given subscriber, 

+	-- in NoteSubscriberDataModified operation sent toward the gsmSCF 

+	-- all bits shall be set to "O".

+

+ODB-HPLMN-Data ::= BIT STRING {

+	plmn-SpecificBarringType1  (0),

+	plmn-SpecificBarringType2  (1),

+	plmn-SpecificBarringType3  (2),

+	plmn-SpecificBarringType4  (3)} (SIZE (4..32))

+	-- exception handling: reception of unknown bit assignments in the

+	-- ODB-HPLMN-Data type shall be treated like unsupported ODB-HPLMN-Data 

+	-- When the ODB-HPLMN-Data type is removed from the HLR for a given subscriber, 

+	-- in NoteSubscriberDataModified operation sent toward the gsmSCF

+	-- all bits shall be set to "O".

+

+Ext-SS-InfoList ::= SEQUENCE SIZE (1..maxNumOfSS) OF

+				Ext-SS-Info

+

+Ext-SS-Info ::= CHOICE {

+	forwardingInfo	[0] Ext-ForwInfo,

+	callBarringInfo	[1] Ext-CallBarInfo,

+	cug-Info		[2] CUG-Info,

+	ss-Data		[3] Ext-SS-Data,

+	emlpp-Info	[4] EMLPP-Info}

+

+Ext-ForwInfo ::= SEQUENCE {

+	ss-Code		SS-Code,

+	forwardingFeatureList	Ext-ForwFeatureList,

+	extensionContainer	[0] ExtensionContainer	OPTIONAL,

+	...}

+

+Ext-ForwFeatureList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF

+				Ext-ForwFeature

+

+Ext-ForwFeature ::= SEQUENCE {

+	basicService	Ext-BasicServiceCode	OPTIONAL,

+	ss-Status		[4] Ext-SS-Status,

+	forwardedToNumber	[5] ISDN-AddressString	OPTIONAL,

+	-- When this data type is sent from an HLR which supports CAMEL Phase 2

+	-- to a VLR that supports CAMEL Phase 2 the VLR shall not check the

+	-- format of the number

+	forwardedToSubaddress	[8] ISDN-SubaddressString	OPTIONAL,

+	forwardingOptions	[6] Ext-ForwOptions	OPTIONAL,

+	noReplyConditionTime	[7] Ext-NoRepCondTime	OPTIONAL,

+	extensionContainer	[9] ExtensionContainer	OPTIONAL,

+	...,

+	longForwardedToNumber	[10] FTN-AddressString	OPTIONAL }

+

+Ext-ForwOptions ::= OCTET STRING (SIZE (1..5))

+

+	-- OCTET 1:

+

+	--  bit 8: notification to forwarding party

+	--	0  no notification

+	--	1  notification

+

+	--  bit 7: redirecting presentation

+	--	0 no presentation  

+	--	1  presentation

+

+	--  bit 6: notification to calling party

+	--	0  no notification

+	--	1  notification

+

+	--  bit 5: 0 (unused)

+

+	--  bits 43: forwarding reason

+	--	00  ms not reachable

+	--	01  ms busy

+	--	10  no reply

+	--	11  unconditional

+

+	-- bits 21: 00 (unused)

+

+	-- OCTETS 2-5: reserved for future use. They shall be discarded if

+	-- received and not understood.

+

+Ext-NoRepCondTime ::= INTEGER (1..100)

+	-- Only values 5-30 are used.

+	-- Values in the ranges 1-4 and 31-100 are reserved for future use

+	-- If received:

+	--		values 1-4 shall be mapped on to value 5

+	--		values 31-100 shall be mapped on to value 30

+

+Ext-CallBarInfo ::= SEQUENCE {

+	ss-Code		SS-Code,

+	callBarringFeatureList	Ext-CallBarFeatureList,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+Ext-CallBarFeatureList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF

+				Ext-CallBarringFeature

+

+Ext-CallBarringFeature ::= SEQUENCE {

+	basicService	Ext-BasicServiceCode	OPTIONAL,

+	ss-Status		[4] Ext-SS-Status,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+CUG-Info ::= SEQUENCE {

+	cug-SubscriptionList	CUG-SubscriptionList,

+	cug-FeatureList	CUG-FeatureList	OPTIONAL,

+	extensionContainer	[0] ExtensionContainer	OPTIONAL,

+	...}

+

+CUG-SubscriptionList ::= SEQUENCE SIZE (0..maxNumOfCUG) OF

+				CUG-Subscription

+

+CUG-Subscription ::= SEQUENCE {

+	cug-Index	CUG-Index,

+	cug-Interlock	CUG-Interlock,

+	intraCUG-Options	IntraCUG-Options,

+	basicServiceGroupList	Ext-BasicServiceGroupList	OPTIONAL,

+	extensionContainer	[0] ExtensionContainer	OPTIONAL,

+	...}

+

+CUG-Index ::= INTEGER (0..32767)

+	-- The internal structure is defined in ETS 300 138.

+

+CUG-Interlock ::= OCTET STRING (SIZE (4))

+

+IntraCUG-Options ::= ENUMERATED {

+	noCUG-Restrictions  (0),

+	cugIC-CallBarred  (1),

+	cugOG-CallBarred  (2)}

+

+maxNumOfCUG  INTEGER ::= 10

+

+CUG-FeatureList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF

+				CUG-Feature

+

+Ext-BasicServiceGroupList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF

+				Ext-BasicServiceCode

+

+maxNumOfExt-BasicServiceGroups  INTEGER ::= 32

+

+CUG-Feature ::= SEQUENCE {

+	basicService	Ext-BasicServiceCode	OPTIONAL,

+	preferentialCUG-Indicator	CUG-Index	OPTIONAL,

+	interCUG-Restrictions	InterCUG-Restrictions,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+InterCUG-Restrictions ::= OCTET STRING (SIZE (1))

+

+	-- bits 876543: 000000 (unused)

+	-- Exception handling:

+	-- bits 876543 shall be ignored if received and not understood

+

+	-- bits 21

+	--	00  CUG only facilities

+	--	01  CUG with outgoing access

+	--	10  CUG with incoming access

+	--	11  CUG with both outgoing and incoming access

+

+Ext-SS-Data ::= SEQUENCE {

+	ss-Code		SS-Code,

+	ss-Status	[4] Ext-SS-Status,

+	ss-SubscriptionOption	SS-SubscriptionOption	OPTIONAL,

+	basicServiceGroupList	Ext-BasicServiceGroupList	OPTIONAL,

+	extensionContainer	[5] ExtensionContainer	OPTIONAL,

+	...}

+

+LCS-PrivacyExceptionList ::= SEQUENCE SIZE (1..maxNumOfPrivacyClass) OF

+				LCS-PrivacyClass

+

+maxNumOfPrivacyClass  INTEGER ::= 4

+

+LCS-PrivacyClass ::= SEQUENCE {

+	ss-Code		SS-Code,

+	ss-Status		Ext-SS-Status,

+	notificationToMSUser	[0] NotificationToMSUser	OPTIONAL,

+	-- notificationToMSUser may be sent only for SS-codes callSessionRelated

+	-- and callSessionUnrelated. If not received for SS-codes callSessionRelated

+	-- and callSessionUnrelated,

+	-- the default values according to 3GPP TS 23.271 shall be assumed.

+	externalClientList	[1] ExternalClientList	OPTIONAL,

+	-- externalClientList may be sent only for SS-code callSessionUnrelated to a

+	-- visited node that does not support LCS Release 4 or later versions.

+	-- externalClientList may be sent only for SS-codes callSessionUnrelated and

+	-- callSessionRelated to a visited node that supports LCS Release 4 or later versions.

+	plmnClientList	[2] PLMNClientList	OPTIONAL,

+	-- plmnClientList may be sent only for SS-code plmnoperator.

+	extensionContainer	[3] ExtensionContainer	OPTIONAL,

+	...,

+	ext-externalClientList	[4] Ext-ExternalClientList	OPTIONAL,

+	-- Ext-externalClientList may be sent only if the visited node supports LCS Release 4 or

+	-- later versions, the user did specify more than 5 clients, and White Book SCCP is used.

+	serviceTypeList	[5]	ServiceTypeList	OPTIONAL

+	-- serviceTypeList may be sent only for SS-code serviceType and if the visited node

+	-- supports LCS Release 5 or later versions.

+	-- 

+	-- if segmentation is used, the complete LCS-PrivacyClass shall be sent in one segment

+}

+

+ExternalClientList ::= SEQUENCE SIZE (0..maxNumOfExternalClient) OF

+				ExternalClient

+

+maxNumOfExternalClient  INTEGER ::= 5

+

+PLMNClientList ::= SEQUENCE SIZE (1..maxNumOfPLMNClient) OF

+				LCSClientInternalID

+

+maxNumOfPLMNClient  INTEGER ::= 5

+

+Ext-ExternalClientList ::= SEQUENCE SIZE (1..maxNumOfExt-ExternalClient) OF

+				ExternalClient

+

+maxNumOfExt-ExternalClient  INTEGER ::= 35

+

+ExternalClient ::= SEQUENCE {

+	clientIdentity	LCSClientExternalID,

+	gmlc-Restriction	[0] GMLC-Restriction	OPTIONAL,

+	notificationToMSUser	[1] NotificationToMSUser	OPTIONAL,

+	-- If notificationToMSUser is not received, the default value according to 

+	-- 3GPP TS 23.271 shall be assumed.

+	extensionContainer	[2] ExtensionContainer	OPTIONAL,

+	... }

+

+GMLC-Restriction ::= ENUMERATED {

+	gmlc-List		(0),

+	home-Country	(1) ,

+	... }

+-- exception handling:

+-- At reception of any other value than the ones listed the receiver shall ignore

+-- GMLC-Restriction.

+

+NotificationToMSUser ::= ENUMERATED {

+	notifyLocationAllowed	(0),

+	notifyAndVerify-LocationAllowedIfNoResponse	(1),

+	notifyAndVerify-LocationNotAllowedIfNoResponse	(2),

+	...,

+	locationNotAllowed (3) }

+-- exception handling:

+-- At reception of any other value than the ones listed the receiver shall ignore

+-- NotificationToMSUser.

+

+ServiceTypeList ::= SEQUENCE SIZE (1..maxNumOfServiceType) OF

+				ServiceType

+

+maxNumOfServiceType  INTEGER ::= 32

+

+ServiceType ::= SEQUENCE {

+	serviceTypeIdentity	LCSServiceTypeID,

+	gmlc-Restriction	[0] GMLC-Restriction	OPTIONAL,

+	notificationToMSUser	[1] NotificationToMSUser	OPTIONAL,

+	-- If notificationToMSUser is not received, the default value according to 

+	-- 3GPP TS 23.271 shall be assumed.

+	extensionContainer	[2] ExtensionContainer	OPTIONAL,

+	... }

+

+MOLR-List ::= SEQUENCE SIZE (1..maxNumOfMOLR-Class) OF

+				MOLR-Class

+

+maxNumOfMOLR-Class  INTEGER ::= 3

+

+MOLR-Class ::= SEQUENCE {

+	ss-Code		SS-Code,

+	ss-Status		Ext-SS-Status,

+	extensionContainer	[0] ExtensionContainer	OPTIONAL,

+	...}

+

+ZoneCodeList ::= SEQUENCE SIZE (1..maxNumOfZoneCodes)

+				OF ZoneCode

+

+ZoneCode ::= OCTET STRING (SIZE (2))

+	-- internal structure is defined in TS 3GPP TS 23.003 [17]

+

+maxNumOfZoneCodes  INTEGER ::= 10

+

+InsertSubscriberDataRes ::= SEQUENCE {

+	teleserviceList	[1] TeleserviceList	OPTIONAL,

+	bearerServiceList	[2] BearerServiceList	OPTIONAL,

+	ss-List		[3] SS-List	OPTIONAL,

+	odb-GeneralData	[4] ODB-GeneralData	OPTIONAL,

+	regionalSubscriptionResponse	[5] RegionalSubscriptionResponse	OPTIONAL,

+	supportedCamelPhases	[6] SupportedCamelPhases	OPTIONAL,

+	extensionContainer	[7] ExtensionContainer	OPTIONAL,

+	... ,

+	offeredCamel4CSIs	[8] OfferedCamel4CSIs	OPTIONAL }

+

+RegionalSubscriptionResponse ::= ENUMERATED {

+	networkNode-AreaRestricted	(0),

+	tooManyZoneCodes	(1),

+	zoneCodesConflict	(2),

+	regionalSubscNotSupported	(3)}

+

+DeleteSubscriberDataArg ::= SEQUENCE {

+	imsi			[0] IMSI,

+	basicServiceList	[1] BasicServiceList	OPTIONAL,

+	-- The exception handling for reception of unsupported/not allocated

+	-- basicServiceCodes is defined in section 6.8.2

+	ss-List		[2] SS-List	OPTIONAL,

+	roamingRestrictionDueToUnsupportedFeature [4] NULL	OPTIONAL,

+	regionalSubscriptionIdentifier	[5] ZoneCode	OPTIONAL,

+	vbsGroupIndication	[7] NULL		OPTIONAL,

+	vgcsGroupIndication	[8] NULL	 OPTIONAL,

+	camelSubscriptionInfoWithdraw	[9] NULL	 OPTIONAL,

+	extensionContainer	[6] ExtensionContainer OPTIONAL,

+	...,

+	gprsSubscriptionDataWithdraw	[10] GPRSSubscriptionDataWithdraw	OPTIONAL,

+	roamingRestrictedInSgsnDueToUnsuppportedFeature [11] NULL	OPTIONAL,

+	lsaInformationWithdraw	[12] LSAInformationWithdraw	OPTIONAL,

+	gmlc-ListWithdraw 	[13]	NULL		OPTIONAL,

+	istInformationWithdraw	[14] NULL		OPTIONAL,

+	specificCSI-Withdraw	[15] SpecificCSI-Withdraw	OPTIONAL }

+

+SpecificCSI-Withdraw ::= BIT STRING {

+	o-csi (0),

+	ss-csi (1),

+	tif-csi (2),

+	d-csi (3),

+	vt-csi (4),

+	mo-sms-csi (5),

+	m-csi (6),

+	gprs-csi (7),

+	t-csi (8),

+	mt-sms-csi (9),

+	mg-csi (10),

+	o-IM-CSI (11), 

+	d-IM-CSI (12),

+	vt-IM-CSI (13) } (SIZE(8..32)) 

+-- exception handling:

+-- bits 11 to 31 shall be ignored if received by a non-IP Multimedia Core Network entity.

+-- bits 0-10 and 14-31 shall be ignored if received by an IP Multimedia Core Network entity.

+-- bits 11-13 are only applicable in an IP Multimedia Core Network.

+-- Bit 8 and bits 11-13 are only applicable for the NoteSubscriberDataModified operation.

+

+GPRSSubscriptionDataWithdraw ::= CHOICE {

+	allGPRSData	NULL,

+	contextIdList	ContextIdList}

+

+ContextIdList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF

+				ContextId

+

+LSAInformationWithdraw ::= CHOICE {

+	allLSAData	NULL,

+	lsaIdentityList	LSAIdentityList }

+

+LSAIdentityList ::= SEQUENCE SIZE (1..maxNumOfLSAs) OF

+				LSAIdentity

+

+BasicServiceList ::= SEQUENCE SIZE (1..maxNumOfBasicServices) OF

+				Ext-BasicServiceCode

+

+maxNumOfBasicServices  INTEGER ::= 70

+

+DeleteSubscriberDataRes ::= SEQUENCE {

+	regionalSubscriptionResponse	[0] RegionalSubscriptionResponse	OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+VlrCamelSubscriptionInfo ::= SEQUENCE {

+	o-CSI		[0] O-CSI		OPTIONAL,

+	extensionContainer	[1] ExtensionContainer	OPTIONAL,

+	...,

+	ss-CSI		[2] SS-CSI	OPTIONAL,

+	o-BcsmCamelTDP-CriteriaList	[4] O-BcsmCamelTDPCriteriaList	OPTIONAL,

+	tif-CSI		[3] NULL	OPTIONAL,

+	m-CSI		[5] M-CSI	OPTIONAL,

+	mo-sms-CSI	[6] SMS-CSI	OPTIONAL,

+	vt-CSI		[7] T-CSI	OPTIONAL,

+	t-BCSM-CAMEL-TDP-CriteriaList	[8] T-BCSM-CAMEL-TDP-CriteriaList	OPTIONAL,

+	d-CSI		[9] D-CSI	OPTIONAL,

+	mt-sms-CSI	[10] SMS-CSI	OPTIONAL,

+	mt-smsCAMELTDP-CriteriaList	[11]	MT-smsCAMELTDP-CriteriaList	OPTIONAL

+	}

+

+MT-smsCAMELTDP-CriteriaList ::= SEQUENCE SIZE (1.. maxNumOfCamelTDPData) OF

+	MT-smsCAMELTDP-Criteria

+

+MT-smsCAMELTDP-Criteria ::= SEQUENCE {

+	sms-TriggerDetectionPoint	SMS-TriggerDetectionPoint,

+	tpdu-TypeCriterion	[0]	TPDU-TypeCriterion		OPTIONAL,

+	... }

+

+TPDU-TypeCriterion ::= SEQUENCE SIZE (1..maxNumOfTPDUTypes) OF

+	MT-SMS-TPDU-Type

+

+

+maxNumOfTPDUTypes INTEGER ::= 5

+

+MT-SMS-TPDU-Type ::= ENUMERATED {

+	sms-DELIVER 	(0),

+	sms-SUBMIT-REPORT 	(1),

+	sms-STATUS-REPORT 	(2),

+	... }

+

+--	exception handling:

+--	For TPDU-TypeCriterion sequences containing this parameter with any

+--	other value than the ones listed above the receiver shall ignore 

+--	the whole TPDU-TypeCriterion sequence.

+--	In CAMEL phase 4, sms-SUBMIT-REPORT shall not be used and a received TPDU-TypeCriterion

+--	sequence containing sms-SUBMIT-REPORT shall be wholly ignored.

+

+D-CSI ::= SEQUENCE {

+	dp-AnalysedInfoCriteriaList	[0] DP-AnalysedInfoCriteriaList	OPTIONAL,

+	camelCapabilityHandling	[1] CamelCapabilityHandling	OPTIONAL,

+	extensionContainer	[2] ExtensionContainer	OPTIONAL,

+	notificationToCSE	[3]	NULL		OPTIONAL,

+	csi-Active	[4]	NULL		OPTIONAL,

+	...} 

+--	notificationToCSE and csi-Active shall not be present when D-CSI is sent to VLR/GMSC.

+--	They may only be included in ATSI/ATM ack/NSDC message.

+--	DP-AnalysedInfoCriteria and  camelCapabilityHandling shall be present in 

+--	the D-CSI sequence.

+--	If D-CSI is segmented, then the first segment shall contain dp-AnalysedInfoCriteriaList

+--	and camelCapabilityHandling. Subsequent segments shall not contain

+--	camelCapabilityHandling, but may contain dp-AnalysedInfoCriteriaList.

+

+DP-AnalysedInfoCriteriaList  ::= SEQUENCE SIZE (1..maxNumOfDP-AnalysedInfoCriteria) OF

+				DP-AnalysedInfoCriterium

+

+maxNumOfDP-AnalysedInfoCriteria INTEGER ::= 10

+

+DP-AnalysedInfoCriterium ::= SEQUENCE {

+	dialledNumber	ISDN-AddressString,

+	serviceKey	ServiceKey,

+	gsmSCF-Address	ISDN-AddressString,

+	defaultCallHandling	DefaultCallHandling,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+SS-CSI ::= SEQUENCE {

+	ss-CamelData	SS-CamelData,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...,

+	notificationToCSE	[0]	NULL		OPTIONAL,

+	csi-Active	[1]	NULL		OPTIONAL

+--	notificationToCSE and csi-Active shall not be present when SS-CSI is sent to VLR.

+--	They may only be included in ATSI/ATM ack/NSDC message.

+}

+

+SS-CamelData  ::= SEQUENCE {

+	ss-EventList	SS-EventList,

+	gsmSCF-Address	ISDN-AddressString,

+	extensionContainer	[0] ExtensionContainer	OPTIONAL, 

+	...}

+

+SS-EventList  ::= SEQUENCE SIZE (1..maxNumOfCamelSSEvents) OF SS-Code

+	-- Actions for the following SS-Code values are defined in CAMEL Phase 3:

+	-- ect		SS-Code ::= '00110001'B

+	-- multiPTY	SS-Code ::= '01010001'B

+	-- cd		SS-Code ::= '00100100'B

+	-- ccbs		SS-Code ::= '01000100'B

+	-- all other SS codes shall be ignored

+	-- When SS-CSI is sent to the VLR, it shall not contain a marking for ccbs.

+	-- If the VLR receives SS-CSI containing a marking for ccbs, the VLR shall discard the

+	-- ccbs marking in SS-CSI.

+

+maxNumOfCamelSSEvents INTEGER ::= 10

+

+O-CSI ::= SEQUENCE {

+	o-BcsmCamelTDPDataList	O-BcsmCamelTDPDataList,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...,

+	camelCapabilityHandling	[0] CamelCapabilityHandling	OPTIONAL,

+	notificationToCSE	[1]	NULL		OPTIONAL,

+	csiActive		[2]	NULL		OPTIONAL}

+--	notificationtoCSE and csiActive shall not be present when O-CSI is sent to VLR/GMSC.

+--	They may only be included in ATSI/ATM ack/NSDC message.

+--	O-CSI shall not be segmented.

+

+O-BcsmCamelTDPDataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF

+	O-BcsmCamelTDPData

+	-- O-BcsmCamelTDPDataList shall not contain more than one instance of

+	-- O-BcsmCamelTDPData containing the same value for o-BcsmTriggerDetectionPoint.

+	-- For CAMEL Phase 2, this means that only one instance of O-BcsmCamelTDPData is allowed

+	-- with o-BcsmTriggerDetectionPoint being equal to DP2.

+

+maxNumOfCamelTDPData  INTEGER ::= 10

+

+O-BcsmCamelTDPData ::= SEQUENCE {

+	o-BcsmTriggerDetectionPoint	O-BcsmTriggerDetectionPoint,

+	serviceKey	ServiceKey,

+	gsmSCF-Address	[0] ISDN-AddressString,

+	defaultCallHandling	[1] DefaultCallHandling,

+	extensionContainer	[2] ExtensionContainer	OPTIONAL,

+	...

+	}

+

+ServiceKey ::= INTEGER (0..2147483647)

+

+O-BcsmTriggerDetectionPoint ::= ENUMERATED {

+	collectedInfo (2),

+	...,

+	routeSelectFailure (4) }

+	-- exception handling:

+	-- For O-BcsmCamelTDPData sequences containing this parameter with any

+	-- other value than the ones listed the receiver shall ignore the whole 

+	-- O-BcsmCamelTDPDatasequence. 

+	-- For O-BcsmCamelTDP-Criteria sequences containing this parameter with any

+	-- other value than the ones listed the receiver shall ignore the whole

+	-- O-BcsmCamelTDP-Criteria sequence.

+

+O-BcsmCamelTDPCriteriaList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF

+	O-BcsmCamelTDP-Criteria 

+

+T-BCSM-CAMEL-TDP-CriteriaList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF

+	T-BCSM-CAMEL-TDP-Criteria 

+

+O-BcsmCamelTDP-Criteria ::= SEQUENCE {

+	o-BcsmTriggerDetectionPoint	O-BcsmTriggerDetectionPoint,	

+	destinationNumberCriteria 	[0] DestinationNumberCriteria	OPTIONAL,

+	basicServiceCriteria	[1] BasicServiceCriteria	OPTIONAL,

+	callTypeCriteria	[2] CallTypeCriteria	OPTIONAL,

+	...,

+	o-CauseValueCriteria	[3] O-CauseValueCriteria	OPTIONAL,

+	extensionContainer	[4] ExtensionContainer	OPTIONAL }

+

+T-BCSM-CAMEL-TDP-Criteria ::= SEQUENCE {

+	t-BCSM-TriggerDetectionPoint	T-BcsmTriggerDetectionPoint,	

+	basicServiceCriteria	[0] BasicServiceCriteria	OPTIONAL,

+	t-CauseValueCriteria	[1] T-CauseValueCriteria	OPTIONAL,

+	... }

+

+DestinationNumberCriteria  ::= SEQUENCE {

+	matchType		[0] MatchType,

+	destinationNumberList 	[1] DestinationNumberList	OPTIONAL,

+	destinationNumberLengthList	[2] DestinationNumberLengthList	OPTIONAL,

+	-- one or both of destinationNumberList and destinationNumberLengthList 

+	-- shall be present

+	...}

+

+DestinationNumberList  ::= SEQUENCE SIZE	(1..maxNumOfCamelDestinationNumbers) OF

+				ISDN-AddressString

+	-- The receiving entity shall not check the format of a number in

+	-- the dialled number list

+

+DestinationNumberLengthList  ::= SEQUENCE SIZE (1..maxNumOfCamelDestinationNumberLengths) OF 

+					INTEGER(1..maxNumOfISDN-AddressDigits)

+

+BasicServiceCriteria   ::= SEQUENCE SIZE(1..maxNumOfCamelBasicServiceCriteria) OF

+	Ext-BasicServiceCode

+

+maxNumOfISDN-AddressDigits  INTEGER ::= 15

+

+maxNumOfCamelDestinationNumbers  INTEGER ::= 10

+

+maxNumOfCamelDestinationNumberLengths  INTEGER ::= 3

+

+maxNumOfCamelBasicServiceCriteria  INTEGER ::= 5

+

+CallTypeCriteria       ::= ENUMERATED {

+	forwarded 	(0),

+	notForwarded	(1)}

+

+MatchType       ::= ENUMERATED {

+	inhibiting 	(0),

+	enabling		(1)}

+

+O-CauseValueCriteria   ::= SEQUENCE SIZE(1..maxNumOfCAMEL-O-CauseValueCriteria) OF

+	CauseValue

+

+T-CauseValueCriteria   ::= SEQUENCE SIZE(1..maxNumOfCAMEL-T-CauseValueCriteria) OF

+	CauseValue

+

+maxNumOfCAMEL-O-CauseValueCriteria  INTEGER ::= 5

+

+maxNumOfCAMEL-T-CauseValueCriteria  INTEGER ::= 5

+

+CauseValue ::= OCTET STRING (SIZE(1))

+-- Type extracted from Cause parameter in ITU-T Recommendation Q.763.

+-- For the use of cause value refer to ITU-T Recommendation Q.850.

+

+DefaultCallHandling ::= ENUMERATED {

+	continueCall (0) ,

+	releaseCall (1) ,

+	...}

+	-- exception handling:

+	-- reception of values in range 2-31 shall be treated as "continueCall"

+	-- reception of values greater than 31 shall be treated as "releaseCall"

+

+CamelCapabilityHandling ::= INTEGER(1..16) 

+	-- value 1 = CAMEL phase 1,

+	-- value 2 = CAMEL phase 2,

+	-- value 3 = CAMEL Phase 3,

+	-- value 4 = CAMEL phase 4:

+	-- reception of values greater than 4 shall be treated as CAMEL phase 4.

+

+SupportedCamelPhases ::= BIT STRING {

+	phase1 (0),

+	phase2 (1),

+	phase3 (2),

+	phase4 (3)} (SIZE (1..16)) 

+-- A node shall mark in the BIT STRING all CAMEL Phases it supports.

+-- Other values than listed above shall be discarded.

+

+OfferedCamel4CSIs ::= BIT STRING { 	

+	o-csi		(0),

+	d-csi		(1),

+	vt-csi		(2),

+	t-csi		(3),

+	mt-sms-csi	(4),

+	mg-csi		(5),

+	psi-enhancements	(6) 

+} (SIZE (7..16))

+-- A node supporting Camel phase 4 shall mark in the BIT STRING all Camel4 CSIs 

+-- it offers.

+-- Other values than listed above shall be discarded.

+

+OfferedCamel4Functionalities ::= BIT STRING { 	

+	initiateCallAttempt	(0),

+	splitLeg		(1),

+	moveLeg		(2),

+	disconnectLeg	(3),

+	entityReleased	(4),

+	dfc-WithArgument	(5),

+	playTone		(6),

+	dtmf-MidCall	(7),

+	chargingIndicator	(8),

+	alertingDP	(9),

+	locationAtAlerting	(10),

+	changeOfPositionDP	(11),

+	or-Interactions	(12),

+	warningToneEnhancements	(13),

+	cf-Enhancements	(14),

+	subscribedEnhancedDialledServices 	(15),

+	servingNetworkEnhancedDialledServices (16),

+	criteriaForChangeOfPositionDP	(17),

+	serviceChangeDP	(18)

+} (SIZE (15..64))

+-- A node supporting Camel phase 4 shall mark in the BIT STRING all CAMEL4 

+-- functionalities it offers.

+-- Other values than listed above shall be discarded.

+

+SMS-CSI ::= SEQUENCE {

+	sms-CAMEL-TDP-DataList	[0] SMS-CAMEL-TDP-DataList	OPTIONAL,

+	camelCapabilityHandling	[1] CamelCapabilityHandling	OPTIONAL,

+	extensionContainer	[2] ExtensionContainer	OPTIONAL,

+	notificationToCSE	[3] NULL		OPTIONAL,

+	csi-Active	[4] NULL		OPTIONAL,

+	...}

+--	notificationToCSE and csi-Active shall not be present

+--	when MO-SMS-CSI or MT-SMS-CSI is sent to VLR or SGSN.

+--	They may only be included in ATSI/ATM ack/NSDC message.

+--	SMS-CAMEL-TDP-Data and  camelCapabilityHandling shall be present in 

+--	the SMS-CSI sequence.

+--	If SMS-CSI is segmented, sms-CAMEL-TDP-DataList and camelCapabilityHandling shall be 

+--	present in the first segment

+

+SMS-CAMEL-TDP-DataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF

+	SMS-CAMEL-TDP-Data

+--	SMS-CAMEL-TDP-DataList shall not contain more than one instance of

+--	SMS-CAMEL-TDP-Data containing the same value for sms-TriggerDetectionPoint.

+

+SMS-CAMEL-TDP-Data ::= SEQUENCE {

+	sms-TriggerDetectionPoint	[0] SMS-TriggerDetectionPoint,

+	serviceKey	[1] ServiceKey,

+	gsmSCF-Address	[2] ISDN-AddressString,

+	defaultSMS-Handling	[3] DefaultSMS-Handling,

+	extensionContainer	[4] ExtensionContainer	OPTIONAL,

+	...

+	}

+

+SMS-TriggerDetectionPoint ::= ENUMERATED {

+	sms-CollectedInfo (1),

+	...,

+	sms-DeliveryRequest (2)

+	}

+--	exception handling:

+--	For SMS-CAMEL-TDP-Data and MT-smsCAMELTDP-Criteria sequences containing this 

+--	parameter with any other value than the ones listed the receiver shall ignore

+--	the whole sequence.

+--

+--	If this parameter is received with any other value than sms-CollectedInfo

+--	in an SMS-CAMEL-TDP-Data sequence contained in mo-sms-CSI, then the receiver shall

+--	ignore the whole SMS-CAMEL-TDP-Data sequence.

+--

+--	If this parameter is received with any other value than sms-DeliveryRequest

+--	in an SMS-CAMEL-TDP-Data sequence contained in mt-sms-CSI then the receiver shall

+--	ignore the whole SMS-CAMEL-TDP-Data sequence.

+--

+--	If this parameter is received with any other value than sms-DeliveryRequest

+--	in an MT-smsCAMELTDP-Criteria sequence then the receiver shall

+--	ignore the whole MT-smsCAMELTDP-Criteria sequence.

+

+DefaultSMS-Handling ::= ENUMERATED {

+	continueTransaction (0) ,

+	releaseTransaction (1) ,

+	...}

+--	exception handling:

+--	reception of values in range 2-31 shall be treated as "continueTransaction"

+--	reception of values greater than 31 shall be treated as "releaseTransaction"

+

+M-CSI ::= SEQUENCE {

+	mobilityTriggers	MobilityTriggers,

+	serviceKey	ServiceKey,

+	gsmSCF-Address	[0]	ISDN-AddressString,

+	extensionContainer	[1]	ExtensionContainer	OPTIONAL,

+	notificationToCSE	[2] NULL		OPTIONAL,

+	csi-Active	[3] NULL		OPTIONAL,

+	...}

+--	notificationToCSE and csi-Active shall not be present when M-CSI is sent to VLR.

+--	They may only be included in ATSI/ATM ack/NSDC message.

+

+MG-CSI ::= SEQUENCE {

+	mobilityTriggers	MobilityTriggers,

+	serviceKey	ServiceKey,

+	gsmSCF-Address	[0]	ISDN-AddressString,

+	extensionContainer	[1]	ExtensionContainer	OPTIONAL,

+	notificationToCSE	[2] NULL		OPTIONAL,

+	csi-Active	[3] NULL		OPTIONAL,

+	...}

+--	notificationToCSE and csi-Active shall not be present when MG-CSI is sent to SGSN.

+--	They may only be included in ATSI/ATM ack/NSDC message.

+

+MobilityTriggers  ::= SEQUENCE SIZE (1..maxNumOfMobilityTriggers) OF

+	MM-Code

+

+maxNumOfMobilityTriggers INTEGER ::= 10

+

+MM-Code ::= OCTET STRING (SIZE (1))

+--	This type is used to indicate a Mobility Management event.

+--	Actions for the following MM-Code values are defined in CAMEL Phase 4:

+--

+--	CS domain MM events:

+--	Location-update-in-same-VLR	MM-Code ::= '00000000'B

+--	Location-update-to-other-VLR	MM-Code ::= '00000001'B

+--	IMSI-Attach	MM-Code ::= '00000010'B

+--	MS-initiated-IMSI-Detach	MM-Code ::= '00000011'B

+--	Network-initiated-IMSI-Detach	MM-Code ::= '00000100'B

+--

+--	PS domain MM events:

+--	Routeing-Area-update-in-same-SGSN	MM-Code ::= '10000000'B

+--	Routeing-Area-update-to-other-SGSN-update-from-new-SGSN

+--				MM-Code ::= '10000001'B

+--	Routeing-Area-update-to-other-SGSN-disconnect-by-detach

+--				MM-Code ::= '10000010'B

+--	GPRS-Attach	MM-Code ::= '10000011'B

+--	MS-initiated-GPRS-Detach	MM-Code ::= '10000100'B

+--	Network-initiated-GPRS-Detach	MM-Code ::= '10000101'B 

+--	Network-initiated-transfer-to-MS-not-reachable-for-paging

+--				MM-Code ::= '10000110'B

+--

+--	If the MSC receives any other MM-code than the ones listed above for the

+--	CS domain, then the MSC shall ignore that MM-code.

+--	If the SGSN receives any other MM-code than the ones listed above for the

+--	PS domain, then the SGSN shall ignore that MM-code.

+

+T-CSI ::= SEQUENCE {

+	t-BcsmCamelTDPDataList	T-BcsmCamelTDPDataList,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...,

+	camelCapabilityHandling	[0] CamelCapabilityHandling	OPTIONAL,

+	notificationToCSE	[1] NULL		OPTIONAL,

+	csi-Active	[2] NULL		OPTIONAL}

+--	notificationToCSE and csi-Active shall not be present when VT-CSI/T-CSI is sent

+--	to VLR/GMSC.

+--	They may only be included in ATSI/ATM ack/NSDC message.

+--	T-CSI shall not be segmented.

+

+T-BcsmCamelTDPDataList ::= SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF

+	T-BcsmCamelTDPData

+	--- T-BcsmCamelTDPDataList shall not contain more than one instance of

+	--- T-BcsmCamelTDPData containing the same value for t-BcsmTriggerDetectionPoint.

+	--- For CAMEL Phase 2, this means that only one instance of T-BcsmCamelTDPData is allowed

+	--- with t-BcsmTriggerDetectionPoint being equal to DP12. 

+	--- For CAMEL Phase 3, more TDP's are allowed.

+

+T-BcsmCamelTDPData ::= SEQUENCE {

+	t-BcsmTriggerDetectionPoint	T-BcsmTriggerDetectionPoint,

+	serviceKey	ServiceKey,

+	gsmSCF-Address	[0] ISDN-AddressString,

+	defaultCallHandling	[1] DefaultCallHandling,

+	extensionContainer	[2] ExtensionContainer	OPTIONAL,

+	...}

+

+T-BcsmTriggerDetectionPoint ::= ENUMERATED {

+	termAttemptAuthorized (12),

+	... ,

+	tBusy (13),

+	tNoAnswer (14)}

+	-- exception handling:

+	-- For T-BcsmCamelTDPData sequences containing this parameter with any other

+	-- value than the ones listed above, the receiver shall ignore the whole

+	-- T-BcsmCamelTDPData sequence.

+

+-- gprs location information retrieval types

+

+SendRoutingInfoForGprsArg ::= SEQUENCE {

+	imsi				[0] IMSI,

+	ggsn-Address		[1] GSN-Address	OPTIONAL, 

+	ggsn-Number		[2]	ISDN-AddressString,

+	extensionContainer		[3] ExtensionContainer	OPTIONAL,

+	...}

+

+SendRoutingInfoForGprsRes ::= SEQUENCE {

+	sgsn-Address		[0] GSN-Address,

+	ggsn-Address		[1]	GSN-Address	OPTIONAL,

+	mobileNotReachableReason		[2]	AbsentSubscriberDiagnosticSM		OPTIONAL,

+	extensionContainer		[3] ExtensionContainer	OPTIONAL,

+	...}

+

+-- failure report types

+

+FailureReportArg ::= SEQUENCE {

+	imsi				[0] IMSI,

+	ggsn-Number		[1] ISDN-AddressString	,

+	ggsn-Address		[2] GSN-Address	OPTIONAL,

+	extensionContainer		[3] ExtensionContainer	OPTIONAL,

+	...}

+

+FailureReportRes ::= SEQUENCE {

+	ggsn-Address		[0] GSN-Address	OPTIONAL,

+	extensionContainer		[1] ExtensionContainer	OPTIONAL,

+	...}

+

+-- gprs notification types

+

+NoteMsPresentForGprsArg ::= SEQUENCE {

+	imsi				[0] IMSI,

+	sgsn-Address		[1] GSN-Address,

+	ggsn-Address		[2] GSN-Address	OPTIONAL,

+	extensionContainer		[3] ExtensionContainer	OPTIONAL,

+	...}

+

+NoteMsPresentForGprsRes ::= SEQUENCE {

+	extensionContainer		[0] ExtensionContainer	OPTIONAL,

+	...}

+

+-- fault recovery types

+

+ResetArg ::= SEQUENCE {

+	hlr-Number	ISDN-AddressString,

+	hlr-List		HLR-List		OPTIONAL,

+	...}

+

+RestoreDataArg ::= SEQUENCE {

+	imsi			IMSI,

+	lmsi			LMSI			OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	... ,

+	vlr-Capability	[6] VLR-Capability	OPTIONAL }

+

+RestoreDataRes ::= SEQUENCE {

+	hlr-Number	ISDN-AddressString,

+	msNotReachable	NULL			OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+-- VBS/VGCS types

+VBSDataList ::= SEQUENCE SIZE (1..maxNumOfVBSGroupIds) OF

+				VoiceBroadcastData

+

+VGCSDataList ::= SEQUENCE SIZE (1..maxNumOfVGCSGroupIds) OF

+				VoiceGroupCallData

+

+maxNumOfVBSGroupIds  INTEGER ::= 50

+

+maxNumOfVGCSGroupIds  INTEGER ::= 50

+

+VoiceGroupCallData  ::= SEQUENCE {

+	groupId		GroupId,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+VoiceBroadcastData ::= SEQUENCE {

+	groupid		GroupId,

+	broadcastInitEntitlement	NULL			OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+GroupId  ::= TBCD-STRING (SIZE (3))

+	-- When Group-Id is less than six characters in length, the TBCD filler (1111)

+	-- is used to fill unused half octets.

+	-- Refers to the Group Identification as specified in 3GPP TS 23.003 

+	-- and 3GPP TS 43.068/ 43.069

+

+-- provide subscriber info types

+

+ProvideSubscriberInfoArg ::= SEQUENCE {

+	imsi		[0] IMSI,

+	lmsi		[1] LMSI	OPTIONAL,

+	requestedInfo	[2] RequestedInfo,

+	extensionContainer	[3] ExtensionContainer	OPTIONAL,

+	...}

+

+ProvideSubscriberInfoRes ::= SEQUENCE {

+	subscriberInfo	SubscriberInfo,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+SubscriberInfo ::= SEQUENCE {

+	locationInformation	[0] LocationInformation	OPTIONAL,

+	subscriberState	[1] SubscriberState	OPTIONAL,

+	extensionContainer	[2] ExtensionContainer	OPTIONAL,

+	... ,

+	locationInformationGPRS	[3] LocationInformationGPRS	OPTIONAL,

+	ps-SubscriberState	[4] PS-SubscriberState	OPTIONAL,

+	imei			[5] IMEI		OPTIONAL,

+	ms-Classmark2	[6] MS-Classmark2	OPTIONAL,

+	gprs-MS-Class	[7] GPRSMSClass	OPTIONAL,

+	mnpInfoRes	[8] MNPInfoRes	OPTIONAL }

+

+--	If the HLR receives locationInformation, subscriberState or ms-Classmark2 from an SGSN

+--	it shall discard them.

+--	If the HLR receives locationInformationGPRS, ps-SubscriberState or gprs-MS-Class from

+--	a VLR it shall discard them.

+--	If the HLR receives parameters which it has not requested, it shall discard them.

+

+MNPInfoRes ::= SEQUENCE {

+	routeingNumber	[0] RouteingNumber 	OPTIONAL,

+	imsi			[1] IMSI		OPTIONAL,

+	msisdn		[2] ISDN-AddressString 	OPTIONAL,

+	numberPortabilityStatus	[3] NumberPortabilityStatus	OPTIONAL,

+	extensionContainer	[4] ExtensionContainer	OPTIONAL,

+	... }

+--	The IMSI parameter contains a generic IMSI, i.e. it is not tied necessarily to the 

+--	Subscriber. MCC and MNC values in this IMSI shall point to the Subscription Network of 

+--	the Subscriber. See 3GPP TS 23.066 [108].

+

+RouteingNumber ::= TBCD-STRING (SIZE (1..5))

+

+

+NumberPortabilityStatus ::= ENUMERATED {

+	notKnownToBePorted	(0),

+	ownNumberPortedOut	(1),

+	foreignNumberPortedToForeignNetwork	(2),

+	...,

+	ownNumberNotPortedOut	(4),

+	foreignNumberPortedIn	(5)

+	}

+	--	exception handling: 

+	--  reception of other values than the ones listed the receiver shall ignore the 

+	--  whole NumberPortabilityStatus;

+	--  ownNumberNotPortedOut or foreignNumberPortedIn may only be included in Any Time 

+	--  Interrogation message.

+

+MS-Classmark2 ::= OCTET STRING (SIZE (3))

+	-- This parameter carries the value part of the MS Classmark 2 IE defined in 

+	-- 3GPP TS 24.008 [35].

+

+GPRSMSClass ::= SEQUENCE {

+	mSNetworkCapability	[0] MSNetworkCapability,

+	mSRadioAccessCapability	[1] MSRadioAccessCapability	OPTIONAL

+	}

+

+MSNetworkCapability ::= OCTET STRING (SIZE (1..8))

+	-- This parameter carries the value part of the MS Network Capability IE defined in 

+	-- 3GPP TS 24.008 [35].

+	

+MSRadioAccessCapability ::= OCTET STRING (SIZE (1..50))

+	-- This parameter carries the value part of the MS Radio Access Capability IE defined in

+	-- 3GPP TS 24.008 [35].

+

+RequestedInfo ::= SEQUENCE {

+	locationInformation	[0] NULL		OPTIONAL,

+	subscriberState	[1] NULL		OPTIONAL,

+	extensionContainer	[2] ExtensionContainer	OPTIONAL,

+	..., 

+	currentLocation	[3] NULL		OPTIONAL,

+	requestedDomain	[4] DomainType	OPTIONAL,

+	imei			[6] NULL		OPTIONAL,

+	ms-classmark	[5] NULL		OPTIONAL,

+	mnpRequestedInfo	[7] NULL 		OPTIONAL }

+

+--	currentLocation shall be absent if locationInformation is absent

+

+DomainType ::=  ENUMERATED {

+	cs-Domain		(0),

+	ps-Domain		(1),

+	...}

+-- exception handling:

+-- reception of values > 1 shall be mapped to 'cs-Domain'

+

+LocationInformation ::= SEQUENCE {

+	ageOfLocationInformation	AgeOfLocationInformation	OPTIONAL,

+	geographicalInformation	[0] GeographicalInformation	OPTIONAL,

+	vlr-number	[1] ISDN-AddressString	OPTIONAL,

+	locationNumber	[2] LocationNumber	OPTIONAL,

+	cellGlobalIdOrServiceAreaIdOrLAI	[3] CellGlobalIdOrServiceAreaIdOrLAI	OPTIONAL,

+	extensionContainer	[4] ExtensionContainer	OPTIONAL,

+	... ,

+	selectedLSA-Id	[5] LSAIdentity	OPTIONAL,

+	msc-Number	[6] ISDN-AddressString	OPTIONAL,

+	geodeticInformation	[7] GeodeticInformation	OPTIONAL, 

+	currentLocationRetrieved	[8] NULL		OPTIONAL,

+	sai-Present	[9] NULL		OPTIONAL }

+-- sai-Present indicates that the cellGlobalIdOrServiceAreaIdOrLAI parameter contains

+-- a Service Area Identity.

+-- currentLocationRetrieved shall be present 

+-- if the location information were retrieved after a successfull paging.

+

+LocationInformationGPRS ::= SEQUENCE {

+	cellGlobalIdOrServiceAreaIdOrLAI	[0] CellGlobalIdOrServiceAreaIdOrLAI OPTIONAL,

+	routeingAreaIdentity	[1] RAIdentity	OPTIONAL,

+	geographicalInformation	[2] GeographicalInformation	OPTIONAL,

+	sgsn-Number	[3] ISDN-AddressString	OPTIONAL,

+	selectedLSAIdentity	[4] LSAIdentity	OPTIONAL,

+	extensionContainer	[5] ExtensionContainer	OPTIONAL,

+	...,

+	sai-Present	[6] NULL		OPTIONAL,

+	geodeticInformation	[7] GeodeticInformation	OPTIONAL,

+	currentLocationRetrieved	[8] NULL		OPTIONAL,

+	ageOfLocationInformation	[9] AgeOfLocationInformation	OPTIONAL }

+-- sai-Present indicates that the cellGlobalIdOrServiceAreaIdOrLAI parameter contains

+-- a Service Area Identity.

+-- currentLocationRetrieved shall be present if the location information

+-- was retrieved after successful paging.

+

+RAIdentity ::= OCTET STRING (SIZE (6))

+-- Routing Area Identity is coded in accordance with 3GPP TS 29.060 [105].

+-- It shall contain the value part defined in 3GPP TS 29.060 only. I.e. the 3GPP TS 29.060

+-- type identifier octet shall not be included.

+

+

+GeographicalInformation ::= OCTET STRING (SIZE (8))

+--	Refers to geographical Information defined in 3GPP TS 23.032.

+--	Only the description of an ellipsoid point with uncertainty circle

+--	as specified in 3GPP TS 23.032 is allowed to be used

+--	The internal structure according to 3GPP TS 23.032 is as follows:

+--		Type of shape (ellipsoid point with uncertainty circle)	1 octet

+--		Degrees of Latitude				3 octets

+--		Degrees of Longitude				3 octets

+--		Uncertainty code				1 octet

+

+GeodeticInformation ::= OCTET STRING (SIZE (10))

+--	Refers to Calling Geodetic Location defined in Q.763 (1999).

+--	Only the description of an ellipsoid point with uncertainty circle

+--	as specified in Q.763 (1999) is allowed to be used

+--	The internal structure according to Q.763 (1999) is as follows:

+--		Screening and presentation indicators		1 octet

+--		Type of shape (ellipsoid point with uncertainty circle)	1 octet

+--		Degrees of Latitude				3 octets

+--		Degrees of Longitude				3 octets

+--		Uncertainty code				1 octet

+--		Confidence				1 octet

+

+LocationNumber ::= OCTET STRING (SIZE (2..10))

+	-- the internal structure is defined in ITU-T Rec Q.763

+

+SubscriberState ::= CHOICE {

+	assumedIdle	[0] NULL,

+	camelBusy		[1] NULL,

+	netDetNotReachable	NotReachableReason,

+	notProvidedFromVLR	[2] NULL}

+

+PS-SubscriberState ::= CHOICE {

+	notProvidedFromSGSN	[0] NULL,

+	ps-Detached	[1] NULL,

+	ps-AttachedNotReachableForPaging	[2] NULL,

+	ps-AttachedReachableForPaging	[3] NULL,

+	ps-PDP-ActiveNotReachableForPaging	[4] PDP-ContextInfoList,

+	ps-PDP-ActiveReachableForPaging	[5] PDP-ContextInfoList,

+	netDetNotReachable	NotReachableReason }

+

+PDP-ContextInfoList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF

+				PDP-ContextInfo

+

+PDP-ContextInfo ::= SEQUENCE {

+	pdp-ContextIdentifier	[0] ContextId,

+	pdp-ContextActive	[1] NULL		OPTIONAL,

+	pdp-Type		[2] PDP-Type,

+	pdp-Address	[3] PDP-Address	OPTIONAL,

+	apn-Subscribed	[4] APN		OPTIONAL,

+	apn-InUse		[5] APN		OPTIONAL,

+	nsapi		[6] NSAPI		OPTIONAL,

+	transactionId	[7] TransactionId	OPTIONAL,

+	teid-ForGnAndGp	[8] TEID		OPTIONAL,

+	teid-ForIu	[9] TEID		OPTIONAL,

+	ggsn-Address	[10] GSN-Address 	OPTIONAL,

+	qos-Subscribed	[11] Ext-QoS-Subscribed	OPTIONAL,

+	qos-Requested	[12] Ext-QoS-Subscribed	OPTIONAL,

+	qos-Negotiated	[13] Ext-QoS-Subscribed	OPTIONAL,

+	chargingId	[14] GPRSChargingID	OPTIONAL,

+	chargingCharacteristics	[15] ChargingCharacteristics	OPTIONAL,

+	rnc-Address	[16] GSN-Address	OPTIONAL,

+	extensionContainer	[17] ExtensionContainer	OPTIONAL,

+	...,

+	qos2-Subscribed	[18] Ext2-QoS-Subscribed	OPTIONAL,

+	-- qos2-Subscribed may be present only if qos-Subscribed is present.

+	qos2-Requested	[19] Ext2-QoS-Subscribed	OPTIONAL,

+	-- qos2-Requested may be present only if qos-Requested is present.

+	qos2-Negotiated	[20] Ext2-QoS-Subscribed	OPTIONAL

+	-- qos2-Negotiated may be present only if qos-Negotiated is present.

+	}

+

+NSAPI ::= INTEGER (0..15)

+--	This type is used to indicate the Network layer Service Access Point

+

+TransactionId ::= OCTET STRING (SIZE (1..2))

+--	This type carries the value part of the transaction identifier which is used in the 

+--	session management messages on the access interface. The encoding is defined in 

+--	3GPP TS 24.008

+

+TEID ::= OCTET STRING (SIZE (4))

+--	This type carries the value part of the Tunnel Endpoint Identifier which is used to 

+--	distinguish between different tunnels between the same pair of entities which communicate 

+--	using the GPRS Tunnelling Protocol The encoding is defined in 3GPP TS 29.060.

+

+GPRSChargingID ::= OCTET STRING (SIZE (4))

+--	The Charging ID is a unique four octet value generated by the GGSN when 

+--	a PDP Context is activated. A Charging ID is generated for each activated context.

+--	The encoding is defined in 3GPP TS 29.060.

+

+NotReachableReason ::= ENUMERATED {

+	msPurged (0),

+	imsiDetached (1),

+	restrictedArea (2),

+	notRegistered (3)}

+

+-- any time interrogation info types

+

+AnyTimeInterrogationArg ::= SEQUENCE {

+	subscriberIdentity	[0] SubscriberIdentity,

+	requestedInfo	[1] RequestedInfo,

+	gsmSCF-Address	[3] ISDN-AddressString,

+	extensionContainer	[2] ExtensionContainer	OPTIONAL,

+	...}

+

+AnyTimeInterrogationRes ::= SEQUENCE {

+	subscriberInfo	SubscriberInfo,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+-- any time information handling types

+

+AnyTimeSubscriptionInterrogationArg ::= SEQUENCE {

+	subscriberIdentity	[0] SubscriberIdentity,

+	requestedSubscriptionInfo	[1] RequestedSubscriptionInfo,

+	gsmSCF-Address	[2] ISDN-AddressString,

+	extensionContainer	[3] ExtensionContainer	OPTIONAL,

+	longFTN-Supported	[4]	NULL		OPTIONAL,

+	...}

+

+AnyTimeSubscriptionInterrogationRes ::= SEQUENCE {

+	callForwardingData	[1] CallForwardingData	OPTIONAL,

+	callBarringData	[2] CallBarringData	OPTIONAL,

+	odb-Info		[3] ODB-Info	OPTIONAL,

+	camel-SubscriptionInfo	[4] CAMEL-SubscriptionInfo	OPTIONAL,

+	supportedVLR-CAMEL-Phases	[5] SupportedCamelPhases	OPTIONAL,

+	supportedSGSN-CAMEL-Phases	[6] SupportedCamelPhases	OPTIONAL,

+	extensionContainer	[7] ExtensionContainer	OPTIONAL,

+	... ,

+	offeredCamel4CSIsInVLR	[8] OfferedCamel4CSIs	OPTIONAL,

+	offeredCamel4CSIsInSGSN	[9] OfferedCamel4CSIs	OPTIONAL }

+

+RequestedSubscriptionInfo ::= SEQUENCE {

+	requestedSS-Info	[1] SS-ForBS-Code	OPTIONAL,

+	odb			[2] NULL		OPTIONAL,

+	requestedCAMEL-SubscriptionInfo	[3] RequestedCAMEL-SubscriptionInfo		OPTIONAL,

+	supportedVLR-CAMEL-Phases	[4] NULL		OPTIONAL,

+	supportedSGSN-CAMEL-Phases	[5] NULL		OPTIONAL,

+	extensionContainer	[6] ExtensionContainer	OPTIONAL,

+	...,

+	additionalRequestedCAMEL-SubscriptionInfo

+				[7] AdditionalRequestedCAMEL-SubscriptionInfo

+							OPTIONAL }

+

+RequestedCAMEL-SubscriptionInfo ::= ENUMERATED {

+	o-CSI		(0),

+	t-CSI		(1),

+	vt-CSI		(2),

+	tif-CSI		(3),

+	gprs-CSI		(4),

+	mo-sms-CSI	(5),

+	ss-CSI		(6),

+	m-CSI		(7),

+	d-csi		(8)}

+

+AdditionalRequestedCAMEL-SubscriptionInfo ::= ENUMERATED {

+	mt-sms-CSI	(0),

+	mg-csi		(1),

+	o-IM-CSI 		(2),

+	d-IM-CSI		(3),

+	vt-IM-CSI	 	(4),

+	...}

+--	exception handling: unknown values shall be discarded by the receiver.

+

+CallForwardingData ::= SEQUENCE {

+	forwardingFeatureList	Ext-ForwFeatureList,

+	notificationToCSE	NULL			OPTIONAL,

+	extensionContainer	[0] ExtensionContainer	OPTIONAL,

+	...}

+

+CallBarringData ::= SEQUENCE {

+	callBarringFeatureList	Ext-CallBarFeatureList,

+	password		Password		OPTIONAL,

+	wrongPasswordAttemptsCounter	WrongPasswordAttemptsCounter	OPTIONAL,

+	notificationToCSE	NULL			OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+WrongPasswordAttemptsCounter ::= INTEGER (0..4)

+

+ODB-Info ::= SEQUENCE {

+	odb-Data		ODB-Data,

+	notificationToCSE	NULL			OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+CAMEL-SubscriptionInfo ::= SEQUENCE {

+	o-CSI		[0]	O-CSI	OPTIONAL,

+	o-BcsmCamelTDP-CriteriaList	[1]	O-BcsmCamelTDPCriteriaList	OPTIONAL, 

+	d-CSI		[2]	D-CSI	OPTIONAL,

+	t-CSI		[3]	T-CSI	OPTIONAL,

+	t-BCSM-CAMEL-TDP-CriteriaList	[4]	T-BCSM-CAMEL-TDP-CriteriaList	OPTIONAL,

+	vt-CSI		[5]	T-CSI	OPTIONAL,

+	vt-BCSM-CAMEL-TDP-CriteriaList	[6]	T-BCSM-CAMEL-TDP-CriteriaList	OPTIONAL,

+	tif-CSI		[7]	NULL		OPTIONAL,

+	tif-CSI-NotificationToCSE	[8]	NULL		OPTIONAL,

+	gprs-CSI		[9]	GPRS-CSI	OPTIONAL,

+	mo-sms-CSI	[10]	SMS-CSI	OPTIONAL,

+	ss-CSI		[11]	SS-CSI	OPTIONAL,

+	m-CSI		[12]	M-CSI	OPTIONAL,

+	extensionContainer	[13]	ExtensionContainer	OPTIONAL,

+	...,

+	specificCSIDeletedList	[14]	SpecificCSI-Withdraw	OPTIONAL,

+	mt-sms-CSI	[15]	SMS-CSI	OPTIONAL,

+	mt-smsCAMELTDP-CriteriaList	[16]	MT-smsCAMELTDP-CriteriaList	OPTIONAL,

+	mg-csi		[17]	MG-CSI	OPTIONAL,

+	o-IM-CSI		[18] O-CSI	OPTIONAL,

+	o-IM-BcsmCamelTDP-CriteriaList	[19] O-BcsmCamelTDPCriteriaList	OPTIONAL,

+	d-IM-CSI		[20] D-CSI	OPTIONAL,

+	vt-IM-CSI		[21] T-CSI	OPTIONAL,

+	vt-IM-BCSM-CAMEL-TDP-CriteriaList	[22]	T-BCSM-CAMEL-TDP-CriteriaList	OPTIONAL

+	}

+

+AnyTimeModificationArg ::= SEQUENCE {

+	subscriberIdentity	[0]	SubscriberIdentity,

+	gsmSCF-Address	[1]	ISDN-AddressString,

+	modificationRequestFor-CF-Info	[2]	ModificationRequestFor-CF-Info OPTIONAL,

+	modificationRequestFor-CB-Info	[3]	ModificationRequestFor-CB-Info OPTIONAL,

+	modificationRequestFor-CSI	[4]	ModificationRequestFor-CSI	OPTIONAL,

+	extensionContainer	[5]	ExtensionContainer	OPTIONAL,

+	longFTN-Supported	[6]	NULL		OPTIONAL,

+	...,

+	modificationRequestFor-ODB-data	[7]	ModificationRequestFor-ODB-data OPTIONAL }

+

+AnyTimeModificationRes ::= SEQUENCE {

+	ss-InfoFor-CSE	[0]	Ext-SS-InfoFor-CSE	OPTIONAL,

+	camel-SubscriptionInfo	[1]	CAMEL-SubscriptionInfo	OPTIONAL,

+	extensionContainer	[2]	ExtensionContainer	OPTIONAL,

+	...,

+	odb-Info		[3]	ODB-Info	OPTIONAL }

+

+ModificationRequestFor-CF-Info ::= SEQUENCE {

+	ss-Code		[0]	SS-Code,

+	basicService	[1]	Ext-BasicServiceCode	OPTIONAL,

+	ss-Status		[2]	Ext-SS-Status	OPTIONAL,

+	forwardedToNumber	[3]	AddressString	OPTIONAL,

+	forwardedToSubaddress	[4]	ISDN-SubaddressString	OPTIONAL,

+	noReplyConditionTime	[5]	Ext-NoRepCondTime	OPTIONAL,

+	modifyNotificationToCSE	[6]	ModificationInstruction	OPTIONAL,

+	extensionContainer	[7]	ExtensionContainer	OPTIONAL,

+	...}

+

+ModificationRequestFor-CB-Info ::= SEQUENCE {

+	ss-Code		[0]	SS-Code,

+	basicService	[1]	Ext-BasicServiceCode	OPTIONAL,

+	ss-Status		[2]	Ext-SS-Status	OPTIONAL,

+	password		[3]	Password	OPTIONAL,

+	wrongPasswordAttemptsCounter	[4]	WrongPasswordAttemptsCounter	OPTIONAL,

+	modifyNotificationToCSE	[5]	ModificationInstruction	OPTIONAL,

+	extensionContainer	[6]	ExtensionContainer	OPTIONAL,

+	...}

+

+ModificationRequestFor-ODB-data ::= SEQUENCE {

+	odb-data		[0]	ODB-Data	OPTIONAL,

+	modifyNotificationToCSE	[1]	ModificationInstruction	OPTIONAL,

+	extensionContainer	[2]	ExtensionContainer	OPTIONAL,

+	...}

+

+ModificationRequestFor-CSI ::= SEQUENCE {

+	requestedCamel-SubscriptionInfo	[0]	RequestedCAMEL-SubscriptionInfo,

+	modifyNotificationToCSE	[1]	ModificationInstruction	OPTIONAL,

+	modifyCSI-State	[2]	ModificationInstruction	OPTIONAL,

+	extensionContainer	[3]	ExtensionContainer	OPTIONAL,

+	...,

+	additionalRequestedCAMEL-SubscriptionInfo

+				[4] AdditionalRequestedCAMEL-SubscriptionInfo

+							OPTIONAL }

+-- requestedCamel-SubscriptionInfo shall be discarded if

+-- additionalRequestedCAMEL-SubscriptionInfo is received

+

+ModificationInstruction ::= ENUMERATED {

+	deactivate	(0),

+	activate		(1)}

+

+-- subscriber data modification notification types

+

+NoteSubscriberDataModifiedArg ::= SEQUENCE {

+	imsi			IMSI,

+	msisdn		ISDN-AddressString,

+	forwardingInfoFor-CSE	[0] Ext-ForwardingInfoFor-CSE	OPTIONAL,

+	callBarringInfoFor-CSE	[1] Ext-CallBarringInfoFor-CSE	OPTIONAL,

+	odb-Info		[2] ODB-Info	OPTIONAL,

+	camel-SubscriptionInfo	[3] CAMEL-SubscriptionInfo	OPTIONAL,

+	allInformationSent	[4] NULL		OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+NoteSubscriberDataModifiedRes ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+-- mobility management event notificatioon info types

+

+NoteMM-EventArg::= SEQUENCE {

+	serviceKey	ServiceKey,

+	eventMet		[0]	MM-Code,

+	imsi			[1]	IMSI,

+	msisdn		[2]	ISDN-AddressString,

+	locationInformation	[3]	LocationInformation	OPTIONAL,

+	supportedCAMELPhases	[5]	SupportedCamelPhases	OPTIONAL,

+	extensionContainer	[6]	ExtensionContainer	OPTIONAL,

+	...,

+	locationInformationGPRS	[7]	LocationInformationGPRS	OPTIONAL,

+	offeredCamel4Functionalities	[8] OfferedCamel4Functionalities	OPTIONAL

+}

+

+NoteMM-EventRes ::= SEQUENCE {

+	extensionContainer	ExtensionContainer 	OPTIONAL,

+	...}

+

+Ext-SS-InfoFor-CSE ::= CHOICE {

+	forwardingInfoFor-CSE	[0] Ext-ForwardingInfoFor-CSE,

+	callBarringInfoFor-CSE	[1] Ext-CallBarringInfoFor-CSE

+	}

+

+Ext-ForwardingInfoFor-CSE ::= SEQUENCE {

+	ss-Code		[0]	SS-Code,

+	forwardingFeatureList	[1]	Ext-ForwFeatureList,

+	notificationToCSE	[2]	NULL		OPTIONAL,

+	extensionContainer	[3]	ExtensionContainer	OPTIONAL,

+	...}

+

+Ext-CallBarringInfoFor-CSE ::= SEQUENCE {

+	ss-Code		[0]	SS-Code,

+	callBarringFeatureList	[1]	Ext-CallBarFeatureList,

+	password		[2]	Password	OPTIONAL,

+	wrongPasswordAttemptsCounter	[3]	WrongPasswordAttemptsCounter	OPTIONAL,

+	notificationToCSE	[4]	NULL		OPTIONAL,

+	extensionContainer	[5]	ExtensionContainer 	OPTIONAL,

+	...}

+

+END

diff --git a/asn1/MAP-MobileServiceOperations.asn b/asn1/MAP-MobileServiceOperations.asn
new file mode 100644
index 0000000..b91eac7
--- /dev/null
+++ b/asn1/MAP-MobileServiceOperations.asn
@@ -0,0 +1,506 @@
+MAP-MobileServiceOperations {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-MobileServiceOperations (5)

+   version9 (9)}

+

+DEFINITIONS

+

+::=

+

+BEGIN

+

+EXPORTS

+

+	-- location registration operations

+	updateLocation,

+	cancelLocation,

+	purgeMS,

+	sendIdentification, 

+

+	-- gprs location registration operations

+	updateGprsLocation,

+

+	-- subscriber information enquiry operations

+	provideSubscriberInfo,

+

+	-- any time information enquiry operations

+	anyTimeInterrogation,

+

+	-- any time information handling operations

+	anyTimeSubscriptionInterrogation,

+	anyTimeModification, 

+

+	-- subscriber data modification notification operations

+	noteSubscriberDataModified,

+

+

+	-- handover operations

+	prepareHandover,

+	sendEndSignal,

+	processAccessSignalling,

+	forwardAccessSignalling,

+	prepareSubsequentHandover,

+

+	-- authentication management operations

+	sendAuthenticationInfo, 

+	authenticationFailureReport,

+

+	-- IMEI management operations

+	checkIMEI,

+

+	-- subscriber management operations

+	insertSubscriberData,

+	deleteSubscriberData,

+

+	-- fault recovery operations

+	reset,

+	forwardCheckSS-Indication,

+	restoreData,

+

+-- gprs location information retrieval operations

+	sendRoutingInfoForGprs,

+	

+	-- failure reporting operations

+	failureReport,

+	

+	-- gprs notification operations

+	noteMsPresentForGprs,

+

+-- Mobility Management operations

+	noteMM-Event

+;

+

+IMPORTS

+	OPERATION

+FROM Remote-Operations-Information-Objects {

+joint-iso-itu-t remote-operations(4)

+  informationObjects(5) version1(0)} 

+

+	systemFailure,

+	dataMissing,

+	unexpectedDataValue,

+	unknownSubscriber,

+	unknownMSC,

+	unidentifiedSubscriber,

+	unknownEquipment,

+	roamingNotAllowed, 

+	ati-NotAllowed,

+	noHandoverNumberAvailable,

+	subsequentHandoverFailure,

+	absentSubscriber,

+	mm-EventNotSupported,

+	atsi-NotAllowed,

+	atm-NotAllowed,

+	bearerServiceNotProvisioned,

+	teleserviceNotProvisioned,

+	callBarred,

+	illegalSS-Operation,

+	ss-ErrorStatus,

+	ss-NotAvailable,

+	ss-Incompatibility,

+	ss-SubscriptionViolation,

+	informationNotAvailable,

+	targetCellOutsideGroupCallArea

+

+

+FROM MAP-Errors {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-Errors (10) version9 (9)}

+

+	UpdateLocationArg,

+	UpdateLocationRes,

+	CancelLocationArg,

+	CancelLocationRes, 

+	PurgeMS-Arg, 

+	PurgeMS-Res,

+	SendIdentificationArg,

+	SendIdentificationRes, 

+	UpdateGprsLocationArg,

+	UpdateGprsLocationRes,

+	PrepareHO-Arg,

+	PrepareHO-Res,

+ForwardAccessSignalling-Arg,

+ProcessAccessSignalling-Arg,

+SendEndSignal-Arg,

+SendEndSignal-Res,

+PrepareSubsequentHO-Res,

+	PrepareSubsequentHO-Arg,

+	SendAuthenticationInfoArg,

+	SendAuthenticationInfoRes, 

+	AuthenticationFailureReportArg,

+	AuthenticationFailureReportRes,

+	CheckIMEI-Arg,

+	CheckIMEI-Res,

+	InsertSubscriberDataArg,

+	InsertSubscriberDataRes,

+	DeleteSubscriberDataArg,

+	DeleteSubscriberDataRes,

+	ResetArg,

+	RestoreDataArg,

+	RestoreDataRes,

+	ProvideSubscriberInfoArg,

+	ProvideSubscriberInfoRes,

+	AnyTimeSubscriptionInterrogationArg,

+	AnyTimeSubscriptionInterrogationRes,

+	AnyTimeModificationArg,

+	AnyTimeModificationRes,

+	NoteSubscriberDataModifiedArg,

+	NoteSubscriberDataModifiedRes,

+	AnyTimeInterrogationArg,

+	AnyTimeInterrogationRes,

+	SendRoutingInfoForGprsArg,

+	SendRoutingInfoForGprsRes,

+	FailureReportArg,

+	FailureReportRes,

+	NoteMsPresentForGprsArg,

+	NoteMsPresentForGprsRes,

+	NoteMM-EventArg,

+	NoteMM-EventRes

+

+

+FROM MAP-MS-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-MS-DataTypes (11) version9 (9)}

+

+;

+

+

+-- location registration operations

+

+updateLocation  OPERATION ::= {				--Timer m

+	ARGUMENT

+		UpdateLocationArg

+	RESULT

+		UpdateLocationRes

+	ERRORS {

+		systemFailure |

+		dataMissing |

+		unexpectedDataValue |

+		unknownSubscriber |

+		roamingNotAllowed}

+	CODE	local:2 }

+

+cancelLocation  OPERATION ::= {				--Timer m

+	ARGUMENT

+		CancelLocationArg

+	RESULT

+		CancelLocationRes

+			-- optional

+	ERRORS {

+		dataMissing |

+		unexpectedDataValue}

+	CODE	local:3 }

+

+purgeMS  OPERATION ::= {				--Timer m

+	ARGUMENT

+		PurgeMS-Arg

+	RESULT

+		PurgeMS-Res

+			-- optional

+	ERRORS{

+		dataMissing |

+		unexpectedDataValue|

+		unknownSubscriber}

+	CODE	local:67 }

+

+sendIdentification  OPERATION ::= {				--Timer s

+	ARGUMENT

+		SendIdentificationArg

+	RESULT

+		SendIdentificationRes

+	ERRORS {

+		dataMissing |

+		unidentifiedSubscriber}

+	CODE	local:55 }

+

+-- gprs location registration operations

+

+updateGprsLocation  OPERATION ::= {				--Timer m

+	ARGUMENT

+		UpdateGprsLocationArg

+	RESULT

+		UpdateGprsLocationRes

+	ERRORS {

+		systemFailure |

+		unexpectedDataValue |

+		unknownSubscriber |

+		roamingNotAllowed}

+	CODE	local:23 }

+

+-- subscriber information enquiry operations

+

+provideSubscriberInfo  OPERATION ::= {				--Timer m

+	ARGUMENT

+		ProvideSubscriberInfoArg

+	RESULT

+		ProvideSubscriberInfoRes

+	ERRORS {

+		dataMissing |

+		unexpectedDataValue}

+	CODE	local:70 }

+

+-- any time information enquiry operations

+

+anyTimeInterrogation  OPERATION ::= {				--Timer m

+	ARGUMENT

+		AnyTimeInterrogationArg

+	RESULT

+		AnyTimeInterrogationRes

+	ERRORS {

+		systemFailure | 

+		ati-NotAllowed |

+		dataMissing |

+		unexpectedDataValue |

+		unknownSubscriber}

+	CODE	local:71 }

+

+-- any time information handling operations

+

+anyTimeSubscriptionInterrogation  OPERATION ::= {			--Timer m

+	ARGUMENT

+		AnyTimeSubscriptionInterrogationArg

+	RESULT

+		AnyTimeSubscriptionInterrogationRes

+	ERRORS {

+		atsi-NotAllowed |

+		dataMissing |

+		unexpectedDataValue |

+		unknownSubscriber |

+		bearerServiceNotProvisioned |

+		teleserviceNotProvisioned |

+		callBarred |

+		illegalSS-Operation |

+		ss-NotAvailable |

+		informationNotAvailable}

+	CODE	local:62 }

+

+anyTimeModification  OPERATION ::= {				--Timer m

+	ARGUMENT

+		AnyTimeModificationArg

+	RESULT

+		AnyTimeModificationRes

+	ERRORS {

+		atm-NotAllowed |

+		dataMissing |

+		unexpectedDataValue |

+		unknownSubscriber |

+		bearerServiceNotProvisioned |

+		teleserviceNotProvisioned |

+		callBarred |

+		illegalSS-Operation |

+		ss-SubscriptionViolation |

+		ss-ErrorStatus |

+		ss-Incompatibility |

+		informationNotAvailable}

+	CODE	local:65 }

+

+-- subscriber data modification notification operations

+

+noteSubscriberDataModified  OPERATION ::= {				--Timer m

+	ARGUMENT

+		NoteSubscriberDataModifiedArg

+	RESULT

+		NoteSubscriberDataModifiedRes

+			-- optional

+	ERRORS {

+		dataMissing |

+		unexpectedDataValue |

+		unknownSubscriber}

+	CODE	local:5 }

+

+-- handover operations

+

+prepareHandover  OPERATION ::= {				--Timer m

+	ARGUMENT

+		PrepareHO-Arg

+	RESULT

+		PrepareHO-Res

+	ERRORS {

+		systemFailure |

+		dataMissing |

+		unexpectedDataValue |

+		noHandoverNumberAvailable |

+		targetCellOutsideGroupCallArea }

+	CODE	local:68 }

+

+sendEndSignal  OPERATION ::= {				--Timer l

+	ARGUMENT

+		SendEndSignal-Arg

+	RESULT

+		SendEndSignal-Res

+	CODE	local:29 }

+

+processAccessSignalling  OPERATION ::= {				--Timer s

+	ARGUMENT

+		ProcessAccessSignalling-Arg

+	CODE	local:33 }

+

+forwardAccessSignalling  OPERATION ::= {				--Timer s

+	ARGUMENT

+		ForwardAccessSignalling-Arg

+	CODE	local:34 }

+

+prepareSubsequentHandover  OPERATION ::= {				--Timer m

+	ARGUMENT

+		PrepareSubsequentHO-Arg

+	RESULT

+		PrepareSubsequentHO-Res

+	ERRORS {

+		unexpectedDataValue |

+		dataMissing |

+		unknownMSC |

+		subsequentHandoverFailure}

+	CODE	local:69 }

+

+-- authentication management operations

+

+sendAuthenticationInfo  OPERATION ::= {				--Timer m

+	ARGUMENT

+		SendAuthenticationInfoArg

+		-- optional

+		-- within a dialogue sendAuthenticationInfoArg shall not be present in

+		-- subsequent invoke components. If received in a subsequent invoke component

+		-- it shall be discarded.

+

+	RESULT

+		SendAuthenticationInfoRes

+		-- optional

+	ERRORS {

+		systemFailure |

+		dataMissing |

+		unexpectedDataValue |

+		unknownSubscriber}

+	CODE	local:56 }

+

+authenticationFailureReport  OPERATION ::= {			--Timer m

+	ARGUMENT

+		AuthenticationFailureReportArg

+	RESULT

+		AuthenticationFailureReportRes

+		-- optional

+	ERRORS {

+		systemFailure |

+		unexpectedDataValue |

+		unknownSubscriber}

+	CODE	local:15 }

+

+-- IMEI management operations

+

+checkIMEI  OPERATION ::= {				--Timer m

+	ARGUMENT

+		CheckIMEI-Arg

+	RESULT

+		CheckIMEI-Res

+	ERRORS {

+		systemFailure |

+		dataMissing |

+		unknownEquipment}

+	CODE	local:43 }

+

+-- subscriber management operations

+

+insertSubscriberData  OPERATION ::= {				--Timer m

+	ARGUMENT

+		InsertSubscriberDataArg

+	RESULT

+		InsertSubscriberDataRes

+		-- optional

+	ERRORS {

+		dataMissing |

+		unexpectedDataValue |

+		unidentifiedSubscriber}

+	CODE	local:7 }

+

+deleteSubscriberData  OPERATION ::= {				--Timer m

+	ARGUMENT

+		DeleteSubscriberDataArg

+	RESULT

+		DeleteSubscriberDataRes

+		-- optional

+	ERRORS {

+		dataMissing |

+		unexpectedDataValue |

+		unidentifiedSubscriber}

+	CODE	local:8 }

+

+-- fault recovery operations

+

+reset  OPERATION ::= {				--Timer m

+	ARGUMENT

+		ResetArg

+	CODE	local:37 }

+

+forwardCheckSS-Indication  OPERATION ::= {			--Timer s

+	CODE	local:38 }

+

+restoreData  OPERATION ::= {				--Timer m

+	ARGUMENT

+		RestoreDataArg

+	RESULT

+		RestoreDataRes

+	ERRORS {

+		systemFailure |

+		dataMissing |

+		unexpectedDataValue |

+		unknownSubscriber}

+	CODE	local:57 }

+

+-- gprs location information retrieval operations

+

+sendRoutingInfoForGprs  OPERATION ::= {				--Timer m

+	ARGUMENT

+		SendRoutingInfoForGprsArg

+	RESULT

+		SendRoutingInfoForGprsRes

+	ERRORS {

+		absentSubscriber |

+		systemFailure |

+		dataMissing |

+		unexpectedDataValue |

+		unknownSubscriber |

+		callBarred }

+	CODE	local:24 }

+

+-- failure reporting operations

+

+failureReport  OPERATION ::= {				--Timer m

+	ARGUMENT

+		FailureReportArg

+	RESULT

+		FailureReportRes

+			-- optional

+	ERRORS {

+		systemFailure |

+		dataMissing |

+		unexpectedDataValue |

+		unknownSubscriber}

+	CODE	local:25 }

+

+-- gprs notification operations

+

+noteMsPresentForGprs  OPERATION ::= {				--Timer m

+	ARGUMENT

+		NoteMsPresentForGprsArg

+	RESULT

+		NoteMsPresentForGprsRes

+			-- optional

+	ERRORS {

+		systemFailure |

+		dataMissing |

+		unexpectedDataValue |

+		unknownSubscriber}

+	CODE	local:26 }

+

+noteMM-Event  OPERATION ::= {				--Timer m

+	ARGUMENT

+		NoteMM-EventArg

+	RESULT

+		NoteMM-EventRes

+	ERRORS {

+		dataMissing |

+		unexpectedDataValue |

+		unknownSubscriber |

+		mm-EventNotSupported}

+	CODE	local:89 }

+

+END

diff --git a/asn1/MAP-OM-DataTypes.asn b/asn1/MAP-OM-DataTypes.asn
new file mode 100644
index 0000000..3866b1e
--- /dev/null
+++ b/asn1/MAP-OM-DataTypes.asn
@@ -0,0 +1,62 @@
+MAP-OM-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-OM-DataTypes (12) version9 (9)}

+

+DEFINITIONS

+

+IMPLICIT TAGS

+

+::=

+

+BEGIN

+

+EXPORTS

+	ActivateTraceModeArg,

+	ActivateTraceModeRes,

+	DeactivateTraceModeArg,

+	DeactivateTraceModeRes

+;

+

+IMPORTS

+	AddressString,

+	IMSI

+FROM MAP-CommonDataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}

+

+	ExtensionContainer

+FROM MAP-ExtensionDataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}

+

+;

+

+ActivateTraceModeArg ::= SEQUENCE {

+	imsi			[0] IMSI		OPTIONAL,

+	traceReference	[1] TraceReference,

+	traceType		[2] TraceType,

+	omc-Id		[3] AddressString	OPTIONAL,

+	extensionContainer	[4] ExtensionContainer	OPTIONAL,

+	...}

+

+TraceReference ::= OCTET STRING (SIZE (1..2))

+

+TraceType ::= INTEGER

+	(0..255)

+	-- Trace types are fully defined in TS GSM 12.08.

+

+ActivateTraceModeRes ::= SEQUENCE {

+	extensionContainer	[0] ExtensionContainer	OPTIONAL,

+	...}

+

+DeactivateTraceModeArg ::= SEQUENCE {

+	imsi			[0] IMSI		OPTIONAL,

+	traceReference	[1] TraceReference,

+	extensionContainer	[2] ExtensionContainer	OPTIONAL,

+	...}

+

+DeactivateTraceModeRes ::= SEQUENCE {

+	extensionContainer	[0] ExtensionContainer	OPTIONAL,

+	...}

+

+END

diff --git a/asn1/MAP-OperationAndMaintenanceOperations.asn b/asn1/MAP-OperationAndMaintenanceOperations.asn
new file mode 100644
index 0000000..adc50bd
--- /dev/null
+++ b/asn1/MAP-OperationAndMaintenanceOperations.asn
@@ -0,0 +1,91 @@
+MAP-OperationAndMaintenanceOperations {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-OperationAndMaintenanceOperations (6)

+   version9 (9)}

+

+DEFINITIONS

+

+::=

+

+BEGIN

+

+EXPORTS

+	activateTraceMode,

+	deactivateTraceMode,

+	sendIMSI

+;

+

+IMPORTS

+	OPERATION

+FROM Remote-Operations-Information-Objects {

+joint-iso-itu-t remote-operations(4)

+  informationObjects(5) version1(0)}

+

+	systemFailure,

+	dataMissing,

+	unexpectedDataValue,

+	facilityNotSupported,

+	unknownSubscriber,

+	unidentifiedSubscriber,

+	tracingBufferFull

+FROM MAP-Errors {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-Errors (10) version9 (9)}

+

+	ActivateTraceModeArg,

+	ActivateTraceModeRes,

+	DeactivateTraceModeArg,

+	DeactivateTraceModeRes

+FROM MAP-OM-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-OM-DataTypes (12) version9 (9)}

+

+	ISDN-AddressString,

+	IMSI

+FROM MAP-CommonDataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}

+;

+

+

+activateTraceMode  OPERATION ::= {				--Timer m

+	ARGUMENT

+		ActivateTraceModeArg

+	RESULT

+		ActivateTraceModeRes

+		-- optional

+	ERRORS {

+		systemFailure |

+		dataMissing |

+		unexpectedDataValue |

+		facilityNotSupported |

+		unidentifiedSubscriber |

+		tracingBufferFull}

+	CODE	local:50 }

+

+deactivateTraceMode  OPERATION ::= {				--Timer m

+	ARGUMENT

+		DeactivateTraceModeArg

+	RESULT

+		DeactivateTraceModeRes

+		-- optional

+	ERRORS {

+		systemFailure |

+		dataMissing |

+		unexpectedDataValue |

+		facilityNotSupported |

+		unidentifiedSubscriber}

+	CODE	local:51 }

+

+sendIMSI  OPERATION ::= {				--Timer m

+	ARGUMENT

+		ISDN-AddressString

+	RESULT

+		IMSI

+	ERRORS {

+		dataMissing |

+		unexpectedDataValue |

+		unknownSubscriber}

+	CODE	local:58 }

+

+END

diff --git a/asn1/MAP-Protocol.asn b/asn1/MAP-Protocol.asn
new file mode 100644
index 0000000..68dfb98
--- /dev/null
+++ b/asn1/MAP-Protocol.asn
@@ -0,0 +1,176 @@
+MAP-Protocol {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-Protocol (4) version9 (9)}

+

+DEFINITIONS

+

+::=

+

+BEGIN

+

+IMPORTS

+OPERATION

+FROM Remote-Operations-Information-Objects {

+joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)}

+

+	updateLocation,

+	cancelLocation,

+	purgeMS,

+	sendIdentification,

+	updateGprsLocation,

+	prepareHandover,

+	sendEndSignal,

+	processAccessSignalling,

+	forwardAccessSignalling,

+	prepareSubsequentHandover,

+	sendAuthenticationInfo,

+	authenticationFailureReport,

+	checkIMEI,

+	insertSubscriberData,

+	deleteSubscriberData,

+	reset,

+	forwardCheckSS-Indication,

+	restoreData,

+	provideSubscriberInfo,

+	anyTimeInterrogation,

+	anyTimeSubscriptionInterrogation,

+	anyTimeModification,

+	sendRoutingInfoForGprs,

+	failureReport,

+	noteMsPresentForGprs,

+	noteMM-Event,

+	noteSubscriberDataModified

+

+

+FROM MAP-MobileServiceOperations {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-MobileServiceOperations (5)

+   version9 (9)}

+

+	activateTraceMode,

+	deactivateTraceMode,

+	sendIMSI

+FROM MAP-OperationAndMaintenanceOperations {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-OperationAndMaintenanceOperations (6)

+   version9 (9)}

+

+	sendRoutingInfo,

+	provideRoamingNumber,

+	resumeCallHandling,

+	setReportingState,

+	statusReport,

+	remoteUserFree,

+	ist-Alert,

+	ist-Command

+FROM MAP-CallHandlingOperations {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-CallHandlingOperations (7)

+   version9 (9)}

+

+	registerSS,

+	eraseSS,

+	activateSS,

+	deactivateSS,

+	interrogateSS,

+	processUnstructuredSS-Request,

+	unstructuredSS-Request,

+	unstructuredSS-Notify,

+	registerPassword,

+	getPassword,

+	ss-InvocationNotification,

+	registerCC-Entry,

+	eraseCC-Entry

+FROM MAP-SupplementaryServiceOperations {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-SupplementaryServiceOperations (8)

+   version9 (9)}

+

+	sendRoutingInfoForSM,

+	mo-ForwardSM,

+	mt-ForwardSM,

+	reportSM-DeliveryStatus,

+	alertServiceCentre,

+	informServiceCentre,

+	readyForSM

+FROM MAP-ShortMessageServiceOperations {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-ShortMessageServiceOperations (9)

+   version9 (9)}

+

+	prepareGroupCall,

+	processGroupCallSignalling,

+	forwardGroupCallSignalling,

+	sendGroupCallEndSignal

+FROM MAP-Group-Call-Operations {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-Group-Call-Operations (22)

+   version9 (9)}

+

+	provideSubscriberLocation,

+	sendRoutingInfoForLCS,

+	subscriberLocationReport

+FROM MAP-LocationServiceOperations {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-LocationServiceOperations (24)

+   version9 (9)}

+

+secureTransportClass1,

+secureTransportClass2,

+secureTransportClass3,

+secureTransportClass4

+

+FROM MAP-SecureTransportOperations {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-SecureTransportOperations (26)

+   version9 (9)}

+

+;

+Supported-MAP-Operations OPERATION ::= {updateLocation | cancelLocation | purgeMS | 

+sendIdentification | updateGprsLocation | prepareHandover | sendEndSignal | 

+processAccessSignalling | forwardAccessSignalling | prepareSubsequentHandover | 

+sendAuthenticationInfo | authenticationFailureReport | checkIMEI | insertSubscriberData | 

+deleteSubscriberData | reset | forwardCheckSS-Indication | restoreData | provideSubscriberInfo | 

+anyTimeInterrogation | anyTimeSubscriptionInterrogation | anyTimeModification | 

+sendRoutingInfoForGprs | failureReport |noteMsPresentForGprs | noteMM-Event | 

+noteSubscriberDataModified | activateTraceMode | deactivateTraceMode | sendIMSI | 

+sendRoutingInfo | provideRoamingNumber | resumeCallHandling | setReportingState | statusReport | remoteUserFree | ist-Alert | 

+ist-Command | registerSS | eraseSS | activateSS | deactivateSS | interrogateSS | 

+processUnstructuredSS-Request | unstructuredSS-Request | unstructuredSS-Notify | 

+registerPassword | getPassword | ss-InvocationNotification | registerCC-Entry | eraseCC-Entry | 

+sendRoutingInfoForSM | mo-ForwardSM | mt-ForwardSM | reportSM-DeliveryStatus | 

+alertServiceCentre | informServiceCentre | readyForSM | prepareGroupCall | 

+processGroupCallSignalling | forwardGroupCallSignalling | sendGroupCallEndSignal |

+provideSubscriberLocation | sendRoutingInfoForLCS | subscriberLocationReport | 

+secureTransportClass1 |secureTransportClass2 | secureTransportClass3 | secureTransportClass4}

+

+

+

+-- The following operation codes are reserved for operations

+-- existing in previous versions of the protocol

+

+-- Operation Name	AC used	Oper. Code

+-- 

+-- sendParameters	map-ac infoRetrieval (14) version1 (1)	local:9

+-- processUnstructuredSS-Data	map-ac networkFunctionalSs (18) version1 (1)	local:19

+-- performHandover	map-ac handoverControl (11) version1 (1)	local:28

+-- performSubsequentHandover	map-ac handoverControl (11) version1 (1)	local:30

+-- provideSIWFSNumber	map-ac sIWFSAllocation (12) version3 (3)	local:31

+-- siwfs-SignallingModify	map-ac sIWFSAllocation (12) version3 (3)	local:32

+-- noteInternalHandover	map-ac handoverControl (11) version1 (1)	local:35

+-- noteSubscriberPresent	map-ac mwdMngt (24) version1 (1)	local:48

+-- alertServiceCentreWithoutResult	map-ac shortMsgAlert (23) version1 (1)	local:49

+-- traceSubscriberActivity	map-ac handoverControl (11) version1 (1)	local:52

+-- beginSubscriberActivity	map-ac networkFunctionalSs (18) version1 (1)	local:54

+

+-- The following error codes are reserved for errors

+-- existing in previous versions of the protocol

+

+-- Error Name	AC used	Error Code

+-- 

+-- unknownBaseStation	map-ac handoverControl (11) version1 (1)	local:2

+-- invalidTargetBaseStation	map-ac handoverControl (11) version1 (1)	local:23

+-- noRadioResourceAvailable	map-ac handoverControl (11) version1 (1)	local:24

+

+

+END

diff --git a/asn1/MAP-SM-DataTypes.asn b/asn1/MAP-SM-DataTypes.asn
new file mode 100644
index 0000000..664baa1
--- /dev/null
+++ b/asn1/MAP-SM-DataTypes.asn
@@ -0,0 +1,217 @@
+MAP-SM-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-SM-DataTypes (16) version9 (9)}

+

+DEFINITIONS

+

+IMPLICIT TAGS

+

+::=

+

+BEGIN

+

+EXPORTS

+	RoutingInfoForSM-Arg,

+	RoutingInfoForSM-Res,

+	MO-ForwardSM-Arg,

+	MO-ForwardSM-Res,

+	MT-ForwardSM-Arg,

+	MT-ForwardSM-Res,

+	ReportSM-DeliveryStatusArg,

+	ReportSM-DeliveryStatusRes,

+	AlertServiceCentreArg,

+	InformServiceCentreArg,

+	ReadyForSM-Arg, 

+	ReadyForSM-Res,

+	SM-DeliveryOutcome,

+	AlertReason,

+	Additional-Number

+;

+

+IMPORTS

+	AddressString,

+	ISDN-AddressString,

+	SignalInfo,

+	IMSI,

+	LMSI

+FROM MAP-CommonDataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}

+

+	AbsentSubscriberDiagnosticSM

+FROM MAP-ER-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-ER-DataTypes (17) version9 (9)}

+

+	ExtensionContainer

+FROM MAP-ExtensionDataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}

+;

+

+

+RoutingInfoForSM-Arg ::= SEQUENCE {

+	msisdn		[0] ISDN-AddressString,

+	sm-RP-PRI		[1] BOOLEAN,

+	serviceCentreAddress	[2] AddressString,

+	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-RP-MTI ::= INTEGER (0..10)

+	-- 0 SMS Deliver 

+	-- 1 SMS Status Report

+	-- other values are reserved for future use and shall be discarded if

+	-- received

+

+SM-RP-SMEA ::= OCTET STRING (SIZE (1..12))

+	-- this parameter contains an address field which is encoded 

+	-- as defined in 3GPP TS 23.040. An address field contains 3 elements :

+	-- 		address-length

+	-- 		type-of-address

+	-- 		address-value

+

+RoutingInfoForSM-Res ::= SEQUENCE {

+	imsi			IMSI,

+	locationInfoWithLMSI	[0] LocationInfoWithLMSI,

+	extensionContainer	[4] ExtensionContainer	OPTIONAL,

+	...}

+

+LocationInfoWithLMSI ::= SEQUENCE {

+	networkNode-Number	[1] ISDN-AddressString,

+	lmsi			LMSI			OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...,

+	gprsNodeIndicator	[5]	NULL		OPTIONAL,

+	-- gprsNodeIndicator is set only if the SGSN number is sent as the 

+	-- Network Node Number

+	additional-Number	[6] Additional-Number	OPTIONAL 

+	-- NetworkNode-number can be either msc-number or sgsn-number

+	}

+

+Additional-Number ::= CHOICE {

+	msc-Number	[0] ISDN-AddressString,

+	sgsn-Number	[1] ISDN-AddressString}

+	-- additional-number can be either msc-number or sgsn-number

+	-- if received networkNode-number is msc-number then the 	

+	-- additional number is sgsn-number 

+	-- if received networkNode-number is sgsn-number then the 

+	-- additional number is msc-number 

+

+MO-ForwardSM-Arg ::= SEQUENCE {

+	sm-RP-DA		SM-RP-DA,

+	sm-RP-OA		SM-RP-OA,

+	sm-RP-UI		SignalInfo,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	... ,

+	imsi			IMSI 		OPTIONAL }

+

+MO-ForwardSM-Res ::= SEQUENCE {

+	sm-RP-UI		SignalInfo 	OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+MT-ForwardSM-Arg ::= SEQUENCE {

+	sm-RP-DA		SM-RP-DA,

+	sm-RP-OA		SM-RP-OA,

+	sm-RP-UI		SignalInfo,

+	moreMessagesToSend	NULL			OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+MT-ForwardSM-Res ::= SEQUENCE {

+	sm-RP-UI		SignalInfo	OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+SM-RP-DA ::= CHOICE {

+	imsi			[0] IMSI,

+	lmsi			[1] LMSI,

+	serviceCentreAddressDA	[4] AddressString,

+	noSM-RP-DA	[5] NULL}

+

+SM-RP-OA ::= CHOICE {

+	msisdn		[2] ISDN-AddressString,

+	serviceCentreAddressOA	[4] AddressString,

+	noSM-RP-OA	[5] NULL}

+

+ReportSM-DeliveryStatusArg ::= SEQUENCE {

+	msisdn		ISDN-AddressString,

+	serviceCentreAddress	AddressString,

+	sm-DeliveryOutcome	SM-DeliveryOutcome,

+	absentSubscriberDiagnosticSM	[0] AbsentSubscriberDiagnosticSM

+							OPTIONAL,

+	extensionContainer	[1] ExtensionContainer	OPTIONAL,

+	...,

+	gprsSupportIndicator	[2]	NULL		OPTIONAL,

+	-- gprsSupportIndicator is set only if the SMS-GMSC supports 

+	-- handling of two delivery outcomes

+	deliveryOutcomeIndicator	[3] 	NULL		OPTIONAL,

+	-- DeliveryOutcomeIndicator is set when the SM-DeliveryOutcome

+	-- is for GPRS

+	additionalSM-DeliveryOutcome	[4] 	SM-DeliveryOutcome 	OPTIONAL,

+	-- If received, additionalSM-DeliveryOutcome is for GPRS

+	-- If DeliveryOutcomeIndicator is set, then AdditionalSM-DeliveryOutcome shall be absent

+	additionalAbsentSubscriberDiagnosticSM	[5] 	AbsentSubscriberDiagnosticSM OPTIONAL

+	-- If received additionalAbsentSubscriberDiagnosticSM is for GPRS

+	-- If DeliveryOutcomeIndicator is set, then AdditionalAbsentSubscriberDiagnosticSM 

+	-- shall be absent

+	}

+

+SM-DeliveryOutcome ::= ENUMERATED {

+	memoryCapacityExceeded  (0),

+	absentSubscriber  (1),

+	successfulTransfer  (2)}

+

+ReportSM-DeliveryStatusRes ::= SEQUENCE {

+	storedMSISDN	ISDN-AddressString	OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+AlertServiceCentreArg ::= SEQUENCE {

+	msisdn		ISDN-AddressString,

+	serviceCentreAddress	AddressString,

+	...}

+

+InformServiceCentreArg ::= SEQUENCE {

+	storedMSISDN	ISDN-AddressString	OPTIONAL,

+	mw-Status	MW-Status	OPTIONAL,

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	... ,

+	absentSubscriberDiagnosticSM	AbsentSubscriberDiagnosticSM	OPTIONAL,

+	additionalAbsentSubscriberDiagnosticSM	[0]	AbsentSubscriberDiagnosticSM	OPTIONAL }

+	-- additionalAbsentSubscriberDiagnosticSM may be present only if 

+	-- absentSubscriberDiagnosticSM is present.

+	-- if included, additionalAbsentSubscriberDiagnosticSM is for GPRS and

+	-- absentSubscriberDiagnosticSM is for non-GPRS

+

+MW-Status ::= BIT STRING {

+	sc-AddressNotIncluded  (0),

+	mnrf-Set  (1),

+	mcef-Set  (2) ,

+	mnrg-Set	  (3)} (SIZE (6..16))

+	-- exception handling:

+	-- bits 4 to 15 shall be ignored if received and not understood

+

+ReadyForSM-Arg ::= SEQUENCE {

+	imsi			[0] IMSI,

+	alertReason	AlertReason,

+	alertReasonIndicator	NULL			OPTIONAL,

+	-- alertReasonIndicator is set only when the alertReason 

+	-- sent to HLR is for GPRS

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+ReadyForSM-Res ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...}

+

+AlertReason ::= ENUMERATED {

+	ms-Present  (0),

+	memoryAvailable  (1)}

+

+END

diff --git a/asn1/MAP-SS-Code.asn b/asn1/MAP-SS-Code.asn
new file mode 100644
index 0000000..d3f0957
--- /dev/null
+++ b/asn1/MAP-SS-Code.asn
@@ -0,0 +1,183 @@
+MAP-SS-Code {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-SS-Code (15) version9 (9)}

+

+DEFINITIONS

+

+::=

+

+BEGIN

+

+SS-Code ::= OCTET STRING (SIZE (1))

+	-- This type is used to represent the code identifying a single

+	-- supplementary service, a group of supplementary services, or

+	-- all supplementary services. The services and abbreviations

+	-- used are defined in TS 3GPP TS 22.004 [5]. The internal structure is

+	-- defined as follows:

+	--

+	-- bits 87654321: group (bits 8765), and specific service

+	-- (bits 4321)

+

+allSS			SS-Code ::= '00000000'B

+	-- reserved for possible future use

+	-- all SS

+

+allLineIdentificationSS	SS-Code ::= '00010000'B

+	-- reserved for possible future use

+	-- all line identification SS

+clip				SS-Code ::= '00010001'B

+	-- calling line identification presentation

+clir				SS-Code ::= '00010010'B

+	-- calling line identification restriction

+colp				SS-Code ::= '00010011'B

+	-- connected line identification presentation

+colr				SS-Code ::= '00010100'B

+	-- connected line identification restriction

+mci				SS-Code ::= '00010101'B

+	-- reserved for possible future use

+	-- malicious call identification

+

+allNameIdentificationSS	SS-Code ::= '00011000'B

+	-- all name identification SS

+cnap				SS-Code ::= '00011001'B

+	-- calling name presentation

+

+	-- SS-Codes '00011010'B to '00011111'B are reserved for future 

+	-- NameIdentification Supplementary Service use.

+

+allForwardingSS	SS-Code ::= '00100000'B

+	-- all forwarding SS

+cfu				SS-Code ::= '00100001'B

+	-- call forwarding unconditional

+allCondForwardingSS	SS-Code ::= '00101000'B

+	-- all conditional forwarding SS

+cfb				SS-Code ::= '00101001'B

+	-- call forwarding on mobile subscriber busy

+cfnry			SS-Code ::= '00101010'B

+	-- call forwarding on no reply

+cfnrc			SS-Code ::= '00101011'B

+	-- call forwarding on mobile subscriber not reachable 

+cd				SS-Code ::= '00100100'B

+	-- call deflection

+

+allCallOfferingSS	SS-Code ::= '00110000'B

+	-- reserved for possible future use

+	-- all call offering SS includes also all forwarding SS

+ect				SS-Code ::= '00110001'B

+		-- explicit call transfer

+mah				SS-Code ::= '00110010'B

+	-- reserved for possible future use

+	-- mobile access hunting

+

+allCallCompletionSS	SS-Code ::= '01000000'B

+	-- reserved for possible future use

+	-- all Call completion SS

+cw				SS-Code ::= '01000001'B

+	-- call waiting

+hold				SS-Code ::= '01000010'B

+	-- call hold

+ccbs-A			SS-Code ::= '01000011'B

+	-- completion of call to busy subscribers, originating side

+ccbs-B			SS-Code ::= '01000100'B

+	-- completion of call to busy subscribers, destination side

+	-- this SS-Code is used only in InsertSubscriberData and DeleteSubscriberData

+mc				SS-Code ::= '01000101'B

+	-- multicall

+

+allMultiPartySS	SS-Code ::= '01010000'B

+	-- reserved for possible future use

+	-- all multiparty SS

+multiPTY			SS-Code ::= '01010001'B

+	-- multiparty

+

+allCommunityOfInterest-SS	SS-Code ::= '01100000'B

+	-- reserved for possible future use

+	-- all community of interest SS

+cug				SS-Code ::= '01100001'B

+	-- closed user group

+

+allChargingSS		SS-Code ::= '01110000'B

+	-- reserved for possible future use

+	-- all charging SS

+aoci				SS-Code ::= '01110001'B

+	-- advice of charge information

+aocc				SS-Code ::= '01110010'B

+	-- advice of charge charging

+

+allAdditionalInfoTransferSS	SS-Code ::= '10000000'B

+	-- reserved for possible future use

+	-- all additional information transfer SS

+uus1				SS-Code ::= '10000001'B

+	-- UUS1 user-to-user signalling 

+uus2				SS-Code ::= '10000010'B

+	-- UUS2 user-to-user signalling

+uus3				SS-Code ::= '10000011'B

+	-- UUS3 user-to-user signalling

+

+allBarringSS		SS-Code ::= '10010000'B

+	-- all barring SS

+barringOfOutgoingCalls	SS-Code ::= '10010001'B

+	-- barring of outgoing calls

+baoc				SS-Code ::= '10010010'B

+	-- barring of all outgoing calls

+boic				SS-Code ::= '10010011'B

+	-- barring of outgoing international calls

+boicExHC			SS-Code ::= '10010100'B

+	-- barring of outgoing international calls except those directed

+	-- to the home PLMN Country

+barringOfIncomingCalls	SS-Code ::= '10011001'B

+	-- barring of incoming calls

+baic				SS-Code ::= '10011010'B

+	-- barring of all incoming calls

+bicRoam			SS-Code ::= '10011011'B

+	-- barring of incoming calls when roaming outside home PLMN

+	-- Country

+

+allPLMN-specificSS	SS-Code ::= '11110000'B

+plmn-specificSS-1	SS-Code ::= '11110001'B

+plmn-specificSS-2	SS-Code ::= '11110010'B

+plmn-specificSS-3	SS-Code ::= '11110011'B

+plmn-specificSS-4	SS-Code ::= '11110100'B

+plmn-specificSS-5	SS-Code ::= '11110101'B

+plmn-specificSS-6	SS-Code ::= '11110110'B

+plmn-specificSS-7	SS-Code ::= '11110111'B

+plmn-specificSS-8	SS-Code ::= '11111000'B

+plmn-specificSS-9	SS-Code ::= '11111001'B

+plmn-specificSS-A	SS-Code ::= '11111010'B

+plmn-specificSS-B	SS-Code ::= '11111011'B

+plmn-specificSS-C	SS-Code ::= '11111100'B

+plmn-specificSS-D	SS-Code ::= '11111101'B

+plmn-specificSS-E	SS-Code ::= '11111110'B

+plmn-specificSS-F	SS-Code ::= '11111111'B

+

+allCallPrioritySS	SS-Code ::= '10100000'B

+	-- reserved for possible future use

+	-- all call priority SS

+emlpp			SS-Code ::= '10100001'B

+	-- enhanced Multilevel Precedence Pre-emption (EMLPP) service

+

+allLCSPrivacyException	SS-Code ::= '10110000'B

+	-- all LCS Privacy Exception Classes

+universal			SS-Code ::= '10110001'B

+	-- allow location by any LCS client

+callSessionRelated	SS-Code ::= '10110010'B

+	-- allow location by any value added LCS client to which a call/session 

+	-- is established from the target MS

+callSessionUnrelated	SS-Code ::= '10110011'B

+	-- allow location by designated external value added LCS clients

+plmnoperator		SS-Code ::= '10110100'B

+	-- allow location by designated PLMN operator LCS clients 

+serviceType		SS-Code ::= '10110101'B

+	-- allow location by LCS clients of a designated LCS service type

+

+allMOLR-SS		SS-Code ::= '11000000'B

+	-- all Mobile Originating Location Request Classes

+basicSelfLocation	SS-Code ::= '11000001'B

+	-- allow an MS to request its own location

+autonomousSelfLocation	SS-Code ::= '11000010'B

+	-- allow an MS to perform self location without interaction

+	-- with the PLMN for a predetermined period of time

+transferToThirdParty	SS-Code ::= '11000011'B

+	-- allow an MS to request transfer of its location to another LCS client

+

+END

diff --git a/asn1/MAP-SS-DataTypes.asn b/asn1/MAP-SS-DataTypes.asn
new file mode 100644
index 0000000..5cf9178
--- /dev/null
+++ b/asn1/MAP-SS-DataTypes.asn
@@ -0,0 +1,337 @@
+MAP-SS-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-SS-DataTypes (14) version9 (9)}

+

+DEFINITIONS

+

+IMPLICIT TAGS

+

+::=

+

+BEGIN

+

+EXPORTS

+	RegisterSS-Arg,

+	SS-Info,

+	SS-Status,

+	SS-SubscriptionOption,

+	SS-ForBS-Code,

+	InterrogateSS-Res,

+	USSD-Arg,

+	USSD-Res, 

+	USSD-DataCodingScheme,

+	USSD-String,

+	Password,

+	GuidanceInfo,

+	SS-List,

+	SS-InfoList,

+	OverrideCategory,

+	CliRestrictionOption,

+	NoReplyConditionTime,

+	ForwardingOptions,

+	maxNumOfSS,

+	SS-Data,

+	SS-InvocationNotificationArg,

+	SS-InvocationNotificationRes,

+	CCBS-Feature,

+	RegisterCC-EntryArg,

+	RegisterCC-EntryRes,

+	EraseCC-EntryArg,

+	EraseCC-EntryRes

+;

+

+IMPORTS

+	AddressString,

+	ISDN-AddressString,

+	ISDN-SubaddressString,

+	FTN-AddressString,

+	IMSI,

+	BasicServiceCode,

+	AlertingPattern,

+	EMLPP-Priority, 

+	MaxMC-Bearers,

+	MC-Bearers,

+	ExternalSignalInfo

+FROM MAP-CommonDataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}

+

+	ExtensionContainer

+FROM MAP-ExtensionDataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version9 (9)}

+

+	SS-Code

+FROM MAP-SS-Code {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-SS-Code (15) version9 (9)}

+;

+

+

+RegisterSS-Arg ::= SEQUENCE {

+	ss-Code		SS-Code,

+	basicService	BasicServiceCode	OPTIONAL,

+	forwardedToNumber	[4] AddressString	OPTIONAL,

+	forwardedToSubaddress	[6] ISDN-SubaddressString	OPTIONAL,

+	noReplyConditionTime	[5] NoReplyConditionTime	OPTIONAL,

+	...,

+	defaultPriority	[7] EMLPP-Priority	OPTIONAL,

+	nbrUser		[8] MC-Bearers	OPTIONAL,

+	longFTN-Supported	[9]	NULL		OPTIONAL }

+

+NoReplyConditionTime ::= INTEGER (5..30)

+

+SS-Info ::= CHOICE {

+	forwardingInfo	[0] ForwardingInfo,

+	callBarringInfo	[1] CallBarringInfo,

+	ss-Data		[3] SS-Data}

+

+ForwardingInfo ::= SEQUENCE {

+	ss-Code		SS-Code		OPTIONAL,

+	forwardingFeatureList	ForwardingFeatureList,

+	...}

+

+ForwardingFeatureList ::= 

+	SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF

+				ForwardingFeature

+

+ForwardingFeature ::= SEQUENCE {

+	basicService	BasicServiceCode	OPTIONAL,

+	ss-Status		[4] SS-Status	OPTIONAL,

+	forwardedToNumber	[5] ISDN-AddressString	OPTIONAL,

+	forwardedToSubaddress	[8] ISDN-SubaddressString	OPTIONAL,

+	forwardingOptions	[6] ForwardingOptions	OPTIONAL,

+	noReplyConditionTime	[7] NoReplyConditionTime	OPTIONAL,

+	...,

+	longForwardedToNumber	[9] FTN-AddressString	OPTIONAL }

+

+SS-Status ::= OCTET STRING (SIZE (1))

+

+	-- bits 8765: 0000 (unused)

+	-- bits 4321: Used to convey the "P bit","R bit","A bit" and "Q bit",

+	--		    representing supplementary service state information

+	--		    as defined in TS 3GPP TS 23.011 [22]

+

+	-- bit 4: "Q bit"

+

+	-- bit 3: "P bit"

+

+	-- bit 2: "R bit"

+

+	-- bit 1: "A bit"

+

+ForwardingOptions ::= OCTET STRING (SIZE (1))

+

+	-- bit 8: notification to forwarding party

+	--	0  no notification

+	--	1  notification

+

+	-- bit 7: redirecting presentation

+	--	0 no presentation  

+	--	1  presentation

+

+	-- bit 6: notification to calling party

+	--	0  no notification

+	--	1  notification

+

+	-- bit 5: 0 (unused)

+

+	-- bits 43: forwarding reason

+	--	00  ms not reachable

+	--	01  ms busy

+	--	10  no reply

+	--	11  unconditional when used in a SRI Result, 

+	--	    or call deflection when used in a RCH Argument

+	-- bits 21: 00 (unused)

+

+CallBarringInfo ::= SEQUENCE {

+	ss-Code		SS-Code		OPTIONAL,

+	callBarringFeatureList	CallBarringFeatureList,

+	...}

+

+CallBarringFeatureList ::= SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF

+				CallBarringFeature

+

+CallBarringFeature ::= SEQUENCE {

+	basicService	BasicServiceCode	OPTIONAL,

+	ss-Status	[4] SS-Status	OPTIONAL,

+	...}

+

+SS-Data ::= SEQUENCE {

+	ss-Code		SS-Code		OPTIONAL,

+	ss-Status		[4] SS-Status	OPTIONAL,

+	ss-SubscriptionOption	SS-SubscriptionOption	OPTIONAL,

+	basicServiceGroupList	BasicServiceGroupList	OPTIONAL,

+	...,

+	defaultPriority	EMLPP-Priority	OPTIONAL,

+	nbrUser		[5] MC-Bearers	OPTIONAL

+	}

+

+SS-SubscriptionOption ::= CHOICE {

+	cliRestrictionOption	[2] CliRestrictionOption,

+	overrideCategory	[1] OverrideCategory}

+

+CliRestrictionOption ::= ENUMERATED {

+	permanent  (0),

+	temporaryDefaultRestricted  (1),

+	temporaryDefaultAllowed  (2)}

+

+OverrideCategory ::= ENUMERATED {

+	overrideEnabled  (0),

+	overrideDisabled  (1)}

+

+SS-ForBS-Code ::= SEQUENCE {

+	ss-Code		SS-Code,

+	basicService	BasicServiceCode	OPTIONAL,

+	...,

+	longFTN-Supported	[4]	NULL		OPTIONAL }

+

+GenericServiceInfo ::= SEQUENCE {

+	ss-Status	SS-Status,

+	cliRestrictionOption	CliRestrictionOption	OPTIONAL,

+	...,

+	maximumEntitledPriority	[0] EMLPP-Priority	OPTIONAL,

+	defaultPriority	[1] EMLPP-Priority	OPTIONAL,

+	ccbs-FeatureList	[2] CCBS-FeatureList	OPTIONAL,

+	nbrSB		[3] MaxMC-Bearers	OPTIONAL,

+	nbrUser		[4] MC-Bearers	OPTIONAL,

+	nbrSN		[5] MC-Bearers	OPTIONAL }

+

+CCBS-FeatureList ::= SEQUENCE SIZE (1..maxNumOfCCBS-Requests) OF

+				CCBS-Feature

+

+maxNumOfCCBS-Requests  INTEGER ::= 5

+

+CCBS-Feature ::= SEQUENCE {

+	ccbs-Index	[0] CCBS-Index	OPTIONAL,

+	b-subscriberNumber	[1] ISDN-AddressString	OPTIONAL,

+	b-subscriberSubaddress	[2] ISDN-SubaddressString	OPTIONAL,

+	basicServiceGroup	[3] BasicServiceCode	OPTIONAL,

+	...}

+

+CCBS-Index  ::= INTEGER (1..maxNumOfCCBS-Requests)

+

+InterrogateSS-Res ::= CHOICE {

+	ss-Status		[0] SS-Status,

+	basicServiceGroupList	[2] BasicServiceGroupList,

+	forwardingFeatureList	[3] ForwardingFeatureList,

+	genericServiceInfo	[4]	GenericServiceInfo }

+

+USSD-Arg ::= SEQUENCE {

+	ussd-DataCodingScheme	USSD-DataCodingScheme,

+	ussd-String	USSD-String,

+	... ,

+	alertingPattern	AlertingPattern	OPTIONAL,

+	msisdn		[0] ISDN-AddressString	OPTIONAL }

+

+USSD-Res ::= SEQUENCE {

+	ussd-DataCodingScheme	USSD-DataCodingScheme,

+	ussd-String	USSD-String,

+	...}

+

+USSD-DataCodingScheme ::= OCTET STRING (SIZE (1))

+	-- The structure of the USSD-DataCodingScheme is defined by

+	-- the Cell Broadcast Data Coding Scheme as described in

+	-- TS 3GPP TS 23.038 [25]

+

+USSD-String ::= OCTET STRING (SIZE (1..maxUSSD-StringLength))

+	-- The structure of the contents of the USSD-String is dependent

+	-- on the USSD-DataCodingScheme as described in TS 3GPP TS 23.038 [25].

+

+maxUSSD-StringLength  INTEGER ::= 160

+

+Password ::= NumericString

+	(FROM ("0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"))

+	(SIZE (4))

+

+GuidanceInfo ::= ENUMERATED {

+	enterPW  (0),

+	enterNewPW  (1),

+	enterNewPW-Again  (2)}

+	-- How this information is really delivered to the subscriber

+	-- (display, announcement, ...) is not part of this

+	-- specification.

+

+SS-List ::= SEQUENCE SIZE (1..maxNumOfSS) OF

+				SS-Code

+

+maxNumOfSS  INTEGER ::= 30

+

+SS-InfoList ::= SEQUENCE SIZE (1..maxNumOfSS) OF

+				SS-Info

+

+BasicServiceGroupList ::= SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF

+				BasicServiceCode

+

+maxNumOfBasicServiceGroups  INTEGER ::= 13

+

+SS-InvocationNotificationArg ::= SEQUENCE {

+	imsi			[0] IMSI,

+	msisdn		[1] ISDN-AddressString,

+	ss-Event		[2] SS-Code,

+	-- The following SS-Code values are allowed :

+	-- ect		SS-Code ::= '00110001'B

+	-- multiPTY	SS-Code ::= '01010001'B

+	-- cd		SS-Code ::= '00100100'B

+	-- ccbs		SS-Code ::= '01000100'B

+	ss-EventSpecification	[3] SS-EventSpecification	OPTIONAL,

+	extensionContainer	[4] ExtensionContainer	OPTIONAL,

+	...,

+	b-subscriberNumber	[5]	ISDN-AddressString	OPTIONAL,

+	ccbs-RequestState	[6]	CCBS-RequestState	OPTIONAL

+	}

+

+CCBS-RequestState ::= ENUMERATED {

+	request  	(0),

+	recall  	(1),

+	active  	(2),

+	completed	(3),

+	suspended	(4),

+	frozen	(5),

+	deleted	(6)

+	}

+

+SS-InvocationNotificationRes ::= SEQUENCE {

+	extensionContainer	ExtensionContainer	OPTIONAL,

+	...

+	}

+

+SS-EventSpecification ::= SEQUENCE SIZE (1..maxEventSpecification) OF

+				AddressString

+

+maxEventSpecification  INTEGER ::= 2

+

+RegisterCC-EntryArg ::= SEQUENCE {

+	ss-Code		[0]	SS-Code,

+	ccbs-Data		[1]	CCBS-Data	OPTIONAL,

+	...}

+

+CCBS-Data ::= SEQUENCE {

+	ccbs-Feature	[0]	CCBS-Feature,

+	translatedB-Number	[1]	ISDN-AddressString,

+	serviceIndicator	[2]	ServiceIndicator	OPTIONAL,

+	callInfo		[3]	ExternalSignalInfo,

+	networkSignalInfo	[4]	ExternalSignalInfo,

+	...}

+

+ServiceIndicator ::= BIT STRING {

+	clir-invoked (0),

+	camel-invoked (1)} (SIZE(2..32)) 

+	-- exception handling:

+	-- bits 2 to 31 shall be ignored if received and not understood

+

+RegisterCC-EntryRes ::= SEQUENCE {

+	ccbs-Feature	[0] CCBS-Feature	OPTIONAL,

+	...}

+

+EraseCC-EntryArg ::= SEQUENCE {

+	ss-Code		[0]	SS-Code,

+	ccbs-Index	[1]	CCBS-Index	OPTIONAL,

+	...}

+

+EraseCC-EntryRes ::= SEQUENCE {

+	ss-Code		[0]	SS-Code,

+	ss-Status		[1] SS-Status	OPTIONAL,

+	...}

+

+END

diff --git a/asn1/MAP-ST-DataTypes.asn b/asn1/MAP-ST-DataTypes.asn
new file mode 100644
index 0000000..2eac165
--- /dev/null
+++ b/asn1/MAP-ST-DataTypes.asn
@@ -0,0 +1,98 @@
+MAP-ST-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-ST-DataTypes (27) version9 (9)}

+

+DEFINITIONS

+IMPLICIT TAGS

+::=

+BEGIN

+

+EXPORTS

+	SecureTransportArg,

+	SecureTransportRes,

+	SecurityHeader,

+	ProtectedPayload

+;

+

+IMPORTS

+	IMSI

+

+FROM MAP-CommonDataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-CommonDataTypes (18) version9 (9)}

+;

+

+SecureTransportArg ::= 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}

+

+END

+

diff --git a/asn1/MAP-SecureTransportOperations.asn b/asn1/MAP-SecureTransportOperations.asn
new file mode 100644
index 0000000..dfb830c
--- /dev/null
+++ b/asn1/MAP-SecureTransportOperations.asn
@@ -0,0 +1,78 @@
+MAP-SecureTransportOperations {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-SecureTransportOperations (26)

+   version9 (9)}

+

+DEFINITIONS

+

+::=

+

+BEGIN

+

+EXPORTS

+	secureTransportClass1,

+	secureTransportClass2,

+	secureTransportClass3,

+	secureTransportClass4

+;

+

+IMPORTS

+	OPERATION

+FROM Remote-Operations-Information-Objects {

+joint-iso-itu-t remote-operations(4)

+  informationObjects(5) version1(0)}

+

+	dataMissing,

+	secureTransportError,

+	unexpectedDataValue

+

+FROM MAP-Errors {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-Errors (10) version9 (9)}

+

+	SecureTransportArg,

+	SecureTransportRes

+

+FROM MAP-ST-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-ST-DataTypes (27) version9 (9)}

+;

+

+secureTransportClass1  OPERATION ::= {			--Timer shall be the same as for the

+						--securely transported operation

+	ARGUMENT

+		SecureTransportArg

+	RESULT

+		SecureTransportRes

+	ERRORS {

+		secureTransportError |

+		dataMissing |

+		unexpectedDataValue}

+	CODE	local:78 }

+

+secureTransportClass2  OPERATION ::= {			--Timer shall be the same as for the

+						--securely transported operation

+	ARGUMENT

+		SecureTransportArg

+	ERRORS {

+		secureTransportError |

+		dataMissing |

+		unexpectedDataValue}

+	CODE	local:79 }

+

+secureTransportClass3  OPERATION ::= {			--Timer shall be the same as for the

+						--securely transported operation

+	ARGUMENT

+		SecureTransportArg

+	RESULT

+		SecureTransportRes

+	CODE	local:80 }

+

+secureTransportClass4  OPERATION ::= {			--Timer shall be the same as for the

+						--securely transported operation

+	ARGUMENT

+		SecureTransportArg	

+	CODE	local:81 }

+

+

+END

diff --git a/asn1/MAP-ShortMessageServiceOperations.asn b/asn1/MAP-ShortMessageServiceOperations.asn
new file mode 100644
index 0000000..0cca86c
--- /dev/null
+++ b/asn1/MAP-ShortMessageServiceOperations.asn
@@ -0,0 +1,155 @@
+-- asn1ct:compile("MAP-ShortMessageServiceOperations",[ber_bin, {outdir, "../compiled/umts_map"}]).

+

+MAP-ShortMessageServiceOperations {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-ShortMessageServiceOperations (9)

+   version9 (9)}

+

+DEFINITIONS

+

+::=

+

+BEGIN

+

+EXPORTS

+	sendRoutingInfoForSM,

+	mo-ForwardSM,

+	mt-ForwardSM,

+	reportSM-DeliveryStatus,

+	alertServiceCentre,

+	informServiceCentre,

+	readyForSM

+;

+

+IMPORTS

+	OPERATION

+FROM Remote-Operations-Information-Objects {

+joint-iso-itu-t remote-operations(4)

+  informationObjects(5) version1(0)}

+

+	systemFailure,

+	dataMissing,

+	unexpectedDataValue,

+	facilityNotSupported,

+	unknownSubscriber,

+	unidentifiedSubscriber,

+	illegalSubscriber,

+	illegalEquipment,

+	teleserviceNotProvisioned,

+	callBarred,

+	subscriberBusyForMT-SMS,

+	sm-DeliveryFailure,

+	messageWaitingListFull,

+	absentSubscriberSM

+FROM MAP-Errors {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-Errors (10) version9 (9)}

+

+	RoutingInfoForSM-Arg,

+	RoutingInfoForSM-Res,

+	MO-ForwardSM-Arg,

+	MO-ForwardSM-Res,

+	MT-ForwardSM-Arg,

+	MT-ForwardSM-Res,

+	ReportSM-DeliveryStatusArg,

+	ReportSM-DeliveryStatusRes,

+	AlertServiceCentreArg,

+	InformServiceCentreArg,

+	ReadyForSM-Arg,

+	ReadyForSM-Res

+FROM MAP-SM-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-SM-DataTypes (16) version9 (9)}

+

+;

+

+sendRoutingInfoForSM  OPERATION ::= {				--Timer m

+	ARGUMENT

+		RoutingInfoForSM-Arg

+	RESULT

+		RoutingInfoForSM-Res

+	ERRORS {

+		systemFailure |

+		dataMissing |

+		unexpectedDataValue |

+		facilityNotSupported |

+		unknownSubscriber |

+		teleserviceNotProvisioned |

+		callBarred |

+		absentSubscriberSM}

+	CODE	local:45 }

+

+mo-ForwardSM  OPERATION ::= {				--Timer ml

+	ARGUMENT

+		MO-ForwardSM-Arg

+	RESULT

+		MO-ForwardSM-Res

+		-- optional

+	ERRORS {

+		systemFailure |

+		unexpectedDataValue |

+		facilityNotSupported |

+		sm-DeliveryFailure}

+	CODE	local:46 }

+

+mt-ForwardSM  OPERATION ::= {				--Timer ml

+	ARGUMENT

+		MT-ForwardSM-Arg

+	RESULT

+		MT-ForwardSM-Res

+		-- optional

+	ERRORS {

+		systemFailure |

+		dataMissing |

+		unexpectedDataValue |

+		facilityNotSupported |

+		unidentifiedSubscriber |

+		illegalSubscriber |

+		illegalEquipment |

+		subscriberBusyForMT-SMS |

+		sm-DeliveryFailure |

+		absentSubscriberSM}

+	CODE	local:44 }

+

+reportSM-DeliveryStatus  OPERATION ::= {			--Timer s

+	ARGUMENT

+		ReportSM-DeliveryStatusArg

+	RESULT

+		ReportSM-DeliveryStatusRes

+		-- optional

+	ERRORS {

+		dataMissing |

+		unexpectedDataValue |

+		unknownSubscriber |

+		messageWaitingListFull}

+	CODE	local:47 }

+

+alertServiceCentre  OPERATION ::= {				--Timer s

+	ARGUMENT

+		AlertServiceCentreArg

+	RETURN RESULT TRUE

+	ERRORS {

+		systemFailure |

+		dataMissing |

+		unexpectedDataValue}

+	CODE	local:64 }

+

+informServiceCentre  OPERATION ::= {				--Timer s

+	ARGUMENT

+		InformServiceCentreArg

+	CODE	local:63 }

+

+readyForSM  OPERATION ::= {				--Timer m

+	ARGUMENT

+		ReadyForSM-Arg

+	RESULT

+		ReadyForSM-Res

+		-- optional

+	ERRORS {

+		dataMissing |

+		unexpectedDataValue |

+		facilityNotSupported |

+		unknownSubscriber}

+	CODE	local:66 }

+

+END

diff --git a/asn1/MAP-SupplementaryServiceOperations.asn b/asn1/MAP-SupplementaryServiceOperations.asn
new file mode 100644
index 0000000..7c89273
--- /dev/null
+++ b/asn1/MAP-SupplementaryServiceOperations.asn
@@ -0,0 +1,295 @@
+MAP-SupplementaryServiceOperations {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-SupplementaryServiceOperations (8)

+   version9 (9)}

+

+DEFINITIONS

+

+::=

+

+BEGIN

+

+EXPORTS

+	registerSS,

+	eraseSS,

+	activateSS,

+	deactivateSS,

+	interrogateSS,

+	processUnstructuredSS-Request,

+	unstructuredSS-Request,

+	unstructuredSS-Notify,

+	registerPassword,

+	getPassword,

+	ss-InvocationNotification,

+	registerCC-Entry,

+	eraseCC-Entry

+;

+

+IMPORTS

+	OPERATION

+FROM Remote-Operations-Information-Objects {

+joint-iso-itu-t remote-operations(4)

+  informationObjects(5) version1(0)}

+

+	systemFailure,

+	dataMissing,

+	unexpectedDataValue,

+	unknownSubscriber,

+	bearerServiceNotProvisioned,

+	teleserviceNotProvisioned,

+	callBarred,

+	illegalSS-Operation,

+	ss-ErrorStatus,

+	ss-NotAvailable,

+	ss-SubscriptionViolation,

+	ss-Incompatibility,

+	pw-RegistrationFailure,

+	negativePW-Check,

+	numberOfPW-AttemptsViolation,

+	unknownAlphabet,

+	ussd-Busy,

+	absentSubscriber,

+	illegalSubscriber,

+	illegalEquipment,

+	shortTermDenial,

+	longTermDenial,

+	facilityNotSupported

+FROM MAP-Errors {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-Errors (10) version9 (9)}

+

+	RegisterSS-Arg,

+	SS-Info,

+	SS-ForBS-Code,

+	InterrogateSS-Res,

+	USSD-Arg,

+	USSD-Res,

+	Password,

+	GuidanceInfo,

+	SS-InvocationNotificationArg,

+	SS-InvocationNotificationRes,

+	RegisterCC-EntryArg,

+	RegisterCC-EntryRes,

+	EraseCC-EntryArg,

+	EraseCC-EntryRes

+FROM MAP-SS-DataTypes {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-SS-DataTypes (14) version9 (9)}

+

+	SS-Code

+FROM MAP-SS-Code {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-SS-Code (15) version9 (9)}

+;

+

+

+-- supplementary service handling operations

+

+registerSS  OPERATION ::= {				--Timer m

+	ARGUMENT

+		RegisterSS-Arg

+	RESULT

+		SS-Info

+		-- optional

+	ERRORS {

+		systemFailure |

+		dataMissing |

+		unexpectedDataValue |

+		bearerServiceNotProvisioned |

+		teleserviceNotProvisioned |

+		callBarred |

+		illegalSS-Operation |

+		ss-ErrorStatus |

+		ss-Incompatibility}

+	CODE	local:10 }

+

+eraseSS  OPERATION ::= {				--Timer m

+	ARGUMENT

+		SS-ForBS-Code

+	RESULT

+		SS-Info

+		-- optional

+	ERRORS {

+		systemFailure |

+		dataMissing |

+		unexpectedDataValue |

+		bearerServiceNotProvisioned |

+		teleserviceNotProvisioned |

+		callBarred |

+		illegalSS-Operation |

+		ss-ErrorStatus

+		}

+	CODE	local:11 }

+

+activateSS  OPERATION ::= {				--Timer m

+	ARGUMENT

+		SS-ForBS-Code

+	RESULT

+		SS-Info

+		-- optional

+	ERRORS {

+		systemFailure |

+		dataMissing |

+		unexpectedDataValue |

+		bearerServiceNotProvisioned |

+		teleserviceNotProvisioned |

+		callBarred |

+		illegalSS-Operation |

+		ss-ErrorStatus |

+		ss-SubscriptionViolation |

+		ss-Incompatibility |

+		negativePW-Check |

+		numberOfPW-AttemptsViolation}

+	CODE	local:12 }

+

+deactivateSS  OPERATION ::= {				--Timer m

+	ARGUMENT

+		SS-ForBS-Code

+	RESULT

+		SS-Info

+		-- optional

+	ERRORS {

+		systemFailure |

+		dataMissing |

+		unexpectedDataValue |

+		bearerServiceNotProvisioned |

+		teleserviceNotProvisioned |

+		callBarred |

+		illegalSS-Operation |

+		ss-ErrorStatus |

+		ss-SubscriptionViolation |

+		negativePW-Check |

+		numberOfPW-AttemptsViolation}

+	CODE	local:13 }

+

+interrogateSS  OPERATION ::= {				--Timer m

+	ARGUMENT

+		SS-ForBS-Code

+	RESULT

+		InterrogateSS-Res

+	ERRORS {

+		systemFailure |

+		dataMissing |

+		unexpectedDataValue |

+		bearerServiceNotProvisioned |

+		teleserviceNotProvisioned |

+		callBarred |

+		illegalSS-Operation |

+		ss-NotAvailable}

+	CODE	local:14 }

+

+processUnstructuredSS-Request  OPERATION ::= {				--Timer 10 minutes

+	ARGUMENT

+		USSD-Arg

+	RESULT

+		USSD-Res

+	ERRORS {

+		systemFailure |

+		dataMissing |

+		unexpectedDataValue |

+		unknownAlphabet |

+		callBarred}

+	CODE	local:59 }

+

+unstructuredSS-Request  OPERATION ::= {				--Timer ml

+	ARGUMENT

+		USSD-Arg

+	RESULT

+		USSD-Res

+		-- optional

+	ERRORS {

+		systemFailure |

+		dataMissing |

+		unexpectedDataValue |

+		absentSubscriber |

+		illegalSubscriber |

+		illegalEquipment |

+		unknownAlphabet |

+		ussd-Busy}

+	CODE	local:60 }

+

+unstructuredSS-Notify  OPERATION ::= {				--Timer ml

+	ARGUMENT

+		USSD-Arg

+	RETURN RESULT TRUE

+	ERRORS {

+		systemFailure |

+		dataMissing |

+		unexpectedDataValue |

+		absentSubscriber |

+		illegalSubscriber |

+		illegalEquipment |

+		unknownAlphabet |

+		ussd-Busy}

+	CODE	local:61 }

+

+registerPassword  OPERATION ::= {				--Timer ml

+	ARGUMENT

+		SS-Code

+	RESULT

+		Password

+	ERRORS {

+		systemFailure |

+		dataMissing |

+		unexpectedDataValue |

+		callBarred |

+		ss-SubscriptionViolation |

+		pw-RegistrationFailure |

+		negativePW-Check |

+		numberOfPW-AttemptsViolation}

+	LINKED {

+		getPassword}

+	CODE	local:17 }

+

+getPassword  OPERATION ::= {				--Timer m

+	ARGUMENT

+		GuidanceInfo

+	RESULT

+		Password

+	CODE	local:18 }

+

+ss-InvocationNotification  OPERATION ::= {				--Timer m

+	ARGUMENT

+		SS-InvocationNotificationArg

+	RESULT

+		SS-InvocationNotificationRes

+		-- optional

+	ERRORS {

+		dataMissing |

+		unexpectedDataValue |

+		unknownSubscriber}

+	CODE	local:72 }

+

+registerCC-Entry  OPERATION ::= {				--Timer m

+	ARGUMENT

+		RegisterCC-EntryArg

+	RESULT

+		RegisterCC-EntryRes

+	ERRORS {

+		systemFailure |

+		dataMissing |

+		unexpectedDataValue |

+		callBarred |

+		illegalSS-Operation |

+		ss-ErrorStatus |

+		ss-Incompatibility |

+		shortTermDenial |

+		longTermDenial |

+		facilityNotSupported}

+	CODE	local:76 }

+

+eraseCC-Entry  OPERATION ::= {				--Timer m

+	ARGUMENT

+		EraseCC-EntryArg

+	RESULT

+		EraseCC-EntryRes

+	ERRORS {

+		systemFailure |

+		dataMissing |

+		unexpectedDataValue |

+		callBarred |

+		illegalSS-Operation |

+		ss-ErrorStatus}

+	CODE	local:77 }

+

+END

diff --git a/asn1/MAP-TS-Code.asn b/asn1/MAP-TS-Code.asn
new file mode 100644
index 0000000..eface38
--- /dev/null
+++ b/asn1/MAP-TS-Code.asn
@@ -0,0 +1,87 @@
+MAP-TS-Code {

+   itu-t identified-organization (4) etsi (0) mobileDomain (0)

+   gsm-Network (1) modules (3) map-TS-Code (19) version9 (9)}

+

+DEFINITIONS

+

+::=

+

+BEGIN

+

+TeleserviceCode ::= OCTET STRING (SIZE (1))

+	-- This type is used to represent the code identifying a single

+	-- teleservice, a group of teleservices, or all teleservices. The

+	-- services are defined in TS GSM 22.003 [4].

+	-- The internal structure is defined as follows:

+

+	-- bits 87654321: group (bits 8765) and specific service

+	-- (bits 4321)

+

+Ext-TeleserviceCode ::= OCTET STRING (SIZE (1..5))

+	-- This type is used to represent the code identifying a single

+	-- teleservice, a group of teleservices, or all teleservices. The

+	-- services are defined in TS GSM 22.003 [4].

+	-- The internal structure is defined as follows:

+

+	-- OCTET 1:

+	-- bits 87654321: group (bits 8765) and specific service

+	-- (bits 4321)

+

+	-- OCTETS 2-5: reserved for future use. If received the

+    -- Ext-TeleserviceCode shall be

+ 	-- treated according to the exception handling defined for the

+	-- operation that uses this type.

+

+	-- Ext-TeleserviceCode includes all values defined for TeleserviceCode.

+

+allTeleservices	TeleserviceCode ::= '00000000'B

+

+allSpeechTransmissionServices	TeleserviceCode ::= '00010000'B

+telephony			TeleserviceCode ::= '00010001'B

+emergencyCalls		TeleserviceCode ::= '00010010'B

+

+allShortMessageServices	TeleserviceCode ::= '00100000'B

+shortMessageMT-PP	TeleserviceCode ::= '00100001'B

+shortMessageMO-PP	TeleserviceCode ::= '00100010'B

+

+allFacsimileTransmissionServices	TeleserviceCode ::= '01100000'B

+facsimileGroup3AndAlterSpeech	TeleserviceCode ::= '01100001'B

+automaticFacsimileGroup3	TeleserviceCode ::= '01100010'B

+facsimileGroup4	TeleserviceCode ::= '01100011'B

+

+-- The following non-hierarchical Compound Teleservice Groups

+-- are defined in TS 3GPP TS 22.030:

+allDataTeleservices	TeleserviceCode ::= '01110000'B

+	-- covers Teleservice Groups 'allFacsimileTransmissionServices'

+	-- and 'allShortMessageServices'

+allTeleservices-ExeptSMS	TeleserviceCode ::= '10000000'B

+	-- covers Teleservice Groups 'allSpeechTransmissionServices' and

+	-- 'allFacsimileTransmissionServices'

+--

+-- Compound Teleservice Group Codes are only used in call

+-- independent supplementary service operations, i.e. they

+-- are not used in InsertSubscriberData or in

+-- DeleteSubscriberData messages.

+

+allVoiceGroupCallServices	TeleserviceCode ::= '10010000'B

+voiceGroupCall		TeleserviceCode ::= '10010001'B

+voiceBroadcastCall	TeleserviceCode ::= '10010010'B

+

+allPLMN-specificTS	TeleserviceCode ::= '11010000'B

+plmn-specificTS-1	TeleserviceCode ::= '11010001'B

+plmn-specificTS-2	TeleserviceCode ::= '11010010'B

+plmn-specificTS-3	TeleserviceCode ::= '11010011'B

+plmn-specificTS-4	TeleserviceCode ::= '11010100'B

+plmn-specificTS-5	TeleserviceCode ::= '11010101'B

+plmn-specificTS-6	TeleserviceCode ::= '11010110'B

+plmn-specificTS-7	TeleserviceCode ::= '11010111'B

+plmn-specificTS-8	TeleserviceCode ::= '11011000'B

+plmn-specificTS-9	TeleserviceCode ::= '11011001'B

+plmn-specificTS-A	TeleserviceCode ::= '11011010'B

+plmn-specificTS-B	TeleserviceCode ::= '11011011'B

+plmn-specificTS-C	TeleserviceCode ::= '11011100'B

+plmn-specificTS-D	TeleserviceCode ::= '11011101'B

+plmn-specificTS-E	TeleserviceCode ::= '11011110'B

+plmn-specificTS-F	TeleserviceCode ::= '11011111'B

+

+END

diff --git a/asn1/MobileDomainDefinitions.asn b/asn1/MobileDomainDefinitions.asn
new file mode 100644
index 0000000..30e7143
--- /dev/null
+++ b/asn1/MobileDomainDefinitions.asn
@@ -0,0 +1,38 @@
+MobileDomainDefinitions {itu-t (0) identified-organization (4) etsi (0)

+	mobileDomain (0) mobileDomainDefinitions (0) version1 (1)}

+

+DEFINITIONS ::=

+

+BEGIN

+

+-- Mobile DomainId

+mobileDomainId OBJECT IDENTIFIER ::= 

+	{itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)}

+

+-- Mobile Subdomains

+gsm-NetworkId OBJECT IDENTIFIER ::= 

+	{mobileDomainId gsm-Network (1)}

+

+gsm-AccessId OBJECT IDENTIFIER ::= 

+	{mobileDomainId gsm-Access (2)}

+

+gsm-OperationAndMaintenanceId OBJECT IDENTIFIER ::= 

+	{mobileDomainId gsm-Operation-Maintenance (3)}

+

+gsm-MessagingId OBJECT IDENTIFIER ::= 

+	{mobileDomainId gsm-Messaging (4)}

+

+-- Common Component Ids for structuring Mobile Subdomains

+CommonComponentId ::= INTEGER (0..9)

+

+ac-Id CommonComponentId ::= 0

+

+as-Id CommonComponentId ::= 1

+

+ase-Id CommonComponentId ::= 2

+

+moduleId CommonComponentId ::= 3

+

+er-Id CommonComponentId ::= 4

+

+END -- MobileDomainDefinitions
\ No newline at end of file
diff --git a/asn1/Remote-Operations-Generic-ROS-PDUs.asn b/asn1/Remote-Operations-Generic-ROS-PDUs.asn
new file mode 100644
index 0000000..d4d2eec
--- /dev/null
+++ b/asn1/Remote-Operations-Generic-ROS-PDUs.asn
@@ -0,0 +1,167 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t remote-operations(4)
+  generic-ROS-PDUs(6) version1(0)}
+
+DEFINITIONS IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+-- exports everything
+IMPORTS
+  OPERATION, ERROR
+    FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+      remote-operations(4) informationObjects(5) version1(0)};
+
+ROS{InvokeId:InvokeIdSet, OPERATION:Invokable, OPERATION:Returnable} ::=
+  CHOICE {
+  invoke        [1]  Invoke{{InvokeIdSet}, {Invokable}},
+  returnResult  [2]  ReturnResult{{Returnable}},
+  returnError   [3]  ReturnError{{Errors  {{Returnable}}}},
+  reject        [4]  Reject
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-unrecognizedPDU)
+
+Invoke{InvokeId:InvokeIdSet, OPERATION:Operations} ::= SEQUENCE {
+  invokeId
+    InvokeId(InvokeIdSet)
+      (CONSTRAINED BY { -- must be unambiguous --} !
+       RejectProblem:invoke-duplicateInvocation),
+  linkedId
+    CHOICE {present  [0] IMPLICIT present < InvokeId,
+            absent   [1] IMPLICIT NULL
+  }
+  (CONSTRAINED BY { -- must identify an outstanding operation --} !
+   RejectProblem:invoke-unrecognizedLinkedId)
+  (CONSTRAINED BY { -- which has one or more linked operations--} !
+   RejectProblem:invoke-linkedResponseUnexpected) OPTIONAL,
+  opcode
+    OPERATION.&operationCode
+      ({Operations} !RejectProblem:invoke-unrecognizedOperation),
+  argument
+    OPERATION.&ArgumentType
+      ({Operations}{@opcode} !RejectProblem:invoke-mistypedArgument) OPTIONAL
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+(WITH COMPONENTS {
+   ...,
+   linkedId  ABSENT
+ } |
+ WITH COMPONENTS {
+   ...,
+   linkedId  PRESENT,
+   opcode    (CONSTRAINED BY { -- must be in the &Linked field of the associated operation --
+                } !RejectProblem:invoke-unexpectedLinkedOperation)
+ })
+
+-- continued on the next page
+ReturnResult{OPERATION:Operations} ::= SEQUENCE {
+  invokeId
+    InvokeId
+      (CONSTRAINED BY { -- must be that for an outstanding operation --} !
+       RejectProblem:returnResult-unrecognizedInvocation)
+      (CONSTRAINED BY { -- which returns a result --} !
+       RejectProblem:returnResult-resultResponseUnexpected),
+  result
+    SEQUENCE {opcode
+                OPERATION.&operationCode({Operations})
+                  (CONSTRAINED BY { -- identified by invokeId --} !
+                   RejectProblem:returnResult-unrecognizedInvocation),
+              result
+                OPERATION.&ResultType
+                  ({Operations}{@.opcode} !
+                   RejectProblem:returnResult-mistypedResult)} OPTIONAL
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+
+ReturnError{ERROR:Errors} ::= SEQUENCE {
+  invokeId
+    InvokeId
+      (CONSTRAINED BY { -- must be that for an outstanding operation --} !
+       RejectProblem:returnError-unrecognizedInvocation)
+      (CONSTRAINED BY { -- which returns an error --} !
+       RejectProblem:returnError-errorResponseUnexpected),
+  errcode
+    ERROR.&errorCode({Errors} !RejectProblem:returnError-unrecognizedError)
+      (CONSTRAINED BY { -- must be in the &Errors field of the associated operation --
+         } !RejectProblem:returnError-unexpectedError),
+  parameter
+    ERROR.&ParameterType
+      ({Errors}{@errcode} !RejectProblem:returnError-mistypedParameter)
+      OPTIONAL
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+
+Reject ::= SEQUENCE {
+  invokeId  InvokeId,
+  problem
+    CHOICE {general       [0]  GeneralProblem,
+            invoke        [1]  InvokeProblem,
+            returnResult  [2]  ReturnResultProblem,
+            returnError   [3]  ReturnErrorProblem}
+}
+(CONSTRAINED BY { -- must conform to the above definition --} !
+ RejectProblem:general-mistypedPDU)
+
+GeneralProblem ::= INTEGER {
+  unrecognizedPDU(0), mistypedPDU(1), badlyStructuredPDU(2)}
+
+-- continued on the next page
+InvokeProblem ::= INTEGER {
+  duplicateInvocation(0), unrecognizedOperation(1), mistypedArgument(2),
+  resourceLimitation(3), releaseInProgress(4), unrecognizedLinkedId(5),
+  linkedResponseUnexpected(6), unexpectedLinkedOperation(7)}
+
+ReturnResultProblem ::= INTEGER {
+  unrecognizedInvocation(0), resultResponseUnexpected(1), mistypedResult(2)
+}
+
+ReturnErrorProblem ::= INTEGER {
+  unrecognizedInvocation(0), errorResponseUnexpected(1), unrecognizedError(2),
+  unexpectedError(3), mistypedParameter(4)}
+
+RejectProblem ::= INTEGER {
+  general-unrecognizedPDU(0), general-mistypedPDU(1),
+  general-badlyStructuredPDU(2), invoke-duplicateInvocation(10),
+  invoke-unrecognizedOperation(11), invoke-mistypedArgument(12),
+  invoke-resourceLimitation(13), invoke-releaseInProgress(14),
+  invoke-unrecognizedLinkedId(15), invoke-linkedResponseUnexpected(16),
+  invoke-unexpectedLinkedOperation(17),
+  returnResult-unrecognizedInvocation(20),
+  returnResult-resultResponseUnexpected(21), returnResult-mistypedResult(22),
+  returnError-unrecognizedInvocation(30),
+  returnError-errorResponseUnexpected(31), returnError-unrecognizedError(32),
+  returnError-unexpectedError(33), returnError-mistypedParameter(34)}
+
+InvokeId ::= CHOICE {present  INTEGER,
+                     absent   NULL
+}
+
+noInvokeId InvokeId ::= absent:NULL
+
+NoInvokeId InvokeId ::= {noInvokeId}
+
+Errors{OPERATION:Operations} ERROR ::= {Operations.&Errors}
+
+-- continued on the next page
+Bind{OPERATION:operation} ::= CHOICE {
+  bind-invoke  [16]  OPERATION.&ArgumentType({operation}),
+  bind-result  [17]  OPERATION.&ResultType({operation}),
+  bind-error   [18]  OPERATION.&Errors.&ParameterType({operation})
+}
+
+Unbind{OPERATION:operation} ::= CHOICE {
+  unbind-invoke  [19]  OPERATION.&ArgumentType({operation}),
+  unbind-result  [20]  OPERATION.&ResultType({operation}),
+  unbind-error   [21]  OPERATION.&Errors.&ParameterType({operation})
+}
+
+END -- end of generic ROS PDU definitions
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/asn1/Remote-Operations-Information-Objects.asn b/asn1/Remote-Operations-Information-Objects.asn
new file mode 100644
index 0000000..74be149
--- /dev/null
+++ b/asn1/Remote-Operations-Information-Objects.asn
@@ -0,0 +1,127 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4)
+  informationObjects(5) version1(0)} 
+  
+DEFINITIONS
+
+::=
+
+BEGIN
+
+-- exports everything
+IMPORTS
+  emptyBind, emptyUnbind
+    FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t
+      remote-operations(4) useful-definitions(7) version1(0)};
+
+OPERATION ::= CLASS {
+  &ArgumentType          OPTIONAL,
+  &argumentTypeOptional  BOOLEAN OPTIONAL,
+  &returnResult          BOOLEAN DEFAULT TRUE,
+  &ResultType            OPTIONAL,
+  &resultTypeOptional    BOOLEAN OPTIONAL,
+  &Errors                ERROR OPTIONAL,
+  &Linked                OPERATION OPTIONAL,
+  &synchronous           BOOLEAN DEFAULT FALSE,
+  &alwaysReturns         BOOLEAN DEFAULT TRUE,
+  &InvokePriority        Priority OPTIONAL,
+  &ResultPriority        Priority OPTIONAL,
+  &operationCode         Code UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+  [ARGUMENT &ArgumentType
+   [OPTIONAL &argumentTypeOptional]]
+  [RESULT &ResultType
+   [OPTIONAL &resultTypeOptional]]
+  [RETURN RESULT &returnResult]
+  [ERRORS &Errors]
+  [LINKED &Linked]
+  [SYNCHRONOUS &synchronous]
+  [ALWAYS RESPONDS &alwaysReturns]
+  [INVOKE PRIORITY &InvokePriority]
+  [RESULT-PRIORITY &ResultPriority]
+  [CODE &operationCode]
+}
+
+ERROR ::= CLASS {
+  &ParameterType          OPTIONAL,
+  &parameterTypeOptional  BOOLEAN OPTIONAL,
+  &ErrorPriority          Priority OPTIONAL,
+  &errorCode              Code UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+  [PARAMETER &ParameterType
+   [OPTIONAL &parameterTypeOptional]]
+  [PRIORITY &ErrorPriority]
+  [CODE &errorCode]
+}
+
+OPERATION-PACKAGE ::= CLASS {
+  &Both      OPERATION OPTIONAL,
+  &Consumer  OPERATION OPTIONAL,
+  &Supplier  OPERATION OPTIONAL,
+  &id        OBJECT IDENTIFIER UNIQUE OPTIONAL
+}
+-- continued on the next page
+WITH SYNTAX {
+  [OPERATIONS &Both]
+  [CONSUMER INVOKES &Supplier]
+  [SUPPLIER INVOKES &Consumer]
+  [ID &id]
+}
+
+CONNECTION-PACKAGE ::= CLASS {
+  &bind                OPERATION DEFAULT emptyBind,
+  &unbind              OPERATION DEFAULT emptyUnbind,
+  &responderCanUnbind  BOOLEAN DEFAULT FALSE,
+  &unbindCanFail       BOOLEAN DEFAULT FALSE,
+  &id                  OBJECT IDENTIFIER UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+  [BIND &bind]
+  [UNBIND &unbind]
+  [RESPONDER UNBIND &responderCanUnbind]
+  [FAILURE TO UNBIND &unbindCanFail]
+  [ID &id]
+}
+
+CONTRACT ::= CLASS {
+  &connection           CONNECTION-PACKAGE OPTIONAL,
+  &OperationsOf         OPERATION-PACKAGE OPTIONAL,
+  &InitiatorConsumerOf  OPERATION-PACKAGE OPTIONAL,
+  &InitiatorSupplierOf  OPERATION-PACKAGE OPTIONAL,
+  &id                   OBJECT IDENTIFIER UNIQUE OPTIONAL
+}
+WITH SYNTAX {
+  [CONNECTION &connection]
+  [OPERATIONS OF &OperationsOf]
+  [INITIATOR CONSUMER OF &InitiatorConsumerOf]
+  [RESPONDER CONSUMER OF &InitiatorSupplierOf]
+  [ID &id]
+}
+
+ROS-OBJECT-CLASS ::= CLASS {
+  &Is                    ROS-OBJECT-CLASS OPTIONAL,
+  &Initiates             CONTRACT OPTIONAL,
+  &Responds              CONTRACT OPTIONAL,
+  &InitiatesAndResponds  CONTRACT OPTIONAL,
+  &id                    OBJECT IDENTIFIER UNIQUE
+}
+WITH SYNTAX {
+  [IS &Is]
+  [BOTH &InitiatesAndResponds]
+  [INITIATES &Initiates]
+  [RESPONDS &Responds]
+  ID &id
+}
+
+Code ::= CHOICE {local   INTEGER,
+                 global  OBJECT IDENTIFIER
+}
+
+Priority ::= INTEGER(0..MAX)
+
+END -- end of Information Object specifications
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/asn1/Remote-Operations-Useful-Definitions.asn b/asn1/Remote-Operations-Useful-Definitions.asn
new file mode 100644
index 0000000..714b96b
--- /dev/null
+++ b/asn1/Remote-Operations-Useful-Definitions.asn
@@ -0,0 +1,99 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+Remote-Operations-Useful-Definitions {joint-iso-itu-t remote-operations(4)
+  useful-definitions(7) version1(0)}
+
+DEFINITIONS IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+-- exports everything
+IMPORTS
+  OPERATION, ERROR, OPERATION-PACKAGE, Code
+    FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+      remote-operations(4) informationObjects(5) version1(0)}
+  InvokeId, ROS{}
+    FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+      remote-operations(4) generic-ROS-PDUs(6) version1(0)};
+
+emptyBind OPERATION ::= {ERRORS       {refuse}
+                         SYNCHRONOUS  TRUE
+}
+
+emptyUnbind OPERATION ::= {SYNCHRONOUS  TRUE
+}
+
+refuse ERROR ::= {CODE  local:-1
+}
+
+no-op OPERATION ::= {ALWAYS RESPONDS  FALSE
+                     CODE             local:-1
+}
+
+Forward{OPERATION:OperationSet} OPERATION ::=
+  {OperationSet | OperationSet.&Linked.&Linked |
+   OperationSet.&Linked.&Linked.&Linked.&Linked}
+
+Reverse{OPERATION:OperationSet} OPERATION ::= {Forward{{OperationSet.&Linked}}}
+
+ConsumerPerforms{OPERATION-PACKAGE:package} OPERATION ::=
+  {Forward{{package.&Consumer}} | Forward{{package.&Both}} |
+   Reverse{{package.&Supplier}} | Reverse{{package.&Both}}}
+
+SupplierPerforms{OPERATION-PACKAGE:package} OPERATION ::=
+  {Forward{{package.&Supplier}} | Forward{{package.&Both}} |
+   Reverse{{package.&Consumer}} | Reverse{{package.&Both}}}
+
+AllOperations{OPERATION-PACKAGE:package} OPERATION ::=
+  {ConsumerPerforms{package} | SupplierPerforms{package}}
+
+-- continued on the next page
+recode{OPERATION:operation, Code:code} OPERATION ::= {
+  ARGUMENT         operation.&ArgumentType
+  OPTIONAL         operation.&argumentTypeOptional
+  RESULT           operation.&ResultType
+  OPTIONAL         operation.&resultTypeOptional
+  RETURN RESULT    operation.&returnResult
+  ERRORS           {operation.&Errors}
+  LINKED           {operation.&Linked}
+  SYNCHRONOUS      operation.&synchronous
+  ALWAYS RESPONDS  operation.&alwaysReturns
+  INVOKE PRIORITY  {operation.&InvokePriority}
+  RESULT-PRIORITY  {operation.&ResultPriority}
+  CODE             code
+}
+
+switch{OPERATION-PACKAGE:package, OBJECT IDENTIFIER:id} OPERATION-PACKAGE ::= 
+{
+  OPERATIONS        {package.&Both}
+  CONSUMER INVOKES  {package.&Consumer}
+  SUPPLIER INVOKES  {package.&Supplier}
+  ID                id
+}
+
+combine{OPERATION-PACKAGE:ConsumerConsumes, OPERATION-PACKAGE:ConsumerSupplies,
+        OPERATION-PACKAGE:base} OPERATION-PACKAGE ::= {
+  OPERATIONS        {ConsumerConsumes.&Both | ConsumerSupplies.&Both}
+  CONSUMER INVOKES  {ConsumerConsumes.&Consumer | ConsumerSupplies.&Supplier}
+  SUPPLIER INVOKES  {ConsumerConsumes.&Supplier | ConsumerSupplies.&Consumer}
+  ID                base.&id
+}
+
+ROS-SingleAS{InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::=
+  ROS{{InvokeIdSet}, {AllOperations  {package}}, {AllOperations  {package}}}
+
+ROS-ConsumerAS{InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::=
+  ROS
+    {{InvokeIdSet}, {ConsumerPerforms  {package}},
+    {SupplierPerforms  {package}}}
+
+ROS-SupplierAS{InvokeId:InvokeIdSet, OPERATION-PACKAGE:package} ::=
+  ROS
+    {{InvokeIdSet}, {SupplierPerforms  {package}},
+    {ConsumerPerforms  {package}}}
+
+END -- end of useful definitions.
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/asn1/TC-Notation-Extensions.asn b/asn1/TC-Notation-Extensions.asn
new file mode 100644
index 0000000..89bfd10
--- /dev/null
+++ b/asn1/TC-Notation-Extensions.asn
@@ -0,0 +1,87 @@
+-- Module TC-Notation-Extensions (Q.775:06/1997)

+

+TC-Notation-Extensions {itu-t recommendation q 775 modules(2)

+  notation-extension(4) version1(1)} DEFINITIONS ::=

+BEGIN

+

+IMPORTS

+  TCMessage{}

+    FROM TCAPMessages {itu-t recommendation q 773 modules(2) messages(1)

+      version3(3)}

+  Bind{}, Unbind{}

+    FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t

+      remote-operations(4) generic-ROS-PDUs(6) version1(0)}

+  AllOperations{}, ConsumerPerforms{}, SupplierPerforms{}, combine{}

+    FROM Remote-Operations-Useful-Definitions {joint-iso-itu-t

+      remote-operations(4) useful-definitions(7) version1(0)}

+  CONTRACT, OPERATION-PACKAGE

+    FROM Remote-Operations-Information-Objects {joint-iso-itu-t

+      remote-operations(4) informationObjects(5) version1(0)}

+  UniDialoguePDU, uniDialogue-as-id

+    FROM UnidialoguePDUs {itu-t recommendation q 773 modules(2)

+      unidialoguePDUs(3) version1(1)}

+  DialoguePDU, dialogue-as-id

+    FROM DialoguePDUs {itu-t recommendation q 773 modules(2) dialoguePDUs(2)

+      version1(1)};

+

+APPLICATION-CONTEXT ::= CLASS {

+  &associationContract           CONTRACT,

+  &dialogueMode                  DialogueMode,

+  &termination                   Termination OPTIONAL,

+  &componentGrouping             BOOLEAN DEFAULT TRUE,

+  &dialogueAndComponentGrouping  BOOLEAN DEFAULT TRUE,

+  &AdditionalASEs                OBJECT IDENTIFIER OPTIONAL,

+  &AbstractSyntaxes              ABSTRACT-SYNTAX,

+  &applicationContextName        OBJECT IDENTIFIER UNIQUE

+}

+WITH SYNTAX {

+  CONTRACT &associationContract

+  DIALOGUE MODE &dialogueMode

+  [TERMINATION &termination]

+  [COMPONENT GROUPING ALLOWED &componentGrouping]

+  [DIALOGUE WITH COMPONENTS ALLOWED &dialogueAndComponentGrouping]

+  [ADDITIONAL ASES &AdditionalASEs]

+  ABSTRACT SYNTAXES &AbstractSyntaxes

+  APPLICATION CONTEXT NAME &applicationContextName

+}

+

+DialogueMode ::= ENUMERATED {structured(1), unstructured(2)}

+

+Termination ::= ENUMERATED {basic(1), prearranged(2)}

+

+dialogue-abstract-syntax ABSTRACT-SYNTAX ::= {

+  DialoguePDU

+  IDENTIFIED BY  dialogue-as-id

+}

+

+uniDialogue-abstract-syntax ABSTRACT-SYNTAX ::= {

+  UniDialoguePDU

+  IDENTIFIED BY  uniDialogue-as-id

+}

+

+TCSingleAS{OPERATION-PACKAGE:package} ::=

+  TCMessage{{AllOperations  {package}}, {AllOperations  {package}}}

+

+TCConsumerAS{OPERATION-PACKAGE:package} ::=

+  TCMessage{{ConsumerPerforms  {package}}, {ConsumerPerforms  {package}}}

+

+TCSupplierAS{OPERATION-PACKAGE:package} ::=

+  TCMessage{{SupplierPerforms  {package}}, {SupplierPerforms  {package}}}

+

+AllPackagesAS{APPLICATION-CONTEXT:ac} ::=

+  TCSingleAS

+    {combine{{ac.&associationContract.&OperationsOf |

+            ac.&associationContract.&InitiatorConsumerOf |

+            ac.&associationContract.&InitiatorSupplierOf},

+            {...}, --was illegaly empty, needs to be changed 

+            { -- Information Object of class OPERATION-PACKAGE to be defined --}}}

+

+ConnectionAS{APPLICATION-CONTEXT:ac} ::= CHOICE {

+  bind    Bind{ac.&associationContract.&connection.&bind},

+  unbind  Unbind{ac.&associationContract.&connection.&unbind}

+}

+

+END

+

+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D

+

diff --git a/asn1/TCAP-Examples.asn b/asn1/TCAP-Examples.asn
new file mode 100644
index 0000000..17667af
--- /dev/null
+++ b/asn1/TCAP-Examples.asn
@@ -0,0 +1,72 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+TCAP-Examples {itu-t recommendation q 775 modules(2) examples(2) version1(1)}
+DEFINITIONS ::=
+BEGIN
+
+IMPORTS
+  OPERATION, ERROR
+    FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+      remote-operations(4) informationObjects(5) version1(0)};
+
+provideRoutingInformation OPERATION ::= {
+  ARGUMENT  RequestArgument
+  RESULT    RoutingInformation
+  ERRORS
+    {invalidCalledNumber | subscriberNotReachable | calledBarred |
+      processingFailure}
+  LINKED    {getCallingPartyAddress}
+}
+
+--  timer T-pi = 10 s
+getCallingPartyAddress OPERATION ::= {
+  RESULT  CallingPartyAddress
+  ERRORS  {callingPartyAddressNotAvailable | processingFailure}
+}
+
+--  timer T-gp = 5 s
+invalidCalledNumber ERROR ::= {CODE  local:1
+}
+
+subscriberNotReachable ERROR ::= {CODE  local:2
+}
+
+calledBarred ERROR ::= {CODE  local:3
+}
+
+callingPartyAddressNotAvailable ERROR ::= {CODE  local:4
+}
+
+processingFailure ERROR ::= {CODE  local:5
+}
+
+-- data types
+RequestArgument ::= SEQUENCE {
+  calledNumber  IsdnNumber,
+  basicService  BasicServiceIndicator OPTIONAL
+}
+
+RoutingInformation ::= CHOICE {
+  reroutingNumber    [0] IMPLICIT IsdnNumber,
+  forwardedToNumber  [1] IMPLICIT IsdnNumber
+}
+
+BasicServiceIndicator ::= ENUMERATED {speech(0), unrestrictedDigital(1)}
+
+CallingPartyAddress ::= IsdnNumber
+
+IsdnNumber ::= SEQUENCE {
+  typeOfAddress  TypeOfAddress,
+  digits         TelephonyString
+}
+
+TypeOfAddress ::= ENUMERATED {national(0), international(1), private(2)}
+
+TelephonyString ::=
+  IA5String
+    (FROM ("0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "*" |
+           "#"))(SIZE (1..15))
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/asn1/TCAP-Tools.asn b/asn1/TCAP-Tools.asn
new file mode 100644
index 0000000..09ea9d9
--- /dev/null
+++ b/asn1/TCAP-Tools.asn
@@ -0,0 +1,47 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+TCAP-Tools {itu-t recommendation q 775 modules(2) tools(1) version1(1)}
+DEFINITIONS ::=
+BEGIN
+
+EXPORTS 
+	cancel, 
+	cancelFailed, 
+	cancelled
+;
+
+IMPORTS
+  OPERATION, ERROR
+    FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+      remote-operations(4) informationObjects(5) version1(0)}
+
+  TCInvokeIdSet
+    FROM TCAPMessages {itu-t recommendation q 773 modules(2) messages(1)
+      version3(3)}
+;
+
+cancel OPERATION ::= {
+  ARGUMENT  present < TCInvokeIdSet
+  -- a TC-user may redefine this type to include
+  -- an empty result so that it becomes a Class 1 operation
+  ERRORS    {cancelFailed}
+}
+
+-- timer = 15 s
+cancelFailed ERROR ::= {
+  PARAMETER
+    SET {problem   [0]  CancelProblem,
+         invokeId  [1]  present < TCInvokeIdSet}
+}
+
+CancelProblem ::= ENUMERATED {
+  unknownInvocation(0), tooLate(1), notCancellable(2)}
+
+-- a TC-user may redefine this type to include application-specific problems
+cancelled ERROR ::=
+  {}
+
+-- an error of this type should be included in the error list of cancellable operations
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/asn1/TCAPMessages.asn b/asn1/TCAPMessages.asn
new file mode 100644
index 0000000..0de9ac2
--- /dev/null
+++ b/asn1/TCAPMessages.asn
@@ -0,0 +1,149 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+-- Module TCAPMessages (Q.773:06/1997)
+-- asn1ct:compile("TCAPMessages",[ber_bin]).
+TCAPMessages {itu-t recommendation q 773 modules(2) messages(1) version3(3)}
+
+DEFINITIONS IMPLICIT TAGS
+
+::=
+
+BEGIN
+
+-- EXPORTS everything
+-- Transaction Portion fields.
+IMPORTS
+  ROS{}, InvokeId
+    FROM Remote-Operations-Generic-ROS-PDUs {joint-iso-itu-t
+      remote-operations(4) generic-ROS-PDUs(6) version1(0)}
+  OPERATION
+    FROM Remote-Operations-Information-Objects {joint-iso-itu-t
+      remote-operations(4) informationObjects(5) version1(0)}
+  Supported-MAP-Operations
+    FROM MAP-Protocol {itu-t identified-organization (4) etsi (0) mobileDomain (0)
+   	 gsm-Network (1) modules (3) map-Protocol (4) version9 (9)}
+-- Start - Added by Eranga
+  dialogue-as-id
+    FROM DialoguePDUs {itu-t recommendation q 773 modules(2) dialoguePDUs(2)
+      version1(1)}
+  sendRoutingInfoForSM,
+  mo-ForwardSM,
+  mt-ForwardSM,
+  reportSM-DeliveryStatus,
+  alertServiceCentre,
+  informServiceCentre,
+  readyForSM
+	FROM MAP-ShortMessageServiceOperations {
+	   itu-t identified-organization (4) etsi (0) mobileDomain (0)
+	   gsm-Network (1) modules (3) map-ShortMessageServiceOperations (9)
+	   version9 (9)}
+  gsm-MessagingId
+  	FROM MobileDomainDefinitions {
+	   itu-t identified-organization (4) etsi (0) mobileDomain (0)
+	   mobileDomainDefinitions (0) version1 (1)}
+  Supported-MAP-Operations
+  	FROM MAP-Protocol {
+	   itu-t identified-organization (4) etsi (0) mobileDomain (0)
+	   gsm-Network (1) modules (3) map-Protocol (4) version9 (9)}
+-- End - Added by Eranga
+;
+
+-- Start - Added by Eranga
+
+mapSpecificAS ABSTRACT-SYNTAX ::= {
+  MapSpecificPDUs
+  IDENTIFIED BY  gsm-MessagingId
+}
+
+MapSpecificPDUs ::=
+  TCMessage{{Supported-MAP-Operations}, {Supported-MAP-Operations}}
+
+
+MAPOperations-Invokable OPERATION ::= 
+	{sendRoutingInfoForSM | mo-ForwardSM | mt-ForwardSM} 
+MAPOperations-Returnable OPERATION ::= 
+	{reportSM-DeliveryStatus | alertServiceCentre | informServiceCentre | readyForSM} 
+
+-- End - Added by Eranga
+
+
+TCMessage{OPERATION:Invokable, OPERATION:Returnable} ::= CHOICE {
+  unidirectional  [APPLICATION 1]  Unidirectional{{Invokable}, {Returnable}},
+  begin           [APPLICATION 2]  Begin{{Invokable}, {Returnable}},
+  end             [APPLICATION 4]  End{{Invokable}, {Returnable}},
+  continue        [APPLICATION 5]  Continue{{Invokable}, {Returnable}},
+  abort           [APPLICATION 7]  Abort
+}
+
+Unidirectional{OPERATION:Invokable, OPERATION:Returnable} ::= SEQUENCE {
+  dialoguePortion  DialoguePortion OPTIONAL,
+  components       ComponentPortion{{Invokable}, {Returnable}}
+}
+
+Begin{OPERATION:Invokable, OPERATION:Returnable} ::= SEQUENCE {
+  otid             OrigTransactionID,
+  dialoguePortion  DialoguePortion OPTIONAL,
+  components       ComponentPortion{{Invokable}, {Returnable}} OPTIONAL
+}
+
+End{OPERATION:Invokable, OPERATION:Returnable} ::= SEQUENCE {
+  dtid             DestTransactionID,
+  dialoguePortion  DialoguePortion OPTIONAL,
+  components       ComponentPortion{{Invokable}, {Returnable}} OPTIONAL
+}
+
+Continue{OPERATION:Invokable, OPERATION:Returnable} ::= SEQUENCE {
+  otid             OrigTransactionID,
+  dtid             DestTransactionID,
+  dialoguePortion  DialoguePortion OPTIONAL,
+  components       ComponentPortion{{Invokable}, {Returnable}} OPTIONAL
+}
+
+Abort ::= SEQUENCE {
+  dtid    DestTransactionID,
+  reason  CHOICE {p-abortCause  P-AbortCause,
+                  u-abortCause  DialoguePortion} OPTIONAL
+}
+
+-- NOTE - When the Abort Message is generated by the Transaction sublayer, a p-Abort Cause may be 
+-- present. The u-abortCause may be generated by the component sublayer in which case it is an ABRT 
+-- APDU, or by the TC-User in which case it could be either an ABRT APDU or data in some user-defined
+-- abstract syntax.
+DialoguePortion ::= [APPLICATION 11] EXPLICIT EXTERNAL
+
+-- The dialogue portion carries the dialogue control PDUs as value of the external data type. The direct 
+-- reference should be set to {itu-t recommendation q 773 as(1) dialogue-as(1) version1(1)} if structured 
+-- dialogue is used and to {itu-t recommendation q 773 as(1) unidialogue-as(2) version1(1)} if unstructured 
+-- dialogue is used.
+OrigTransactionID ::= [APPLICATION 8]  OCTET STRING(SIZE (1..4))
+
+DestTransactionID ::= [APPLICATION 9]  OCTET STRING(SIZE (1..4))
+
+P-AbortCause ::= [APPLICATION 10]  INTEGER {
+  unrecognizedMessageType(0), unrecognizedTransactionID(1),
+  badlyFormattedTransactionPortion(2), incorrectTransactionPortion(3),
+  resourceLimitation(4)}(0..127)
+
+-- COMPONENT PORTION. The last field in the transaction portion of the TCAP message is the 
+-- component portion. The component portion may be absent.
+ComponentPortion{OPERATION:Invokable, OPERATION:Returnable} ::=
+  [APPLICATION 12] 
+    SEQUENCE SIZE (1..MAX) OF Component{{Invokable}, {Returnable}}
+
+-- Component Portion fields
+-- Recommendation X.880 defines four Application Protocol Data Units (APDUs) for invoking
+-- operations, returning results or error, and for the rejection of invalid PDUs.
+-- TCAP adds returnResultNotLast to allow for the segmentation of a result.
+Component{OPERATION:Invokable, OPERATION:Returnable} ::= CHOICE {
+  basicROS             ROS{{TCInvokeIdSet}, {Invokable}, {Returnable}},
+  returnResultNotLast
+    [7]  returnResult < ROS{{TCInvokeIdSet}, {Invokable}, {Returnable}}
+}
+
+TCInvokeIdSet ::= InvokeId(WITH COMPONENTS {
+                             present  (-128..127)
+                           })
+
+END -- TCAPMessages
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/asn1/UnidialoguePDUs.asn b/asn1/UnidialoguePDUs.asn
new file mode 100644
index 0000000..4244cc8
--- /dev/null
+++ b/asn1/UnidialoguePDUs.asn
@@ -0,0 +1,26 @@
+-- Generated by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/)
+-- Module UnidialoguePDUs (Q.773:06/1997)
+UnidialoguePDUs {itu-t recommendation q 773 modules(2) unidialoguePDUs(3)
+  version1(1)} DEFINITIONS ::=
+BEGIN
+
+EXPORTS uniDialogue-as-id, UniDialoguePDU;
+
+-- Abstract syntax name for unstructured dialogue APDUs
+uniDialogue-as-id OBJECT IDENTIFIER ::=
+  {itu-t recommendation q 773 as(1) unidialogue-as(2) version1(1)}
+
+UniDialoguePDU ::= CHOICE {unidialoguePDU  AUDT-apdu
+}
+
+AUDT-apdu ::= [APPLICATION 0] IMPLICIT SEQUENCE {
+  protocol-version
+    [0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
+  application-context-name  [1]  OBJECT IDENTIFIER,
+  user-information          [30] IMPLICIT SEQUENCE OF EXTERNAL OPTIONAL
+}
+
+END -- UNIDialoguePDU
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/asn1/map.set.asn1 b/asn1/map.set.asn1
new file mode 100644
index 0000000..23404c0
--- /dev/null
+++ b/asn1/map.set.asn1
@@ -0,0 +1,36 @@
+MAP-ApplicationContexts.asn
+MAP-BS-Code.asn
+MAP-CallHandlingOperations.asn
+MAP-CH-DataTypes.asn
+MAP-CommonDataTypes.asn
+MAP-DialogueInformation.asn
+MAP-ER-DataTypes.asn
+MAP-Errors.asn
+MAP-ExtensionDataTypes.asn
+MAP-GR-DataTypes.asn
+MAP-Group-Call-Operations.asn
+MAP-LCS-DataTypes.asn
+MAP-LocationServiceOperations.asn
+MAP-MobileServiceOperations.asn
+MAP-MS-DataTypes.asn
+MAP-OM-DataTypes.asn
+MAP-OperationAndMaintenanceOperations.asn
+MAP-Protocol.asn
+MAP-SecureTransportOperations.asn
+MAP-ShortMessageServiceOperations.asn
+MAP-SM-DataTypes.asn
+MAP-SS-Code.asn
+MAP-SS-DataTypes.asn
+MAP-ST-DataTypes.asn
+MAP-SupplementaryServiceOperations.asn
+MAP-TS-Code.asn
+MobileDomainDefinitions.asn
+Remote-Operations-Generic-ROS-PDUs.asn
+Remote-Operations-Information-Objects.asn
+Remote-Operations-Useful-Definitions.asn
+TCAP-Examples.asn
+TCAPMessages.asn
+TCAP-Tools.asn
+TC-Notation-Extensions.asn
+UnidialoguePDUs.asn
+DialoguePDUs.asn