--  Reference:          3GPP TS 29.002 10.6.0

MAP-MS-DataTypes {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-MS-DataTypes (11) version13 (13)}

DEFINITIONS

IMPLICIT TAGS

::=

BEGIN

EXPORTS

	-- location registration types
	UpdateLocationArg,
	UpdateLocationRes,
	CancelLocationArg,
	CancelLocationRes, 
	PurgeMS-Arg, 
	PurgeMS-Res,
	SendIdentificationArg,
	SendIdentificationRes, 
	UpdateGprsLocationArg,
	UpdateGprsLocationRes,
	IST-SupportIndicator, 
	SupportedLCS-CapabilitySets,


	-- 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, 
	Cksn,

	-- equipment management types
	CheckIMEI-Arg,
	CheckIMEI-Res,

	-- subscriber management types
	InsertSubscriberDataArg,
	InsertSubscriberDataRes, 
	LSAIdentity,
	DeleteSubscriberDataArg,
	DeleteSubscriberDataRes,
	Ext-QoS-Subscribed,
	Ext2-QoS-Subscribed, 
	Ext3-QoS-Subscribed, 
	Ext4-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,
AdditionalInfo,

	-- fault recovery types
	ResetArg,
	RestoreDataArg,
	RestoreDataRes,

-- provide subscriber info types 
GeographicalInformation, 
MS-Classmark2,
GPRSMSClass,

	-- subscriber information enquiry types
	ProvideSubscriberInfoArg,
	ProvideSubscriberInfoRes,
	SubscriberInfo,
	LocationInformation,
	LocationInformationGPRS,
	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,
	PagingArea,

	-- VGCS / VBS types types
GroupId, 
Long-GroupId,
AdditionalSubscriptions,
GSN-Address,
RAIdentity,
DefaultSMS-Handling,
DefaultGPRS-Handling,
MSNetworkCapability

;

IMPORTS
	maxNumOfSS,
	SS-SubscriptionOption,
	SS-List,
	SS-ForBS-Code,
	Password,
	OverrideCategory,
	CliRestrictionOption
FROM MAP-SS-DataTypes {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-SS-DataTypes (14) version13 (13)}

	SS-Code
FROM MAP-SS-Code {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-SS-Code (15) version13 (13)}

	Ext-BearerServiceCode
FROM MAP-BS-Code {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-BS-Code (20) version13 (13)}

	Ext-TeleserviceCode
FROM MAP-TS-Code {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-TS-Code (19) version13 (13)}

	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,
	LAIFixedLength,
	PLMN-Id,
EMLPP-Priority,
GSN-Address,
DiameterIdentity,
Time,
E-UTRAN-CGI,
TA-Id,
RAIdentity
FROM MAP-CommonDataTypes {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-CommonDataTypes (18) version13 (13)}

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

	AbsentSubscriberDiagnosticSM
FROM MAP-ER-DataTypes {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-ER-DataTypes (17) version13 (13)}

	TracePropagationList
FROM MAP-OM-DataTypes {
   itu-t identified-organization (4) etsi (0) mobileDomain (0)
   gsm-Network (1) modules (3) map-OM-DataTypes (12) version13 (13)}

;

-- 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,
	pagingArea	[14] PagingArea	OPTIONAL,
	skipSubscriberDataUpdate	[15] NULL		OPTIONAL, 
	-- The skipSubscriberDataUpdate parameter in the UpdateLocationArg and the ADD-Info
	-- structures carry the same semantic.
	restorationIndicator	[16]	NULL		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,
	supportedRAT-TypesIndicator	[7]	SupportedRAT-Types	OPTIONAL,
	longGroupID-Supported	[8]	NULL		OPTIONAL,
	mtRoamingForwardingSupported	[9]	NULL		OPTIONAL }

SupportedRAT-Types::= BIT STRING {
	utran  (0),
	geran  (1),
	gan    (2),
	i-hspa-evolution (3),
	e-utran	(4)} (SIZE (2..8))
	-- exception handling: bits 5 to 7 shall be ignored if received and not understood
	 


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) ,
	lcsCapabilitySet5 (4) } (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.
-- Core network signalling capability set5 indicates LCS Release7 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,
	pagingArea-Capability	[0]NULL			OPTIONAL }

ADD-Info ::= SEQUENCE {
	imeisv		[0] IMEI,
	skipSubscriberDataUpdate	[1] NULL		OPTIONAL,
	-- The skipSubscriberDataUpdate parameter in the UpdateLocationArg and the ADD-Info
	-- structures carry the same semantic.
	...}


PagingArea ::= SEQUENCE SIZE (1..5) OF LocationArea 


LocationArea ::= CHOICE {
	laiFixedLength	[0] LAIFixedLength,
	lac			[1] LAC}


LAC ::= OCTET STRING (SIZE (2))
	-- Refers to Location Area Code of the Location Area Identification defined in 
     -- 3GPP TS 23.003 [17].
	-- Location Area Code according to 3GPP TS 24.008 [35]

CancelLocationArg ::= [3] SEQUENCE {
	identity		Identity,
	cancellationType	CancellationType	OPTIONAL,
	extensionContainer	ExtensionContainer	OPTIONAL,
	...,
	typeOfUpdate	[0] TypeOfUpdate	OPTIONAL,
	mtrf-SupportedAndAuthorized	[1] NULL		OPTIONAL,
	mtrf-SupportedAndNotAuthorized	[2] NULL		OPTIONAL,
	newMSC-Number	[3] ISDN-AddressString	OPTIONAL,
	newVLR-Number	[4] ISDN-AddressString	OPTIONAL,
	new-lmsi		[5] LMSI		OPTIONAL
	 }
	--mtrf-SupportedAndAuthorized and mtrf-SupportedAndNotAuthorized shall not
	-- both be present

TypeOfUpdate ::= ENUMERATED {
	sgsn-change (0),
	mme-change (1),
	...}
	-- TypeOfUpdate shall be absent if CancellationType is different from updateProcedure
	-- and initialAttachProcedure

CancellationType ::= ENUMERATED {
	updateProcedure	(0),
	subscriptionWithdraw	(1),
	...,
	initialAttachProcedure               (2)}
	-- 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,
	...,
	freezeM-TMSI	[2]	NULL		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,
	previous-LAI	[0] LAIFixedLength	OPTIONAL,
	hopCounter	[1] HopCounter	OPTIONAL,
	mtRoamingForwardingSupported	[2] NULL		OPTIONAL,
	newVLR-Number	[3] ISDN-AddressString	OPTIONAL,
	new-lmsi		[4] LMSI		OPTIONAL }

HopCounter ::= INTEGER (0..3)

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,
	eps-info		[5]	EPS-Info	OPTIONAL,
	servingNodeTypeIndicator	[6]	NULL		OPTIONAL,
	skipSubscriberDataUpdate	[7] NULL		OPTIONAL,
	usedRAT-Type	[8] Used-RAT-Type	OPTIONAL,
	gprsSubscriptionDataNotNeeded	[9] NULL		OPTIONAL,
	nodeTypeIndicator	[10] NULL		OPTIONAL,
	areaRestricted	[11] NULL		OPTIONAL,
	ue-reachableIndicator	[12]	NULL		OPTIONAL, 
	epsSubscriptionDataNotNeeded	[13] NULL		OPTIONAL,
	ue-srvcc-Capability	[14] UE-SRVCC-Capability	OPTIONAL }

Used-RAT-Type::= ENUMERATED {
	utran  (0),
	geran  (1),
	gan    (2),
	i-hspa-evolution (3),
	e-utran	(4),
	...}

EPS-Info ::= CHOICE{
	pdn-gw-update	[0] PDN-GW-Update,
	isr-Information	[1] ISR-Information }

PDN-GW-Update ::= SEQUENCE{
	apn			[0] APN		OPTIONAL,
	pdn-gw-Identity	[1] PDN-GW-Identity	OPTIONAL,
	contextId		[2] ContextId                     OPTIONAL,
	extensionContainer	[3] ExtensionContainer	OPTIONAL,
	... }
--	The pdn-gw-update IE shall include the pdn-gw-Identity, and the apn or/and the contextID. 
--	The HSS shall ignore the eps-info IE if it includes a pdn-gw-update IE which does not 
--	include pdn-gw-Identity.
--	The pdn-gw-Identity is defined as OPTIONAL for backward compatility reason with  
--	outdated earlier versions of this specification.


ISR-Information::= BIT STRING {
	updateMME  (0),
	cancelSGSN  (1),
	initialAttachIndicator  (2)} (SIZE (3..8))
	-- exception handling: reception of unknown bit assignments in the
	-- ISR-Information data type shall be discarded by the receiver 

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,	supportedRAT-TypesIndicator	[8]	SupportedRAT-Types	OPTIONAL,
	supportedFeatures	[9] SupportedFeatures	OPTIONAL,
	t-adsDataRetrieval	[10] NULL		OPTIONAL,
	homogeneousSupportOfIMSVoiceOverPSSessions [11] BOOLEAN	OPTIONAL
	--	"true" indicates homogeneous support, "false" indicates homogeneous non-support
	--	in the complete SGSN area
 }

SupportedFeatures::= BIT STRING {
	odb-all-apn (0),
	odb-HPLMN-APN (1),
	odb-VPLMN-APN (2),
	odb-all-og (3),
	odb-all-international-og (4),
	odb-all-int-og-not-to-HPLMN-country (5),
	odb-all-interzonal-og (6),
	odb-all-interzonal-og-not-to-HPLMN-country (7),
	odb-all-interzonal-og-and-internat-og-not-to-HPLMN-country (8),
	regSub (9),
	trace (10),
	lcs-all-PrivExcep (11),
	lcs-universal (12),
	lcs-CallSessionRelated (13),
	lcs-CallSessionUnrelated (14),
	lcs-PLMN-operator (15),
	lcs-ServiceType (16),
	lcs-all-MOLR-SS (17),
	lcs-basicSelfLocation (18),
	lcs-autonomousSelfLocation (19),
	lcs-transferToThirdParty (20),
	sm-mo-pp (21),
	barring-OutgoingCalls (22),
	baoc (23),
	boic (24),
	boicExHC (25)} (SIZE (26..40))

UE-SRVCC-Capability::= ENUMERATED {
	ue-srvcc-not-supported  (0),
	ue-srvcc-supported  (1),
	...}

UpdateGprsLocationRes ::= SEQUENCE {
	hlr-Number	ISDN-AddressString,
	extensionContainer	ExtensionContainer	OPTIONAL,
	...,
	add-Capability	NULL			OPTIONAL,
	sgsn-mmeSeparationSupported	[0] 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,
	alternativeChannelType	[15]	RadioResourceInformation	OPTIONAL,
	tracePropagationList	[17]	TracePropagationList	OPTIONAL,
 	aoipSupportedCodecsListAnchor	[18] AoIPCodecsList	OPTIONAL,
 	aoipSelectedCodecTarget	[19] AoIPCodec	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,
	imeisv		[22]	IMEI		OPTIONAL,
	alternativeChannelType	[23]	RadioResourceInformation	OPTIONAL,
	tracePropagationList	[25]	TracePropagationList	OPTIONAL,
	aoipSupportedCodecsListAnchor	[26] AoIPCodecsList	OPTIONAL,
	regionalSubscriptionData	[27] ZoneCodeList	OPTIONAL,
	lclsGlobalCallReference	[28]	LCLS-GlobalCallReference	OPTIONAL,
	lcls-Negotiation	[29]	LCLS-Negotiation	OPTIONAL,
	lcls-Configuration-Preference	[30]	LCLS-ConfigurationPreference	OPTIONAL	 }

LCLS-GlobalCallReference ::= OCTET STRING (SIZE (13..15))
	-- Octets are coded as specified in 3GPP TS 29.205 [146]


LCLS-Negotiation::= BIT STRING {
	permission-indicator-not-allowed-bit	(0), 
	permission-indicator-spare-bit	(1)} (SIZE (2..8))
	--for definition and allowed combination of bits 0 and 1 see 3GPP TS 29.205

	-- exception handling: bits 2 to 7 shall be ignored if received and not understood
	 

LCLS-ConfigurationPreference::= BIT STRING {
	forward-data-sending-indicator	(0),
	backward-data-sending-indicator	(1),
	forward-data-reception-indicator	(2),
	backward-data-reception-indicator	(3)} (SIZE (4..8))
	-- exception handling: bits 4 to 7 shall be ignored if received and not understood
	 

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,
	aoipSelectedCodecTarget	[9] AoIPCodec	OPTIONAL,
	aoipAvailableCodecsListMap	[10] AoIPCodecsList	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,
	aoipSelectedCodecTarget	[7] AoIPCodec	OPTIONAL,
	aoipAvailableCodecsListMap	[8] AoIPCodecsList	OPTIONAL }

AoIPCodecsList ::= SEQUENCE {
	codec1		[1] AoIPCodec,
	codec2		[2] AoIPCodec		OPTIONAL,
	codec3		[3] AoIPCodec		OPTIONAL,
	codec4		[4] AoIPCodec		OPTIONAL,
	codec5		[5] AoIPCodec		OPTIONAL,
	codec6		[6] AoIPCodec		OPTIONAL,
	codec7		[7] AoIPCodec		OPTIONAL,
	codec8		[8] AoIPCodec		OPTIONAL,
	extensionContainer	[9] ExtensionContainer		OPTIONAL,
	...}
	-- Codecs are sent in priority order where codec1 has highest priority

AoIPCodec ::= OCTET STRING (SIZE (1..3))

	-- The internal structure is defined as follows:
	-- octet 1	Coded as Speech Codec Elements in 3GPP TS 48.008
	--				with the exception that FI, PI, PT and TF bits shall
	--			be set to 0
	-- octets 2,3	Optional; in case of AMR codec types it defines
	--			the supported codec configurations as defined in
	--			3GPP TS 48.008

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,
	numberOfRequestedAdditional-Vectors	[5] NumberOfRequestedVectors	OPTIONAL,
	additionalVectorsAreForEPS	[6] NULL		OPTIONAL }	


NumberOfRequestedVectors ::= INTEGER (1..5)

Re-synchronisationInfo ::= SEQUENCE {
	rand			RAND,
	auts			AUTS,
	...}

SendAuthenticationInfoRes ::= [3] SEQUENCE {
	authenticationSetList	AuthenticationSetList 	OPTIONAL,
	extensionContainer	ExtensionContainer	OPTIONAL,
	...,
	eps-AuthenticationSetList	[2] EPS-AuthenticationSetList	OPTIONAL }

EPS-AuthenticationSetList ::= SEQUENCE SIZE (1..5) OF
				EPC-AV

EPC-AV ::= SEQUENCE {
	rand			RAND,
	xres			XRES,
	autn			AUTN,
	kasme		KASME,
	extensionContainer	ExtensionContainer	OPTIONAL,
	...}

KASME ::= OCTET STRING (SIZE (32))

RequestingNodeType ::= ENUMERATED {
	vlr  (0),
	sgsn  (1),
	...,
	s-cscf  (2),
	bsf  (3),
	gan-aaa-server  (4),
	wlan-aaa-server  (5),
	mme		(16),
	mme-sgsn	(17)
	}
	-- the values 2, 3, 4 and 5 shall not be used on the MAP-D or Gr interfaces
	-- exception handling:
	-- received values in the range (6-15) shall be treated as "vlr"
	-- received values greater than 17 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,
	ics-Indicator	[20]	BOOLEAN	OPTIONAL,
	eps-SubscriptionData	[31]	EPS-SubscriptionData	OPTIONAL,
	csg-SubscriptionDataList	[32] CSG-SubscriptionDataList	OPTIONAL,
	ue-ReachabilityRequestIndicator	[33]	NULL		OPTIONAL,
	sgsn-Number	[34]	ISDN-AddressString	OPTIONAL,
	mme-Name		[35]	DiameterIdentity	OPTIONAL,
	subscribedPeriodicRAUTAUtimer	[36]	SubscribedPeriodicRAUTAUtimer	OPTIONAL,
	vplmnLIPAAllowed	[37]	NULL		OPTIONAL,
	mdtUserConsent	[38]	BOOLEAN	OPTIONAL,
	subscribedPeriodicLAUtimer	[39]	SubscribedPeriodicLAUtimer	OPTIONAL }
	-- If the Network Access Mode parameter is sent, it shall be present only in 
	-- the first sequence if seqmentation is used

SubscribedPeriodicRAUTAUtimer ::= INTEGER (0..4294967295)
	-- This parameter carries the subscribed periodic TAU/RAU timer value in seconds.

SubscribedPeriodicLAUtimer ::= INTEGER (0..4294967295)
	-- This parameter carries the subscribed periodic LAU timer value in seconds.

CSG-SubscriptionDataList ::= SEQUENCE SIZE (1..50) OF
				CSG-SubscriptionData

CSG-SubscriptionData ::= SEQUENCE {
	csg-Id	 		CSG-Id,
	expirationDate		Time		OPTIONAL,
	extensionContainer		ExtensionContainer 	OPTIONAL,
	...,
	lipa-AllowedAPNList		[0] LIPA-AllowedAPNList		OPTIONAL
}

CSG-Id ::= BIT STRING (SIZE (27))
	-- coded according to 3GPP TS 23.003 [17].

LIPA-AllowedAPNList ::= SEQUENCE SIZE (1..maxNumOfLIPAAllowedAPN) OF
				APN

maxNumOfLIPAAllowedAPN  INTEGER ::= 50


EPS-SubscriptionData ::= SEQUENCE {
	apn-oi-Replacement	[0]	APN-OI-Replacement	OPTIONAL,
	-- this apn-oi-Replacement refers to the UE level apn-oi-Replacement.
	rfsp-id		[2]	RFSP-ID	OPTIONAL,
	ambr			[3]	AMBR		OPTIONAL,
	apn-ConfigurationProfile	[4]	APN-ConfigurationProfile	OPTIONAL,
	stn-sr		[6]	ISDN-AddressString	OPTIONAL,
	extensionContainer	[5]	ExtensionContainer	OPTIONAL,
	...,
	mps-CSPriority	[7]	NULL		OPTIONAL,
	mps-EPSPriority	[8]	NULL		OPTIONAL }
	-- mps-CSPriority by its presence indicates that the UE is subscribed to the eMLPP in 
	-- the CS domain, referring to the 3GPP TS 29.272 [144] for details.
	-- mps-EPSPriority by its presence indicates that the UE is subscribed to the MPS in 
	-- the EPS domain, referring to the 3GPP TS 29.272 [144] for details.

APN-OI-Replacement ::=  OCTET STRING (SIZE (9..100))
	-- Octets are coded as APN Operator Identifier according to TS 3GPP TS 23.003 [17] 

RFSP-ID ::=  INTEGER (1..256)

APN-ConfigurationProfile ::= SEQUENCE {
	defaultContext	ContextId,
	completeDataListIncluded	NULL			OPTIONAL,
		-- If segmentation is used, completeDataListIncluded may only be present in the
		-- first segment of APN-ConfigurationProfile.
	epsDataList	[1]	EPS-DataList,
	extensionContainer	[2] ExtensionContainer	OPTIONAL,
	... }

EPS-DataList ::= SEQUENCE SIZE (1..maxNumOfAPN-Configurations) OF
				APN-Configuration


maxNumOfAPN-Configurations  INTEGER ::= 50


APN-Configuration ::= SEQUENCE {
	contextId		[0] ContextId,
	pdn-Type		[1] PDN-Type,
	servedPartyIP-IPv4-Address	[2] PDP-Address	OPTIONAL,
	apn			[3] APN,
	eps-qos-Subscribed	[4] EPS-QoS-Subscribed,
	pdn-gw-Identity	[5] PDN-GW-Identity	OPTIONAL,
	pdn-gw-AllocationType	[6] PDN-GW-AllocationType	OPTIONAL,
	vplmnAddressAllowed	[7] NULL		OPTIONAL,
	chargingCharacteristics	[8] ChargingCharacteristics	OPTIONAL,
	ambr			[9] AMBR		OPTIONAL,
	specificAPNInfoList	[10] SpecificAPNInfoList	OPTIONAL,	extensionContainer	[11] ExtensionContainer	OPTIONAL, 
	servedPartyIP-IPv6-Address	[12] PDP-Address	OPTIONAL,
	...,
	apn-oi-Replacement	[13] APN-OI-Replacement	OPTIONAL,
	-- this apn-oi-Replacement refers to the APN level apn-oi-Replacement.
	sipto-Permission	[14] SIPTO-Permission	OPTIONAL,
	lipa-Permission	[15] LIPA-Permission	OPTIONAL
 }

PDN-Type ::= OCTET STRING (SIZE (1))
	-- Octet is coded  as follows:
	--	Bits
	--	3 2 1
	--	0 0 1 IPv4
	--	0 1 0 IPv6
	--	0 1 1 IPv4v6
	--	1 0 0 IPv4_or_IPv6
	--	Bits 8-4 shall be coded as zero.
	--	for details see 3GPP TS 29.272 [140]

EPS-QoS-Subscribed ::= SEQUENCE {
	qos-Class-Identifier	[0] QoS-Class-Identifier,
	allocation-Retention-Priority	[1] Allocation-Retention-Priority,
	extensionContainer	[2] ExtensionContainer	OPTIONAL,
	... }

AMBR ::= SEQUENCE {
	max-RequestedBandwidth-UL	[0] Bandwidth,
	max-RequestedBandwidth-DL	[1] Bandwidth,
	extensionContainer	[2] ExtensionContainer	OPTIONAL,
	... }


SpecificAPNInfoList ::= SEQUENCE SIZE (1..maxNumOfSpecificAPNInfos) OF
				SpecificAPNInfo

maxNumOfSpecificAPNInfos  INTEGER ::= 50

SpecificAPNInfo ::= SEQUENCE {
	apn			[0] APN,
	pdn-gw-Identity	[1] PDN-GW-Identity,
	extensionContainer	[2] ExtensionContainer	OPTIONAL,
	... }

Bandwidth ::= INTEGER 
	-- bits per second

QoS-Class-Identifier ::= INTEGER (1..9)
	-- values are defined in  3GPP TS 29.212



Allocation-Retention-Priority ::= SEQUENCE {
	priority-level	[0] INTEGER,
	pre-emption-capability	[1] BOOLEAN	OPTIONAL,
	pre-emption-vulnerability	[2] BOOLEAN	OPTIONAL,
	extensionContainer	[3] ExtensionContainer	OPTIONAL,
	... }

PDN-GW-Identity ::= SEQUENCE {
	pdn-gw-ipv4-Address	[0] PDP-Address	OPTIONAL,
	pdn-gw-ipv6-Address	[1] PDP-Address	OPTIONAL,
	pdn-gw-name	[2] FQDN		OPTIONAL,
	extensionContainer	[3] ExtensionContainer	OPTIONAL,
	... }

FQDN ::=  OCTET STRING (SIZE (9..255))


PDN-GW-AllocationType ::= ENUMERATED {
	static	(0),
	dynamic	(1)}


AccessRestrictionData ::= BIT STRING {
	utranNotAllowed (0),
	geranNotAllowed (1),
	ganNotAllowed   (2),
	i-hspa-evolutionNotAllowed (3),
	e-utranNotAllowed (4),
	ho-toNon3GPP-AccessNotAllowed (5) } (SIZE (2..8))
	-- exception handling: 
	-- access restriction data related to an access type not supported by a node
	-- shall be ignored
	-- bits 6 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 {
	packetAndCircuit	(0),
	onlyCircuit		(1),
	onlyPacket		(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.
	ext3-QoS-Subscribed	[3] Ext3-QoS-Subscribed	OPTIONAL,
	-- ext3-QoS-Subscribed may be present only if ext2-QoS-Subscribed is present.
	ext4-QoS-Subscribed	[4] Ext4-QoS-Subscribed	OPTIONAL,
	-- ext4-QoS-Subscribed may be present only if ext3-QoS-Subscribed is present. 
	apn-oi-Replacement	[5]	APN-OI-Replacement	OPTIONAL,
	-- this apn-oi-Replacement refers to the APN level apn-oi-Replacement and has
	-- higher priority than UE level apn-oi-Replacement.
	ext-pdp-Type	[6] Ext-PDP-Type	OPTIONAL,
	-- contains the value IPv4v6 defined in 3GPP TS 29.060 [105], if the PDP can be
	-- accessed by dual-stack UEs
	ext-pdp-Address	[7] PDP-Address	OPTIONAL,
	-- contains an additional IP address in case of dual-stack static IP address assignment
	-- for the UE.
	-- it may contain an IPv4 or an IPv6 address/prefix, and it may be present
	-- only if pdp-Address is present; if both are present, each parameter shall
	-- contain a different type of address (IPv4 or IPv6).
	ambr			[10] AMBR		OPTIONAL,
	-- this ambr contains the AMBR associated to the APN included in the 
	-- PDP-Context (APN-AMBR).
	sipto-Permission	[8] SIPTO-Permission	OPTIONAL,
	lipa-Permission	[9] LIPA-Permission	OPTIONAL
	 }

SIPTO-Permission ::= ENUMERATED {
	siptoAllowed  (0),
	siptoNotAllowed  (1)
	}

LIPA-Permission ::= ENUMERATED {
	lipaProhibited  (0),
	lipaOnly  (1),
	lipaConditional  (2)
	}

ContextId ::= INTEGER (1..maxNumOfPDP-Contexts)

GPRSSubscriptionData ::= SEQUENCE {
	completeDataListIncluded	NULL			OPTIONAL,
		-- If segmentation is used, completeDataListIncluded may only be present in the
		-- first segment of GPRSSubscriptionData.
	gprsDataList	[1]	GPRSDataList,
	extensionContainer	[2] ExtensionContainer	OPTIONAL,
	...,
	apn-oi-Replacement	[3]	APN-OI-Replacement	OPTIONAL
	-- this apn-oi-Replacement refers to the UE level apn-oi-Replacement.
 }

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]
	-- Only the values PPP, IPv4 and IPv6 are allowed for this parameter.

Ext-PDP-Type ::= OCTET STRING (SIZE (2))
	-- Octets are coded, similarly to PDP-Type, according to TS 3GPP TS 29.060 [105].
	-- Only the value IPv4v6 is allowed for this parameter.

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.

Ext3-QoS-Subscribed ::= OCTET STRING (SIZE (1..2))
	-- Octets 1-2 are coded according to 3GPP TS 24.008 [35] Quality of Service Octets 17-18.

Ext4-QoS-Subscribed ::= OCTET STRING (SIZE (1))
	-- Octet 1:
	--  Evolved Allocation/Retention Priority. This octet encodes the Priority Level (PL),
	--  the Preemption Capability (PCI) and Preemption Vulnerability  (PVI) values, as
	--  described in 3GPP TS 29.060 [105].

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,
	supportedFeatures	[9] SupportedFeatures	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,
	chargingCharacteristicsWithdraw	[16] NULL		OPTIONAL,
	stn-srWithdraw	[17] NULL		OPTIONAL,
	epsSubscriptionDataWithdraw	[18] EPS-SubscriptionDataWithdraw	OPTIONAL,
	apn-oi-replacementWithdraw	[19] NULL		OPTIONAL,
	csg-SubscriptionDeleted	[20]	NULL		OPTIONAL,
	subscribedPeriodicTAU-RAU-TimerWithdraw	[22]	NULL		OPTIONAL,
	subscribedPeriodicLAU-TimerWithdraw	[23]	NULL		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}

EPS-SubscriptionDataWithdraw ::= CHOICE {
	allEPS-Data	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),
	collectInformation	(19)
} (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,
	restorationIndicator	[7]	NULL		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, 
	-- groupId shall be filled with six TBCD fillers (1111)if the longGroupId is present  
	extensionContainer	ExtensionContainer	OPTIONAL,
	...,
	additionalSubscriptions	AdditionalSubscriptions	OPTIONAL,
	additionalInfo	[0] AdditionalInfo	OPTIONAL,
	longGroupId	[1] Long-GroupId	OPTIONAL }

	-- VoiceGroupCallData containing a longGroupId shall not be sent to VLRs that did not
	-- indicate support of long Group IDs within the Update Location or Restore Data 
	-- request message

AdditionalInfo ::= BIT STRING (SIZE (1..136))
--	 Refers to Additional Info as specified in 3GPP TS 43.068 

AdditionalSubscriptions ::= BIT STRING {
	privilegedUplinkRequest (0),
	emergencyUplinkRequest (1),
	emergencyReset (2)} (SIZE (3..8))
-- Other bits than listed above shall be discarded.

VoiceBroadcastData ::= SEQUENCE {
	groupid		GroupId, 
	-- groupId shall be filled with six TBCD fillers (1111)if the longGroupId is present
	broadcastInitEntitlement	NULL			OPTIONAL,
	extensionContainer	ExtensionContainer	OPTIONAL,
	...,
	longGroupId	[0] Long-GroupId	OPTIONAL }
	
-- VoiceBroadcastData containing a longGroupId shall not be sent to VLRs that did not
-- indicate support of long Group IDs within the Update Location or Restore Data 
	-- request message

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

Long-GroupId  ::= TBCD-STRING (SIZE (4))
	-- When Long-Group-Id is less than eight 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,
	...,
	callPriority	[4]	EMLPP-Priority	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,
	imsVoiceOverPS-SessionsIndication	[9] IMS-VoiceOverPS-SessionsInd	OPTIONAL,
	lastUE-ActivityTime	[10] Time		OPTIONAL,
	lastRAT-Type	[11] Used-RAT-Type	OPTIONAL,
	eps-SubscriberState	[12] PS-SubscriberState	OPTIONAL,
	locationInformationEPS	[13] LocationInformationEPS	OPTIONAL }

--	If the HLR receives locationInformation, subscriberState or ms-Classmark2 from an SGSN or
--	MME (via an IWF), it shall discard them.
--	If the HLR receives locationInformationGPRS, ps-SubscriberState, gprs-MS-Class or
--	locationInformationEPS (outside the locationInformation IE) from a VLR, it shall
--	discard them.
--	If the HLR receives parameters which it has not requested, it shall discard them.

IMS-VoiceOverPS-SessionsInd ::= ENUMERATED {
	imsVoiceOverPS-SessionsNotSupported	(0),
	imsVoiceOverPS-SessionsSupported	(1),
	unknown		(2)
	}
--	"unknown" shall not be used within ProvideSubscriberInfoRes

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,
	locationInformationEPS-Supported	[11] NULL 	OPTIONAL,
	t-adsData		[8] NULL		OPTIONAL,
	requestedNodes	[9] RequestedNodes	OPTIONAL,
	servingNodeIndication	[10] NULL		OPTIONAL }

--	currentLocation and locationInformationEPS-Supported shall be absent if 
--	locationInformation is absent
--	t-adsData shall be absent in messages sent to the VLR
--	requestedNodes shall be absent if requestedDomain is "cs-Domain"
--	servingNodeIndication shall be absent if locationInformation is absent;
--	servingNodeIndication shall be absent if current location is present;
--	servingNodeIndication indicates by its presence that only the serving node's
--	address (MME-Name or SGSN-Number or VLR-Number) is requested.

DomainType ::=  ENUMERATED {
	cs-Domain		(0),
	ps-Domain		(1),
	...}
-- exception handling:
-- reception of values > 1 shall be mapped to 'cs-Domain'

RequestedNodes ::= BIT STRING {
	mme 		(0),
	sgsn 	(1)} (SIZE (1..8))
-- Other bits than listed above shall be discarded.

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,
	locationInformationEPS	[10] LocationInformationEPS	OPTIONAL,
	userCSGInformation	[11] UserCSGInformation	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.
-- if the locationinformationEPS IE is present then the cellGlobalIdOrServiceAreaIdOrLAI IE,
-- the ageOfLocationInformation IE, the geographicalInformation IE, the geodeticInformation IE
-- and the currentLocationRetrieved IE (outside the locationInformationEPS IE) shall be
-- absent. 
-- UserCSGInformation contains the CSG ID, Access mode, and the CSG Membership Indication in
-- the case the Access mode is Hybrid Mode.
-- The locationInformationEPS IE should be absent if locationInformationEPS-Supported was not
-- received in the RequestedInfo IE.

LocationInformationEPS ::= SEQUENCE {
	e-utranCellGlobalIdentity	[0] E-UTRAN-CGI		OPTIONAL,
	trackingAreaIdentity	[1] TA-Id		OPTIONAL,
	extensionContainer	[2] ExtensionContainer		OPTIONAL,
	geographicalInformation	[3] GeographicalInformation		OPTIONAL,
	geodeticInformation	[4] GeodeticInformation		OPTIONAL,
	currentLocationRetrieved	[5] NULL			OPTIONAL,
	ageOfLocationInformation	[6] AgeOfLocationInformation		OPTIONAL,
	...,
	mme-Name		[7] DiameterIdentity		OPTIONAL }
-- currentLocationRetrieved shall be present if the location information
-- was retrieved after successful 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,
	userCSGInformation	[10] UserCSGInformation	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.
-- UserCSGInformation contains the CSG ID, Access mode, and the CSG Membership Indication in
-- the case the Access mode is Hybrid Mode. 


UserCSGInformation ::= SEQUENCE {
	csg-Id	 	[0] CSG-Id,
	extensionContainer	[1] ExtensionContainer		OPTIONAL,
	...,
	accessMode	[2] OCTET STRING (SIZE(1))		OPTIONAL,
	cmi			[3] OCTET STRING (SIZE(1))		OPTIONAL }
-- The encoding of the accessMode and cmi parameters are as defined in 3GPP TS 29.060 [105].

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 {
	notProvidedFromSGSNorMME	[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.
	qos3-Subscribed	[21] Ext3-QoS-Subscribed	OPTIONAL,
	-- qos3-Subscribed may be present only if qos2-Subscribed is present.
	qos3-Requested	[22] Ext3-QoS-Subscribed	OPTIONAL,
	-- qos3-Requested may be present only if qos2-Requested is present.
	qos3-Negotiated	[23] Ext3-QoS-Subscribed	OPTIONAL,
	-- qos3-Negotiated may be present only if qos2-Negotiated is present.
	qos4-Subscribed	[25] Ext4-QoS-Subscribed	OPTIONAL,
	-- qos4-Subscribed may be present only if qos3-Subscribed is present.
	qos4-Requested	[26] Ext4-QoS-Subscribed	OPTIONAL,
	-- qos4-Requested may be present only if qos3-Requested is present.
	qos4-Negotiated	[27] Ext4-QoS-Subscribed	OPTIONAL,
	-- qos4-Negotiated may be present only if qos3-Negotiated is present. 
	ext-pdp-Type	[28] Ext-PDP-Type	OPTIONAL,
	-- contains the value IPv4v6 defined in 3GPP TS 29.060 [105], if the PDP can be
	-- accessed by dual-stack UEs.
	ext-pdp-Address	[29] PDP-Address	OPTIONAL
	-- contains an additional IP address in case of dual-stack static IP address assignment
	-- for the UE.
	-- it may contain an IPv4 or an IPv6 address/prefix, and it may be present
	-- only if pdp-Address is present; if both are present, each parameter shall
	-- contain a different type of address (IPv4 or IPv6).

}

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,
	msisdn-BS-List	[10] MSISDN-BS-List	OPTIONAL,
	csg-SubscriptionDataList	[11] CSG-SubscriptionDataList	OPTIONAL, 
	cw-Data		[12]	CallWaitingData	OPTIONAL,
	ch-Data		[13]	CallHoldData	OPTIONAL,
	clip-Data 	[14] ClipData	OPTIONAL,
	clir-Data		[15]	ClirData	OPTIONAL,
	ect-data		[16] EctData	OPTIONAL }

CallWaitingData ::= SEQUENCE {
	cwFeatureList	[1] Ext-CwFeatureList,
	notificationToCSE	[2] NULL		OPTIONAL,
	... }

Ext-CwFeatureList ::= SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF
				Ext-CwFeature

Ext-CwFeature ::= SEQUENCE {
	basicService    [1] Ext-BasicServiceCode,
	ss-Status       [2] Ext-SS-Status,
	... }

ClipData ::= SEQUENCE {
	ss-Status		[1] Ext-SS-Status,
	overrideCategory	[2] OverrideCategory,
	notificationToCSE	[3] NULL		OPTIONAL,
	... }		

ClirData ::= SEQUENCE {
	ss-Status		[1] Ext-SS-Status,
	cliRestrictionOption	[2] CliRestrictionOption	OPTIONAL,
	notificationToCSE	[3] NULL		OPTIONAL,
	... }

CallHoldData ::= SEQUENCE {
	ss-Status		[1] Ext-SS-Status,
	notificationToCSE	[2] NULL		OPTIONAL,
	... }

EctData ::= SEQUENCE {
	ss-Status		[1] Ext-SS-Status,
	notificationToCSE	[2] NULL		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,
	msisdn-BS-List	[8] NULL		OPTIONAL,
	csg-SubscriptionDataRequested	[9] NULL		OPTIONAL,
	cw-Info		[10]	NULL		OPTIONAL,
	clip-Info		[11] NULL		OPTIONAL,
	clir-Info		[12] NULL		OPTIONAL,
	hold-Info		[13] NULL		OPTIONAL,
	ect-Info		[14] NULL		OPTIONAL }

MSISDN-BS-List ::= SEQUENCE SIZE (1..maxNumOfMSISDN) OF
				MSISDN-BS

maxNumOfMSISDN  INTEGER ::= 50


MSISDN-BS ::= SEQUENCE {
	msisdn			ISDN-AddressString,	
	basicServiceList	[0]	BasicServiceList	OPTIONAL,
	extensionContainer	[1]	ExtensionContainer	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,
	modificationRequestFor-IP-SM-GW-Data	[8]	ModificationRequestFor-IP-SM-GW-Data OPTIONAL,
	activationRequestForUE-reachability	[9]	RequestedServingNode	OPTIONAL,
	modificationRequestFor-CSG	[10]	ModificationRequestFor-CSG	OPTIONAL,
	modificationRequestFor-CW-Data	[11] ModificationRequestFor-CW-Info	OPTIONAL,
	modificationRequestFor-CLIP-Data	[12] ModificationRequestFor-CLIP-Info	OPTIONAL,
	modificationRequestFor-CLIR-Data	[13] ModificationRequestFor-CLIR-Info 	OPTIONAL,
	modificationRequestFor-HOLD-Data	[14] ModificationRequestFor-CH-Info	OPTIONAL,
	modificationRequestFor-ECT-Data	[15] ModificationRequestFor-ECT-Info	OPTIONAL }

ModificationRequestFor-CW-Info ::= SEQUENCE {
	basicService	[0]	Ext-BasicServiceCode	OPTIONAL,
	ss-Status		[1]	Ext-SS-Status	OPTIONAL,
	modifyNotificationToCSE	[2]	ModificationInstruction	OPTIONAL,
	extensionContainer	[3]	ExtensionContainer	OPTIONAL,
	...}

ModificationRequestFor-CH-Info ::= SEQUENCE {
	ss-Status		[0]	Ext-SS-Status	OPTIONAL,
	modifyNotificationToCSE	[1]	ModificationInstruction	OPTIONAL,
	extensionContainer	[2]	ExtensionContainer	OPTIONAL,
	...}

ModificationRequestFor-ECT-Info ::= SEQUENCE {
	ss-Status		[0]	Ext-SS-Status	OPTIONAL,
	modifyNotificationToCSE	[1]	ModificationInstruction	OPTIONAL,
	extensionContainer	[2]	ExtensionContainer	OPTIONAL,
	...}

ModificationRequestFor-CLIR-Info ::= SEQUENCE {
	ss-Status		[0]	Ext-SS-Status	OPTIONAL,
	cliRestrictionOption	[1]  CliRestrictionOption	OPTIONAL,
	modifyNotificationToCSE	[2]	ModificationInstruction	OPTIONAL,
	extensionContainer	[3]	ExtensionContainer	OPTIONAL,
	...}

ModificationRequestFor-CLIP-Info ::= SEQUENCE {
	ss-Status		[0]	Ext-SS-Status	OPTIONAL,
	overrideCategory	[1]  OverrideCategory	OPTIONAL,
	modifyNotificationToCSE	[2]	ModificationInstruction	OPTIONAL,
	extensionContainer	[3]	ExtensionContainer	OPTIONAL,
	...}


ModificationRequestFor-CSG ::= SEQUENCE {
	modifyNotificationToCSE	[0]	ModificationInstruction	OPTIONAL,
	extensionContainer	[1]	ExtensionContainer	OPTIONAL,
	...}

RequestedServingNode ::= BIT STRING {
	mmeAndSgsn  (0)} (SIZE (1..8))

ServingNode ::= BIT STRING {
	mme (0),
	sgsn (1)} (SIZE (2..8))
-- Other bits than listed above shall be discarded.

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,
	cw-Data		[4]	CallWaitingData	OPTIONAL,
	ch-Data		[5]	CallHoldData	OPTIONAL,
	clip-Data 	[6] ClipData	OPTIONAL,
	clir-Data		[7]	ClirData	OPTIONAL,
	ect-data		[8] EctData	OPTIONAL,
	serviceCentreAddress	[9] AddressString	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

ModificationRequestFor-IP-SM-GW-Data ::= SEQUENCE {
	modifyRegistrationStatus	[0]	ModificationInstruction	OPTIONAL,
	extensionContainer	[1]	ExtensionContainer	OPTIONAL,
	...}

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,
	...,
	ue-reachable	[5] ServingNode	OPTIONAL,
	csg-SubscriptionDataList	[6] CSG-SubscriptionDataList	OPTIONAL,
	cw-Data		[7]	CallWaitingData	OPTIONAL,
	ch-Data		[8]	CallHoldData	OPTIONAL,
	clip-Data 	[9] ClipData	OPTIONAL,
	clir-Data		[10]	ClirData	OPTIONAL,
	ect-data		[11] EctData	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
