-- 5	Common CAP Types
-- 5.1	Data types
CAP-datatypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3) cap-datatypes(52) version8(7)}

DEFINITIONS IMPLICIT TAGS ::= BEGIN

IMPORTS

	Duration,
	Integer4,
	Interval,
	LegID,
	ServiceKey
FROM CS1-DataTypes {itu-t(0) identified-organization(4) etsi(0) inDomain(1) in-network(1)
modules(0) cs1-datatypes(2) version1(0)}

	BothwayThroughConnectionInd,
	CriticalityType,
	MiscCallInfo
FROM CS2-datatypes {itu-t(0) identified-organization(4) etsi(0) inDomain(1) in-network(1)
cs2(20) modules(0) in-cs2-datatypes(0) version1(0)}

	AddressString,
	CellGlobalIdOrServiceAreaIdFixedLength,
	Ext-BasicServiceCode,
	IMSI,
	ISDN-AddressString,
	LAIFixedLength,
	NAEA-CIC
FROM MAP-CommonDataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
gsm-Network(1) modules(3) map-CommonDataTypes(18) version12(12)}

	Ext-QoS-Subscribed,
	Ext2-QoS-Subscribed,
	Ext3-QoS-Subscribed,
	GeographicalInformation,
	GSN-Address,
	LocationInformation,
	LSAIdentity,
	QoS-Subscribed,
	RAIdentity,
	SubscriberState,
	GPRSChargingID
FROM MAP-MS-DataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
gsm-Network(1) modules(3) map-MS-DataTypes(11) version12(12)}

	CallReferenceNumber,
	SuppressionOfAnnouncement
FROM MAP-CH-DataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
gsm-Network(1) modules(3) map-CH-DataTypes(13) version12(12)}

	tc-Messages,
	classes
FROM CAP-object-identifiers {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
umts-network(1) modules(3) cap-object-identifiers(100) version8(7)}

	EXTENSION,
	PARAMETERS-BOUND,
	SupportedExtensions
FROM CAP-classes classes

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

;

AccessPointName {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
	bound.&minAccessPointNameLength .. bound.&maxAccessPointNameLength))
-- Indicates the AccessPointName, refer to 3GPP TS 24.008 [9] for the encoding.
-- It shall be coded as in the value part defined in 3GPP TS 24.008,
-- i.e. the 3GPP TS 24.008 IEI and 3GPP TS 24.008 octet length indicator
-- shall not be included.

AChBillingChargingCharacteristics {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE
	(bound.&minAChBillingChargingLength .. bound.&maxAChBillingChargingLength))
	(CONSTRAINED BY {-- shall be the result of the BER-encoded value of the type --
	CAMEL-AChBillingChargingCharacteristics {bound}})
-- The AChBillingChargingCharacteristics parameter specifies the charging related information
-- to be provided by the gsmSSF and the conditions on which this information has to be reported
-- back to the gsmSCF with the ApplyChargingReport operation. The value of the
-- AChBillingChargingCharacteristics of type OCTET STRING carries a value of the ASN.1 data type:
-- CAMEL-AChBillingChargingCharacteristics. The normal encoding rules are used to encode this
-- value.
-- The violation of the UserDefinedConstraint shall be handled as an ASN.1 syntax error.

AChChargingAddress {PARAMETERS-BOUND : bound} ::= CHOICE {
	legID				[2] LegID,
	srfConnection		[50] CallSegmentID {bound}
	}

AdditionalCallingPartyNumber {PARAMETERS-BOUND : bound} ::= Digits {bound}
-- Indicates the Additional Calling Party Number.

AlertingPattern ::= OCTET STRING (SIZE(3))
-- Indicates a specific pattern that is used to alert a subscriber
-- (e.g. distinctive ringing, tones, etc.).
-- The encoding of the last octet of this parameter is as defined in 3GPP TS 29.002 [11].
-- Only the trailing OCTET is used, the remaining OCTETS shall be sent as NULL (zero)
-- The receiving side shall ignore the leading two OCTETS.

AOCBeforeAnswer ::= SEQUENCE {
	aOCInitial							[0] CAI-GSM0224,
	aOCSubsequent						[1] AOCSubsequent							OPTIONAL
	}

AOCGPRS ::= SEQUENCE {
	aOCInitial							[0] CAI-GSM0224,
	aOCSubsequent						[1] AOCSubsequent							OPTIONAL
	}

AOCSubsequent ::= SEQUENCE {
	cAI-GSM0224							[0] CAI-GSM0224	,
	tariffSwitchInterval				[1] INTEGER (1..86400)						OPTIONAL
	}
-- tariffSwitchInterval is measured in 1 second units

AppendFreeFormatData ::= ENUMERATED {
	overwrite	(0),
	append		(1)
	}

ApplicationTimer ::=INTEGER (0..2047)
-- Used by the gsmSCF to set a timer in the gsmSSF. The timer is in seconds.

AssistingSSPIPRoutingAddress {PARAMETERS-BOUND : bound} ::= Digits {bound}
-- Indicates the destination address of the gsmSRF for the assist procedure.

AudibleIndicator ::= CHOICE {
	tone								BOOLEAN,
	burstList							[1] BurstList
	}

BackwardServiceInteractionInd ::= SEQUENCE {
	conferenceTreatmentIndicator		[1] OCTET STRING (SIZE(1))					OPTIONAL,
	-- acceptConferenceRequest	'xxxx xx01'B
	-- rejectConferenceRequest	'xxxx xx10'B
	-- if absent from Connect or ContinueWithArgument,
	-- then CAMEL service does not affect conference treatement
	callCompletionTreatmentIndicator	 [2] OCTET STRING (SIZE(1))					OPTIONAL,
	-- acceptCallCompletionServiceRequest	'xxxx xx01'B,
	-- rejectCallCompletionServiceRequest	'xxxx xx10'B
	-- if absent from Connect or ContinueWithArgument,
	-- then CAMEL service does not affect call completion treatment
	...
	}

BasicGapCriteria {PARAMETERS-BOUND : bound} ::= CHOICE {
	calledAddressValue					[0] Digits {bound},
	gapOnService						[2] GapOnService,
	calledAddressAndService				[29] SEQUENCE {
		calledAddressValue					[0] Digits {bound},
		serviceKey							[1] ServiceKey,
		...
		},
	callingAddressAndService			[30] SEQUENCE {
		callingAddressValue					[0] Digits {bound},
		serviceKey							[1] ServiceKey,
		...
		}
	}
-- Both calledAddressValue and callingAddressValue can be
-- incomplete numbers, in the sense that a limited amount of digits can be given.
-- For the handling of numbers starting with the same digit string refer to the detailed
-- procedure of the CallGap operation

BCSMEvent{PARAMETERS-BOUND : bound} ::= SEQUENCE {
	eventTypeBCSM						[0] EventTypeBCSM,
	monitorMode							[1] MonitorMode,
	legID								[2] LegID									OPTIONAL,
	dpSpecificCriteria					[30] DpSpecificCriteria {bound}				OPTIONAL,
	automaticRearm						[50] NULL									OPTIONAL,
	...
	}
-- Indicates the BCSM Event information for monitoring.

BCSM-Failure {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	legID								[0]	LegID									OPTIONAL,
	cause								[2]	Cause {bound}							OPTIONAL,
	...
	}

BearerCapability {PARAMETERS-BOUND : bound} ::= CHOICE {
	bearerCap							[0] OCTET STRING (SIZE(2..bound.&maxBearerCapabilityLength))
	}
-- Indicates the type of bearer capability connection to the user. For bearerCap, the ISUP User
-- Service Information, ETSI EN 300 356-1 [23]
-- encoding shall be used.

Burst ::= SEQUENCE {
	numberOfBursts						[0]	INTEGER (1..3)		DEFAULT 1,
	burstInterval						[1]	INTEGER	(1..1200)	DEFAULT 2,						
	numberOfTonesInBurst				[2] INTEGER (1..3)		DEFAULT 3,
	toneDuration						[3]	INTEGER	(1..20)		DEFAULT 2,
	toneInterval						[4]	INTEGER	(1..20)		DEFAULT 2,
	...
	}
-- burstInterval, toneDurartion and toneInterval are measured in 100 millisecond units

BurstList ::= SEQUENCE {
	warningPeriod						[0] INTEGER	(1..1200) DEFAULT 30,
	bursts								[1] Burst,
	...
	}
-- warningPeriod is measured in 1 second units.

CAI-GSM0224 ::= SEQUENCE {
	e1									[0] INTEGER (0..8191)						OPTIONAL,
	e2									[1] INTEGER (0..8191)						OPTIONAL,
	e3									[2] INTEGER (0..8191)						OPTIONAL,
	e4									[3] INTEGER (0..8191)						OPTIONAL,
	e5									[4] INTEGER (0..8191)						OPTIONAL,
	e6									[5] INTEGER (0..8191)						OPTIONAL,
	e7									[6] INTEGER (0..8191)						OPTIONAL
	}
-- Indicates Charge Advice Information to the Mobile Station. For information regarding
-- parameter usage, refer to 3GPP TS 22.024 [2].

CalledPartyBCDNumber {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
	bound.&minCalledPartyBCDNumberLength .. bound.&maxCalledPartyBCDNumberLength))
-- Indicates the Called Party Number, including service selection information.
-- Refer to 3GPP TS 24.008 [9] for encoding.
-- This data type carries only the 'type of number', 'numbering plan
-- identification' and 'number digit' fields defined in 3GPP TS 24.008 [9];
-- it does not carry the 'called party BCD number IEI' or 'length of called
-- party BCD number contents'.
-- In the context of the DestinationSubscriberNumber field in ConnectSMSArg or 
-- InitialDPSMSArg, a CalledPartyBCDNumber may also contain an alphanumeric 
-- character string. In this case, type-of-number '101'B is used, in accordance 
-- with 3GPP TS 23.040 [6]. The address is coded in accordance with the 
-- GSM 7-bit default alphabet definition and the SMS packing rules 
-- as specified in 3GPP TS 23.038 [15] in this case.

CalledPartyNumber {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
	bound.&minCalledPartyNumberLength .. bound.&maxCalledPartyNumberLength))
-- Indicates the Called Party Number. Refer to ETS EN 300 356-1 [23] for encoding.

-- A CalledPartyNumber may contain national-specific values of the Nature Of Address
-- indicator. The filling-in of the national-specific Nature Of Address indicator
-- values shall be done in accordance with the national ISUP of the gsmSSF country, e.g.
-- ANSI T1.113-1995 [92].
-- In terms of ETS EN 300 356-1 [23], the Destination Address Field is not present if the
-- destination address length is set to zero. This is the case e.g. when the ANSI
-- ISUP Nature Of Address indicator indicates no number present, operator requested
-- (1110100) or no number present, cut-through call to carrier (1110101).
-- See also see 3GPP TS 23.078 [7].

CallingPartyNumber {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
	bound.&minCallingPartyNumberLength .. bound.&maxCallingPartyNumberLength))
-- Indicates the Calling Party Number. Refer to ETSI EN 300 356-1 [23] for encoding.

CallResult {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
	bound.&minCallResultLength .. bound.&maxCallResultLength))
	(CONSTRAINED BY {-- shall be the result of the BER-encoded value of type -
	CAMEL-CallResult {bound}})
-- The violation of the UserDefinedConstraint shall be handled as an ASN.1 syntax error.

-- This parameter provides the gsmSCF with the charging related information previously requested
-- using the ApplyCharging operation. This shall include the partyToCharge parameter as
-- received in the related ApplyCharging operation to correlate the result to the request

CallSegmentFailure {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	callSegmentID						[0] CallSegmentID {bound}					OPTIONAL,
	cause								[2]	Cause {bound}							OPTIONAL,
	...
	}

CallSegmentID {PARAMETERS-BOUND : bound} ::= INTEGER (1..bound.&numOfCSs)

CallSegmentToCancel {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	invokeID							[0]	InvokeID								OPTIONAL,
	callSegmentID						[1]	CallSegmentID {bound}					OPTIONAL,
	...
	}

CAMEL-AChBillingChargingCharacteristics {PARAMETERS-BOUND : bound} ::= CHOICE {
	timeDurationCharging				[0] SEQUENCE {
		maxCallPeriodDuration				[0] INTEGER (1..864000),
		releaseIfdurationExceeded			[1] BOOLEAN DEFAULT FALSE,
		tariffSwitchInterval				[2] INTEGER (1..86400)					OPTIONAL,
		audibleIndicator					[3] AudibleIndicator DEFAULT tone: FALSE,	
		extensions							[4] Extensions {bound}					OPTIONAL,
		...
		}
	}
-- tariffSwitchInterval is measured in 1 second units.
-- maxCallPeriodDuration is measured in 100 millisecond units

CAMEL-CallResult {PARAMETERS-BOUND : bound} ::= CHOICE {
	timeDurationChargingResult			[0] SEQUENCE {
		partyToCharge						[0] ReceivingSideID,
		timeInformation						[1] TimeInformation,
		legActive							[2] BOOLEAN DEFAULT TRUE,
		callLegReleasedAtTcpExpiry			[3] NULL								OPTIONAL,
		extensions							[4] Extensions {bound}					OPTIONAL,
		aChChargingAddress					[5] AChChargingAddress {bound}
													DEFAULT legID:receivingSideID:leg1,
		...
		}
	}

CAMEL-FCIBillingChargingCharacteristics {PARAMETERS-BOUND : bound} ::= CHOICE{
	fCIBCCCAMELsequence1				[0] SEQUENCE {
		freeFormatData						[0] OCTET STRING (SIZE(
			bound.&minFCIBillingChargingDataLength .. bound.&maxFCIBillingChargingDataLength)),
		partyToCharge						[1] SendingSideID DEFAULT sendingSideID: leg1,
		appendFreeFormatData				[2] AppendFreeFormatData DEFAULT overwrite,
		...
		}
	}

CAMEL-FCIGPRSBillingChargingCharacteristics {PARAMETERS-BOUND : bound} ::= SEQUENCE{
	fCIBCCCAMELsequence1				[0] SEQUENCE {
		freeFormatData						[0] OCTET STRING (SIZE(
			bound.&minFCIBillingChargingDataLength .. bound.&maxFCIBillingChargingDataLength)),
		pDPID								[1] PDPID OPTIONAL,
		appendFreeFormatData				[2] AppendFreeFormatData DEFAULT overwrite,
		...
		}
	}

CAMEL-FCISMSBillingChargingCharacteristics {PARAMETERS-BOUND : bound} ::= CHOICE{
	fCIBCCCAMELsequence1				[0] SEQUENCE {
		freeFormatData						[0] OCTET STRING (SIZE(
			bound.&minFCIBillingChargingDataLength .. bound.&maxFCIBillingChargingDataLength)),
		appendFreeFormatData				[1] AppendFreeFormatData DEFAULT overwrite
		}
	}

CAMEL-SCIBillingChargingCharacteristics ::= CHOICE {
	aOCBeforeAnswer						[0] AOCBeforeAnswer,
	aOCAfterAnswer						[1] AOCSubsequent,
	aOC-extension						[2]	CAMEL-SCIBillingChargingCharacteristicsAlt
	}

CAMEL-SCIBillingChargingCharacteristicsAlt ::= SEQUENCE {
	...
	}
--	This datatype is for extension in future releases.

CAMEL-SCIGPRSBillingChargingCharacteristics ::= SEQUENCE {
	aOCGPRS								[0] AOCGPRS,
	pDPID								[1] PDPID									OPTIONAL,
	...
	}

Carrier {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
	bound.&minCarrierLength .. bound.&maxCarrierLength))
-- This parameter is used for North America (na) only.
-- It contains the carrier selection field (first octet) followed by Carrier ID
-- information (North America (na)).

-- The Carrier selection is one octet and is encoded as:
-- 00000000		No indication
-- 00000001		Selected carrier identification code (CIC) pre subscribed and not
--				input by calling party
-- 00000010		Selected carrier identification code (CIC) pre subscribed and input by
--				calling party
-- 00000011		Selected carrier identification code (CIC) pre subscribed, no
--				indication of whether input by calling party (undetermined)
-- 00000100		Selected carrier identification code (CIC) not pre subscribed and
--				input by calling party
-- 00000101
--	to			Spare
-- 11111110
-- 11111111		Reserved

-- Refer to ANSI T1.113-1995 [92] for encoding of na carrier ID information (3 octets).

Cause {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
	bound.&minCauseLength .. bound.&maxCauseLength))
-- Indicates the cause for interface related information.
-- Refer to ETSI EN 300 356-1 [23] Cause parameter for encoding.
-- For the use of cause and location values refer to ITU-T Recommendation Q.850 [47]
-- Shall always include the cause value and shall also include the diagnostics field,
-- if available.

CGEncountered ::= ENUMERATED {
	noCGencountered						(0),
	manualCGencountered					(1),
	scpOverload							(2)
	}
-- Indicates the type of automatic call gapping encountered, if any.

ChangeOfPositionControlInfo {PARAMETERS-BOUND : bound} ::= SEQUENCE SIZE (1..bound.&numOfChangeOfPositionControlInfo) OF ChangeOfLocation {bound}

ChangeOfLocation {PARAMETERS-BOUND : bound} ::= CHOICE {
	cellGlobalId						[0] CellGlobalIdOrServiceAreaIdFixedLength,
	serviceAreaId						[1] CellGlobalIdOrServiceAreaIdFixedLength,
	locationAreaId						[2] LAIFixedLength,
	inter-SystemHandOver				[3] NULL,
	inter-PLMNHandOver					[4] NULL,
	inter-MSCHandOver					[5] NULL,
	changeOfLocationAlt					[6] ChangeOfLocationAlt {bound}
}
-- The cellGlobalId shall contain a Cell Global Identification. 
-- The serviceAreaId shall contain a Service Area Identification.

ChangeOfLocationAlt {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	...
	}

ChargeIndicator ::= OCTET STRING (SIZE (1))
--  As specified in ITU-T Recommendation Q.763 as follows:
--      no indication	'xxxx xx00'B
--      no charge		'xxxx xx01'B
--      charge			'xxxx xx10'B
--      spare			'xxxx xx11'B
--  Sending entity shall fill the upper six bits with '0's.
--  Receiving entity shall ignore the upper six bits.

ChargeNumber {PARAMETERS-BOUND : bound} ::= LocationNumber {bound}
-- Information sent in either direction indicating the chargeable number for the call and
-- consisting of the odd/even indicator, nature of address indicator, numbering plan indicator,
-- and address signals.

-- Uses the LocationNumber format which is based on the Location Number format as defined
-- in ITU-T Recommendation Q.763 [45].
-- For example, the ChargeNumber may be a third party number to which a call is billed for
-- the 3rd party billing service. In this case, the calling party may request operator assistance
-- to charge the call to, for example, their home number.

-- For NA, this parameter uniquely identifies the chargeable number for a call sent into a North
-- American long distance carrier. It transports the ChargeNumber Parameter Field as defined in
-- ANSI T1.113-1995 [92]. This provides
--  - 1 octet for the nature of address indicator field, plus
--  - 1 octet for a numbering plan field, plus
--  - up to 5 octets for the address signal (up to 10 digits)

-- The Charge Number in ANSI T1.113-1995 [92] normally contains a 10 digit national number within
-- the North American Numbering Plan (NANP); longer (e.g. international) charge numbers are not
-- supported in ANSI T1.113-1995 [92].

ChargingCharacteristics ::= CHOICE {
	maxTransferredVolume				[0]	INTEGER (1..4294967295),
	maxElapsedTime						[1] INTEGER (1..86400)
	}
--	maxTransferredVolume is measured in number of bytes
--	maxElapsedTime is measured in seconds

ChargingResult ::= CHOICE {
	transferredVolume					[0] TransferredVolume,
	elapsedTime							[1]	ElapsedTime
	}

ChargingRollOver ::= CHOICE {
	transferredVolumeRollOver			[0] TransferredVolumeRollOver,
	elapsedTimeRollOver					[1]	ElapsedTimeRollOver
	}
-- transferredVolumeRollOver shall be reported if ApplyChargingReportGPRS reports volume and
-- a roll-over has occurred in one or more volume counters. Otherwise, it shall be absent.
-- elapsedTimeRollOver shall be reported if ApplyChargingReportGPRS reports duration and
-- a roll-over has occurred in one or more duration counters. Otherwise, it shall be absent.

CollectedDigits ::= SEQUENCE {
	minimumNbOfDigits					[0] INTEGER (1..30)	DEFAULT 1,
	maximumNbOfDigits					[1] INTEGER (1..30),
	endOfReplyDigit						[2] OCTET STRING (SIZE (1..2))				OPTIONAL,
	cancelDigit							[3] OCTET STRING (SIZE (1..2))				OPTIONAL,
	startDigit							[4] OCTET STRING (SIZE (1..2))				OPTIONAL,
	firstDigitTimeOut					[5] INTEGER (1..127)						OPTIONAL,
	interDigitTimeOut					[6] INTEGER (1..127)						OPTIONAL,
	errorTreatment						[7] ErrorTreatment DEFAULT stdErrorAndInfo,
	interruptableAnnInd					[8] BOOLEAN DEFAULT TRUE,
	voiceInformation					[9] BOOLEAN DEFAULT FALSE,
	voiceBack							[10] BOOLEAN DEFAULT FALSE
	}
-- The use of voiceBack and the support of voice recognition via voiceInformation
-- is network operator specific.
-- The endOfReplyDigit, cancelDigit, and startDigit parameters have been
-- designated as OCTET STRING, and are to be encoded as BCD, one digit per octet
-- only, contained in the four least significant bits of each OCTET. The following encoding shall
-- be applied for the non-decimal characters:
-- 1011 (*), 1100 (#).
-- The usage is service dependent.
-- firstDigitTimeOut and interDigitTimeOut are measured in seconds.

CollectedInfo ::= CHOICE {
	collectedDigits						[0] CollectedDigits
	}

ConnectedNumberTreatmentInd ::= ENUMERATED {
	noINImpact							(0),
	presentationRestricted				(1),
	presentCalledINNumber				(2),
	presentCallINNumberRestricted		(3)
}
-- This parameter is used to suppress or to display the connected number.

ControlType ::= ENUMERATED {
	sCPOverloaded						(0),
	manuallyInitiated					(1)
	}

CompoundCriteria {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	basicGapCriteria					[0] BasicGapCriteria {bound},
	scfID								[1] ScfID {bound}							OPTIONAL
	}

CorrelationID {PARAMETERS-BOUND : bound} ::= Digits {bound}
-- used by gsmSCF for correlation with a previous operation.

DateAndTime ::= OCTET STRING (SIZE(7))
--  DateAndTime is BCD encoded. The year digit indicating millenium occupies bits
--  0-3 of the first octet, and the year digit indicating century occupies bits
--  4-7 of the first octet.
--  The year digit indicating decade occupies bits 0-3 of the second octet,
--  whilst the digit indicating the year within the decade occupies bits 4-7 of
--  the second octet.
--  The most significant month digit occupies bits 0-3 of the third octet,
--  and the least significant month digit occupies bits 4-7 of the third octet.
--  The most significant day digit occupies bits 0-3 of the fourth octet,
--  and the least significant day digit occupies bits 4-7 of the fourth octet.
--  The most significant hours digit occupies bits 0-3 of the fifth octet,
--  and the least significant digit occupies bits 4-7 of the fifth octet.
--  The most significant minutes digit occupies bits 0-3 of the sixth octet,
--  and the least significant digit occupies bits 4-7 of the sixth octet.
--  The most significant seconds digit occupies bits 0-3 of the seventh octet,
--  and the least seconds significant digit occupies bits 4-7 of the seventh octet.
--  For the encoding of digits in an octet, refer to the timeAndtimezone parameter.

DestinationRoutingAddress {PARAMETERS-BOUND : bound} ::= SEQUENCE SIZE(1) OF
													CalledPartyNumber {bound}
-- Indicates the Called Party Number.

Digits {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
	bound.&minDigitsLength .. bound.&maxDigitsLength))
-- Indicates the address signalling digits.
-- Refer to ETSI EN 300 356-1 [23] Generic Number & Generic Digits parameters for encoding.
-- The coding of the subfields 'NumberQualifier' in Generic Number and 'TypeOfDigits' in
-- Generic Digits are irrelevant to the CAP;
-- the ASN.1 tags are sufficient to identify the parameter.
-- The ISUP format does not allow to exclude these subfields,
-- therefore the value is network operator specific.
--
-- The following parameters shall use Generic Number:
--  - AdditionalCallingPartyNumber for InitialDP
--  - AssistingSSPIPRoutingAddress for EstablishTemporaryConnection
--  - CorrelationID for AssistRequestInstructions
--  - CalledAddressValue for all occurrences, CallingAddressValue for all occurrences.
--
-- The following parameters shall use Generic Digits:
--  - CorrelationID in EstablishTemporaryConnection
--  - number in VariablePart
--  - digitsResponse in ReceivedInformationArg
--	- midCallEvents in oMidCallSpecificInfo and tMidCallSpecificInfo
--
-- In the digitsResponse and midCallevents, the digits may also include the '*', '#',
-- a, b, c and d digits by using the IA5 character encoding scheme. If the BCD even or
-- BCD odd encoding scheme is used, then the following encoding shall be applied for the
-- non-decimal characters: 1011 (*), 1100 (#).
--
-- AssistingSSPIPRoutingAddress in EstablishTemporaryConnection and CorrelationID in
-- AssistRequestInstructions may contain a Hex B digit as address signal. Refer to
-- Annex A.6 for the usage of the Hex B digit.
--
-- Note that when CorrelationID is transported in Generic Digits, then the digits shall
-- always be BCD encoded.

DpSpecificCriteria {PARAMETERS-BOUND : bound}::= CHOICE {
	applicationTimer					[1] ApplicationTimer,
	midCallControlInfo					[2]	MidCallControlInfo, 
	dpSpecificCriteriaAlt				[3] DpSpecificCriteriaAlt {bound}
	}
--  Exception handling: reception of DpSpecificCriteriaAlt shall be treated like 	
--  reception of no DpSpecificCriteria.
--  The gsmSCF may set a timer in the gsmSSF for the No_Answer event.
--  If the user does not answer the call within the allotted time,
--  then the gsmSSF reports the event to the gsmSCF.
--	The gsmSCF may define a criterion for the detection of DTMF digits during a call.
--	The gsmSCF may define other criteria in the dpSpecificCriteriaAlt alternative 
--  in future releases.

DpSpecificCriteriaAlt {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	...,
	changeOfPositionControlInfo			[0]	ChangeOfPositionControlInfo {bound}
	numberOfDigits					[1]	NumberOfDigits					OPTIONAL,
	interDigitTimeout				[2]	INTEGER (1..127)				OPTIONAL
	}
-- interDigitTimeout				duration in seconds.

DpSpecificInfoAlt {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	...,
	oServiceChangeSpecificInfo			[0] SEQUENCE {
		ext-basicServiceCode				[0] Ext-BasicServiceCode			OPTIONAL,
		...,
		initiatorOfServiceChange			[1] InitiatorOfServiceChange			OPTIONAL,
		natureOfServiceChange				[2] NatureOfServiceChange			OPTIONAL
		}
	tServiceChangeSpecificInfo			[1] SEQUENCE {
		ext-basicServiceCode				[0] Ext-BasicServiceCode			OPTIONAL,
		...,
		initiatorOfServiceChange			[1] InitiatorOfServiceChange			OPTIONAL,
		natureOfServiceChange				[2] NatureOfServiceChange			OPTIONAL
		}
	collectedInfoSpecificInfo			[2] SEQUENCE {
		calledPartyNumber				[0]	CalledPartyNumber			OPTIONAL,
		...
		}
	}
--	This datatype is for extension in future releases.

ElapsedTime ::= CHOICE {
	timeGPRSIfNoTariffSwitch			[0] INTEGER (0..86400),
	timeGPRSIfTariffSwitch				[1] SEQUENCE {
		timeGPRSSinceLastTariffSwitch		[0] INTEGER (0..86400),
		timeGPRSTariffSwitchInterval		[1] INTEGER (0..86400)					OPTIONAL
		}
	}
--	timeGPRSIfNoTariffSwitch is measured in seconds
--	timeGPRSSinceLastTariffSwitch and timeGPRSTariffSwitchInterval are measured in seconds

ElapsedTimeRollOver ::= CHOICE {
	rO-TimeGPRSIfNoTariffSwitch			[0] INTEGER (0..255),
	rO-TimeGPRSIfTariffSwitch			[1] SEQUENCE {
		rO-TimeGPRSSinceLastTariffSwitch 	[0] INTEGER (0..255)					OPTIONAL,
		rO-TimeGPRSTariffSwitchInterval		[1] INTEGER (0..255)					OPTIONAL
		}
	}
--	rO-TimeGPRSIfNoTariffSwitch, rO-TimeGPRSSinceLastTariffSwitch and
--	rO-TimeGPRSTariffSwitchInterval
--	present counters indicating the number of parameter range rollovers.

EndUserAddress {PARAMETERS-BOUND: bound} ::= SEQUENCE {
	pDPTypeOrganization					[0] OCTET STRING (SIZE(1)),
	pDPTypeNumber						[1] OCTET STRING (SIZE(1)),
	pDPAddress							[2] OCTET STRING (SIZE(
		bound.&minPDPAddressLength .. bound.&maxPDPAddressLength))					OPTIONAL
	}
-- Indicates the EndUserAddress, refer to 3GPP TS 29.060 [12] for the encoding.
-- The pDPTypeOrganization shall use the least significant 4 bits of the octet encoded.
-- The sender of this parameter shall set the most significant 4 bits of the octet to 1.
-- The receiver of this parameter shall ignore the most significant 4 bits of this octet.

ErrorTreatment ::= ENUMERATED {
	stdErrorAndInfo						(0),
	help								(1),
	repeatPrompt						(2)
	}
-- stdErrorAndInfomeans returning the 'ImproperCallerResponse' error in the event of an error
-- condition during collection of user info.

EventSpecificInformationBCSM {PARAMETERS-BOUND : bound} ::= CHOICE {
	routeSelectFailureSpecificInfo		[2] SEQUENCE {
		failureCause						[0] Cause {bound}						OPTIONAL,
		...
		},
	oCalledPartyBusySpecificInfo		[3] SEQUENCE {
		busyCause							[0] Cause {bound}						OPTIONAL,
		...
		},
	oNoAnswerSpecificInfo				[4] SEQUENCE {
		-- no specific info defined --
		...
		},
	oAnswerSpecificInfo					[5] SEQUENCE {
		destinationAddress					[50] CalledPartyNumber {bound}			OPTIONAL,
		or-Call								[51] NULL								OPTIONAL,
		forwardedCall						[52] NULL								OPTIONAL,
		chargeIndicator						[53] ChargeIndicator					OPTIONAL,
		ext-basicServiceCode				[54] Ext-BasicServiceCode				OPTIONAL,
		ext-basicServiceCode2				[55] Ext-BasicServiceCode				OPTIONAL,
		...
		},
	oMidCallSpecificInfo				[6] SEQUENCE {
		midCallEvents						[1] CHOICE {
			dTMFDigitsCompleted					[3] Digits {bound},
			dTMFDigitsTimeOut					[4] Digits {bound}
			}																		OPTIONAL,
		...
		},
	oDisconnectSpecificInfo				[7] SEQUENCE {
		releaseCause						[0] Cause {bound}						OPTIONAL,
		...
		},
	tBusySpecificInfo					[8] SEQUENCE {
		busyCause							[0] Cause {bound}						OPTIONAL,
		callForwarded						[50] NULL								OPTIONAL,
		routeNotPermitted					[51] NULL								OPTIONAL,
		forwardingDestinationNumber			[52] CalledPartyNumber {bound}			OPTIONAL,
		...
		},
	tNoAnswerSpecificInfo				[9] SEQUENCE {
		callForwarded						[50] NULL								OPTIONAL,
		forwardingDestinationNumber			[52] CalledPartyNumber {bound}			OPTIONAL,
		...
		},
	tAnswerSpecificInfo					[10] SEQUENCE {
		destinationAddress					[50] CalledPartyNumber {bound}			OPTIONAL,
		or-Call								[51] NULL								OPTIONAL,
		forwardedCall						[52] NULL								OPTIONAL,
		chargeIndicator						[53] ChargeIndicator					OPTIONAL,
		ext-basicServiceCode				[54] Ext-BasicServiceCode				OPTIONAL,
		ext-basicServiceCode2				[55] Ext-BasicServiceCode				OPTIONAL,
		...
		},
	tMidCallSpecificInfo				[11] SEQUENCE {
		midCallEvents						[1] CHOICE {
			dTMFDigitsCompleted					[3] Digits {bound},
			dTMFDigitsTimeOut					[4] Digits {bound}
			}																		OPTIONAL,
		...
		},
	tDisconnectSpecificInfo				[12] SEQUENCE {
		releaseCause						[0] Cause {bound}						OPTIONAL,
		...
		},
	oTermSeizedSpecificInfo				[13] SEQUENCE {
		locationInformation					[50] LocationInformation				OPTIONAL,
		...
		},
	callAcceptedSpecificInfo			[20] SEQUENCE {
		locationInformation					[50] LocationInformation				OPTIONAL,
		...
		},
	oAbandonSpecificInfo				[21] SEQUENCE {
		routeNotPermitted					[50] NULL								OPTIONAL,
		...
		},
	oChangeOfPositionSpecificInfo		[50] SEQUENCE {
		locationInformation					[50] LocationInformation				OPTIONAL,
		...,
        metDPCriteriaList                   [51] MetDPCriteriaList {bound}			OPTIONAL
		},
	tChangeOfPositionSpecificInfo		[51] SEQUENCE {
		locationInformation					[50] LocationInformation				OPTIONAL,
		...,
        metDPCriteriaList                   [51] MetDPCriteriaList {bound}			OPTIONAL
		},
	dpSpecificInfoAlt				    [52] DpSpecificInfoAlt {bound}
	}
-- Indicates the call related information specific to the event.

EventSpecificInformationSMS ::= CHOICE {
	o-smsFailureSpecificInfo			[0] SEQUENCE {
		failureCause						[0] MO-SMSCause							OPTIONAL,
		...
		},
	o-smsSubmissionSpecificInfo			[1] SEQUENCE {
		-- no specific info defined-
		...
		},
	t-smsFailureSpecificInfo			[2] SEQUENCE {
		failureCause						[0] MT-SMSCause							OPTIONAL,
		...
		},
	t-smsDeliverySpecificInfo			[3] SEQUENCE {
		-- no specific info defined-
		...
		}
	}

EventTypeBCSM ::= ENUMERATED {
	collectedInfo						(2),
	analyzedInformation					(3),
	routeSelectFailure					(4),
	oCalledPartyBusy					(5),
	oNoAnswer							(6),
	oAnswer								(7),
	oMidCall							(8),
	oDisconnect							(9),
	oAbandon							(10),
	termAttemptAuthorized				(12),
	tBusy								(13),
	tNoAnswer							(14),
	tAnswer								(15),
	tMidCall							(16),
	tDisconnect							(17),
	tAbandon							(18),
	oTermSeized							(19),
	callAccepted						(27),
	oChangeOfPosition					(50),
	tChangeOfPosition					(51),
	...,
	oServiceChange						(52),
	tServiceChange						(53)
	}
-- Indicates the BCSM detection point event.
-- Values analyzedInformation and termAttemptAuthorized may be used
-- for TDPs only.
-- Exception handling: reception of an unrecognized value shall be treated
-- like reception of no detection point.

EventTypeSMS ::= ENUMERATED {
	sms-CollectedInfo					(1),
	o-smsFailure						(2),
	o-smsSubmission						(3),
	sms-DeliveryRequested				(11),
	t-smsFailure						(12),
	t-smsDelivery						(13)
	}
-- Values sms-CollectedInfo and sms-DeliveryRequested may be used for TDPs only.

Extensions {PARAMETERS-BOUND : bound} ::= SEQUENCE SIZE (1..bound.&numOfExtensions) OF ExtensionField
ExtensionField ::= SEQUENCE {
	type								EXTENSION.&id ({SupportedExtensions}),
										-- shall identify the value of an EXTENSION type
	criticality							CriticalityType DEFAULT ignore,
	value								[1] EXTENSION.&ExtensionType ({SupportedExtensions}{@type}),
	...
	}
-- This parameter indicates an extension of an argument data type.
-- Its content is network operator specific

FCIBillingChargingCharacteristics {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
	bound.&minFCIBillingChargingLength .. bound.&maxFCIBillingChargingLength))
	(CONSTRAINED BY {-- shall be the result of the BER-encoded value of type --
	CAMEL-FCIBillingChargingCharacteristics {bound}})
-- This parameter indicates the billing and/or charging characteristics.
-- The violation of the UserDefinedConstraint shall be handled as an ASN.1 syntax error.

FCIGPRSBillingChargingCharacteristics {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
	bound.&minFCIBillingChargingLength .. bound.&maxFCIBillingChargingLength))
	(CONSTRAINED BY {-- shall be the result of the BER-encoded value of type -
	CAMEL-FCIGPRSBillingChargingCharacteristics {bound}})
-- This parameter indicates the GPRS billing and/or charging characteristics.
-- The violation of the UserDefinedConstraint shall be handled as an ASN.1 syntax error.

FCISMSBillingChargingCharacteristics {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
	bound.&minFCIBillingChargingLength .. bound.&maxFCIBillingChargingLength))
	(CONSTRAINED BY {-- shall be the result of the BER-encoded value of type -
	CAMEL-FCISMSBillingChargingCharacteristics {bound}})
-- This parameter indicates the SMS billing and/or charging characteristics.
-- The violation of the UserDefinedConstraint shall be handled as an ASN.1 syntax error.

ForwardServiceInteractionInd ::= SEQUENCE {
	conferenceTreatmentIndicator		[1] OCTET STRING (SIZE(1))					OPTIONAL,
	-- acceptConferenceRequest	'xxxx xx01'B
	-- rejectConferenceRequest	'xxxx xx10'B
	-- if absent from Connect or ContinueWithArgument,
	-- then CAMEL service does not affect conference treatment
	callDiversionTreatmentIndicator		[2] OCTET STRING (SIZE(1))					OPTIONAL,
	-- callDiversionAllowed		'xxxx xx01'B
	-- callDiversionNotAllowed	'xxxx xx10'B
	-- if absent from Connect or ContinueWithArgument,
	-- then CAMEL service does not affect call diversion treatment
	callingPartyRestrictionIndicator	[4] OCTET STRING (SIZE(1))					OPTIONAL,
	-- noINImpact				'xxxx xx01'B
	-- presentationRestricted	'xxxx xx10'B
	-- if absent from Connect or ContinueWithArgument,
	-- then CAMEL service does not affect calling party restriction treatment
...
	}

GapCriteria {PARAMETERS-BOUND : bound}::= CHOICE {
	basicGapCriteria					BasicGapCriteria {bound},
	compoundGapCriteria					CompoundCriteria {bound}
	}

GapIndicators ::= SEQUENCE {
	duration							[0] Duration,
	gapInterval							[1] Interval,
	...
	}
-- Indicates the call gapping characteristics.
-- No call gapping when gapInterval equals 0.

GapOnService ::= SEQUENCE {
	serviceKey							[0] ServiceKey,
	...
	}

GapTreatment {PARAMETERS-BOUND : bound} ::= CHOICE {
	informationToSend					[0] InformationToSend {bound},
	releaseCause						[1] Cause {bound}
	}
-- The default value for Cause is the same as in ISUP.

GenericNumber {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
	bound.&minGenericNumberLength .. bound.&maxGenericNumberLength))
-- Indicates a generic number. Refer to ETSI EN 300 356-1 [23] Generic number for encoding.

GenericNumbers {PARAMETERS-BOUND : bound} ::= SET SIZE(1..bound.&numOfGenericNumbers) OF GenericNumber {bound}

GPRS-QoS ::= CHOICE {
	short-QoS-format					[0]	QoS-Subscribed,
	long-QoS-format						[1]	Ext-QoS-Subscribed
	}
-- Short-QoS-format shall be sent for QoS in pre GSM release 99 format.
-- Long-QoS-format shall be sent for QoS in GSM release 99 (and beyond) format.
-- Which of the two QoS formats shall be sent is determined by which QoS
-- format is available in the SGSN at the time of sending.
-- Refer to 3GPP TS 29.002 [11] for encoding details of QoS-Subscribed and
-- Ext-QoS-Subscribed.

GPRS-QoS-Extension ::= SEQUENCE {
	supplement-to-long-QoS-format		[0] Ext2-QoS-Subscribed,
	...,
	additionalSupplement			[1] Ext3-QoS-Subscribed		OPTIONAL

	}

GPRSCause {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE
			(bound.&minGPRSCauseLength .. bound.&maxGPRSCauseLength))
-- Shall only include the cause value.

--	00000000   Unspecified
--  All other values shall be interpreted as 'Unspecified'.
--
-- This parameter indicates the cause for CAP interface related information.
-- The GPRSCause mapping to/from GTP cause values specified in the 3GPP TS 29.060 [12] and
-- to/from 3GPP TS 24.008 [9] GMM cause and SM cause values are outside scope of this document.

GPRSEvent ::= SEQUENCE {
	gPRSEventType						[0] GPRSEventType,
	monitorMode							[1] MonitorMode
	}
--  Indicates the GPRS event information for monitoring.

GPRSEventSpecificInformation {PARAMETERS-BOUND : bound} ::= CHOICE {

	attachChangeOfPositionSpecificInformation
										[0] SEQUENCE {
			locationInformationGPRS			[0] LocationInformationGPRS				OPTIONAL,
			...
			},

	pdp-ContextchangeOfPositionSpecificInformation
										[1] SEQUENCE {
			accessPointName					[0]	AccessPointName {bound}				OPTIONAL,
			chargingID						[1]	GPRSChargingID						OPTIONAL,
			locationInformationGPRS			[2] LocationInformationGPRS 			OPTIONAL,
			endUserAddress					[3]	EndUserAddress {bound}				OPTIONAL,
			qualityOfService				[4]	QualityOfService					OPTIONAL,
			timeAndTimeZone					[5]	TimeAndTimezone {bound} 			OPTIONAL,
			...,
			gGSNAddress						[6]	GSN-Address							OPTIONAL
			},

	detachSpecificInformation			[2] SEQUENCE {
			initiatingEntity				[0] InitiatingEntity					OPTIONAL,
			...,
			routeingAreaUpdate				[1]	NULL								OPTIONAL
			},

	disconnectSpecificInformation		[3] SEQUENCE {
			initiatingEntity				[0] InitiatingEntity					OPTIONAL,
			...,
			routeingAreaUpdate				[1]	NULL								OPTIONAL
			},

	pDPContextEstablishmentSpecificInformation
										[4]	SEQUENCE {
			accessPointName					[0]	AccessPointName {bound}				OPTIONAL,
			endUserAddress					[1]	EndUserAddress {bound}				OPTIONAL,
			qualityOfService				[2]	QualityOfService					OPTIONAL,
			locationInformationGPRS			[3] LocationInformationGPRS 			OPTIONAL,
			timeAndTimeZone					[4]	TimeAndTimezone {bound} 			OPTIONAL,
			pDPInitiationType				[5] PDPInitiationType					OPTIONAL,
			...,
			secondaryPDP-context			[6] NULL								OPTIONAL
			},

	pDPContextEstablishmentAcknowledgementSpecificInformation
										[5]	SEQUENCE {
			accessPointName					[0]	AccessPointName {bound}				OPTIONAL,
			chargingID						[1] GPRSChargingID						OPTIONAL,
			endUserAddress					[2]	EndUserAddress {bound}				OPTIONAL,
			qualityOfService				[3]	QualityOfService					OPTIONAL,
			locationInformationGPRS			[4] LocationInformationGPRS 			OPTIONAL,
			timeAndTimeZone					[5]	TimeAndTimezone {bound} 			OPTIONAL,
			...,
			gGSNAddress						[6]	GSN-Address							OPTIONAL
			}
		}

GPRSEventType ::= ENUMERATED {
	attach								(1),
	attachChangeOfPosition				(2),
	detached							(3),
	pdp-ContextEstablishment			(11),
	pdp-ContextEstablishmentAcknowledgement (12),
	disonnect							(13),
	pdp-ContextChangeOfPosition			(14)
	}

InbandInfo {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	messageID							[0] MessageID {bound},
	numberOfRepetitions					[1] INTEGER (1..127)						OPTIONAL,
	duration							[2] INTEGER (0..32767)						OPTIONAL,
	interval							[3] INTEGER (0..32767)						OPTIONAL,
...
	}
-- Interval is the time in seconds between each repeated announcement. Duration is the total
-- amount of time in seconds, including repetitions and intervals.
-- The end of announcement is either the end of duration or numberOfRepetitions,
-- whatever comes first.
-- duration with value 0 indicates infinite duration

InformationToSend {PARAMETERS-BOUND : bound} ::= CHOICE {
	inbandInfo							[0] InbandInfo {bound},
	tone								[1] Tone
	}

InitiatingEntity ::= ENUMERATED {
	mobileStation						(0),
	sgsn							(1),
	hlr							(2),
	ggsn							(3)
	}

InitiatorOfServiceChange ::= ENUMERATED {
	a-side							(0),
	b-side							(1)
	}

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

IPRoutingAddress {PARAMETERS-BOUND : bound} ::= CalledPartyNumber {bound}
-- Indicates the routeing address for the IP.

IPSSPCapabilities {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
	bound.&minIPSSPCapabilitiesLength .. bound.&maxIPSSPCapabilitiesLength))
--  Indicates the gsmSRF resources available. The parameter has two parts, a standard and a
--  bilateral part. The standard part indicates capabilities defined as optional in CAP
--  that shall be recognised (but not necessarily supported) by a gsmSCF. The bilateral
--  part contains further information that is not specified in this standard, but which is set
--  according to bilateral agreements between network operators and/or equipment vendors.
--  The last octet of the standard part is indicated by bit 7 being set to 0, otherwise Bit 7 of
--  a standard part octet is set to 1 indicating that the standard part continues in the following
--  octet. Coding is as follows:

--  Octet 1					Standard Part for CAP
--  Bit	Value				Meaning
--  0	0					IPRoutingAddress not supported
--		1					IPRoutingAddress supported
--  1	0					VoiceBack not supported
--		1					VoiceBack supported
--  2	0					VoiceInformation not supported, via speech recognition
--		1					VoiceInformation supported, via speech recognition
--  3	0					VoiceInformation not supported, via voice recognition
--		1					VoiceInformation supported, via voice recognition
--  4	0					Generation of voice announcements from Text not supported
--		1					Generation of voice announcements from Text supported
--  5	-					Reserved
--  6	-					Reserved
--  7	0					End of standard part
-- 		1					This value is reserved in CAP
--
--  Octets 2 to 4			Bilateral Part: Network operator/equipment vendor specific

LegOrCallSegment {PARAMETERS-BOUND : bound} ::= CHOICE {
	callSegmentID						[0] CallSegmentID {bound},
	legID								[1] LegID
	}

LegType ::= OCTET STRING (SIZE(1))
leg1 LegType	::= '01'H
leg2 LegType	::= '02'H

LocationInformationGPRS		::= SEQUENCE {
	cellGlobalIdOrServiceAreaIdOrLAI	[0] OCTET STRING (SIZE(5..7))				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,
	userCSGInformation                  [7] UserCSGInformation                      OPTIONAL

}
-- cellGlobalIdOrServiceAreaIdOrLAI shall contain the value part of the
-- CellGlobalIdOrServiceAreaIdFixedLength type or the LAIFixedLength type (i.e. excluding tags
-- and lengths) as defined in 3GPP TS 29.002 [13].
-- sai-Present indicates that the cellGlobalIdOrServiceAreaIdOrLAI parameter contains
-- a Service Area Identity.
-- UserCSGInformation contains the CSG ID, Access mode, and the CSG Membership Indication in the
-- case the Access mode is Hybrid Mode, as defined in 3GPP TS 23.060 [93].


LocationNumber {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE (
	bound.&minLocationNumberLength .. bound.&maxLocationNumberLength))
-- Indicates the Location Number for the calling party.
-- Refer to ETSI EN 300 356-1 [23] for encoding.

LowLayerCompatibility {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE (
	bound.&minLowLayerCompatibilityLength .. bound.&maxLowLayerCompatibilityLength))
-- indicates the LowLayerCompatibility for the calling party.
-- Refer to 3GPP TS 24.008 [9] for encoding.
-- It shall be coded as in the value part defined in 3GPP TS 24.008.
-- i.e. the 3GPP TS 24.008 IEI and 3GPP TS 24.008 octet length indicator
-- shall not be included.

MessageID {PARAMETERS-BOUND : bound} ::= CHOICE {
	elementaryMessageID					[0] Integer4,
	text								[1] SEQUENCE {
		messageContent						[0] IA5String (SIZE(
			bound.&minMessageContentLength .. bound.&maxMessageContentLength)),
		attributes							[1] OCTET STRING (SIZE(
			bound.&minAttributesLength .. bound.&maxAttributesLength)) 				OPTIONAL
	},
	elementaryMessageIDs				[29] SEQUENCE SIZE (1.. bound.&numOfMessageIDs) OF Integer4,
	variableMessage						[30] SEQUENCE {
		elementaryMessageID					[0] Integer4,
		variableParts						[1] SEQUENCE SIZE (1..5) OF VariablePart {bound}
		}
	}
-- Use of the text parameter is network operator/equipment vendor specific.

MetDPCriteriaList {PARAMETERS-BOUND : bound} ::= SEQUENCE SIZE (1..bound.&numOfChangeOfPositionControlInfo) OF MetDPCriterion {bound}

MetDPCriterion {PARAMETERS-BOUND : bound} ::= CHOICE {
	enteringCellGlobalId				[0] CellGlobalIdOrServiceAreaIdFixedLength,
	leavingCellGlobalId					[1] CellGlobalIdOrServiceAreaIdFixedLength,
	enteringServiceAreaId				[2] CellGlobalIdOrServiceAreaIdFixedLength,
	leavingServiceAreaId				[3] CellGlobalIdOrServiceAreaIdFixedLength,
	enteringLocationAreaId				[4] LAIFixedLength,
	leavingLocationAreaId				[5] LAIFixedLength,
	inter-SystemHandOverToUMTS			[6] NULL,
	inter-SystemHandOverToGSM			[7] NULL,
	inter-PLMNHandOver					[8] NULL,
	inter-MSCHandOver					[9] NULL,
	metDPCriterionAlt					[10] MetDPCriterionAlt {bound}
}
-- The enteringCellGlobalId and leavingCellGlobalId shall contain a Cell Global Identification. 
-- The enteringServiceAreaId and leavingServiceAreaId shall contain a Service Area Identification.

MetDPCriterionAlt {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	...
	}

MidCallControlInfo ::= SEQUENCE {
	minimumNumberOfDigits				[0]	INTEGER (1..30) DEFAULT 1,
	maximumNumberOfDigits				[1]	INTEGER (1..30) DEFAULT 30,
	endOfReplyDigit						[2]	OCTET STRING (SIZE (1..2))				OPTIONAL,
	cancelDigit							[3]	OCTET STRING (SIZE (1..2))				OPTIONAL,
	startDigit							[4]	OCTET STRING (SIZE (1..2))				OPTIONAL,
	interDigitTimeout					[6]	INTEGER (1..127) DEFAULT 10,
	...
	}
--
-- - minimumNumberOfDigits			specifies the minumum number of digits that shall be collected
-- - maximumNumberOfDigits			specifies the maximum number of digits that shall be collected
-- - endOfReplyDigit				specifies the digit string that denotes the end of the digits
--									to be collected.
-- - cancelDigit					specifies the digit string that indicates that the input shall
--									be erased and digit collection shall start afresh.
-- - startDigit						specifies the digit string that denotes the start of the digits
--									to be collected.
-- - interDigitTimeout				specifies the maximum duration in seconds between successive
--									digits.
--
-- endOfReplyDigit, cancelDigit and startDigit shall contain digits in the range 0..9, '*' and '#'
-- only. The collected digits string, reported to the gsmSCF, shall include the endOfReplyDigit and
-- the startDigit, if present.
--
-- endOfReplyDigit, cancelDigit and startDigit shall be encoded as BCD digits. Each octet shall
-- contain one BCD digit, in the 4 least significant bits of each octet.
-- The following encoding shall be used for the over-decadic digits: 1011 (*), 1100 (#).

MonitorMode ::= ENUMERATED {
	interrupted							(0),
	notifyAndContinue					(1),
	transparent							(2)
	}
-- Indicates the event is relayed and/or processed by the SSP.
-- Transparent means that the gsmSSF or gprsSSF does not notify the gsmSCF of the event.
-- For the use of this parameter refer to the procedure descriptions in clause 11.
-- For the RequestNotificationCharging operation, 'interrupted' shall not be used in MonitorMode.

MO-SMSCause ::= ENUMERATED {
	systemFailure						(0),
	unexpectedDataValue					(1),
	facilityNotSupported				(2),
	sM-DeliveryFailure					(3),
 	releaseFromRadioInterface			(4)
	}
-- MO SMS error values which are reported to gsmSCF.
-- Most of these values are received from the SMSC as a response to
-- MO-ForwardSM operation.

MT-SMSCause ::= OCTET STRING (SIZE (1))
-- This variable is sent to the gsmSCF for a Short Message delivery failure
-- notification.
-- If the delivery failure is due to RP-ERROR RPDU received from the MS,
-- then MT-SMSCause shall be set to the RP-Cause component in the RP-ERROR RPDU.
-- Refer to 3GPP TS 24.011 [10] for the encoding of RP-Cause values.
-- Otherwise, if the delivery failure is due to internal failure in the MSC or SGSN
-- or time-out from the MS, then MT-SMSCause shall be set to 'Protocol error,
-- unspecified', as defined in 3GPP TS 24.011 [10].

NAOliInfo ::= OCTET STRING (SIZE (1))
--  NA Oli information takes the same value as defined in ANSI T1.113-1995 [92]
--  e.g.	'3D'H  - Decimal value 61 - Cellular Service (Type 1)
--			'3E'H  - Decimal value 62 - Cellular Service (Type 2)
--			'3F'H  - Decimal value 63 - Cellular Service (roaming)

NatureOfServiceChange ::= ENUMERATED {
	userInitiated						(0),
	networkInitiated					(1)
	}

NumberOfDigits ::= INTEGER (1..255)
--  Indicates the number of digits to be collected.

OCSIApplicable ::= NULL
--  Indicates that the Originating CAMEL Subscription Information, if present, shall be
--  applied on the outgoing call leg created with a Connect operation. For the use of this
--  parameter see 3GPP TS 23.078 [7].

OriginalCalledPartyID {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
	bound.&minOriginalCalledPartyIDLength .. bound.&maxOriginalCalledPartyIDLength))
--  Indicates the original called number. Refer to ETSI EN 300 356-1 [23] Original Called Number
--  for encoding.

PDPID ::= OCTET STRING (SIZE (1))
--	PDP Identifier is a counter used to identify a specific PDP Context within a control
--	relationship between gprsSSF and gsmSCF.

PDPInitiationType ::= ENUMERATED {
	mSInitiated							(0),
	networkInitiated					(1)
	}

QualityOfService ::= SEQUENCE {
	requested-QoS						[0]	GPRS-QoS								OPTIONAL,
	subscribed-QoS						[1]	GPRS-QoS								OPTIONAL,
	negotiated-QoS						[2]	GPRS-QoS								OPTIONAL,
	...,
	requested-QoS-Extension				[3]	GPRS-QoS-Extension						OPTIONAL,
	subscribed-QoS-Extension			[4]	GPRS-QoS-Extension						OPTIONAL,
	negotiated-QoS-Extension			[5]	GPRS-QoS-Extension						OPTIONAL
	}

ReceivingSideID ::= CHOICE {
	receivingSideID						[1] LegType
	}
-- used to identify LegID in operations sent from gsmSSF to gsmSCF

RedirectingPartyID {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE (
	bound.&minRedirectingPartyIDLength .. bound.&maxRedirectingPartyIDLength))
-- Indicates redirecting number.
-- Refer to ETSI EN 300 356-1 [23] Redirecting number for encoding.

RequestedInformationList {PARAMETERS-BOUND : bound} ::= SEQUENCE SIZE (1.. numOfInfoItems) OF RequestedInformation {bound}

RequestedInformationTypeList ::= SEQUENCE SIZE (1.. numOfInfoItems) OF RequestedInformationType

RequestedInformation {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	requestedInformationType			[0] RequestedInformationType,
	requestedInformationValue			[1] RequestedInformationValue {bound},
...
	}

RequestedInformationType ::= ENUMERATED {
	callAttemptElapsedTime				(0),
	callStopTime						(1),
	callConnectedElapsedTime			(2),
	releaseCause						(30)
	}

RequestedInformationValue {PARAMETERS-BOUND : bound} ::= CHOICE {
	callAttemptElapsedTimeValue			[0] INTEGER (0..255),
	callStopTimeValue					[1] DateAndTime,
	callConnectedElapsedTimeValue		[2] Integer4,
	releaseCauseValue					[30] Cause {bound}
	}
-- The callAttemptElapsedTimeValue is specified in seconds. The unit for the
-- callConnectedElapsedTimeValue is 100 milliseconds

RPCause ::= OCTET STRING (SIZE (1))
-- RP cause according to 3GPP TS 24.011 [10] or 3GPP TS 29.002 [11].
-- GsmSCF shall send this cause in the ReleaseSMS operation.
-- For a MO-SMS service, the MSC or SGSN shall send the RP Cause to the originating MS.
-- It shall be used to overwrite the RP-Cause element in the RP-ERROR RPDU.
-- For a MT-SMS service, the MSC or SGSN shall send the RP Cause to the sending SMS-GMSC.
-- It shall be used to overwrite the RP-Cause element in the RP-ERROR RPDU.

ScfID {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
	bound.&minScfIDLength .. bound.&maxScfIDLength))
-- defined by network operator.
-- Indicates the gsmSCF identity.

SCIBillingChargingCharacteristics {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE (
	bound.&minSCIBillingChargingLength .. bound.&maxSCIBillingChargingLength))
	(CONSTRAINED BY {-- shall be the result of the BER-encoded value of type --
	CAMEL-SCIBillingChargingCharacteristics})
-- Indicates AOC information to be sent to a Mobile Station
-- The violation of the UserDefinedConstraint shall be handled as an ASN.1 syntax error.

SCIGPRSBillingChargingCharacteristics {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE (
	bound.&minSCIBillingChargingLength .. bound.&maxSCIBillingChargingLength))
	(CONSTRAINED BY {-- shall be the result of the BER-encoded value of type -
	CAMEL-SCIGPRSBillingChargingCharacteristics})
-- Indicates AOC information to be sent to a Mobile Station
-- The violation of the UserDefinedConstraint shall be handled as an ASN.1 syntax error.

SendingSideID ::= CHOICE {sendingSideID [0] LegType}
-- used to identify LegID in operations sent from gsmSCF to gsmSSF

ServiceInteractionIndicatorsTwo ::= SEQUENCE {
	forwardServiceInteractionInd		[0]	ForwardServiceInteractionInd			OPTIONAL,
	-- applicable to operations InitialDP, Connect and ContinueWithArgument.
	backwardServiceInteractionInd		[1]	BackwardServiceInteractionInd			OPTIONAL,
	-- applicable to operations Connect and ContinueWithArgument.
	bothwayThroughConnectionInd			[2] BothwayThroughConnectionInd				OPTIONAL,
	-- applicable to ConnectToResource and EstablishTemporaryConnection
	connectedNumberTreatmentInd			[4]	ConnectedNumberTreatmentInd				OPTIONAL,
	-- applicable to Connect and ContinueWithArgument
	nonCUGCall							[13] NULL									OPTIONAL,
	-- applicable to Connect and ContinueWithArgument
	-- indicates that no parameters for CUG shall be used for the call (i.e. the call shall
	-- be a non-CUG call).
	-- If not present, it indicates one of three things:
	--  a) continue with modified CUG information (when one or more of either CUG Interlock Code
	--     and Outgoing Access Indicator are present), or
	--  b) continue with original CUG information (when neither CUG Interlock Code or Outgoing
	--     Access Indicator are present), i.e. no IN impact.
	--  c) continue with the original non-CUG call.
	holdTreatmentIndicator				[50] OCTET STRING (SIZE(1))					OPTIONAL,
	-- applicable to InitialDP, Connect and ContinueWithArgument
	-- acceptHoldRequest	'xxxx xx01'B
	-- rejectHoldRequest	'xxxx xx10'B
	-- if absent from Connect or ContinueWithArgument,
	-- then CAMEL service does not affect call hold treatment
	cwTreatmentIndicator				[51] OCTET STRING (SIZE(1))					OPTIONAL,
	-- applicable to InitialDP, Connect and ContinueWithArgument
	-- acceptCw	'xxxx xx01'B
	-- rejectCw	'xxxx xx10'B
	-- if absent from Connect or ContinueWithArgument,
	-- then CAMEL service does not affect call waiting treatment
	ectTreatmentIndicator				[52] OCTET STRING (SIZE(1))					OPTIONAL,
	-- applicable to InitialDP, Connect and ContinueWithArgument
	-- acceptEctRequest	'xxxx xx01'B
	-- rejectEctRequest	'xxxx xx10'B
	-- if absent from Connect or ContinueWithArgument,
	-- then CAMEL service does not affect explicit call transfer treatment
	...
	}

SGSNCapabilities ::= OCTET STRING (SIZE (1))

--  Indicates the SGSN capabilities. The coding of the parameter is as follows:
--  Bit	Value				Meaning
--  0	0					AoC not supported by SGSN
--		1					AoC supported by SGSN
--  1	-					This bit is reserved in CAP V.3
--  2	-					This bit is reserved in CAP V.3
--  3	-					This bit is reserved in CAP V.3
--  4	-					This bit is reserved in CAP V.3
--  5	-					This bit is reserved in CAP V.3
--  6	-					This bit is reserved in CAP V.3
--  7	-					This bit is reserved in CAP V.3

SMS-AddressString ::= AddressString (SIZE (1 .. maxSMS-AddressStringLength))
-- This data type is used to transport CallingPartyNumber for MT-SMS.
-- If this data type is used for MO-SMS, then the maximum number of digits shall be 16.
-- An SMS-AddressString may contain an alphanumeric character string. In this 
-- case, a nature of address indicator '101'B is used, in accordance with 
-- 3GPP TS 23.040 [6]. The address is coded in accordance with the GSM 7-bit 
-- default alphabet definition and the SMS packing rules as specified in 
-- 3GPP TS 23.038 [15] in this case.

maxSMS-AddressStringLength INTEGER ::= 11

SMSEvent ::= SEQUENCE {
	eventTypeSMS						[0] EventTypeSMS,
	monitorMode							[1] MonitorMode
	}

TariffSwitchInterval ::= INTEGER (1 .. 86400)
-- TariffSwitchInterval is measured in 1 second units

TimeAndTimezone {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
	bound.&minTimeAndTimezoneLength .. bound.&maxTimeAndTimezoneLength))
--  Indicates the time and timezone, relative to GMT. This parameter is BCD encoded.
--  The year digit indicating millenium occupies bits 0-3 of the first octet, and the year
--  digit indicating century occupies bits 4-7 of the first octet.
--  The year digit indicating decade occupies bits 0-3 of the second octet, whilst the digit
--  indicating the year within the decade occupies bits 4-7 of the second octet.
--  The most significant month digit occupies bits 0-3 of the third octet, and the least
--  significant month digit occupies bits 4-7 of the third octet.
--  The most significant day digit occupies bits 0-3 of the fourth octet, and the least
--  significant day digit occupies bits 4-7 of the fourth octet.
--  The most significant hours digit occupies bits 0-3 of the fifth octet, and the least
--  significant hours digit occupies bits 4-7 of the fifth octet.
--  The most significant minutes digit occupies bits 0-3 of the sixth octet, and the least
--  significant minutes digit occupies bits 4-7 of the sixth octet.
--  The most significant seconds digit occupies bits 0-3 of the seventh octet, and the least
--  significant seconds digit occupies bits 4-7 of the seventh octet.
--
--  The timezone information occupies the eighth octet. For the encoding of Timezone refer to
--  3GPP TS 23.040 [6].
--
--  The BCD digits are packed and encoded as follows:
--
--  Bit	 7  6  5   4  |  3  2  1  0
--       2nd digit    | 1st digit          Octet 1
--       3rd digit    | 4th digit          Octet 2
--           	         ..                   ..
--       nth digit    | n-1th digit        Octet m
--
--       0000		digit 0
--       0001		digit 1
--       0010		digit 2
--       0011		digit 3
--       0100		digit 4
--       0101		digit 5
--       0110		digit 6
--       0111		digit 7
--       1000		digit 8
--       1001		digit 9
--       1010		spare
--       1011		spare
--       1100		spare
--       1101		spare
--       1110		spare
--       1101		spare
--
-- where the leftmost bit of the digit is either bit 7 or bit 3 of the octet.

TimeIfNoTariffSwitch ::= INTEGER(0..864000)
-- TimeIfNoTariffSwitch is measured in 100 millisecond intervals

TimeIfTariffSwitch ::= SEQUENCE {
	timeSinceTariffSwitch				[0] INTEGER(0..864000),
	tariffSwitchInterval				[1] INTEGER(1..864000)						OPTIONAL
	}
-- timeSinceTariffSwitch and tariffSwitchInterval are measured in 100 millisecond intervals

TimeInformation ::= CHOICE {
	timeIfNoTariffSwitch				[0] TimeIfNoTariffSwitch,
	timeIfTariffSwitch					[1] TimeIfTariffSwitch
	}
-- Indicates call duration information

TimerID ::= ENUMERATED {
	tssf								(0)
	}
-- Indicates the timer to be reset.

TimerValue ::= Integer4
-- Indicates the timer value (in seconds).

Tone ::= SEQUENCE {
	toneID								[0] Integer4,
	duration							[1] Integer4								OPTIONAL,
...
	}
-- The duration specifies the length of the tone in seconds, value 0 indicates infinite duration.

TPDataCodingScheme ::= OCTET STRING (SIZE (1))
-- TP Data Coding Scheme according to 3GPP TS 23.040 [6]

TPProtocolIdentifier ::= OCTET STRING (SIZE (1))
-- indicates the protocol used above the SM-Transfer Layer as specified in 3GPP TS 23.040 [6].

TPShortMessageSpecificInfo ::= OCTET STRING (SIZE (1))
-- contains the 1st octect of the applicable TPDU or the SMS-COMMAND TPDU as specified in
-- 3GPP TS 23.040 [6].

TPValidityPeriod ::= OCTET STRING (SIZE (1..7))
-- indicates the length of the validity period or the absolute time of the validity
-- period termination as specified in 3GPP TS 23.040 [6].
-- the length of ValidityPeriod is either 1 octet or 7 octets

TransferredVolume ::= CHOICE {
	volumeIfNoTariffSwitch				[0] INTEGER (0..4294967295),
	volumeIfTariffSwitch 				[1] SEQUENCE {
		volumeSinceLastTariffSwitch			[0]	INTEGER (0..4294967295),
		volumeTariffSwitchInterval			[1]	INTEGER (0..4294967295)				OPTIONAL
		}
	}
--	volumeIfNoTariffSwitch, volumeSinceLastTariffSwitch and volumeTariffSwitchInterval
--	are measured in bytes.

TransferredVolumeRollOver ::= CHOICE {
	rO-VolumeIfNoTariffSwitch			[0] INTEGER (0..255),
	rO-VolumeIfTariffSwitch				[1] SEQUENCE {
		rO-VolumeSinceLastTariffSwitch		[0]	INTEGER (0..255)					OPTIONAL,
		rO-VolumeTariffSwitchInterval		[1]	INTEGER (0..255)					OPTIONAL
		}
	}
--	rO-VolumeIfNoTariffSwitch, rO-VolumeSinceLastTariffSwitch and rO-VolumeTariffSwitchInterval
--	present counters indicating the number of parameter range rollovers.

UnavailableNetworkResource ::= ENUMERATED {
	unavailableResources				(0),
	componentFailure					(1),
	basicCallProcessingException		(2),
	resourceStatusFailure				(3),
	endUserFailure						(4)
	}
-- Indicates the network resource that failed.

VariablePart {PARAMETERS-BOUND : bound} ::= CHOICE {
	integer								[0] Integer4,
	number								[1] Digits {bound},	-- Generic digits
	time								[2] OCTET STRING (SIZE(2)),	-- HH: MM, BCD coded
	date								[3] OCTET STRING (SIZE(4)),	-- YYYYMMDD, BCD coded
	price								[4] OCTET STRING (SIZE(4))
	}
--  Indicates the variable part of the message. Time is BCD encoded.
--  The most significant hours digit occupies bits 0-3 of the first octet, and the least
--  significant digit occupies bits 4-7 of the first octet. The most significant minutes digit
--  occupies bits 0-3 of the second octet, and the least significant digit occupies bits 4-7
--  of the second octet.
--
--  Date is BCD encoded. The year digit indicating millenium occupies bits 0-3 of the first octet,
--  and the year digit indicating century occupies bits 4-7 of the first octet. The year digit
--  indicating decade occupies bits 0-3 of the second octet, whilst the digit indicating the year
--  within the decade occupies bits 4-7 of the second octet.
--  The most significant month digit occupies bits 0-3 of the third octet, and the least
--  significant month digit occupies bits 4-7 of the third octet. The most significant day digit
--  occupies bits 0-3 of the fourth octet, and the least significant day digit occupies bits 4-7
--  of the fourth octet.
--  Price is BCD encoded. The digit indicating hundreds of thousands occupies bits 0-3 of the
--  first octet, and the digit indicating tens of thousands occupies bits 4-7 of the first octet.
--  The digit indicating thousands occupies bits 0-3 of the second octet, whilst the digit
--  indicating hundreds occupies bits 4-7 of the second octet. The digit indicating tens occupies
--  bits 0-3 of the third octet, and the digit indicating 0 to 9 occupies bits 4-7 of the third
--  octet. The tenths digit occupies bits 0-3 of the fourth octet, and the hundredths digit
--  occupies bits 4-7 of the fourth octet.
--
--  For the encoding of digits in an octet, refer to the timeAndtimezone parameter

-- The Definition of range of constants follows
numOfInfoItems INTEGER ::= 4

END

-- 5.2	Error types
CAP-errortypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3) cap-errortypes(51) version8(7)}

-- This module contains the type definitions for the CAP Error Types.
-- Where a parameter of type CHOICE is tagged with a specific tag value, the tag is automatically
-- replaced with an EXPLICIT tag of the same value.

DEFINITIONS IMPLICIT TAGS ::= BEGIN

IMPORTS

	ros-InformationObjects,
	datatypes,
	errorcodes
FROM CAP-object-identifiers {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
umts-network(1) modules(3) cap-object-identifiers(100) version8(7)}

	ERROR
FROM Remote-Operations-Information-Objects ros-InformationObjects

	InvokeID,
	UnavailableNetworkResource
FROM CAP-datatypes datatypes

	errcode-canceled,
	errcode-cancelFailed,
	errcode-eTCFailed,
	errcode-improperCallerResponse,
	errcode-missingCustomerRecord,
	errcode-missingParameter,
	errcode-parameterOutOfRange,
	errcode-requestedInfoError,
	errcode-systemFailure,
	errcode-taskRefused,
	errcode-unavailableResource,
	errcode-unexpectedComponentSequence,
	errcode-unexpectedDataValue,
	errcode-unexpectedParameter,
	errcode-unknownLegID,
	errcode-unknownCSID,
	errcode-unknownPDPID
FROM CAP-errorcodes errorcodes

;

-- TYPE DEFINITION FOR CAP ERROR TYPES FOLLOWS

canceled ERROR ::= {
	CODE	errcode-canceled
	}
-- The operation has been canceled.

cancelFailed ERROR ::= {
	PARAMETER	SEQUENCE {
		problem					[0] ENUMERATED {
			unknownOperation		(0),
			tooLate					(1),
			operationNotCancellable	(2)
			},
		operation				[1] InvokeID,
		...
		}
	CODE	errcode-cancelFailed
	}
-- The operation failed to be canceled.

eTCFailed ERROR ::= {
	CODE	errcode-eTCFailed
	}
-- The establish temporary connection failed.

improperCallerResponse ERROR ::= {
	CODE	errcode-improperCallerResponse
	}
-- The caller response was not as expected.

missingCustomerRecord ERROR ::= {
	CODE	errcode-missingCustomerRecord
	}
-- The Service Logic Program could not be found in the gsmSCF.

missingParameter ERROR ::= {
	CODE	errcode-missingParameter
	}
-- An expected optional parameter was not received.

parameterOutOfRange ERROR ::= {
	CODE	errcode-parameterOutOfRange
	}
-- The parameter was not as expected (e.g. missing or out of range).

requestedInfoError ERROR ::= {
	PARAMETER	ENUMERATED {
			unknownRequestedInfo		(1),
			requestedInfoNotAvailable	(2)
			}
	CODE	errcode-requestedInfoError
	}
-- The requested information cannot be found.

systemFailure ERROR ::= {
	PARAMETER	UnavailableNetworkResource
	CODE	errcode-systemFailure
	}
-- The operation could not be completed due to a system failure at the serving physical entity.

taskRefused ERROR ::= {
	PARAMETER	ENUMERATED {
			generic						(0),
			unobtainable				(1),
			congestion					(2)
			}
	CODE	errcode-taskRefused
	}
-- An entity normally capable of the task requested cannot or chooses not to perform the task at
-- this time. This includes error situations like congestion and unobtainable address as used in
-- e.g. the connect operation.)

unavailableResource ERROR ::= {
	CODE	errcode-unavailableResource
	}
-- A requested resource is not available at the serving entity.

unexpectedComponentSequence ERROR ::= {
	CODE	errcode-unexpectedComponentSequence
	}
-- An incorrect sequence of Components was received (e.g. 'DisconnectForwardConnection'
-- followed by 'PlayAnnouncement').

unexpectedDataValue ERROR ::= {
	CODE	errcode-unexpectedDataValue
	}
-- The data value was not as expected (e.g. route number expected but billing number received)

unexpectedParameter ERROR ::= {
	CODE	errcode-unexpectedParameter
	}
-- A parameter received was not expected.

unknownLegID ERROR ::= {
	CODE	errcode-unknownLegID
	}
-- Leg not known to the gsmSSF.

unknownCSID ERROR ::= {
	CODE 	errcode-unknownCSID
	}
-- Call Segment not known to the gsmSSF.

unknownPDPID ERROR ::= {
	CODE	errcode-unknownPDPID
	}
-- PDPID not known by the receiving entity.

END

-- 5.3	Operation codes
CAP-operationcodes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3) cap-operationcodes(53) version8(7)}

DEFINITIONS ::= BEGIN

IMPORTS

	ros-InformationObjects
FROM CAP-object-identifiers {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
umts-network(1) modules(3) cap-object-identifiers(100) version8(7)}

	Code
FROM Remote-Operations-Information-Objects ros-InformationObjects

;

-- the operations are grouped by the identified operation packages.

-- gsmSCF activation Package
	opcode-initialDP					Code ::= local: 0
-- gsmSCF/gsmSRF activation of assist Package
	opcode-assistRequestInstructions			Code ::= local: 16
-- Assist connection establishment Package
	opcode-establishTemporaryConnection			Code ::= local: 17
-- Generic disconnect resource Package
	opcode-disconnectForwardConnection			Code ::= local: 18
	opcode-dFCWithArgument					Code ::= local: 86
-- Non-assisted connection establishment Package

	opcode-connectToResource				Code ::= local: 19
-- Connect Package (elementary gsmSSF function)
	opcode-connect						Code ::= local: 20
-- Call handling Package (elementary gsmSSF function)
	opcode-releaseCall					Code ::= local: 22
-- BCSM Event handling Package
	opcode-requestReportBCSMEvent				Code ::= local: 23
	opcode-eventReportBCSM					Code ::= local: 24
-- gsmSSF call processing Package
	opcode-collectInformation				Code ::= local: 27
	opcode-continue						Code ::= local: 31
-- gsmSCF call initiation Package
	opcode-initiateCallAttempt				Code ::= local: 32
-- Timer Package
	opcode-resetTimer					Code ::= local: 33
-- Billing Package
	opcode-furnishChargingInformation			Code ::= local: 34
-- Charging Package
	opcode-applyCharging					Code ::= local: 35
	opcode-applyChargingReport				Code ::= local: 36
-- Traffic management Package
	opcode-callGap						Code ::= local: 41
-- Call report Package
	opcode-callInformationReport				Code ::= local: 44
	opcode-callInformationRequest				Code ::= local: 45
-- Signalling control Package
	opcode-sendChargingInformation				Code ::= local: 46
-- Specialized resource control Package
	opcode-playAnnouncement					Code ::= local: 47
	opcode-promptAndCollectUserInformation			Code ::= local: 48
	opcode-specializedResourceReport			Code ::= local: 49
-- Cancel Package
	opcode-cancel						Code ::= local: 53
-- Activity Test Package
	opcode-activityTest					Code ::= local: 55
-- CPH Response Package
	opcode-continueWithArgument				Code ::= local: 88
	opcode-disconnectLeg					Code ::= local: 90
	opcode-moveLeg						Code ::= local: 93
	opcode-splitLeg						Code ::= local: 95
-- Exception Inform Package
	opcode-entityReleased					Code ::= local: 96
-- Play Tone Package
	opcode-playTone						Code ::= local: 97

-- Sms Activation Package
	opcode-initialDPSMS					Code ::= local: 60
-- Sms Billing Package
	opcode-furnishChargingInformationSMS			Code ::= local: 61
-- Sms Connect Package
	opcode-connectSMS					Code ::= local: 62
-- Sms Event Handling Package
	opcode-requestReportSMSEvent				Code ::= local: 63
	opcode-eventReportSMS					Code ::= local: 64
-- Sms Processing Package
	opcode-continueSMS					Code ::= local: 65
-- Sms Release Package	
	opcode-releaseSMS					Code ::= local: 66
-- Sms Timer Package
	opcode-resetTimerSMS					Code ::= local: 67

-- Gprs Activity Test Package
	opcode-activityTestGPRS					Code ::= local: 70
-- Gprs Charging Package
	opcode-applyChargingGPRS				Code ::= local: 71
	opcode-applyChargingReportGPRS				Code ::= local: 72
-- Gprs Cancel Package
	opcode-cancelGPRS					Code ::= local: 73
-- Gprs Connect Package
	opcode-connectGPRS					Code ::= local: 74
-- Gprs Processing Package
	opcode-continueGPRS					Code ::= local: 75
-- Gprs Exception Information Package
	opcode-entityReleasedGPRS				Code ::= local: 76
-- Gprs Billing Package
	opcode-furnishChargingInformationGPRS			Code ::= local: 77
-- Gprs Scf Activation Package
	opcode-initialDPGPRS					Code ::= local: 78
-- Gprs Release Package
	opcode-releaseGPRS					Code ::= local: 79
-- Gprs Event Handling Package
	opcode-eventReportGPRS					Code ::= local: 80
	opcode-requestReportGPRSEvent				Code ::= local: 81
-- Gprs Timer Package
	opcode-resetTimerGPRS					Code ::= local: 82
-- Gprs Charge Advice Package
	opcode-sendChargingInformationGPRS			Code ::= local: 83

END

-- 5.4	Error codes
CAP-errorcodes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3) cap-errorcodes(57) version8(7)}

DEFINITIONS ::= BEGIN

IMPORTS

	ros-InformationObjects
FROM CAP-object-identifiers {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
umts-network(1) modules(3) cap-object-identifiers(100) version8(7)}

	Code
FROM Remote-Operations-Information-Objects ros-InformationObjects

;

errcode-canceled								Code ::= local: 0
errcode-cancelFailed							Code ::= local: 1
errcode-eTCFailed								Code ::= local: 3
errcode-improperCallerResponse					Code ::= local: 4
errcode-missingCustomerRecord					Code ::= local: 6
errcode-missingParameter						Code ::= local: 7
errcode-parameterOutOfRange						Code ::= local: 8
errcode-requestedInfoError						Code ::= local: 10
errcode-systemFailure							Code ::= local: 11
errcode-taskRefused								Code ::= local: 12
errcode-unavailableResource						Code ::= local: 13
errcode-unexpectedComponentSequence				Code ::= local: 14
errcode-unexpectedDataValue						Code ::= local: 15
errcode-unexpectedParameter						Code ::= local: 16
errcode-unknownLegID							Code ::= local: 17
errcode-unknownPDPID							Code ::= local: 50
errcode-unknownCSID								Code ::= local: 51

END

-- 5.5	Classes
CAP-classes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1)
modules(3) cap-classes(54) version8(7)}

DEFINITIONS ::= BEGIN

IMPORTS

	ROS-OBJECT-CLASS,
	Code
FROM Remote-Operations-Information-Objects ros-InformationObjects

	id-rosObject-gprsSSF,
	id-rosObject-gsmSRF,
	id-rosObject-gsmSSF,
	id-rosObject-smsSSF-V3,
	id-rosObject-smsSSF-V4,
	ros-InformationObjects,
	gsmSSF-gsmSCF-Protocol,
	gsmSCF-gsmSRF-Protocol,
	smsSSF-gsmSCF-Protocol,
	gprsSSF-gsmSCF-Protocol
FROM CAP-object-identifiers {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
umts-network(1) modules(3) cap-object-identifiers(100) version8(7)}

	capSsfToScfGeneric,
	capAssistHandoffssfToScf,
	capScfToSsfGeneric
FROM CAP-gsmSSF-gsmSCF-pkgs-contracts-acs gsmSSF-gsmSCF-Protocol

	gsmSRF-gsmSCF-contract
FROM CAP-gsmSCF-gsmSRF-pkgs-contracts-acs gsmSCF-gsmSRF-Protocol

	cap3SMS,
	cap4SMS
FROM CAP-smsSSF-gsmSCF-pkgs-contracts-acs smsSSF-gsmSCF-Protocol

	capGprsSsfToScf,
	capGsmScfToGprsSsf
FROM CAP-gprsSSF-gsmSCF-pkgs-contracts-acs gprsSSF-gsmSCF-Protocol

	CriticalityType
FROM CS2-datatypes {itu-t(0) identified-organization(4) etsi(0) inDomain(1) in-network(1) cs2(20)
modules(0) in-cs2-datatypes(0) version1(0)}

;

gsmSSF ROS-OBJECT-CLASS ::= {
	INITIATES	{capSsfToScfGeneric|
				capAssistHandoffssfToScf}
	RESPONDS	{capScfToSsfGeneric}
	ID			id-rosObject-gsmSSF}
-- The Rel-6 'gsmSSF' definition uses the Rel-6 capSsfToScfGeneric, capAssistHandoffssfToScf
-- and capScfToSsfGeneric CONTRACT definitions.

gsmSRF ROS-OBJECT-CLASS ::= {
	INITIATES	{gsmSRF-gsmSCF-contract}
	ID			id-rosObject-gsmSRF}
-- The Rel-6 'gsmSRF' definition uses the Rel-6 gsmSRF-gsmSCF-contract CONTRACT definition.

smsSSF-V3 ROS-OBJECT-CLASS ::= {
	INITIATES	{cap3SMS}
	ID			id-rosObject-smsSSF-V3}
-- The Rel-6 'smsSSF-V3' definition uses the Rel-6 cap3SMS CONTRACT definition. The smsSSF-V3
-- ROS-OBJECT-CLASS is used for MO SMS control.

smsSSF-V4 ROS-OBJECT-CLASS ::= {
	INITIATES	{cap4SMS}
	ID			id-rosObject-smsSSF-V4}
-- The Rel-6 'smsSSF-V4' definition uses the Rel-6 cap4SMS CONTRACT definition. The smsSSF-V4
-- ROS-OBJECT-CLASS is used for MT SMS control.

gprsSSF ROS-OBJECT-CLASS ::= {
	INITIATES	{capGprsSsfToScf}
	RESPONDS	{capGsmScfToGprsSsf}
	ID			id-rosObject-gprsSSF}
-- The Rel-6 'gprsSSF' definition uses the Rel-6 capGprsSsfTogsmScf and capGsmScfToGprsSsf
-- CONTRACT definitions.

EXTENSION ::= CLASS {
	&ExtensionType,
	&criticality		CriticalityType DEFAULT ignore,
	&id	Code}

WITH SYNTAX {
	EXTENSION-SYNTAX	&ExtensionType
	CRITICALITY			&criticality
	IDENTIFIED BY		&id
	}
-- Only value Global OBJECT IDENTIFIER is used for &id;
-- Only the value ignore (0) is used for &criticality.

-- Example of addition of an extension named 'Some Network Specific Indicator' of type
-- BOOLEAN, with criticality 'ignore' and identified by global Object Identifier.
--
-- Example of definition using the above information object class:
--
-- SomeNetworkSpecificIndicator EXTENSION ::= {
-- 	EXTENSION-SYNTAX	BOOLEAN
--	CRITICALITY			ignore
--	IDENTIFIED BY		global : {itu-t(0) identified-organization(4) organisation(0) gsm(1)
--								 capextension(2)}
--	}

-- Example of transfer syntax, using the ExtensionField datatype as specified in clause 5.
-- Assuming the value of the extension is set to TRUE, the extensions parameter becomes
-- a Sequence of type {itu-t(0) identified-organization(4) organisation(0) gsm(1)
-- capextension(2)}, criticality ENUMERATED ::= ignore(0) and value [1] EXPLICIT BOOLEAN
-- ::= TRUE.
--
-- Use of ITU-T Recommendation Q.1400 [52] defined Extension is for further study.
-- In addition the extension mechanism marker is used to identify the future minor additions
-- to CAP.

firstExtension EXTENSION ::= {
	EXTENSION-SYNTAX	NULL
	CRITICALITY			ignore
	IDENTIFIED BY		global : {itu-t(0) identified-organization(4) organisation(0) gsm(1)
						capextension(2)}
	}
-- firstExtension is just an example.

SupportedExtensions EXTENSION ::= {firstExtension, ...
-- full set of network operator extensions --
}
-- SupportedExtension is the full set of the network operator extensions.

PARAMETERS-BOUND ::= CLASS {
	&minAccessPointNameLength					INTEGER,
	&maxAccessPointNameLength					INTEGER,
	&minAChBillingChargingLength				INTEGER,
	&maxAChBillingChargingLength				INTEGER,
	&minAttributesLength						INTEGER,
	&maxAttributesLength						INTEGER,
	&maxBearerCapabilityLength					INTEGER,
	&minCalledPartyBCDNumberLength				INTEGER,
	&maxCalledPartyBCDNumberLength				INTEGER,
	&minCalledPartyNumberLength					INTEGER,
	&maxCalledPartyNumberLength					INTEGER,
	&minCallingPartyNumberLength				INTEGER,
	&maxCallingPartyNumberLength				INTEGER,
	&minCallResultLength						INTEGER,
	&maxCallResultLength						INTEGER,
	&minCarrierLength							INTEGER,
	&maxCarrierLength							INTEGER,
	&minCauseLength								INTEGER,
	&maxCauseLength								INTEGER,
	&minDigitsLength							INTEGER,
	&maxDigitsLength							INTEGER,
	&minFCIBillingChargingDataLength			INTEGER,
	&maxFCIBillingChargingDataLength			INTEGER,
	&minFCIBillingChargingLength				INTEGER,
	&maxFCIBillingChargingLength				INTEGER,
	&minGenericNumberLength						INTEGER,
	&maxGenericNumberLength						INTEGER,
	&minGPRSCauseLength							INTEGER,
	&maxGPRSCauseLength							INTEGER,
	&minIPSSPCapabilitiesLength					INTEGER,
	&maxIPSSPCapabilitiesLength					INTEGER,
	&minLocationNumberLength					INTEGER,
	&maxLocationNumberLength					INTEGER,
	&minLowLayerCompatibilityLength             INTEGER,
	&maxLowLayerCompatibilityLength             INTEGER,
	&minMessageContentLength					INTEGER,
	&maxMessageContentLength					INTEGER,
	&minOriginalCalledPartyIDLength				INTEGER,
	&maxOriginalCalledPartyIDLength				INTEGER,
	&minPDPAddressLength						INTEGER,
	&maxPDPAddressLength						INTEGER,
	&minRedirectingPartyIDLength				INTEGER,
	&maxRedirectingPartyIDLength				INTEGER,
	&minScfIDLength								INTEGER,
	&maxScfIDLength								INTEGER,
	&minSCIBillingChargingLength				INTEGER,
	&maxSCIBillingChargingLength				INTEGER,
	&minTimeAndTimezoneLength					INTEGER,
	&maxTimeAndTimezoneLength					INTEGER,
	&numOfBCSMEvents							INTEGER,
	&numOfChangeOfPositionControlInfo			INTEGER,
	&numOfCSs									INTEGER,
	&numOfSMSEvents								INTEGER,
	&numOfGPRSEvents							INTEGER,
	&numOfExtensions							INTEGER,
	&numOfGenericNumbers						INTEGER,
	&numOfMessageIDs							INTEGER}

WITH SYNTAX {
	MINIMUM-FOR-ACCESS-POINT-NAME				&minAccessPointNameLength
	MAXIMUM-FOR-ACCESS-POINT-NAME				&maxAccessPointNameLength
	MINIMUM-FOR-ACH-BILLING-CHARGING			&minAChBillingChargingLength
	MAXIMUM-FOR-ACH-BILLING-CHARGING			&maxAChBillingChargingLength
	MINIMUM-FOR-ATTRIBUTES						&minAttributesLength
	MAXIMUM-FOR-ATTRIBUTES						&maxAttributesLength
	MAXIMUM-FOR-BEARER-CAPABILITY				&maxBearerCapabilityLength
	MINIMUM-FOR-CALLED-PARTY-BCD-NUMBER			&minCalledPartyBCDNumberLength
	MAXIMUM-FOR-CALLED-PARTY-BCD-NUMBER			&maxCalledPartyBCDNumberLength
	MINIMUM-FOR-CALLED-PARTY-NUMBER				&minCalledPartyNumberLength
	MAXIMUM-FOR-CALLED-PARTY-NUMBER				&maxCalledPartyNumberLength
	MINIMUM-FOR-CALLING-PARTY-NUMBER			&minCallingPartyNumberLength
	MAXIMUM-FOR-CALLING-PARTY-NUMBER			&maxCallingPartyNumberLength
	MINIMUM-FOR-CALL-RESULT						&minCallResultLength
	MAXIMUM-FOR-CALL-RESULT						&maxCallResultLength
	MINIMUM-FOR-CARRIER							&minCarrierLength
	MAXIMUM-FOR-CARRIER							&maxCarrierLength
	MINIMUM-FOR-CAUSE							&minCauseLength
	MAXIMUM-FOR-CAUSE							&maxCauseLength
	MINIMUM-FOR-DIGITS							&minDigitsLength
	MAXIMUM-FOR-DIGITS							&maxDigitsLength
	MINIMUM-FOR-FCI-BILLING-CHARGING-DATA		&minFCIBillingChargingDataLength
	MAXIMUM-FOR-FCI-BILLING-CHARGING-DATA		&maxFCIBillingChargingDataLength
	MINIMUM-FOR-FCI-BILLING-CHARGING			&minFCIBillingChargingLength
	MAXIMUM-FOR-FCI-BILLING-CHARGING			&maxFCIBillingChargingLength
	MINIMUM-FOR-GENERIC-NUMBER					&minGenericNumberLength
	MAXIMUM-FOR-GENERIC-NUMBER					&maxGenericNumberLength
	MINIMUM-FOR-GPRS-CAUSE-LENGTH				&minGPRSCauseLength
	MAXIMUM-FOR-GPRS-CAUSE-LENGTH				&maxGPRSCauseLength
	MINIMUM-FOR-IP-SSP-CAPABILITIES				&minIPSSPCapabilitiesLength
	MAXIMUM-FOR-IP-SSP-CAPABILITIES				&maxIPSSPCapabilitiesLength
	MINIMUM-FOR-LOCATION-NUMBER					&minLocationNumberLength
	MAXIMUM-FOR-LOCATION-NUMBER					&maxLocationNumberLength
    MINIMUM-FOR-LOW-LAYER-COMPATIBILITY			&minLowLayerCompatibilityLength
	MAXIMUM-FOR-LOW-LAYER-COMPATIBILITY 		&maxLowLayerCompatibilityLength
	MINIMUM-FOR-MESSAGE-CONTENT					&minMessageContentLength
	MAXIMUM-FOR-MESSAGE-CONTENT					&maxMessageContentLength
	MINIMUM-FOR-ORIGINAL-CALLED-PARTY-ID		&minOriginalCalledPartyIDLength
	MAXIMUM-FOR-ORIGINAL-CALLED-PARTY-ID		&maxOriginalCalledPartyIDLength
	MINIMUM-FOR-PDP-ADDRESS-LENGTH				&minPDPAddressLength
	MAXIMUM-FOR-PDP-ADDRESS-LENGTH				&maxPDPAddressLength
	MINIMUM-FOR-REDIRECTING-ID					&minRedirectingPartyIDLength
	MAXIMUM-FOR-REDIRECTING-ID					&maxRedirectingPartyIDLength
	MINIMUM-FOR-GSMSCF-ID						&minScfIDLength
	MAXIMUM-FOR-GSMSCF-ID						&maxScfIDLength
	MINIMUM-FOR-SCI-BILLING-CHARGING			&minSCIBillingChargingLength
	MAXIMUM-FOR-SCI-BILLING-CHARGING			&maxSCIBillingChargingLength
	MINIMUM-FOR-TIME-AND-TIMEZONE				&minTimeAndTimezoneLength
	MAXIMUM-FOR-TIME-AND-TIMEZONE				&maxTimeAndTimezoneLength
	NUM-OF-BCSM-EVENT							&numOfBCSMEvents
	NUM-OF-CHANGE-OF-POSITION-CONTROL-INFO		&numOfChangeOfPositionControlInfo
	NUM-OF-CSS									&numOfCSs
	NUM-OF-SMS-EVENTS							&numOfSMSEvents
	NUM-OF-GPRS-EVENTS							&numOfGPRSEvents
	NUM-OF-EXTENSIONS							&numOfExtensions
	NUM-OF-GENERIC-NUMBERS						&numOfGenericNumbers
	NUM-OF-MESSAGE-IDS							&numOfMessageIDs}

cAPSpecificBoundSet PARAMETERS-BOUND ::= {
	MINIMUM-FOR-ACCESS-POINT-NAME				1
	MAXIMUM-FOR-ACCESS-POINT-NAME				100
	MINIMUM-FOR-ACH-BILLING-CHARGING			5
	MAXIMUM-FOR-ACH-BILLING-CHARGING			177
	MINIMUM-FOR-ATTRIBUTES						2
	MAXIMUM-FOR-ATTRIBUTES						10
	MAXIMUM-FOR-BEARER-CAPABILITY				11
	MINIMUM-FOR-CALLED-PARTY-BCD-NUMBER			1
	MAXIMUM-FOR-CALLED-PARTY-BCD-NUMBER			41
	MINIMUM-FOR-CALLED-PARTY-NUMBER				2
	MAXIMUM-FOR-CALLED-PARTY-NUMBER				18
	MINIMUM-FOR-CALLING-PARTY-NUMBER			2
	MAXIMUM-FOR-CALLING-PARTY-NUMBER			10
	MINIMUM-FOR-CALL-RESULT						12
	MAXIMUM-FOR-CALL-RESULT						193
	MINIMUM-FOR-CARRIER							4
	MAXIMUM-FOR-CARRIER							4
	MINIMUM-FOR-CAUSE							2
	MAXIMUM-FOR-CAUSE							32
	MINIMUM-FOR-DIGITS							2
	MAXIMUM-FOR-DIGITS							16
	MINIMUM-FOR-FCI-BILLING-CHARGING-DATA		1
	MAXIMUM-FOR-FCI-BILLING-CHARGING-DATA		160
	MINIMUM-FOR-FCI-BILLING-CHARGING			5
	MAXIMUM-FOR-FCI-BILLING-CHARGING			225
	MINIMUM-FOR-GENERIC-NUMBER					3
	MAXIMUM-FOR-GENERIC-NUMBER					11
	MINIMUM-FOR-GPRS-CAUSE-LENGTH				1
	MAXIMUM-FOR-GPRS-CAUSE-LENGTH				1
	MINIMUM-FOR-IP-SSP-CAPABILITIES				1
	MAXIMUM-FOR-IP-SSP-CAPABILITIES				4
	MINIMUM-FOR-LOCATION-NUMBER					2
	MAXIMUM-FOR-LOCATION-NUMBER					10
	MINIMUM-FOR-LOW-LAYER-COMPATIBILITY		    1
	MAXIMUM-FOR-LOW-LAYER-COMPATIBILITY		    16
	MINIMUM-FOR-MESSAGE-CONTENT					1
	MAXIMUM-FOR-MESSAGE-CONTENT					127
	MINIMUM-FOR-ORIGINAL-CALLED-PARTY-ID		2
	MAXIMUM-FOR-ORIGINAL-CALLED-PARTY-ID		10
	MINIMUM-FOR-PDP-ADDRESS-LENGTH				1
	MAXIMUM-FOR-PDP-ADDRESS-LENGTH				63
	MINIMUM-FOR-REDIRECTING-ID					2
	MAXIMUM-FOR-REDIRECTING-ID					10
	MINIMUM-FOR-GSMSCF-ID						2
	MAXIMUM-FOR-GSMSCF-ID						10
	MINIMUM-FOR-SCI-BILLING-CHARGING			4
	MAXIMUM-FOR-SCI-BILLING-CHARGING			225
	MINIMUM-FOR-TIME-AND-TIMEZONE				8
	MAXIMUM-FOR-TIME-AND-TIMEZONE				8
	NUM-OF-BCSM-EVENT							30
	NUM-OF-CHANGE-OF-POSITION-CONTROL-INFO		10
	NUM-OF-CSS									127
	NUM-OF-SMS-EVENTS							10
	NUM-OF-GPRS-EVENTS							10
	NUM-OF-EXTENSIONS							10
	NUM-OF-GENERIC-NUMBERS						5
	NUM-OF-MESSAGE-IDS							16}

END

-- 5.6	Object IDentifiers (IDs)
CAP-object-identifiers {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
umts-network(1) modules(3) cap-object-identifiers(100) version8(7)}

DEFINITIONS ::= BEGIN

-- This module assigns object identifiers for Modules, Packages, Contracts and ACs
-- used by CAP

-- For Modules from TC, ROS,
tc-Messages										OBJECT IDENTIFIER ::=
	{itu-t recommendation q 773 modules(2) messages(1) version3(3)}

tc-NotationExtensions							OBJECT IDENTIFIER ::=
	{itu-t recommendation q 775 modules(2) notation-extension (4) version1(1)}

ros-InformationObjects							OBJECT IDENTIFIER ::=
	{joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)}


-- For CAP Modules
datatypes										OBJECT IDENTIFIER ::=
	{itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3)
	cap-datatypes(52) version8(7)}

errortypes										OBJECT IDENTIFIER ::=
	{itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3)
	cap-errortypes(51) version8(7)}

operationcodes									OBJECT IDENTIFIER ::=
	{itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3)
	cap-operationcodes(53) version8(7)}

errorcodes										OBJECT IDENTIFIER ::=
	{itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3)
	cap-errorcodes(57) version8(7)}

classes											OBJECT IDENTIFIER ::=
	{itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3)
	cap-classes(54) version8(7)}


gsmSSF-gsmSCF-Operations						OBJECT IDENTIFIER ::=
	{itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3)
	cap-gsmSSF-gsmSCF-ops-args(101) version8(7)}
-- The Object Identifier 'gsmSSF-gsmSCF-Operations' is updated to version8(7) in Rel-6, so
-- other modules can IMPORT Rel-6 Operation definitions related to call control.

gsmSSF-gsmSCF-Protocol							OBJECT IDENTIFIER ::=
	{itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3)
	cap-gsmSSF-gsmSCF-pkgs-contracts-acs(102) version8(7)}
-- The Object Identifier 'gsmSSF-gsmSCF-Protocol' is updated to version8(7) in Rel-6, so
-- other modules can IMPORT Rel-6 Protocol definitions related to call control.

gsmSCF-gsmSRF-Operations						OBJECT IDENTIFIER ::=
	{itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3)
	cap-gsmSCF-gsmSRF-ops-args(103) version8(7)}
-- The Object Identifier 'gsmSCF-gsmSRF-Operations' is updated to version8(7) in Rel-6, so
-- other modules can IMPORT Rel-6 Operation definitions related to gsmSRF control.

gsmSCF-gsmSRF-Protocol							OBJECT IDENTIFIER ::=
	{itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3)
	cap-gsmSCF-gsmSRF-pkgs-contracts-acs(104) version8(7)}
-- The Object Identifier 'gsmSCF-gsmSRF-Protocol' is updated to version8(7) in Rel-6, so
-- other modules can IMPORT Rel-6 Protocol definitions related to gsmSRF control.

sms-Operations									OBJECT IDENTIFIER ::=
	{itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3)
	cap-SMS-ops-args(105) version8(7)}
-- The Object Identifier 'sms-Operations' is updated to version8(7) in Rel-6, so other
-- modules can IMPORT Rel-6 Operation definitions related to SMS control.

smsSSF-gsmSCF-Protocol							OBJECT IDENTIFIER ::=
	{itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3)
	cap-smsSSF-gsmSCF-pkgs-contracts-acs(106) version8(7)}
-- The Object Identifier 'smsSSF-gsmSCF-Protocol' is updated to version8(7) in Rel-6, so
-- other modules can IMPORT Rel-6 Protocol definitions related to SMS control.

gprsSSF-gsmSCF-Operations						OBJECT IDENTIFIER ::=
	{itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3)
	cap-GPRS-ops-args(107) version8(7)}
-- The Object Identifier 'gprsSSF-gsmSCF-Operations' is updated to version8(7) in Rel-6, so
-- other modules can IMPORT Rel-6 Operation definitions related to GPRS control.

gprsSSF-gsmSCF-Protocol							OBJECT IDENTIFIER ::=
	{itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3)
	cap-gprsSSF-gsmSCF-pkgs-contracts-acs(108) version8(7)}
-- The Object Identifier 'gprsSSF-gsmSCF-Protocol' is updated to version8(7) in Rel-6, so
-- other modules can IMPORT Rel-6 Protocol definitions related to GPRS control.

id-CAP											OBJECT IDENTIFIER ::=
	{itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
	umts-network(1) cap4(22)}

id-CAP3											OBJECT IDENTIFIER ::=
	{itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
	umts-network(1) cap3(20)}

id-CAPOE										OBJECT IDENTIFIER ::=
	{itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
	umts-network(1) cap4OE(23)}

id-CAP3OE										OBJECT IDENTIFIER ::=
	{itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
	umts-network(1) cap3OE(21)}

id-ac											OBJECT IDENTIFIER ::= {id-CAP		ac(3)}
id-acE											OBJECT IDENTIFIER ::= {id-CAPOE		ac(3)}
id-ac3E											OBJECT IDENTIFIER ::= {id-CAP3OE	ac(3)}
id-as											OBJECT IDENTIFIER ::= {id-CAP		as(5)}
id-asE											OBJECT IDENTIFIER ::= {id-CAPOE		as(5)}
id-rosObject									OBJECT IDENTIFIER ::= {id-CAP		rosObject(25)}
id-contract										OBJECT IDENTIFIER ::= {id-CAP		contract(26)}
id-contract3									OBJECT IDENTIFIER ::= {id-CAP3		contract(26)}
id-contractE									OBJECT IDENTIFIER ::= {id-CAPOE		contract(26)}
id-package										OBJECT IDENTIFIER ::= {id-CAP		package(27)}
id-packageE										OBJECT IDENTIFIER ::= {id-CAPOE		package(27)}

-- for ac, as, rosObject, contract and package, the values are identical to ITU-T Recommendation
-- Q.1218 [49]


-- ROS Objects

id-rosObject-gsmSCF								OBJECT IDENTIFIER ::= {id-rosObject 4}
id-rosObject-gsmSSF								OBJECT IDENTIFIER ::= {id-rosObject 5}
id-rosObject-gsmSRF								OBJECT IDENTIFIER ::= {id-rosObject 6}
id-rosObject-gprsSSF							OBJECT IDENTIFIER ::= {id-rosObject 7}
id-rosObject-smsSSF-V3							OBJECT IDENTIFIER ::= {id-rosObject 8}
id-rosObject-smsSSF-V4							OBJECT IDENTIFIER ::= {id-rosObject 9}


-- Application Contexts

-- gsmSSF/gsmSCF AC
id-ac-CAP-gsmSSF-scfGenericAC					OBJECT IDENTIFIER ::= {id-acE 4}
id-ac-CAP-gsmSSF-scfAssistHandoffAC				OBJECT IDENTIFIER ::= {id-acE 6}
id-ac-CAP-scf-gsmSSFGenericAC					OBJECT IDENTIFIER ::= {id-acE 8}

-- gsmSRF/gsmSCF AC
id-ac-gsmSRF-gsmSCF								OBJECT IDENTIFIER ::= {id-ac 14}

-- gprsSSF/gsmSCF AC
id-ac-CAP-gprsSSF-gsmSCF-AC						OBJECT IDENTIFIER ::= {id-ac3E 50}
id-ac-CAP-gsmSCF-gprsSSF-AC						OBJECT IDENTIFIER ::= {id-ac3E 51}

-- gprsSSF/gsmSCF or gsmSSF/gsmSCF AC
id-ac-cap3-sms-AC								OBJECT IDENTIFIER ::= {id-ac3E 61}
id-ac-cap4-sms-AC								OBJECT IDENTIFIER ::= {id-acE 61}


-- Contracts

-- gsmSSF/gsmSCF Contracts
id-CAPSsfToScfGeneric							OBJECT IDENTIFIER ::= {id-contractE 3}
id-CAPAssistHandoffssfToScf						OBJECT IDENTIFIER ::= {id-contractE 5}
id-CAPScfToSsfGeneric							OBJECT IDENTIFIER ::= {id-contractE 6}

-- gsmSRF/gsmSCF Contracts
id-contract-gsmSRF-gsmSCF						OBJECT IDENTIFIER ::= {id-contract 13}

-- gprsSSF/gsmSCF Contracts
id-capGprsSsfTogsmScf							OBJECT IDENTIFIER ::= {id-contract 14}
id-capGsmScfToGprsSsf							OBJECT IDENTIFIER ::= {id-contract 15}

-- gprsSSF/gsmSCF or gsmSSF/gsmSCF Contracts
id-cap3SmsSsfTogsmScf							OBJECT IDENTIFIER ::= {id-contract3 16}
id-cap4SmsSsfTogsmScf							OBJECT IDENTIFIER ::= {id-contract 16}


-- Operation Packages

-- gsmSSF/gsmSCF Operation Packages
id-package-scfActivation						OBJECT IDENTIFIER ::= {id-package 11}
id-package-gsmSRF-scfActivationOfAssist			OBJECT IDENTIFIER ::= {id-package 15}
id-package-assistConnectionEstablishment		OBJECT IDENTIFIER ::= {id-package 16}
id-package-genericDisconnectResource			OBJECT IDENTIFIER ::= {id-package 17}
id-package-nonAssistedConnectionEstablishment	OBJECT IDENTIFIER ::= {id-package 18}
id-package-connect								OBJECT IDENTIFIER ::= {id-package 19}
id-package-callHandling							OBJECT IDENTIFIER ::= {id-packageE 20}
id-package-bcsmEventHandling					OBJECT IDENTIFIER ::= {id-package 21}
id-package-ssfCallProcessing					OBJECT IDENTIFIER ::= {id-packageE 24}
id-package-scfCallInitiation					OBJECT IDENTIFIER ::= {id-package 25}
id-package-timer								OBJECT IDENTIFIER ::= {id-package 26}
id-package-billing								OBJECT IDENTIFIER ::= {id-package 27}
id-package-charging								OBJECT IDENTIFIER ::= {id-package 28}
id-package-trafficManagement					OBJECT IDENTIFIER ::= {id-package 29}
id-package-callReport							OBJECT IDENTIFIER ::= {id-package 32}
id-package-signallingControl					OBJECT IDENTIFIER ::= {id-package 33}
id-package-activityTest							OBJECT IDENTIFIER ::= {id-package 34}
id-package-cancel								OBJECT IDENTIFIER ::= {id-packageE 36}
id-package-cphResponse							OBJECT IDENTIFIER ::= {id-package 37}
id-package-exceptionInform						OBJECT IDENTIFIER ::= {id-package 38}
id-package-playTone								OBJECT IDENTIFIER ::= {id-package 39}

-- gsmSRF/gsmSCF Operation Packages
id-package-specializedResourceControl			OBJECT IDENTIFIER ::= {id-package 42}
id-package-gsmSRF-scfCancel						OBJECT IDENTIFIER ::= {id-package 43}

-- gprsSSF/gsmSCF Operation Packages
id-package-gprsContinue							OBJECT IDENTIFIER ::= {id-package 49}
id-package-gprsExceptionInformation				OBJECT IDENTIFIER ::= {id-package 50}
id-package-gprsScfActivation					OBJECT IDENTIFIER ::= {id-package 51}
id-package-gprsConnect							OBJECT IDENTIFIER ::= {id-package 52}
id-package-gprsRelease							OBJECT IDENTIFIER ::= {id-package 53}
id-package-gprsEventHandling					OBJECT IDENTIFIER ::= {id-package 54}
id-package-gprsTimer							OBJECT IDENTIFIER ::= {id-package 55}
id-package-gprsBilling							OBJECT IDENTIFIER ::= {id-package 56}
id-package-gprsCharging							OBJECT IDENTIFIER ::= {id-package 57}
id-package-gprsActivityTest						OBJECT IDENTIFIER ::= {id-package 58}
id-package-gprsCancel							OBJECT IDENTIFIER ::= {id-package 59}
id-package-gprsChargeAdvice						OBJECT IDENTIFIER ::= {id-package 60}

-- gprsSSF/gsmSCF or gsmSSF/gsmSCF Operation Packages
id-package-smsActivation						OBJECT IDENTIFIER ::= {id-package 61}
id-package-smsConnect							OBJECT IDENTIFIER ::= {id-package 62}
id-package-smsContinue							OBJECT IDENTIFIER ::= {id-package 63}
id-package-smsRelease							OBJECT IDENTIFIER ::= {id-package 64}
id-package-smsEventHandling						OBJECT IDENTIFIER ::= {id-package 65}
id-package-smsBilling							OBJECT IDENTIFIER ::= {id-package 66}
id-package-smsTimer								OBJECT IDENTIFIER ::= {id-package 67}


-- Abstract Syntaxes

-- gsmSSF/gsmSCF Abstract Syntaxes
id-as-gsmSSF-scfGenericAS						OBJECT IDENTIFIER ::= {id-asE 4}
id-as-assistHandoff-gsmSSF-scfAS				OBJECT IDENTIFIER ::= {id-asE 6}
id-as-scf-gsmSSFGenericAS						OBJECT IDENTIFIER ::= {id-asE 7}

-- gsmSRF/gsmSCF Abstract Syntaxes
id-as-basic-gsmSRF-gsmSCF						OBJECT IDENTIFIER ::= {id-as 14}

-- gprsSSF/gsmSCF Abstract Syntaxes
id-as-gprsSSF-gsmSCF-AS							OBJECT IDENTIFIER ::= {id-as 50}
id-as-gsmSCF-gprsSSF-AS							OBJECT IDENTIFIER ::= {id-as 51}

-- gprsSSF/gsmSCF or gsmSSF/gsmSCF Abstract Syntaxes
id-as-smsSSF-gsmSCF-AS							OBJECT IDENTIFIER ::= {id-as 61}

END

-- 5.7	User Abort Data
CAP-U-ABORT-Data {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3) cap-u-abort-data(110) version8(7)}

DEFINITIONS ::= BEGIN

id-CAP-U-ABORT-Reason OBJECT IDENTIFIER ::= {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-Network(1) as(1) cap-u-abort-reason(2) version3(2)}

cAP-U-ABORT-Reason-Abstract-Syntax ABSTRACT-SYNTAX ::= {CAP-U-ABORT-REASON IDENTIFIED BY
id-CAP-U-ABORT-Reason}

CAP-U-ABORT-REASON ::= ENUMERATED {
	no-reason-given				(1),
	application-timer-expired	(2),
	not-allowed-procedures		(3),
	abnormal-processing			(4),
	congestion					(5),
	invalid-reference			(6),
	missing-reference			(7),
	overlapping-dialogue		(8)
	}
-- application-timer-expired	shall be set when application timer (e.g. Tssf) is expired.
-- not-allowed-procedures		shall be set when received signal is not allowed in CAP
--								procedures.
--								For example, when a class 4 operation is received from the
--								gsmSCF and the operation is not allowed in gsmSSF FSM.
--								(gsmSSF FSM cannot continue state transition). (e.g. ReleaseCall
--								operation received in Waiting for End of Temporary Connection
--								state.)
-- abnormal-processing			shall be set when abnormal procedures occur at entity action.
-- congestion					shall be set when requested resource is unavailable due to
--								congestion at TC user (CAP) level.
-- invalid-reference			shall be set if the received destinationReference is unknown or
--								for a known destination Reference the received originationReference
--								does not match with the stored originationReference.
--								This abort reason is used for CAP defined GPRS-ReferenceNumber.
-- missing-reference			shall be set when the destinationReference or the
--								originationReference is absent in the received message but is
--								required to be present according to the procedures in
--								subclause 14.1.7.
--								This abort reason is used for CAP defined GPRS-ReferenceNumber.
-- overlapping-dialogue			shall be used by the gprsSSF to indicate to the gsmSCF that a
--								specific instance already has a TC dialogue open. This error
--								cause is typically obtained when both the gsmSCF and gprsSSF
--								open a new dialogue at the same time.
-- no-reason-given				shall be set when any other reasons above do not apply
END -- of CAP-U-ABORT-Data

-- 6	Circuit Switched Call Control
-- 6.1	gsmSSF/CCF - gsmSCF Interface
-- 6.1.1	Operations and arguments
CAP-gsmSSF-gsmSCF-ops-args {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
umts-network(1) modules(3) cap-gsmSSF-gsmSCF-ops-args(101) version8(7)}

DEFINITIONS IMPLICIT TAGS ::= BEGIN

-- This module contains the operations and operation arguments used for the
-- gsmSSF - gsmSCF interface, for the control of circuit switched calls.

-- The table in subclause 2.1 lists the specifications that contain the modules
-- that are used by CAP.

IMPORTS

	errortypes,
	datatypes,
	operationcodes,
	classes,
	tc-Messages,
	ros-InformationObjects
FROM CAP-object-identifiers {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
umts-network(1) modules(3) cap-object-identifiers(100) version8(7)}

	OPERATION
FROM Remote-Operations-Information-Objects ros-InformationObjects

	CallingPartysCategory,
	HighLayerCompatibility,
	LegID,
	RedirectionInformation,
	ServiceKey
FROM CS1-DataTypes {itu-t(0) identified-organization(4) etsi(0) inDomain(1) in-network(1)
modules(0) cs1-datatypes(2) version1(0)}

	MiscCallInfo
FROM CS2-datatypes {itu-t(0) identified-organization(4) etsi(0) inDomain(1) in-network(1)
cs2(20) modules(0) in-cs2-datatypes (0) version1(0)}

	Ext-BasicServiceCode,
	IMEI,
	IMSI,
	ISDN-AddressString
FROM MAP-CommonDataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
gsm-Network(1) modules(3) map-CommonDataTypes(18) version12(12)}

	CUG-Index,
	CUG-Interlock,
	CUG-Info,
	LocationInformation,
	MS-Classmark2,
	SubscriberState,
	SupportedCamelPhases,
	OfferedCamel4Functionalities
FROM MAP-MS-DataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
gsm-Network(1) modules(3) map-MS-DataTypes(11) version12(12)}

	CallReferenceNumber,
	SuppressionOfAnnouncement,
	UU-Data
FROM MAP-CH-DataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
gsm-Network(1) modules(3) map-CH-DataTypes(13) version12(12)}

	PARAMETERS-BOUND
FROM CAP-classes classes

	opcode-activityTest,
	opcode-applyCharging,
	opcode-applyChargingReport,
	opcode-assistRequestInstructions,
	opcode-callGap,
	opcode-callInformationReport,
	opcode-callInformationRequest,
	opcode-cancel,
	opcode-collectInformation,
	opcode-connect,
	opcode-connectToResource,
	opcode-continue,
	opcode-continueWithArgument,
	opcode-disconnectForwardConnection,
	opcode-dFCWithArgument,
	opcode-disconnectLeg,
	opcode-entityReleased,
	opcode-establishTemporaryConnection,
	opcode-eventReportBCSM,
	opcode-furnishChargingInformation,
	opcode-initialDP,
	opcode-initiateCallAttempt,
	opcode-moveLeg,
	opcode-playTone,
	opcode-releaseCall,
	opcode-requestReportBCSMEvent,
	opcode-resetTimer,
	opcode-sendChargingInformation,
	opcode-splitLeg
FROM CAP-operationcodes operationcodes
-- The CAP Operation identifiers for CAP V4 in Rel-6 are the same as the CAP Operation
-- identifiers for CAP V4 in Rel-5.

	AChBillingChargingCharacteristics {},
	AdditionalCallingPartyNumber {},
	AlertingPattern,
	AChChargingAddress {},
	AssistingSSPIPRoutingAddress {},
	BCSMEvent {},
	BCSM-Failure,
	BearerCapability {},
	Burst,
	CalledPartyNumber {},
	CalledPartyBCDNumber {},
	CallingPartyNumber {},
	CallResult {},
	CallSegmentID {},
	CallSegmentToCancel {},
	CallSegmentFailure {},
	Carrier,
	Cause {},
	CGEncountered,
	ChargeNumber {},
	ControlType,
	CorrelationID {},
	DestinationRoutingAddress {},
	EventSpecificInformationBCSM {},
	EventTypeBCSM,
	Extensions {},
	FCIBillingChargingCharacteristics {},
	GapCriteria {},
	GapIndicators,
	GapTreatment,
	GenericNumbers {},
	InvokeID,
	IPRoutingAddress {},
	IPSSPCapabilities {},
	leg1,
	leg2,
	LegOrCallSegment {},
	LocationNumber {},
	LowLayerCompatibility {},
	MonitorMode,
	NAOliInfo,
	OCSIApplicable,
	OriginalCalledPartyID {},
	ReceivingSideID,
	RedirectingPartyID {},
	RequestedInformationList {},
	RequestedInformationTypeList,
	ScfID {},
	SCIBillingChargingCharacteristics {},
	SendingSideID,
	ServiceInteractionIndicatorsTwo,
	TimeAndTimezone {},
	TimerID,
	TimerValue
FROM CAP-datatypes datatypes
-- For Rel-6, the CAP-datatypes module is updated to version8(7); Object Identifier 'datatypes'
-- is also updated to version8(7). As a result, the present module uses Rel-6 data type definitions.

	cancelFailed,
	eTCFailed,
	missingCustomerRecord,
	missingParameter,
	parameterOutOfRange,
	requestedInfoError,
	systemFailure,
	taskRefused,
	unexpectedComponentSequence,
	unexpectedDataValue,
	unexpectedParameter,
	unknownLegID,
	unknownCSID
FROM CAP-errortypes errortypes
-- For Rel-6, the CAP-errortypes module is updated to version8(7); Object Identifier
-- 'errortypes' is also updated to version8(7). As a result, the present module uses Rel-6
-- error type definitions.

;

activityTest OPERATION ::= {
	RETURN RESULT	TRUE
	CODE			opcode-activityTest}
-- Direction: gsmSCF -> gsmSSF, Timer: Tat
-- This operation is used to check for the continued existence of a relationship
-- between the gsmSCF and gsmSSF, assist gsmSSF or gsmSRF. If the relationship is
-- still in existence, then the gsmSSF will respond. If no reply is received,
-- then the gsmSCF will assume that the gsmSSF, assist gsmSSF or gsmSRF has failed
-- in some way.

applyCharging {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		ApplyChargingArg {bound}
	RETURN RESULT	FALSE
	ERRORS			{missingParameter |
					unexpectedComponentSequence |
					unexpectedParameter |
					unexpectedDataValue |
					parameterOutOfRange |
					systemFailure |
					taskRefused |
					unknownLegID |
					unknownCSID}
	CODE			opcode-applyCharging}
-- Direction: gsmSCF -> gsmSSF, Timer: Tac
-- This operation is used for interacting from the gsmSCF with the gsmSSF charging mechanisms.
-- The ApplyChargingReport operation provides the feedback from the gsmSSF to the gsmSCF.

ApplyChargingArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	aChBillingChargingCharacteristics	[0] AChBillingChargingCharacteristics {bound},
	partyToCharge						[2] SendingSideID DEFAULT sendingSideID : leg1,
	extensions							[3] Extensions {bound}						OPTIONAL,
	aChChargingAddress					[50] AChChargingAddress {bound}
												DEFAULT legID:sendingSideID:leg1,
	...
	}

-- The partyToCharge parameter indicates the party in the call to which the ApplyCharging operation
-- shall be applied.

applyChargingReport {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		ApplyChargingReportArg {bound}
	RETURN RESULT	FALSE
	ERRORS			{missingParameter |
					unexpectedComponentSequence |
					unexpectedParameter |
					unexpectedDataValue |
					unknownCSID |
					unknownLegID |
					parameterOutOfRange |
					systemFailure |
					taskRefused}
	CODE			opcode-applyChargingReport}
-- Direction: gsmSSF -> gsmSCF, Timer: Tacr
-- This operation is used by the gsmSSF to report to the gsmSCF the occurrence of a
-- specific charging event as requested by the gsmSCF using the ApplyCharging operation.

ApplyChargingReportArg {PARAMETERS-BOUND : bound} ::= CallResult {bound}

assistRequestInstructions {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		AssistRequestInstructionsArg {bound}
	RETURN RESULT	FALSE
	ERRORS			{missingCustomerRecord |
					missingParameter |
					systemFailure |
					taskRefused |
					unexpectedComponentSequence |
					unexpectedDataValue |
					unexpectedParameter}
	CODE			opcode-assistRequestInstructions}
-- Direction: gsmSSF -> gsmSCF or gsmSRF -> gsmSCF, Timer: Tari
-- This operation is used when there is an assist procedure and may be
-- sent by the gsmSSF or gsmSRF to the gsmSCF. This operation is sent by the
-- assisting gsmSSF to gsmSCF, when the initiating gsmSSF has set up a connection to
-- the gsmSRF or to the assisting gsmSSF as a result of receiving an
-- EstablishTemporaryConnection from
-- the gsmSCF.
-- Refer to clause 11 for a description of the procedures associated with this operation.

AssistRequestInstructionsArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	correlationID						[0] CorrelationID {bound},
	iPSSPCapabilities					[2] IPSSPCapabilities {bound},
	extensions							[3] Extensions {bound}						OPTIONAL,
	...
	}
-- OPTIONAL denotes network operator specific use. The value of the correlationID may be the
-- Called Party Number supplied by the initiating gsmSSF.

callGap {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		CallGapArg {bound}
	RETURN RESULT	FALSE
	ALWAYS RESPONDS FALSE
	CODE			opcode-callGap}
-- Direction: gsmSCF -> gsmSSF, Timer: Tcg
-- This operation is used to request the gsmSSF to reduce the rate at which specific service
-- requests are sent to the gsmSCF.

CallGapArg {PARAMETERS-BOUND : bound}::= SEQUENCE {
	gapCriteria							[0] GapCriteria {bound},
	gapIndicators						[1] GapIndicators,
	controlType							[2] ControlType								OPTIONAL,
	gapTreatment						[3] GapTreatment {bound}					OPTIONAL,
	extensions							[4] Extensions {bound}						OPTIONAL,
	...
	}
-- OPTIONAL denotes network operator optional. If gapTreatment is not present, then the gsmSSF will
-- use a default treatment depending on network operator implementation.

callInformationReport {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		CallInformationReportArg {bound}
	RETURN RESULT	FALSE
	ALWAYS RESPONDS	FALSE
	CODE			opcode-callInformationReport}
-- Direction: gsmSSF -> gsmSCF, Timer: Tcirp
-- This operation is used to send specific call information for a single call party to the gsmSCF as
-- requested by the gsmSCF in a previous CallInformationRequest.

CallInformationReportArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	requestedInformationList			[0] RequestedInformationList {bound},
	extensions							[2] Extensions {bound}						OPTIONAL,
	legID								[3] ReceivingSideID DEFAULT receivingSideID:leg2,
	...
	}

callInformationRequest {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		CallInformationRequestArg {bound}
	RETURN RESULT	FALSE
	ERRORS			{missingParameter |
					parameterOutOfRange |
					requestedInfoError |
					systemFailure |
					taskRefused |
					unexpectedComponentSequence |
					unexpectedDataValue |
					unexpectedParameter |
					unknownLegID}
	CODE			opcode-callInformationRequest}
-- Direction: gsmSCF -> gsmSSF, Timer: Tcirq
-- This operation is used to request the gsmSSF to record specific information about a single
-- call party and report it to the gsmSCF (with a CallInformationReport operation).

CallInformationRequestArg {PARAMETERS-BOUND : bound}::= SEQUENCE {
	requestedInformationTypeList		[0] RequestedInformationTypeList,
	extensions							[2] Extensions {bound}						OPTIONAL,
	legID								[3] SendingSideID DEFAULT sendingSideID:leg2,
	...
	}
-- OPTIONAL denotes network operator optional.

cancel {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		CancelArg {bound}
	RETURN RESULT	FALSE
	ERRORS			{cancelFailed |
					missingParameter |
					taskRefused |
					unknownCSID}
	CODE			opcode-cancel}
-- Direction: gsmSCF -> gsmSSF, or gsmSCF -> gsmSRF, Timer: Tcan
-- This operation cancels the correlated previous operation or all previous requests. The following
-- operations can be canceled: PlayAnnouncement, PromptAndCollectUserInformation.

CancelArg {PARAMETERS-BOUND : bound} ::= CHOICE {
	invokeID							[0] InvokeID,
	allRequests							[1] NULL,
	callSegmentToCancel					[2]	CallSegmentToCancel {bound}
	}
-- The InvokeID has the same value as that which was used for the operation to be cancelled.

collectInformation OPERATION::= {
RETURN RESULT		FALSE
ALWAYS RESPONDS		FALSE
CODE				opcode-collectInformation}
-- Direction: gsmSCF-> gsmSSF, Timer: Tci 
-- This operation is used to request the gsmSSF to perform the call
-- processing actions to prompt a calling party for additional destination informationdigits.

connect {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		ConnectArg {bound}
	RETURN RESULT	FALSE
	ERRORS			{missingParameter |
					parameterOutOfRange |
					systemFailure |
					taskRefused |
					unexpectedComponentSequence |
					unexpectedDataValue |
					unexpectedParameter |
					unknownLegID}
	CODE			opcode-connect}
-- Direction: gsmSCF-> gsmSSF, Timer: Tcon 
-- This operation is used to request the gsmSSF to perform the call processing actions
-- to route or forward a call to a specified destination.

ConnectArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	destinationRoutingAddress			[0] DestinationRoutingAddress {bound},
	alertingPattern						[1] AlertingPattern				OPTIONAL,
	originalCalledPartyID				[6] OriginalCalledPartyID {bound}			OPTIONAL,
	extensions					[10] Extensions {bound}					OPTIONAL,
	carrier						[11] Carrier {bound}					OPTIONAL,
	callingPartysCategory				[28] CallingPartysCategory				OPTIONAL,
	redirectingPartyID				[29] RedirectingPartyID {bound}				OPTIONAL,
	redirectionInformation				[30] RedirectionInformation				OPTIONAL,
	genericNumbers					[14] GenericNumbers {bound}				OPTIONAL,
	serviceInteractionIndicatorsTwo 		[15] ServiceInteractionIndicatorsTwo			OPTIONAL,
	chargeNumber					[19] ChargeNumber {bound}				OPTIONAL,
	legToBeConnected				[21] LegID						OPTIONAL,
	cug-Interlock					[31] CUG-Interlock					OPTIONAL,
	cug-OutgoingAccess				[32] NULL						OPTIONAL,
	suppressionOfAnnouncement			[55] SuppressionOfAnnouncement				OPTIONAL,
	oCSIApplicable					[56] OCSIApplicable					OPTIONAL,
	naOliInfo					[57] NAOliInfo						OPTIONAL,
	bor-InterrogationRequested			[58] NULL						OPTIONAL,
	...,
	suppress-N-CSI					[59] NULL						OPTIONAL

	}
-- na-Info is included at the discretion of the gsmSCF operator.

connectToResource {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		ConnectToResourceArg {bound}
	RETURN RESULT	FALSE
	ERRORS			{missingParameter |
					systemFailure |
					taskRefused |
					unexpectedComponentSequence |
					unexpectedDataValue |
					unexpectedParameter |
					unknownCSID}
	CODE			opcode-connectToResource}
-- Direction: gsmSCF -> gsmSSF, Timer: Tctr 
-- This operation is used to connect a call segment from the gsmSSF to the
-- gsmSRF.

ConnectToResourceArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	resourceAddress	CHOICE {
		ipRoutingAddress					[0] IPRoutingAddress {bound},
		none								[3] NULL
		},
	extensions							[4] Extensions {bound}						OPTIONAL,
	serviceInteractionIndicatorsTwo		[7] ServiceInteractionIndicatorsTwo			OPTIONAL,
	callSegmentID						[50] CallSegmentID {bound}					OPTIONAL,
	...
	}

continue OPERATION ::= {
	RETURN RESULT	FALSE
	ALWAYS RESPONDS	FALSE
	CODE			opcode-continue}
-- Direction: gsmSCF -> gsmSSF, Timer: Tcue 
-- This operation is used to request the gsmSSF to proceed with call processing at the
-- DP at which it previously suspended call processing to await gsmSCF instructions
-- (i.e. proceed to the next point in call in the BCSM). The gsmSSF continues call
-- processing without substituting new data from gsmSCF.

continueWithArgument {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		ContinueWithArgumentArg {bound}
	RETURN RESULT	FALSE
	ERRORS			{missingParameter |
					parameterOutOfRange |
					unexpectedComponentSequence |
					unexpectedDataValue |
					unexpectedParameter |
					unknownLegID |
					unknownCSID}
	CODE			opcode-continueWithArgument}
-- Direction: gsmSCF -> gsmSSF, Timer: Tcwa 
-- This operation is used to request the gsmSSF to proceed with call processing at the
-- DP at which it previously suspended call processing to await gsmSCF instructions
-- (i.e. proceed to the next point in call in the BCSM). The gsmSSF continues call
-- processing with the modified call setup information as received from the gsmSCF.

ContinueWithArgumentArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	alertingPattern						[1] AlertingPattern							OPTIONAL,
	extensions							[6] Extensions {bound}						OPTIONAL,
	serviceInteractionIndicatorsTwo		[7] ServiceInteractionIndicatorsTwo			OPTIONAL,
	callingPartysCategory				[12] CallingPartysCategory					OPTIONAL,
	genericNumbers						[16] GenericNumbers {bound}					OPTIONAL,
	cug-Interlock						[17] CUG-Interlock							OPTIONAL,
	cug-OutgoingAccess					[18] NULL									OPTIONAL,
	chargeNumber						[50] ChargeNumber {bound}					OPTIONAL,
	carrier								[52] Carrier {bound}						OPTIONAL,
	suppressionOfAnnouncement			[55] SuppressionOfAnnouncement				OPTIONAL,
	naOliInfo							[56] NAOliInfo								OPTIONAL,
	bor-InterrogationRequested			[57] NULL									OPTIONAL,
	suppress-O-CSI						[58] NULL									OPTIONAL,
	continueWithArgumentArgExtension	[59] ContinueWithArgumentArgExtension {bound} OPTIONAL,
	...
	}

ContinueWithArgumentArgExtension {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	suppress-D-CSI						[0]	NULL									OPTIONAL,
	suppress-N-CSI						[1]	NULL									OPTIONAL,
	suppressOutgoingCallBarring			[2]	NULL									OPTIONAL,
	legOrCallSegment					[3]	LegOrCallSegment {bound}				OPTIONAL,
	...
	}

disconnectForwardConnection OPERATION ::= {
	RETURN RESULT	FALSE
	ERRORS			{systemFailure |
					taskRefused |
					unexpectedComponentSequence}
	CODE			opcode-disconnectForwardConnection}
-- Direction: gsmSCF -> gsmSSF, Timer: Tdfc
-- This operation is used to disconnect a forward temporary connection or a connection to a 
-- resource. Refer to clause 11 for a description of the procedures associated with this operation. 

disconnectForwardConnectionWithArgument {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		DisconnectForwardConnectionWithArgumentArg {bound}
	RETURN RESULT	FALSE
	ERRORS			{missingParameter |
					systemFailure |
					taskRefused |
					unexpectedComponentSequence |
					unexpectedDataValue |
					unexpectedParameter |
					unknownCSID}
	CODE			opcode-dFCWithArgument}
-- Direction gsmSCF -> gsmSSF, Timer Tdfcwa
-- This operation is used to disconnect a forward temporary connection or a connection to a
-- resource. Refer to clause 11 for a description of the procedures associated with this operation.

DisconnectForwardConnectionWithArgumentArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	callSegmentID						[1] CallSegmentID {bound}					OPTIONAL,
	extensions							[2] Extensions {bound}						OPTIONAL,
	...
	}

disconnectLeg {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		DisconnectLegArg {bound}
	RETURN RESULT	TRUE
	ERRORS			{missingParameter |
					systemFailure |
					taskRefused |
					unexpectedComponentSequence |
					unexpectedDataValue |
					unexpectedParameter |
					unknownLegID}
	CODE			opcode-disconnectLeg}
-- Direction: gsmSCF -> gsmSSF, Timer Tdl
-- This operation is used by the gsmSCF to release a specific leg associated with the call and
-- retain any other legs not specified in the DisconnectLeg. Refer to clause 11 for a description
-- of the procedures associated with this operation.

DisconnectLegArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	legToBeReleased						[0]	LegID,
	releaseCause						[1]	Cause {bound}							OPTIONAL,
	extensions							[2]	Extensions {bound}						OPTIONAL,
	...
	}

entityReleased {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		EntityReleasedArg {bound}
	RETURN RESULT	FALSE
	ALWAYS RESPONDS	FALSE
	CODE			opcode-entityReleased}
-- Direction: gsmSSF -> gsmSCF, Timer: Ter
-- This operation is used by the gsmSSF to inform the gsmSCF of an error or exception

EntityReleasedArg {PARAMETERS-BOUND : bound} ::= CHOICE {
	callSegmentFailure					[0]	CallSegmentFailure {bound},
	bCSM-Failure						[1]	BCSM-Failure {bound}
	}

establishTemporaryConnection {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		EstablishTemporaryConnectionArg {bound}
	RETURN RESULT	FALSE
	ERRORS			{eTCFailed |
					missingParameter |
					systemFailure |
					taskRefused |
					unexpectedComponentSequence |
					unexpectedDataValue |
					unexpectedParameter |
					unknownCSID}
	CODE			opcode-establishTemporaryConnection}
-- Direction: gsmSCF -> gsmSSF, Timer: Tetc 
-- This operation is used to create a connection to a resource for a limited period
-- of time (e.g. to play an announcement, to collect user information); it implies
-- the use of the assist procedure. Refer to clause 11 for a description of the
-- procedures associated with this operation.

EstablishTemporaryConnectionArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	assistingSSPIPRoutingAddress		[0] AssistingSSPIPRoutingAddress {bound},
	correlationID						[1] CorrelationID {bound}					OPTIONAL,
	scfID								[3] ScfID {bound}							OPTIONAL,
	extensions							[4] Extensions {bound}						OPTIONAL,
	carrier								[5] Carrier {bound}							OPTIONAL,
	serviceInteractionIndicatorsTwo		[6] ServiceInteractionIndicatorsTwo			OPTIONAL,
	callSegmentID						[7]	CallSegmentID {bound}					OPTIONAL,
	naOliInfo							[50] NAOliInfo								OPTIONAL,
	chargeNumber						[51] ChargeNumber {bound}					OPTIONAL,
	...,
	originalCalledPartyID				[52] OriginalCalledPartyID {bound}			OPTIONAL,
	callingPartyNumber					[53] CallingPartyNumber {bound}				OPTIONAL
	}

eventReportBCSM {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		EventReportBCSMArg {bound}
	RETURN RESULT	FALSE
	ALWAYS RESPONDS	FALSE
	CODE			opcode-eventReportBCSM}
-- Direction: gsmSSF -> gsmSCF, Timer: Terb
-- This operation is used to notify the gsmSCF of a call-related event (e.g. BCSM
-- events such as O_Busy or O_No_Answer) previously requested by the gsmSCF in a
-- RequestReportBCSMEvent operation.

EventReportBCSMArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	eventTypeBCSM						[0] EventTypeBCSM,
	eventSpecificInformationBCSM		[2] EventSpecificInformationBCSM {bound}	OPTIONAL,
	legID								[3] ReceivingSideID							OPTIONAL,
	miscCallInfo						[4] MiscCallInfo DEFAULT {messageType request},
	extensions							[5] Extensions {bound}						OPTIONAL,
	...
	}

furnishChargingInformation {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		FurnishChargingInformationArg {bound}
	RETURN RESULT	FALSE
	ERRORS			{missingParameter |
					taskRefused |
					unexpectedComponentSequence |
					unexpectedDataValue |
					unexpectedParameter |
					unknownLegID}
	CODE			opcode-furnishChargingInformation}
-- Direction: gsmSCF -> gsmSSF, Timer: Tfci
-- This operation is used to request the gsmSSF to generate, register a call record
-- or to include some information in the default call record.
-- The registered call record is intended for off line charging of the call.

FurnishChargingInformationArg {PARAMETERS-BOUND : bound} ::=
	FCIBillingChargingCharacteristics{bound}

initialDP {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		InitialDPArg {bound}
	RETURN RESULT	FALSE
	ERRORS			{missingCustomerRecord |
					missingParameter |
					parameterOutOfRange |
					systemFailure |
					taskRefused |
					unexpectedComponentSequence |
					unexpectedDataValue |
					unexpectedParameter}
	CODE			opcode-initialDP}
-- Direction: gsmSSF -> gsmSCF, Timer: Tidp 
-- This operation is used after a TDP to indicate request for service.

InitialDPArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	serviceKey							[0] ServiceKey	,
	calledPartyNumber					[2] CalledPartyNumber {bound}				OPTIONAL,
	callingPartyNumber					[3] CallingPartyNumber {bound}				OPTIONAL,
	callingPartysCategory				[5] CallingPartysCategory					OPTIONAL,
	cGEncountered						[7] CGEncountered							OPTIONAL,
	iPSSPCapabilities					[8] IPSSPCapabilities {bound}				OPTIONAL,
	locationNumber						[10] LocationNumber {bound}					OPTIONAL,
	originalCalledPartyID				[12] OriginalCalledPartyID {bound}			OPTIONAL,
	extensions							[15] Extensions {bound}						OPTIONAL,
	highLayerCompatibility				[23] HighLayerCompatibility					OPTIONAL,
	additionalCallingPartyNumber		[25] AdditionalCallingPartyNumber {bound}	OPTIONAL,
	bearerCapability					[27] BearerCapability {bound}				OPTIONAL,
	eventTypeBCSM						[28] EventTypeBCSM							OPTIONAL,
	redirectingPartyID					[29] RedirectingPartyID {bound}				OPTIONAL,
	redirectionInformation				[30] RedirectionInformation					OPTIONAL,
	cause								[17] Cause {bound}							OPTIONAL,
	serviceInteractionIndicatorsTwo		[32] ServiceInteractionIndicatorsTwo		OPTIONAL,
	carrier								[37] Carrier {bound}						OPTIONAL,
	cug-Index							[45] CUG-Index								OPTIONAL,
	cug-Interlock						[46] CUG-Interlock							OPTIONAL,
	cug-OutgoingAccess					[47] NULL									OPTIONAL,
	iMSI								[50] IMSI									OPTIONAL,
	subscriberState						[51] SubscriberState						OPTIONAL,
	locationInformation					[52] LocationInformation					OPTIONAL,
	ext-basicServiceCode				[53] Ext-BasicServiceCode					OPTIONAL,
	callReferenceNumber					[54] CallReferenceNumber					OPTIONAL,
	mscAddress							[55] ISDN-AddressString						OPTIONAL,
	calledPartyBCDNumber				[56] CalledPartyBCDNumber {bound}			OPTIONAL,
	timeAndTimezone						[57] TimeAndTimezone {bound}				OPTIONAL,
	callForwardingSS-Pending			[58] NULL									OPTIONAL,
	initialDPArgExtension				[59] InitialDPArgExtension {bound}			OPTIONAL,
	...
	}

InitialDPArgExtension {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	gmscAddress							[0] ISDN-AddressString						OPTIONAL,
	forwardingDestinationNumber			[1] CalledPartyNumber {bound}				OPTIONAL,
	ms-Classmark2						[2] MS-Classmark2							OPTIONAL,
	iMEI								[3] IMEI									OPTIONAL,
	supportedCamelPhases				[4] SupportedCamelPhases					OPTIONAL,
	offeredCamel4Functionalities		[5] OfferedCamel4Functionalities			OPTIONAL,
	bearerCapability2					[6] BearerCapability {bound}				OPTIONAL,
	ext-basicServiceCode2				[7] Ext-BasicServiceCode					OPTIONAL,
	highLayerCompatibility2				[8] HighLayerCompatibility					OPTIONAL,
	lowLayerCompatibility				[9] LowLayerCompatibility {bound}			OPTIONAL,
	lowLayerCompatibility2				[10] LowLayerCompatibility {bound}			OPTIONAL,
	...,
	enhancedDialledServicesAllowed		[11] NULL									OPTIONAL,
	uu-Data								[12] UU-Data								OPTIONAL,
	collectInformationAllowed			[13] NULL									OPTIONAL,
	releaseCallArgExtensionAllowed			[14] NULL						OPTIONAL
}
-- If iPSSPCapabilities is not present then this denotes that a colocated gsmSRF is not 
-- supported by the gsmSSF. If present, then the gsmSSF supports a colocated gsmSRF capable 
-- of playing announcements via elementaryMessageIDs and variableMessages, the playing of
-- tones and the collection of DTMF digits. Other supported capabilities are explicitly 
-- detailed in the IPSSPCapabilities parameter itself.
-- Carrier is included at the discretion of the gsmSSF operator.
-- The UserCSGInformation is conveyed in the LocationInformation. The encoding of the parameter is
-- as defined in 3GPP TS 29.002 [11].


initiateCallAttempt {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		InitiateCallAttemptArg {bound}
	RESULT			InitiateCallAttemptRes {bound}
	ERRORS			{missingParameter |
					parameterOutOfRange |
					systemFailure |
					taskRefused |
					unexpectedComponentSequence |
					unexpectedDataValue |
					unexpectedParameter
					}
	CODE			opcode-initiateCallAttempt}
-- Direction: gsmSCF -> gsmSSF, Timer Tica
-- This operation is used to instruct the gsmSSF to create a new call to a call party using the
-- address information provided by the gsmSCF.

InitiateCallAttemptArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	destinationRoutingAddress			[0]	DestinationRoutingAddress {bound},
	extensions							[4]	Extensions {bound}						OPTIONAL,
	legToBeCreated						[5]	LegID									OPTIONAL,
	newCallSegment						[6]	CallSegmentID {bound}					OPTIONAL,
	callingPartyNumber					[30] CallingPartyNumber {bound}				OPTIONAL,
	callReferenceNumber					[51] CallReferenceNumber					OPTIONAL,
	gsmSCFAddress						[52] ISDN-AddressString						OPTIONAL,
	suppress-T-CSI						[53] NULL									OPTIONAL,
	...
	}

InitiateCallAttemptRes {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	supportedCamelPhases				[0] SupportedCamelPhases					OPTIONAL,
	offeredCamel4Functionalities		[1] OfferedCamel4Functionalities			OPTIONAL,
	extensions							[2]	Extensions {bound}						OPTIONAL,
	...,
	releaseCallArgExtensionAllowed		[3] NULL						OPTIONAL
	}

moveLeg {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		MoveLegArg {bound}
	RETURN RESULT	TRUE
	ERRORS			{missingParameter |
					systemFailure |
					taskRefused |
					unexpectedComponentSequence |
					unexpectedDataValue |
					unexpectedParameter |
					unknownLegID}
	CODE			opcode-moveLeg}
-- Direction: gsmSCF -> gsmSSF, Timer: Tml
-- This operation is used by the gsmSCF to move a leg from one call segment to another call segment
-- within the same call segment association.

MoveLegArg {PARAMETERS-BOUND : bound} ::= SEQUENCE{
	legIDToMove							[0]	LegID,
	extensions							[2]	Extensions {bound}						OPTIONAL,
	...
	}

playTone {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		PlayToneArg {bound}
	RETURN RESULT	FALSE
	ERRORS			{missingParameter |
					parameterOutOfRange |
					systemFailure |
					unexpectedComponentSequence |
					unexpectedDataValue |
					unexpectedParameter |
					unknownLegID |
					unknownCSID}
	CODE			opcode-playTone}
-- Direction: gsmSCF -> gsmSSF, Timer: Tpt
-- This operation is used to play tones to either a leg or a call segment using
-- the MSC's tone generator.

PlayToneArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	legOrCallSegment					[0] LegOrCallSegment {bound},
	bursts								[1] Burst,
	extensions							[2] Extensions {bound}						OPTIONAL,
	...
	}

releaseCall {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		ReleaseCallArg {bound}
	RETURN RESULT	FALSE
	ALWAYS RESPONDS	FALSE
	CODE			opcode-releaseCall}
-- Direction: gsmSCF ->?gsmSSF, Timer: Trc 
-- This operation is used to tear down an existing call at any phase of the call for all parties 
-- involved in the call. 

ReleaseCallArg {PARAMETERS-BOUND : bound} ::= CHOICE {
allCallSegments		AllCallSegments,
allCallSegmentsWithExtension	[2] AllCallSegmentsWithExtension
}

AllCallSegments ::= Cause {bound} 
-- A default value of decimal 31 (normal unspecified) shall be given.

AllCallSegmentsWithExtension ::= SEQUENCE {
	allCallSegments		[0] AllCallSegments,
	extensions		[1] Extensions {bound} OPTIONAL
}

requestReportBCSMEvent {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		RequestReportBCSMEventArg {bound}
	RETURN RESULT	FALSE
	ERRORS			{missingParameter |
					parameterOutOfRange |
					systemFailure |
					taskRefused |
					unexpectedComponentSequence |
					unexpectedDataValue |
					unexpectedParameter |
					unknownLegID}
	CODE			opcode-requestReportBCSMEvent}
-- Direction: gsmSCF -> gsmSSF, Timer: Trrb
-- This operation is used to request the gsmSSF to monitor for a call-related event
-- (e.g. BCSM events such as O_Busy or O_No_Answer) and to send a notification
-- to the gsmSCF when the event is detected.
--
-- NOTE:
-- Every EDP must be explicitly armed by the gsmSCF via a RequestReportBCSMEvent operation. 
-- No implicit arming of EDPs at the gsmSSF after reception of any operation (different 
-- from RequestReportBCSMEvent) from the gsmSCF is allowed.

RequestReportBCSMEventArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	bcsmEvents							[0] SEQUENCE SIZE(1..bound.&numOfBCSMEvents) OF
												BCSMEvent {bound},
	extensions							[2] Extensions {bound}						OPTIONAL,
	...
	}
-- Indicates the BCSM related events for notification.

resetTimer {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		ResetTimerArg {bound}
	RETURN RESULT	FALSE
	ERRORS			{missingParameter |
					parameterOutOfRange |
					taskRefused |
					unexpectedComponentSequence |
					unexpectedDataValue |
					unexpectedParameter |
					unknownCSID}
	CODE			opcode-resetTimer}
-- Direction: gsmSCF -> gsmSSF, Timer: Trt 
-- This operation is used to request the gsmSSF to refresh an application timer in the gsmSSF.

ResetTimerArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	timerID								[0] TimerID	DEFAULT tssf,
	timervalue							[1] TimerValue,
	extensions							[2] Extensions {bound}						OPTIONAL,
	callSegmentID						[3]	CallSegmentID {bound}					OPTIONAL,
	...
	}

sendChargingInformation {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		SendChargingInformationArg {bound}
	RETURN RESULT	FALSE
	ERRORS			{missingParameter |
					unexpectedComponentSequence |
					unexpectedParameter |
					parameterOutOfRange |
					systemFailure |
					taskRefused |
					unexpectedDataValue |
					unknownLegID}
	CODE			opcode-sendChargingInformation}
-- Direction: gsmSCF -> gsmSSF, Timer: Tsci 
-- This operation is used to instruct the gsmSSF on the charging information to send by the gsmSSF.
-- The charging information can either be sent back by means of signalling or internal
-- if the gsmSSF is located in the local exchange. In the local exchange
-- this information may be used to update the charge meter or to create a standard call record.

SendChargingInformationArg {PARAMETERS-BOUND : bound}::= SEQUENCE {
	sCIBillingChargingCharacteristics	[0] SCIBillingChargingCharacteristics {bound},
	partyToCharge						[1] SendingSideID,
	extensions							[2] Extensions {bound}						OPTIONAL,
	...
	}

splitLeg {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		SplitLegArg {bound}
	RETURN RESULT	TRUE
	ERRORS			{missingParameter |
					unexpectedComponentSequence |
					unexpectedParameter |
					unexpectedDataValue |
					systemFailure |
					taskRefused |
					unknownLegID}
	CODE			opcode-splitLeg}
-- Direction: gsmSCF -> gsmSSF, Timer Tsl
-- This operation is used by the gsmSCF to separate a leg from its source call segment and
-- place it in a new call segment within the same call segment association.

SplitLegArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	legToBeSplit						[0]	LegID,
	newCallSegment						[1]	CallSegmentID {bound}					OPTIONAL,
	extensions							[2]	Extensions {bound}						OPTIONAL,
	...
	}

END
-- 6.1.2	gsmSSF/gsmSCF packages, contracts and ACs
-- 6.1.2.1	gsmSSF/gsmSCF ASN.1 module
CAP-gsmSSF-gsmSCF-pkgs-contracts-acs {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3) cap-gsmSSF-gsmSCF-pkgs-contracts-acs(102) version8(7)}

DEFINITIONS ::= BEGIN

-- This module specifies the Operation Packages, Contracts, Application Contexts
-- and Abstract Syntaxes used for the gsmSSF - gsmSCF interface, for the control of
-- circuit switched calls.

-- The table in subclause 2.1 lists the specifications that contain the modules
-- that are used by CAP.

IMPORTS

	PARAMETERS-BOUND,
	cAPSpecificBoundSet
FROM CAP-classes classes
-- Elements that exist in cAPSpecificBoundSet in Rel-5 are not changed in Rel-6. As a
-- result, the value range of data type definitions in Rel-5 are not changed in Rel-6.

	CONTRACT,
	OPERATION-PACKAGE,
	OPERATION
FROM Remote-Operations-Information-Objects ros-InformationObjects

	TCMessage {} 
FROM TCAPMessages tc-Messages

	APPLICATION-CONTEXT,
	dialogue-abstract-syntax
FROM TC-Notation-Extensions tc-NotationExtensions

	activityTest,
	applyCharging {},
	applyChargingReport {},
	assistRequestInstructions {},
	callGap {},
	callInformationReport {},
	callInformationRequest {},
	cancel {},
	collectInformation {},
	connect {},
	connectToResource {},
	continue,
	continueWithArgument {},
	disconnectForwardConnection,
	disconnectForwardConnectionWithArgument {},
	disconnectLeg {},
	entityReleased {},
	establishTemporaryConnection {},
	eventReportBCSM {},
	furnishChargingInformation {},
	initialDP {},
	initiateCallAttempt {},
	moveLeg {},
	playTone {},
	releaseCall {},
	requestReportBCSMEvent {},
	resetTimer {},
	sendChargingInformation {},
	splitLeg {}
FROM CAP-gsmSSF-gsmSCF-ops-args gsmSSF-gsmSCF-Operations
-- Object Identifier 'gsmSSF-gsmSCF-Operations' is updated to version8(7) in Rel-6. As
-- a result, the present module, 'CAP-gsmSSF-gsmSCF-pkgs-contracts-acs', IMPORTS CAP
-- Operation definitions from CAP-gsmSSF-gsmSCF-ops-args version8(7). Operation
-- definitions are used in the ABSTRACT SYNTAX definitions and in the OPERATION PACKAGE
-- definitions.
	playAnnouncement {},
	promptAndCollectUserInformation {},
	specializedResourceReport
FROM CAP-gsmSCF-gsmSRF-ops-args gsmSCF-gsmSRF-Operations-- Object Identifier 'gsmSCF-gsmSRF-Operations' is updated to version8(7) in Rel-6. AS
-- a result, the present module, 'CAP-gsmSSF-gsmSCF-pkgs-contracts-acs', IMPORTS CAP
-- Operation definitions from CAP-gsmSCF-gsmSRF-ops-args version8(7). Operation
-- definitions are used in the ABSTRACT SYNTAX definitions and in the OPERATION PACKAGE
-- definitions.

	specializedResourceControlPackage {}
FROM CAP-gsmSCF-gsmSRF-pkgs-contracts-acs gsmSCF-gsmSRF-Protocol
-- Object Identifier 'gsmSCF-gsmSRF-Protocol' is updated to version8(7) in Rel-6. As a
-- result, the present module, 'CAP-gsmSSF-gsmSCF-pkgs-contracts-acs', IMPORTS CAP Operation
-- Package definitions from CAP-gsmSCF-gsmSRF-pkgs-contracts-acs version8(7). Operation
-- Package definitions are used in the CONTRACT definitions.

	id-ac-CAP-gsmSSF-scfGenericAC,
	id-ac-CAP-gsmSSF-scfAssistHandoffAC,
	id-ac-CAP-scf-gsmSSFGenericAC,
-- The APPLICATION-CONTEXT Identifiers for CAP V4 in Rel-6 are the same as for CAP V4 in Rel-5.

	id-CAPSsfToScfGeneric,
	id-CAPAssistHandoffssfToScf,
	id-CAPScfToSsfGeneric,
-- The CONTRACT Identifiers for CAP V4 in Rel-6 are the same as for CAP V4 in Rel-5.

	id-as-gsmSSF-scfGenericAS,
	id-as-scf-gsmSSFGenericAS,
	id-as-assistHandoff-gsmSSF-scfAS,
-- The ABSTRACT-SYNTAX Identifiers for CAP V4 in Rel-6 are the same as for CAP V4 in Rel-5.

	id-package-scfActivation,
	id-package-gsmSRF-scfActivationOfAssist,
	id-package-assistConnectionEstablishment,
	id-package-genericDisconnectResource,
	id-package-nonAssistedConnectionEstablishment,
	id-package-connect,
	id-package-callHandling,
	id-package-bcsmEventHandling,
	id-package-ssfCallProcessing,
	id-package-scfCallInitiation,
	id-package-timer,
	id-package-billing,
	id-package-charging,
	id-package-trafficManagement,
	id-package-callReport,
	id-package-signallingControl,
	id-package-activityTest,
	id-package-cancel,
	id-package-cphResponse,
	id-package-exceptionInform,
	id-package-playTone,
-- The OPERATION-PACKAGE Identifiers for CAP V4 in Rel-6 are the same as for CAP V4 in Rel-5.

	classes,
	ros-InformationObjects,
	tc-Messages,
	tc-NotationExtensions, 

	gsmSSF-gsmSCF-Operations,
	gsmSCF-gsmSRF-Operations,
-- Object Identifiers gsmSSF-gsmSCF-Operations and gsmSCF-gsmSRF-Operations are updated
-- to version8(7) in Rel-6. As a result, the present module, 'CAP-gsmSSF-gsmSCF-pkgs-
-- contracts-acs', IMPORTS Rel-6 versions of the CAP Operation definitions.

	gsmSCF-gsmSRF-Protocol
-- Object Identifier gsmSCF-gsmSRF-Protocol is updated to version8(7) in Rel-6. As a result,
-- the present module IMPORTS Rel-6 versions of the CAP Operation Package definitions.

FROM CAP-object-identifiers {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
umts-network(1) modules(3) cap-object-identifiers(100) version8(7)};

-- Application Contexts

-- CAP V4 Rel-5 and CAP V4 Rel-6 use the same Application Context version. The CONTRACT
-- and ABSTRACT SYNTAXES for the call control related Application Contexts, however, are
-- defined in Rel-6. This is needed to use parameter definitions that are defined in Rel-6.

-- Refer to ITU-T Recommendation Q.775 for the formal definition of APPLICATION-CONTEXT.
-- The structured DIALOGUE MODE is defined in ITU-T Recommendation Q.771; the
-- dialogue-abstract-syntax ABSTRACT SYNTAX is defined in ITU-T Recommendation Q.775.

capssf-scfGenericAC APPLICATION-CONTEXT ::= {
	CONTRACT					capSsfToScfGeneric
	DIALOGUE MODE				structured
	ABSTRACT SYNTAXES			{dialogue-abstract-syntax |
								gsmSSF-scfGenericAbstractSyntax} 
	APPLICATION CONTEXT NAME	id-ac-CAP-gsmSSF-scfGenericAC}
-- 'capSsfToScfGeneric' and 'gsmSSF-scfGenericAbstractSyntax' are defined in the present
-- module.

capssf-scfAssistHandoffAC APPLICATION-CONTEXT ::= {
	CONTRACT					capAssistHandoffssfToScf
	DIALOGUE MODE				structured
	ABSTRACT SYNTAXES			{dialogue-abstract-syntax |
								assistHandoff-gsmSSF-scfAbstractSyntax}
	APPLICATION CONTEXT NAME	id-ac-CAP-gsmSSF-scfAssistHandoffAC}
-- 'capAssistHandoffssfToScf' and 'assistHandoff-gsmSSF-scfAbstractSyntax' are defined in
-- the present module.

capscf-ssfGenericAC	APPLICATION-CONTEXT ::= {
	CONTRACT					capScfToSsfGeneric
	DIALOGUE MODE				structured
	ABSTRACT SYNTAXES			{dialogue-abstract-syntax |
								scf-gsmSSFGenericAbstractSyntax}
	APPLICATION CONTEXT NAME	id-ac-CAP-scf-gsmSSFGenericAC}
-- 'capScfToSsfGeneric' and 'scf-gsmSSFGenericAbstractSyntax' are defined in the present
-- module.

-- Contracts
-- The CONTRACT definitions are updated for Rel-6, due to the fact that the individual
-- OPERATION-PACKAGE definitions are updated in Rel-6.

capSsfToScfGeneric CONTRACT ::= {
-- dialogue initiated by gsmSSF with InitialDP Operation
	INITIATOR CONSUMER OF		{exceptionInformPackage {cAPSpecificBoundSet} |
								scfActivationPackage {cAPSpecificBoundSet}}
	RESPONDER CONSUMER OF		{activityTestPackage |
								assistConnectionEstablishmentPackage {cAPSpecificBoundSet} |
								bcsmEventHandlingPackage {cAPSpecificBoundSet} |
								billingPackage {cAPSpecificBoundSet} |
								callHandlingPackage {cAPSpecificBoundSet} |
								callReportPackage {cAPSpecificBoundSet} |
								cancelPackage {cAPSpecificBoundSet} |
								chargingPackage {cAPSpecificBoundSet} |
								connectPackage {cAPSpecificBoundSet} |
								cphResponsePackage {cAPSpecificBoundSet} |
								genericDisconnectResourcePackage {cAPSpecificBoundSet} |
								nonAssistedConnectionEstablishmentPackage {cAPSpecificBoundSet} |
								playTonePackage {cAPSpecificBoundSet} |
								signallingControlPackage {cAPSpecificBoundSet} |
								specializedResourceControlPackage {cAPSpecificBoundSet} |
								ssfCallProcessingPackage {cAPSpecificBoundSet} |
								timerPackage {cAPSpecificBoundSet} |
								trafficManagementPackage {cAPSpecificBoundSet} |
								scfCallInitiationPackage {cAPSpecificBoundSet}}
	ID							id-CAPSsfToScfGeneric}
-- The OPERATION-PACKAGEs are defined in the present module, except for
-- specializedResourceControlPackage, which is defined in CAP-gsmSCF-gsmSRF-pkgs-contracts-acs.

capAssistHandoffssfToScf CONTRACT ::= {
-- dialogue initiated by gsmSSF with AssistRequestInstructions
	INITIATOR CONSUMER OF		{gsmSRF-scfActivationOfAssistPackage {cAPSpecificBoundSet}}
	RESPONDER CONSUMER OF		{activityTestPackage |
								cancelPackage {cAPSpecificBoundSet} |
								genericDisconnectResourcePackage {cAPSpecificBoundSet} |
								nonAssistedConnectionEstablishmentPackage {cAPSpecificBoundSet} |
								specializedResourceControlPackage {cAPSpecificBoundSet} |
								timerPackage {cAPSpecificBoundSet}}
	ID							id-CAPAssistHandoffssfToScf}
-- The OPERATION-PACKAGEs are defined in the present module, except for
-- specializedResourceControlPackage, which is defined in CAP-gsmSCF-gsmSRF-pkgs-contracts-acs.

capScfToSsfGeneric CONTRACT ::= {
-- dialogue initiated by gsmSCF with InitiateCallAttempt, Generic Case
	INITIATOR CONSUMER OF		{activityTestPackage |
								assistConnectionEstablishmentPackage {cAPSpecificBoundSet} |
								bcsmEventHandlingPackage {cAPSpecificBoundSet} |
								billingPackage {cAPSpecificBoundSet} |
								callHandlingPackage {cAPSpecificBoundSet} |
								callReportPackage {cAPSpecificBoundSet} |
								cancelPackage {cAPSpecificBoundSet} |
								chargingPackage {cAPSpecificBoundSet} |
								connectPackage {cAPSpecificBoundSet} |
								cphResponsePackage {cAPSpecificBoundSet} |
								genericDisconnectResourcePackage {cAPSpecificBoundSet} |
								nonAssistedConnectionEstablishmentPackage {cAPSpecificBoundSet} |
								playTonePackage {cAPSpecificBoundSet} |
								scfCallInitiationPackage {cAPSpecificBoundSet} |
								specializedResourceControlPackage {cAPSpecificBoundSet} |
								ssfCallProcessingPackage {cAPSpecificBoundSet} |
								timerPackage {cAPSpecificBoundSet}}
	RESPONDER CONSUMER OF		{exceptionInformPackage {cAPSpecificBoundSet}}
	ID							id-CAPScfToSsfGeneric}
-- The OPERATION-PACKAGEs are defined in the present module, except for
-- specializedResourceControlPackage, which is defined in CAP-gsmSCF-gsmSRF-pkgs-contracts-acs.


-- Operation Packages
-- The OPERATION-PACKAGE definitions are updated for Rel-6, due to the fact that the individual
-- OPERATION definitions are updated in Rel-6. The OPERATION definitions are IMPORTED from
-- CAP-gsmSSF-gsmSCF-ops-args and from CAP-gsmSCF-gsmSRF-ops-args.

scfActivationPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{initialDP {bound}}
	ID					id-package-scfActivation}

gsmSRF-scfActivationOfAssistPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{assistRequestInstructions {bound}}
	ID					id-package-gsmSRF-scfActivationOfAssist}

assistConnectionEstablishmentPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{establishTemporaryConnection {bound}}
	ID					id-package-assistConnectionEstablishment}

genericDisconnectResourcePackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{disconnectForwardConnection |
						disconnectForwardConnectionWithArgument {bound}}
	ID					id-package-genericDisconnectResource}

nonAssistedConnectionEstablishmentPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{connectToResource {bound}}
	ID					id-package-nonAssistedConnectionEstablishment}

connectPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{connect {bound}}
	ID					id-package-connect}

callHandlingPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{releaseCall {bound}}
	ID					id-package-callHandling}

bcsmEventHandlingPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{requestReportBCSMEvent {bound}}
	SUPPLIER INVOKES	{eventReportBCSM {bound}}
	ID					id-package-bcsmEventHandling}

ssfCallProcessingPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{collectInformation | continueWithArgument {bound} | continue}
	ID					id-package-ssfCallProcessing}

scfCallInitiationPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{initiateCallAttempt {bound}}
	ID					id-package-scfCallInitiation}

timerPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{resetTimer {bound}}
	ID					id-package-timer}

billingPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{furnishChargingInformation {bound}}
	ID					id-package-billing}

chargingPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{applyCharging {bound}}
	SUPPLIER INVOKES	{applyChargingReport {bound}}
	ID					id-package-charging}

trafficManagementPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{callGap {bound}}
	ID					id-package-trafficManagement}

callReportPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{callInformationRequest {bound}}
	SUPPLIER INVOKES	{callInformationReport {bound}}
	ID					id-package-callReport}

signallingControlPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{sendChargingInformation {bound}}
	ID					id-package-signallingControl}

activityTestPackage OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{activityTest}
	ID					id-package-activityTest}

cancelPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{cancel {bound}}
	ID					id-package-cancel}

cphResponsePackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{continueWithArgument {bound} |
						disconnectLeg {bound} |
						moveLeg {bound} |
						splitLeg {bound}}
	ID					id-package-cphResponse}

exceptionInformPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{entityReleased {bound}}
	ID					id-package-exceptionInform}

playTonePackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{playTone {bound}}
	ID					id-package-playTone}


-- Abstract Syntaxes

-- SsfToScfGenericInvokable and SsfToScfGenericReturnable use OPERATION definitions with
-- version8(7). As a result, GenericSSF-gsmSCF-PDUs uses version8(7) OPERATION definitions.
-- As a subsequent result, gsmSSF-scfGenericAbstractSyntax uses version8(7) OPERATION
-- definitions. That ABSTRACT-SYNTAX is used in the capssf-scfGenericAC APPLICATION-CONTEXT
-- definition (CAP from gsmSSF to gsmSCF).

gsmSSF-scfGenericAbstractSyntax ABSTRACT-SYNTAX ::= {
	GenericSSF-gsmSCF-PDUs
	IDENTIFIED BY		id-as-gsmSSF-scfGenericAS}
-- 'GenericSSF-gsmSCF-PDUs' is defined in the present module.

GenericSSF-gsmSCF-PDUs ::= TCMessage {{SsfToScfGenericInvokable},
									  {SsfToScfGenericReturnable}}
-- 'SsfToScfGenericInvokable' and 'SsfToScfGenericReturnable' are defined in the present module.

SsfToScfGenericInvokable OPERATION ::= {
	activityTest |
	applyCharging {cAPSpecificBoundSet} |
	applyChargingReport {cAPSpecificBoundSet} |
	callInformationReport {cAPSpecificBoundSet} |
	callInformationRequest {cAPSpecificBoundSet} |
	cancel {cAPSpecificBoundSet} |
	connect {cAPSpecificBoundSet} |
	continueWithArgument {cAPSpecificBoundSet} |
	connectToResource {cAPSpecificBoundSet} |
	collectInformation |
	disconnectForwardConnection |
	disconnectForwardConnectionWithArgument {cAPSpecificBoundSet} |
	disconnectLeg {cAPSpecificBoundSet} |
	entityReleased {cAPSpecificBoundSet} |
	establishTemporaryConnection {cAPSpecificBoundSet} |
	eventReportBCSM {cAPSpecificBoundSet} |
	furnishChargingInformation {cAPSpecificBoundSet} |
	initialDP {cAPSpecificBoundSet} |
	initiateCallAttempt {cAPSpecificBoundSet} |
	moveLeg {cAPSpecificBoundSet} |
	releaseCall {cAPSpecificBoundSet} |
	requestReportBCSMEvent {cAPSpecificBoundSet} |
	resetTimer {cAPSpecificBoundSet} |
	sendChargingInformation {cAPSpecificBoundSet} |
	splitLeg {cAPSpecificBoundSet} |
	playAnnouncement {cAPSpecificBoundSet} |
	playTone {cAPSpecificBoundSet} |
	promptAndCollectUserInformation {cAPSpecificBoundSet} |
	specializedResourceReport
	}
-- The OPERATION definitions are IMPORTED from CAP-gsmSSF-gsmSCF-ops-args and from
-- CAP-gsmSCF-gsmSRF-ops-args.

SsfToScfGenericReturnable OPERATION ::= {
	activityTest |
	applyCharging {cAPSpecificBoundSet} |
	applyChargingReport {cAPSpecificBoundSet} |
	callGap {cAPSpecificBoundSet} |
	callInformationRequest {cAPSpecificBoundSet} |
	cancel {cAPSpecificBoundSet} |
	connect {cAPSpecificBoundSet} |
	connectToResource {cAPSpecificBoundSet} |
	collectInformation |
	continue |
	continueWithArgument {cAPSpecificBoundSet} |
	disconnectForwardConnection |
	disconnectForwardConnectionWithArgument {cAPSpecificBoundSet} |
	disconnectLeg {cAPSpecificBoundSet} |
	entityReleased {cAPSpecificBoundSet} |
	establishTemporaryConnection {cAPSpecificBoundSet} |
	furnishChargingInformation {cAPSpecificBoundSet} |
	initialDP {cAPSpecificBoundSet} |
	initiateCallAttempt {cAPSpecificBoundSet} |
	moveLeg {cAPSpecificBoundSet} |
	releaseCall {cAPSpecificBoundSet} |
	requestReportBCSMEvent {cAPSpecificBoundSet} |
	resetTimer {cAPSpecificBoundSet} |
	sendChargingInformation {cAPSpecificBoundSet} |
	splitLeg {cAPSpecificBoundSet} |
	playAnnouncement {cAPSpecificBoundSet} |
	playTone {cAPSpecificBoundSet} |
	promptAndCollectUserInformation {cAPSpecificBoundSet}
	}
-- The OPERATION definitions are IMPORTED from CAP-gsmSSF-gsmSCF-ops-args and from
-- CAP-gsmSCF-gsmSRF-ops-args.


-- AssistHandoffssfToScfInvokable and AssistHandoffssfToScfReturnable use OPERATION definitions
-- with version8(7). As a result, AssistHandoffsSF-gsmSCF-PDUs uses version8(7) OPERATION
-- definitions. As a subsequent result, assistHandoff-gsmSSF-scfAbstractSyntax uses version8(7)
-- OPERATION definitions. That ABSTRACT-SYNTAX is used in the capssf-scfAssistHandoffAC
-- APPLICATION-CONTEXT definition (CAP from assist gsmSSF to gsmSCF).

assistHandoff-gsmSSF-scfAbstractSyntax ABSTRACT-SYNTAX ::= {
	AssistHandoffsSF-gsmSCF-PDUs
	IDENTIFIED BY	id-as-assistHandoff-gsmSSF-scfAS}
-- 'AssistHandoffsSF-gsmSCF-PDUs' is defined in the present module.

AssistHandoffsSF-gsmSCF-PDUs ::= TCMessage {{AssistHandoffssfToScfInvokable}, 
											{AssistHandoffssfToScfReturnable}}
-- 'AssistHandoffssfToScfInvokable' and 'AssistHandoffssfToScfReturnable' are defined in the
-- present module.

AssistHandoffssfToScfInvokable OPERATION ::= {
	activityTest |
	assistRequestInstructions {cAPSpecificBoundSet} |
	cancel {cAPSpecificBoundSet} |
	connectToResource {cAPSpecificBoundSet} |
	disconnectForwardConnection |
	playAnnouncement {cAPSpecificBoundSet} |
	promptAndCollectUserInformation {cAPSpecificBoundSet} |
	resetTimer {cAPSpecificBoundSet} |
	specializedResourceReport
	}
-- The OPERATION definitions are IMPORTED from CAP-gsmSSF-gsmSCF-ops-args and from
-- CAP-gsmSCF-gsmSRF-ops-args.

AssistHandoffssfToScfReturnable OPERATION ::= {
	activityTest |
	assistRequestInstructions {cAPSpecificBoundSet} |
	cancel {cAPSpecificBoundSet} |
	connectToResource {cAPSpecificBoundSet} |
	disconnectForwardConnection |
	playAnnouncement {cAPSpecificBoundSet} |
	promptAndCollectUserInformation {cAPSpecificBoundSet} |
	resetTimer {cAPSpecificBoundSet}
	}
-- The OPERATION definitions are IMPORTED from CAP-gsmSSF-gsmSCF-ops-args and from
-- CAP-gsmSCF-gsmSRF-ops-args.

-- ScfToSsfGenericInvokable and ScfToSsfGenericReturnable use OPERATION definitions
-- with version8(7). As a result, GenericSCF-gsmSSF-PDUs uses version8(7) OPERATION
-- definitions. As a subsequent result, scf-gsmSSFGenericAbstractSyntax uses version8(7)
-- OPERATION definitions. That ABSTRACT-SYNTAX is used in the capscf-ssfGenericAC
-- APPLICATION-CONTEXT definition (CAP from gsmSCF to gsmSSF).
scf-gsmSSFGenericAbstractSyntax	ABSTRACT-SYNTAX ::= {
	GenericSCF-gsmSSF-PDUs
	IDENTIFIED BY	id-as-scf-gsmSSFGenericAS}
-- 'GenericSCF-gsmSSF-PDUs' is defined in the present module.

GenericSCF-gsmSSF-PDUs ::= TCMessage {{ScfToSsfGenericInvokable},
									  {ScfToSsfGenericReturnable}}
-- 'ScfToSsfGenericInvokable' and 'ScfToSsfGenericReturnable' are defined in the
-- present module.

ScfToSsfGenericInvokable OPERATION ::= {
	activityTest |
	applyCharging {cAPSpecificBoundSet} |
	applyChargingReport {cAPSpecificBoundSet} |
	callInformationRequest {cAPSpecificBoundSet} |
	cancel {cAPSpecificBoundSet} |
	collectInformation |
	connect {cAPSpecificBoundSet} |
	connectToResource {cAPSpecificBoundSet} |
	continue |
	continueWithArgument {cAPSpecificBoundSet} |
	disconnectForwardConnection |
	disconnectForwardConnectionWithArgument {cAPSpecificBoundSet} |
	disconnectLeg {cAPSpecificBoundSet} |
	establishTemporaryConnection {cAPSpecificBoundSet} |
	furnishChargingInformation {cAPSpecificBoundSet} |
	initiateCallAttempt {cAPSpecificBoundSet} |
	moveLeg {cAPSpecificBoundSet} |
	playTone {cAPSpecificBoundSet} |
	releaseCall {cAPSpecificBoundSet} |
	requestReportBCSMEvent {cAPSpecificBoundSet} |
	resetTimer {cAPSpecificBoundSet} |
	sendChargingInformation {cAPSpecificBoundSet} |
	splitLeg {cAPSpecificBoundSet} |
	playAnnouncement {cAPSpecificBoundSet} |
	promptAndCollectUserInformation {cAPSpecificBoundSet}
	}
-- The OPERATION definitions are IMPORTED from CAP-gsmSSF-gsmSCF-ops-args and from
-- CAP-gsmSCF-gsmSRF-ops-args.

ScfToSsfGenericReturnable OPERATION ::= {
	activityTest |
	applyCharging {cAPSpecificBoundSet} |
	applyChargingReport {cAPSpecificBoundSet} |
	callInformationReport {cAPSpecificBoundSet} |
	callInformationRequest {cAPSpecificBoundSet} |
	cancel {cAPSpecificBoundSet} |
	connect {cAPSpecificBoundSet} |
	connectToResource {cAPSpecificBoundSet} |
	disconnectForwardConnection |
	disconnectForwardConnectionWithArgument {cAPSpecificBoundSet} |
	disconnectLeg {cAPSpecificBoundSet} |
	entityReleased {cAPSpecificBoundSet} |
	establishTemporaryConnection {cAPSpecificBoundSet} |
	eventReportBCSM {cAPSpecificBoundSet} |
	furnishChargingInformation {cAPSpecificBoundSet} |
	initiateCallAttempt {cAPSpecificBoundSet} |
	moveLeg {cAPSpecificBoundSet} |
	requestReportBCSMEvent {cAPSpecificBoundSet} |
	resetTimer {cAPSpecificBoundSet} |
	sendChargingInformation {cAPSpecificBoundSet} |
	splitLeg {cAPSpecificBoundSet} |
	playAnnouncement {cAPSpecificBoundSet} |
	playTone {cAPSpecificBoundSet} |
	promptAndCollectUserInformation {cAPSpecificBoundSet} |
	specializedResourceReport
	}
-- The OPERATION definitions are IMPORTED from CAP-gsmSSF-gsmSCF-ops-args and from
-- CAP-gsmSCF-gsmSRF-ops-args.

END

-- 6.2	gsmSCF/gsmSRF interface
-- 6.2.1	gsmSCF/gsmSRF operations and arguments
CAP-gsmSCF-gsmSRF-ops-args {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
umts-network(1) modules(3) cap-gsmSCF-gsmSRF-ops-args(103) version8(7)}

DEFINITIONS IMPLICIT TAGS ::= BEGIN

-- This module contains the operations and operation arguments used for the
-- gsmSRF - gsmSCF interface, for the control of circuit switched calls.

-- The table in subclause 2.1 lists the specifications that contain the modules
-- that are used by CAP.

IMPORTS

	OPERATION
FROM Remote-Operations-Information-Objects ros-InformationObjects

	opcode-playAnnouncement,
	opcode-promptAndCollectUserInformation,
	opcode-specializedResourceReport
FROM CAP-operationcodes operationcodes
-- The CAP Operation identifiers for CAP V4 in Rel-6 are the same as the CAP Operation
-- identifiers for CAP V4 in Rel-5.

	CallSegmentID {},
	CollectedInfo,
	Digits {},
	Extensions {},
	InformationToSend {}
FROM CAP-datatypes datatypes
-- For Rel-6, the CAP-datatypes module is updated to version8(7); Object Identifier 'datatypes'
-- is also updated to version8(7). As a result, the present module uses Rel-6 data type definitions.

	canceled,
	improperCallerResponse,
	missingParameter,
	parameterOutOfRange,
	systemFailure,
	taskRefused,
	unavailableResource,
	unexpectedComponentSequence,
	unexpectedDataValue,
	unexpectedParameter,
	unknownCSID
FROM CAP-errortypes errortypes
-- For Rel-6, the CAP-errortypes module is updated to version8(7); Object Identifier
-- 'errortypes' is also updated to version8(7). As a result, the present module uses Rel-6
-- error type definitions.

	PARAMETERS-BOUND
FROM CAP-classes classes

	ros-InformationObjects,
	operationcodes,
	datatypes,
	errortypes,
	classes
FROM CAP-object-identifiers {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
umts-network(1) modules(3) cap-object-identifiers(100) version8(7)}

;

playAnnouncement {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		PlayAnnouncementArg {bound}
	RETURN RESULT	FALSE
	ERRORS			{canceled |
					missingParameter |
					parameterOutOfRange |
					systemFailure |
					taskRefused |
					unexpectedComponentSequence |
					unexpectedDataValue |
					unexpectedParameter |
					unavailableResource |
					unknownCSID}
	LINKED			{specializedResourceReport}
	CODE			opcode-playAnnouncement}
-- Direction: gsmSCF -> gsmSRF, Timer: Tpa
-- This operation is to be used after Establish Temporary Connection (assist procedure
-- with a second gsmSSF) or a Connect to Resource (no assist) operation. It may be used
-- for inband interaction with a mobile station, or for interaction with an ISDN user.
-- In the former case, the gsmSRF is usually collocated with the gsmSSF for standard
-- tones (congestion tone...) or standard announcements.
-- In the latter case, the gsmSRF is always collocated with the gsmSSF in the switch.
-- Any error is returned to the gsmSCF. The timer associated with this operation must
-- be of a sufficient duration to allow its linked operation to be correctly correlated.

PlayAnnouncementArg {PARAMETERS-BOUND : bound}::= SEQUENCE {
	informationToSend					[0] InformationToSend {bound},
	disconnectFromIPForbidden			[1] BOOLEAN DEFAULT TRUE,
	requestAnnouncementCompleteNotification	[2] BOOLEAN DEFAULT TRUE,
	extensions							[3] Extensions {bound}						OPTIONAL,
	callSegmentID						[5] CallSegmentID {bound}					OPTIONAL,
	requestAnnouncementStartedNotification	[51] BOOLEAN DEFAULT FALSE,
	...
	}

promptAndCollectUserInformation {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		PromptAndCollectUserInformationArg {bound}
	RESULT			ReceivedInformationArg {bound}
	ERRORS			{canceled |
					improperCallerResponse |
					missingParameter |
					parameterOutOfRange |
					systemFailure |
					taskRefused |
					unexpectedComponentSequence |
					unavailableResource |
					unexpectedDataValue |
					unexpectedParameter |
					unknownCSID}
	LINKED			{specializedResourceReport}
	CODE			opcode-promptAndCollectUserInformation}
-- Direction: gsmSCF -> gsmSRF, Timer: Tpc 
-- This operation is used to interact with a user to collect information.

PromptAndCollectUserInformationArg {PARAMETERS-BOUND : bound}::= SEQUENCE {
	collectedInfo						[0] CollectedInfo,
	disconnectFromIPForbidden			[1] BOOLEAN	DEFAULT TRUE,
	informationToSend					[2] InformationToSend {bound}				OPTIONAL,
	extensions							[3] Extensions {bound}						OPTIONAL,
	callSegmentID						[4]	CallSegmentID {bound}					OPTIONAL,
	requestAnnouncementStartedNotification [51] BOOLEAN DEFAULT FALSE,
	...
	}

ReceivedInformationArg {PARAMETERS-BOUND : bound}::= CHOICE {
	digitsResponse						[0] Digits {bound}
	}

specializedResourceReport OPERATION ::= {
	ARGUMENT		SpecializedResourceReportArg
	RETURN RESULT	FALSE
	ALWAYS RESPONDS	FALSE
	CODE			opcode-specializedResourceReport}
-- Direction: gsmSRF -> gsmSCF, Timer: Tsrr 
-- This operation is used as the response to a PlayAnnouncement operation when the announcement 
-- completed report indication is set.

SpecializedResourceReportArg ::= CHOICE {
	allAnnouncementsComplete			[50] NULL,
	firstAnnouncementStarted			[51] NULL
	}

END
-- 6.2.2	gsmSRF/gsmSCF contracts, packages and ACs
-- 6.2.2.1	gsmSRF/gsmSCF ASN.1 modules
CAP-gsmSCF-gsmSRF-pkgs-contracts-acs {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3) cap-gsmSCF-gsmSRF-pkgs-contracts-acs(104) version8(7)}

DEFINITIONS ::= BEGIN

-- This module specifies the Operation Packages, Contracts, Application Contexts
-- and Abstract Syntaxes used for the gsmSRF - gsmSCF interface, for the control of
-- circuit switched calls.

-- The table in subclause 2.1 lists the specifications that contain the modules
-- that are used by CAP.

IMPORTS

	PARAMETERS-BOUND,
	cAPSpecificBoundSet
FROM CAP-classes classes
-- Elements that exist in cAPSpecificBoundSet in Rel-5 are not changed in Rel-6. As a
-- result, the value range of data type definitions in Rel-5 are not changed in Rel-6.

	CONTRACT,
	OPERATION-PACKAGE,
	OPERATION
FROM Remote-Operations-Information-Objects ros-InformationObjects

	TCMessage {} 
FROM TCAPMessages tc-Messages

	APPLICATION-CONTEXT,
	dialogue-abstract-syntax
FROM TC-Notation-Extensions tc-NotationExtensions

	playAnnouncement {},
	promptAndCollectUserInformation {},
	specializedResourceReport
FROM CAP-gsmSCF-gsmSRF-ops-args gsmSCF-gsmSRF-Operations-- Object Identifier 'gsmSCF-gsmSRF-Operations' is updated to version8(7) in Rel-6. As
-- a result, the present module, 'CAP-gsmSCF-gsmSRF-pkgs-contracts-acs', IMPORTS CAP
-- Operation definitions from CAP-gsmSCF-gsmSRF-ops-args version8(7). Operation
-- definitions are used in the ABSTRACT SYNTAX definitions and in the OPERATION PACKAGE
-- definitions.

	activityTest,
	cancel {},
	assistRequestInstructions {}
FROM CAP-gsmSSF-gsmSCF-ops-args gsmSSF-gsmSCF-Operations
-- Object Identifier 'gsmSSF-gsmSCF-Operations' is updated to version8(7) in Rel-6. AS
-- a result, the present module, 'CAP-gsmSCF-gsmSRF-pkgs-contracts-acs', IMPORTS CAP
-- Operation definitions from CAP-gsmSSF-gsmSCF-ops-args version8(7). Operation
-- definitions are used in the ABSTRACT SYNTAX definitions and in the OPERATION PACKAGE
-- definitions.

	gsmSRF-scfActivationOfAssistPackage {}
FROM CAP-gsmSSF-gsmSCF-pkgs-contracts-acs gsmSSF-gsmSCF-Protocol
-- Object Identifier 'gsmSSF-gsmSCF-Protocol' is updated to version8(7) in Rel-6. As a
-- result, the present module, 'CAP-gsmSCF-gsmSRF-pkgs-contracts-acs', IMPORTS CAP Operation
-- Package definitions from CAP-gsmSSF-gsmSCF-pkgs-contracts-acs version8(7). Operation
-- Package definitions are used in the CONTRACT definitions.

	id-package-specializedResourceControl,
	id-package-activityTest,
	id-package-gsmSRF-scfCancel,
-- The OPERATION-PACKAGE Identifiers for CAP V4 in Rel-6 are the same as for CAP V4 in Rel-5.

	id-ac-gsmSRF-gsmSCF,
-- The APPLICATION-CONTEXT Identifiers for CAP V4 in Rel-6 are the same as for CAP V4 in Rel-5.

	id-contract-gsmSRF-gsmSCF,
-- The CONTRACT Identifiers for CAP V4 in Rel-6 are the same as for CAP V4 in Rel-5.


	id-as-basic-gsmSRF-gsmSCF,
-- The ABSTRACT-SYNTAX Identifiers for CAP V4 in Rel-6 are the same as for CAP V4 in Rel-5.

	classes,
	ros-InformationObjects,
	tc-Messages,
	tc-NotationExtensions,

	gsmSCF-gsmSRF-Operations,
	gsmSSF-gsmSCF-Operations,
-- Object Identifiers gsmSSF-gsmSCF-Operations and gsmSCF-gsmSRF-Operations are updated
-- to version8(7) in Rel-6. As a result, the present module, 'CAP-gsmSCF-gsmSRF-pkgs-
-- contracts-acs', IMPORTS Rel-6 versions of the CAP Operation definitions.

	gsmSSF-gsmSCF-Protocol
-- Object Identifier gsmSSF-gsmSCF-Protocol is updated to version8(7) in Rel-6. As a result,
-- the present module IMPORTS Rel-6 versions of the CAP Operation Package definitions.

FROM CAP-object-identifiers {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
umts-network(1) modules(3) cap-object-identifiers(100) version8(7)};

-- Application Contexts
-- CAP V4 Rel-5 and CAP V4 Rel-6 use the same Application Context version. The CONTRACT
-- and ABSTRACT SYNTAXES for the call control related Application Contexts, however, are
-- defined in Rel-6. This is needed to use parameter definitions that are defined in Rel-6.

-- Refer to ITU-T Recommendation Q.775 for the formal definition of APPLICATION-CONTEXT.
-- The structured DIALOGUE MODE is defined in ITU-T Recommendation Q.771; the
-- dialogue-abstract-syntax ABSTRACT SYNTAX is defined in ITU-T Recommendation Q.775.

gsmSRF-gsmSCF-ac APPLICATION-CONTEXT ::= {
	CONTRACT					gsmSRF-gsmSCF-contract
	DIALOGUE MODE				structured
	TERMINATION					basic
	ABSTRACT SYNTAXES			{dialogue-abstract-syntax |
								gsmSRF-gsmSCF-abstract-syntax}
	APPLICATION CONTEXT NAME	id-ac-gsmSRF-gsmSCF}
-- 'gsmSRF-gsmSCF-contract' and 'gsmSRF-gsmSCF-abstract-syntax' are defined in the present
-- module.

-- Contracts
-- The CONTRACT definitions are updated for Rel-6, due to the fact that the individual
-- OPERATION-PACKAGE definitions are updated in Rel-6.

gsmSRF-gsmSCF-contract CONTRACT ::= {
	INITIATOR CONSUMER OF		{gsmSRF-scfActivationOfAssistPackage {cAPSpecificBoundSet}}
	RESPONDER CONSUMER OF		{specializedResourceControlPackage {cAPSpecificBoundSet} |
								activityTestPackage |
								gsmSRF-scfCancelPackage {cAPSpecificBoundSet} }
	ID							id-contract-gsmSRF-gsmSCF}
-- The OPERATION-PACKAGEs are defined in the present module, except for
-- gsmSRF-scfActivationOfAssistPackage, which is defined in CAP-gsmSSF-gsmSCF-pkgs-contracts-acs.

-- Operation Packages
-- The OPERATION-PACKAGE definitions are updated for Rel-6, due to the fact that the individual
-- OPERATION definitions are updated in Rel-6. The OPERATION definitions are IMPORTED from
-- CAP-gsmSSF-gsmSCF-ops-args and from CAP-gsmSCF-gsmSRF-ops-args.

specializedResourceControlPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{playAnnouncement {bound} |
						promptAndCollectUserInformation {bound}}
	SUPPLIER INVOKES	{specializedResourceReport}
	ID					id-package-specializedResourceControl}

gsmSRF-scfCancelPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{cancel {bound}}
	ID					id-package-gsmSRF-scfCancel}

activityTestPackage OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{activityTest}
	ID					id-package-activityTest}

-- Abstract Syntaxes

-- GsmSRFgsmSCFInvokable and GsmSRFgsmSCFReturnable use OPERATION definitions with
-- version8(7). As a result, BASIC-gsmSRF-gsmSCF-PDUs uses version8(7) OPERATION definitions.
-- As a subsequent result, gsmSRF-gsmSCF-abstract-syntax uses version8(7) OPERATION
-- definitions. That ABSTRACT-SYNTAX is used in the gsmSRF-gsmSCF-ac APPLICATION-CONTEXT
-- definition (CAP from gsmSRF to gsmSCF).

gsmSRF-gsmSCF-abstract-syntax ABSTRACT-SYNTAX ::= {
	BASIC-gsmSRF-gsmSCF-PDUs
	IDENTIFIED BY		id-as-basic-gsmSRF-gsmSCF}
-- 'BASIC-gsmSRF-gsmSCF-PDUs' is defined in the present module.

BASIC-gsmSRF-gsmSCF-PDUs ::= TCMessage {{GsmSRFgsmSCFInvokable},
										{GsmSRFgsmSCFReturnable}}
-- 'GsmSRFgsmSCFInvokable' and 'GsmSRFgsmSCFReturnable' are defined in the present module.

GsmSRFgsmSCFInvokable OPERATION ::= {
	activityTest |
	assistRequestInstructions {cAPSpecificBoundSet} |
	cancel {cAPSpecificBoundSet} |
	playAnnouncement {cAPSpecificBoundSet} |
	promptAndCollectUserInformation {cAPSpecificBoundSet} |
	specializedResourceReport
	}
-- The OPERATION definitions are IMPORTED from CAP-gsmSSF-gsmSCF-ops-args and from
-- CAP-gsmSCF-gsmSRF-ops-args.

GsmSRFgsmSCFReturnable OPERATION ::= {
	activityTest |
	assistRequestInstructions {cAPSpecificBoundSet} |
	cancel {cAPSpecificBoundSet} |
	playAnnouncement {cAPSpecificBoundSet} |
	promptAndCollectUserInformation {cAPSpecificBoundSet}
	}
-- The OPERATION definitions are IMPORTED from CAP-gsmSSF-gsmSCF-ops-args and from
-- CAP-gsmSCF-gsmSRF-ops-args.

END

-- 7	SMS Control
-- 7.1	SMS operations and arguments
CAP-SMS-ops-args {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3) cap-SMS-ops-args(105) version8(7)}
-- The module CAP-SMS-ops-args is updated to version8(7) for Rel-6. The OPERATION definitions
-- are not modified.

DEFINITIONS IMPLICIT TAGS::= BEGIN

-- This module contains the operations and operation arguments used for the
-- smsSSF- gsmSCF interface, for the control of MO-SMS and MT-SMS.

-- The table in subclause 2.1 lists the specifications that contain the modules
-- that are used by CAP.

IMPORTS

	errortypes,
	datatypes,
	operationcodes,
	classes,
	ros-InformationObjects,
	tc-Messages
FROM CAP-object-identifiers {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
umts-network(1) modules(3) cap-object-identifiers(100) version8(7)}

	OPERATION
FROM Remote-Operations-Information-Objects ros-InformationObjects

	ServiceKey
FROM CS1-DataTypes {itu-t(0) identified-organization(4) etsi(0) inDomain(1) in-network(1)
modules(0) cs1-datatypes(2) version1(0)}

	MiscCallInfo
FROM CS2-datatypes {itu-t(0) identified-organization(4) etsi(0) inDomain(1) in-network(1)
cs2(20) modules(0) in-cs2-datatypes (0) version1(0)}

	IMEI,
	IMSI,
	ISDN-AddressString
FROM MAP-CommonDataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
gsm-Network(1) modules(3) map-CommonDataTypes(18) version12(12)}

	GPRSMSClass,
	LocationInformation,
	MS-Classmark2
FROM MAP-MS-DataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
gsm-Network(1) modules(3) map-MS-DataTypes(11) version12(12)}

	PARAMETERS-BOUND
FROM CAP-classes classes

	opcode-connectSMS,
	opcode-continueSMS,
	opcode-eventReportSMS,
	opcode-furnishChargingInformationSMS,
	opcode-initialDPSMS,
	opcode-releaseSMS,
	opcode-requestReportSMSEvent,
	opcode-resetTimerSMS
FROM CAP-operationcodes operationcodes
-- The CAP Operation identifiers for CAP V3 and CAP V4 for SMS in Rel-6 are the same as in Rel-5.

	CalledPartyBCDNumber {},
	EventSpecificInformationSMS,
	EventTypeSMS,
	Extensions {},
	FCISMSBillingChargingCharacteristics,
	LocationInformationGPRS,
	RPCause,
	SMS-AddressString,
	SMSEvent,
	TimeAndTimezone {},
	TimerID,
	TimerValue,
	TPDataCodingScheme,
	TPProtocolIdentifier,
	TPShortMessageSpecificInfo,
	TPValidityPeriod
FROM CAP-datatypes datatypes
-- For Rel-6, the CAP-datatypes module is updated to version8(7); Object Identifier 'datatypes'
-- is also updated to version8(7). As a result, the present module uses Rel-6 data type definitions.

	missingCustomerRecord,
	missingParameter,
	parameterOutOfRange,
	systemFailure,
	taskRefused,
	unexpectedComponentSequence,
	unexpectedDataValue,
	unexpectedParameter
FROM CAP-errortypes errortypes
-- For Rel-6, the CAP-errortypes module is updated to version8(7); Object Identifier
-- 'errortypes' is also updated to version8(7). As a result, the present module uses Rel-6
-- error type definitions.

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

;

connectSMS {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		ConnectSMSArg {bound}
	RETURN RESULT	FALSE
	ERRORS			{missingParameter |
					parameterOutOfRange |
					systemFailure |
					taskRefused |
					unexpectedComponentSequence |
					unexpectedDataValue |
					unexpectedParameter}
	CODE			opcode-connectSMS}
--  Direction: gsmSCF -> gsmSSF or gprsSSF, Timer: Tconsms
--  This operation is used to request the smsSSF to perform the SMS processing
--  actions to route or forward a short message to a specified destination.

ConnectSMSArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	callingPartysNumber					[0] SMS-AddressString						OPTIONAL,
	destinationSubscriberNumber			[1] CalledPartyBCDNumber {bound}			OPTIONAL,
	sMSCAddress							[2] ISDN-AddressString						OPTIONAL,
	extensions							[10] Extensions {bound}						OPTIONAL,
	...
	}

continueSMS OPERATION ::= {
	RETURN RESULT	FALSE
	ALWAYS RESPONDS	FALSE
	CODE			opcode-continueSMS}
-- Direction: gsmSCF -> smsSSF, Timer: Tcuesms 
-- This operation is used to request the smsSSF to proceed with
-- Short Message processing at the DP at which it previously suspended
-- Short Message processing to await gsmSCF instructions (i.e. proceed
-- to the next Point in Association in the SMS FSM). The smsSSF
-- continues SMS processing without substituting new data from the gsmSCF.

eventReportSMS {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		EventReportSMSArg {bound}
	RETURN RESULT	FALSE
	ALWAYS RESPONDS	FALSE
	CODE			opcode-eventReportSMS}
--  Direction: gsmSSF or gprsSSF -> gsmSCF, Timer: Terbsms
--  This operation is used to notify the gsmSCF of a Short Message related event (FSM events
--  such as submission, delivery or failure) previously requested by the gsmSCF in a
--  RequestReportSMSEvent operation.

EventReportSMSArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	eventTypeSMS						[0] EventTypeSMS,
	eventSpecificInformationSMS			[1] EventSpecificInformationSMS				OPTIONAL,
	miscCallInfo						[2] MiscCallInfo DEFAULT {messageType request},
	extensions							[10] Extensions {bound}						OPTIONAL,
	...
	}

furnishChargingInformationSMS {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		FurnishChargingInformationSMSArg {bound}
	RETURN RESULT	FALSE
	ERRORS			{missingParameter |
					taskRefused |
					unexpectedComponentSequence |
					unexpectedDataValue |
					unexpectedParameter}
	CODE			opcode-furnishChargingInformationSMS}
--  Direction: gsmSCF ?? gsmSSF or gprsSSF, Timer: Tfcisms 
--  This operation is used to request the smsSSF to generate, register a charging record
--  or to include some information in the default SM record. The registered charging record is
--  intended for off line charging of the Short Message.

FurnishChargingInformationSMSArg {PARAMETERS-BOUND : bound} ::=
	FCISMSBillingChargingCharacteristics {bound}

initialDPSMS {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		InitialDPSMSArg {bound}
	RETURN RESULT	FALSE
	ERRORS			{missingCustomerRecord |
					missingParameter |
					parameterOutOfRange |
					systemFailure |
					taskRefused |
					unexpectedComponentSequence |
					unexpectedDataValue |
					unexpectedParameter}
	CODE			opcode-initialDPSMS}
--  Direction: gsmSSF or gprsSSF -> gsmSCF, Timer: Tidpsms
--  This operation is used after a TDP to indicate request for service.

InitialDPSMSArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	serviceKey							[0] ServiceKey,
	destinationSubscriberNumber			[1] CalledPartyBCDNumber {bound}			OPTIONAL,
	callingPartyNumber					[2] SMS-AddressString						OPTIONAL,
	eventTypeSMS						[3] EventTypeSMS							OPTIONAL,
	iMSI								[4] IMSI									OPTIONAL,
	locationInformationMSC				[5] LocationInformation						OPTIONAL,
	locationInformationGPRS				[6] LocationInformationGPRS					OPTIONAL,
	sMSCAddress							[7] ISDN-AddressString						OPTIONAL,
	timeAndTimezone						[8] TimeAndTimezone {bound}					OPTIONAL,
	tPShortMessageSpecificInfo			[9] TPShortMessageSpecificInfo				OPTIONAL,
	tPProtocolIdentifier				[10] TPProtocolIdentifier					OPTIONAL,
	tPDataCodingScheme					[11] TPDataCodingScheme						OPTIONAL,
	tPValidityPeriod					[12] TPValidityPeriod						OPTIONAL,
	extensions							[13] Extensions {bound}						OPTIONAL,
	...,
	smsReferenceNumber					[14] CallReferenceNumber					OPTIONAL,
	mscAddress							[15] ISDN-AddressString						OPTIONAL,
	sgsn-Number							[16] ISDN-AddressString						OPTIONAL,
	ms-Classmark2						[17] MS-Classmark2							OPTIONAL,
	gPRSMSClass 						[18] GPRSMSClass							OPTIONAL,
	iMEI								[19] IMEI									OPTIONAL,
	calledPartyNumber					[20] ISDN-AddressString						OPTIONAL
	}

--  The UserCSGInformation is conveyed in the LocationInformation for CS and LocationInformationGPRS
--  for GPRS. The encoding of the parameter is as defined in 3GPP TS 29.002 [11].

releaseSMS OPERATION ::= {
	ARGUMENT		ReleaseSMSArg
	RETURN RESULT	FALSE
	ALWAYS RESPONDS	FALSE
	CODE			opcode-releaseSMS}
--  Direction: gsmSCF -> gsmSSF or gprsSSF, Timer: Trelsms
--  This operation is used to prevent an attempt to submit or deliver a short message. 

ReleaseSMSArg ::= RPCause

requestReportSMSEvent {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		RequestReportSMSEventArg {bound}
	RETURN RESULT	FALSE
	ERRORS			{missingParameter |
					parameterOutOfRange |
					systemFailure |
					taskRefused |
					unexpectedComponentSequence |
					unexpectedDataValue |
					unexpectedParameter}
	CODE			opcode-requestReportSMSEvent}
--  Direction: gsmSCF -> gsmSSF or gprsSSF, Timer: Trrbsms
--  This operation is used to request the gsmSSF or gprsSSF to monitor for a
--  Short Message related event (FSM events such as submission, delivery or failure)
--  and to send a notification to the gsmSCF when the event is detected.

RequestReportSMSEventArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	sMSEvents							[0] SEQUENCE SIZE (1..bound.&numOfSMSEvents) OF SMSEvent,
	extensions							[10] Extensions {bound}						OPTIONAL,
	...
	}
--  Indicates the Short Message related events(s) for notification.

resetTimerSMS {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		ResetTimerSMSArg {bound}
	RETURN RESULT	FALSE
	ERRORS			{missingParameter |
					parameterOutOfRange |
					taskRefused |
					unexpectedComponentSequence |
					unexpectedDataValue |
					unexpectedParameter}
	CODE			opcode-resetTimerSMS}
-- Direction: gsmSCF -> smsSSF, Timer: Trtsms 
-- This operation is used to request the smsSSF to refresh an application
-- timer in the smsSSF.

ResetTimerSMSArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	timerID								[0] TimerID	DEFAULT tssf,
	timervalue							[1] TimerValue,
	extensions							[2] Extensions {bound} 						OPTIONAL,
	...
	}

END

-- 7.1.1	Operation timers
-- 7.2	SMS contracts, packages and ACs
-- 7.2.1	smsSSF/gsmSCF ASN.1 module
CAP-smsSSF-gsmSCF-pkgs-contracts-acs {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3) cap-smsSSF-gsmSCF-pkgs-contracts-acs(106) version8(7)}

DEFINITIONS ::= BEGIN

-- This module specifies the Operation Packages, Contracts, Application Contexts
-- and Abstract Syntaxes used for the smsSSF - gsmSCF interface, for the
-- control of MO-SMS and MT-SMS.

-- The table in subclause 2.1 lists the specifications that contain the modules
-- that are used by CAP.

IMPORTS

	PARAMETERS-BOUND,
	cAPSpecificBoundSet
FROM CAP-classes classes 
-- Elements that exist in cAPSpecificBoundSet in Rel-5 are not changed in Rel-6. As a
-- result, the value range of data type definitions in Rel-5 are not changed in Rel-6.

	CONTRACT,
	OPERATION-PACKAGE,
	OPERATION
FROM Remote-Operations-Information-Objects ros-InformationObjects

	TCMessage {} 
FROM TCAPMessages tc-Messages

	APPLICATION-CONTEXT,
	dialogue-abstract-syntax
FROM TC-Notation-Extensions tc-NotationExtensions

	connectSMS{},
	continueSMS,
	eventReportSMS{},
	furnishChargingInformationSMS{},
	initialDPSMS{},
	releaseSMS,
	requestReportSMSEvent{},
	resetTimerSMS{}
FROM CAP-SMS-ops-args sms-Operations
-- Object Identifier 'sms-Operations' is updated to version8(7) in Rel-6. As a result,
-- the present module, 'CAP-smsSSF-gsmSCF-pkgs-contracts-acs', IMPORTS CAP Operation
-- definitions from CAP-SMS-ops-args version8(7). Operation definitions are used in the
-- ABSTRACT SYNTAX definitions and in the OPERATION PACKAGE definitions.

	id-ac-cap3-sms-AC,
	id-ac-cap4-sms-AC,
-- The APPLICATION-CONTEXT Identifiers for CAP V3 and CAP V4 for SMS in Rel-6 are the same as
-- in Rel-5.

	id-cap3SmsSsfTogsmScf,
	id-cap4SmsSsfTogsmScf,
-- The CONTRACT Identifiers for CAP V3 and CAP V4 for SMS in Rel-6 are the same as in Rel-5.

	id-package-smsActivation,
	id-package-smsConnect,
	id-package-smsContinue,
	id-package-smsRelease,
	id-package-smsEventHandling, 
	id-package-smsBilling, 
	id-package-smsTimer,
-- The OPERATION-PACKAGE Identifiers for CAP V3 and CAP V4 for SMS in Rel-6 are the same as
-- in Rel-5.

	sms-Operations,
-- Object Identifier sms-Operations is updated to version8(7) in Rel-6. As a result, the present
-- module, 'CAP-smsSSF-gsmSCF-pkgs-contracts-acs', IMPORTS Rel-6 versions of the CAP Operation
-- definitions.

	tc-NotationExtensions,
	tc-Messages,
	ros-InformationObjects,
	classes,

	id-as-smsSSF-gsmSCF-AS
-- The ABSTRACT-SYNTAX Identifiers for CAP V3 and CAP V4 for SMS in Rel-6 are the same as
-- in Rel-5.

FROM CAP-object-identifiers {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
umts-network(1) modules(3) cap-object-identifiers(100) version8(7)}

;

-- Application Contexts

-- Rel-6 uses the same Application Context versions for SMS as Rel-5. The CONTRACT and ABSTRACT
-- SYNTAXES for SMS are defined in Rel-6.

-- Refer to ITU-T Recommendation Q.775 for the formal definition of APPLICATION-CONTEXT.
-- The structured DIALOGUE MODE is defined in ITU-T Recommendation Q.771; the
-- dialogue-abstract-syntax ABSTRACT SYNTAX is defined in ITU-T Recommendation Q.775.

cap3-sms-AC APPLICATION-CONTEXT ::= {
	CONTRACT					cap3SMS
	DIALOGUE MODE				structured
	ABSTRACT SYNTAXES			{dialogue-abstract-syntax |
								sms-AbstractSyntax} 
	APPLICATION CONTEXT NAME	id-ac-cap3-sms-AC}
-- This application context shall be used for CAMEL support of MO-SMS.
-- 'cap3SMS' and 'sms-AbstractSyntax' are defined in the present module.

cap4-sms-AC APPLICATION-CONTEXT ::= {
	CONTRACT					cap4SMS
	DIALOGUE MODE				structured
	ABSTRACT SYNTAXES			{dialogue-abstract-syntax |
								sms-AbstractSyntax} 
	APPLICATION CONTEXT NAME	id-ac-cap4-sms-AC}
-- This application context shall be used for CAMEL support of MT-SMS.
-- 'cap4SMS' and 'sms-AbstractSyntax' are defined in the present module.


-- Contracts
-- The CONTRACT definitions for SMS in Rel-6 use OPERATION-PACKAGE definitions which are
-- defined in Rel-6.

cap3SMS CONTRACT ::= {
-- dialogue initiated by gprsSSF or gsmSSF with InitialDPSMS Operation
	INITIATOR CONSUMER OF		{smsActivationPackage {cAPSpecificBoundSet}}
	RESPONDER CONSUMER OF		{smsConnectPackage {cAPSpecificBoundSet} |
								smsReleasePackage |
								smsEventHandlingPackage {cAPSpecificBoundSet} |
								smsTimerPackage {cAPSpecificBoundSet} |
								smsBillingPackage {cAPSpecificBoundSet} |
								smsProcessingPackage}
	ID							id-cap3SmsSsfTogsmScf}
-- The OPERATION-PACKAGEs are defined in the present module.

cap4SMS CONTRACT ::= {
-- dialogue initiated by gprsSSF or gsmSSF with InitialDPSMS Operation
	INITIATOR CONSUMER OF		{smsActivationPackage {cAPSpecificBoundSet}}
	RESPONDER CONSUMER OF		{smsConnectPackage {cAPSpecificBoundSet} |
								smsReleasePackage |
								smsEventHandlingPackage {cAPSpecificBoundSet} |
								smsTimerPackage {cAPSpecificBoundSet} |
								smsBillingPackage {cAPSpecificBoundSet} |
								smsProcessingPackage }
	ID							id-cap4SmsSsfTogsmScf}
-- The OPERATION-PACKAGEs are defined in the present module.


-- Operation Packages
-- The OPERATION-PACKAGE definitions for SMS in Rel-6 use Operation definitions from Rel-6. The
-- OPERATION definitions are IMPORTED from CAP-SMS-ops-args.

smsActivationPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{initialDPSMS {bound}}
	ID					id-package-smsActivation}

smsConnectPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{connectSMS {bound}}
	ID					id-package-smsConnect}

smsProcessingPackage OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{continueSMS}
	ID					id-package-smsContinue}

smsReleasePackage OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{releaseSMS}
	ID					id-package-smsRelease}

smsEventHandlingPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{requestReportSMSEvent {bound}}
	SUPPLIER INVOKES	{eventReportSMS {bound}}
	ID					id-package-smsEventHandling}

smsBillingPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{furnishChargingInformationSMS {bound}}
	ID					id-package-smsBilling}

smsTimerPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{resetTimerSMS {bound}}
	ID					id-package-smsTimer}


-- Abstract Syntaxes

-- SmsInvokable and SmsReturnable use OPERATION definitions with version8(7). As a result,
-- Generic-sms-PDUs uses version8(7) OPERATION definitions. As a subsequent result,
-- sms-AbstractSyntax uses version8(7) OPERATION definitions. That ABSTRACT-SYNTAX is used
-- in the cap3-sms-AC APPLICATION-CONTEXT definition and in the and cap4-sms-AC APPLICATION-
-- CONTEXT definition (CAP from smsSSF to gsmSCF).

sms-AbstractSyntax ABSTRACT-SYNTAX ::= {
	Generic-sms-PDUs
	IDENTIFIED BY	id-as-smsSSF-gsmSCF-AS }
-- 'Generic-sms-PDUs' is defined in the present module.

Generic-sms-PDUs ::= TCMessage {{SmsInvokable},
								{SmsReturnable}}
-- 'SmsInvokable' and 'SmsReturnable' are defined in the present module.

SmsInvokable OPERATION ::= {
	connectSMS {cAPSpecificBoundSet} |
	eventReportSMS {cAPSpecificBoundSet} |
	furnishChargingInformationSMS {cAPSpecificBoundSet} |
	initialDPSMS {cAPSpecificBoundSet} |
	requestReportSMSEvent {cAPSpecificBoundSet} |
	resetTimerSMS {cAPSpecificBoundSet}}
-- The OPERATION definitions are IMPORTED from CAP-SMS-ops-args version8(7).

SmsReturnable OPERATION ::= {
	connectSMS {cAPSpecificBoundSet} |
	continueSMS |
	furnishChargingInformationSMS {cAPSpecificBoundSet} |
	initialDPSMS {cAPSpecificBoundSet} |
	releaseSMS |
	requestReportSMSEvent {cAPSpecificBoundSet} |
	resetTimerSMS {cAPSpecificBoundSet}}
-- The OPERATION definitions are IMPORTED from CAP-SMS-ops-args version8(7).

END

-- 8	GPRS Control
-- 8.1	gsmSCF/gprsSSF operations and arguments
CAP-gprsSSF-gsmSCF-ops-args {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
umts-network(1) modules(3) cap-GPRS-ops-args(107) version8(7)}
-- Module CAP-gprsSSF-gsmSCF-ops-args is updated to version8(7) for Rel-6. The OPERATION
-- definitions in this module are not modified, compared to Rel-5.

DEFINITIONS IMPLICIT TAGS ::= BEGIN

-- This module contains the operations and operation arguments used for the
-- gprsSSF - gsmSCF interface, for the control of GPRS.

-- The table in subclause 2.1 lists the specifications that contain the modules
-- that are used by CAP.

IMPORTS

	errortypes,
	datatypes,
	operationcodes,
	classes,
	ros-InformationObjects
FROM CAP-object-identifiers {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
umts-network(1) modules(3) cap-object-identifiers(100) version8(7)}

	OPERATION
FROM Remote-Operations-Information-Objects ros-InformationObjects

	ServiceKey
FROM CS1-DataTypes {itu-t(0) identified-organization(4) etsi(0) inDomain(1) in-network(1)
modules(0) cs1-datatypes(2) version1(0)}

	MiscCallInfo
FROM CS2-datatypes {itu-t(0) identified-organization(4) etsi(0) inDomain(1) in-network(1)
cs2(20) modules(0) in-cs2-datatypes (0) version1(0)}

	IMEI,
	IMSI,
	ISDN-AddressString
FROM MAP-CommonDataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
gsm-Network(1) modules(3) map-CommonDataTypes(18) version12(12)}

	GPRSChargingID,
	GPRSMSClass,
	GSN-Address,
	RAIdentity
FROM MAP-MS-DataTypes {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
gsm-Network(1) modules(3) map-MS-DataTypes(11) version12(12)}

	PARAMETERS-BOUND
FROM CAP-classes classes

	opcode-activityTestGPRS,
	opcode-applyChargingGPRS,
	opcode-applyChargingReportGPRS,
	opcode-cancelGPRS,
	opcode-connectGPRS,
	opcode-continueGPRS,
	opcode-entityReleasedGPRS,
	opcode-eventReportGPRS,
	opcode-furnishChargingInformationGPRS,
	opcode-initialDPGPRS,
	opcode-releaseGPRS,
	opcode-requestReportGPRSEvent,
	opcode-resetTimerGPRS,
	opcode-sendChargingInformationGPRS
FROM CAP-operationcodes operationcodes
-- The CAP Operation identifiers for CAP V3 for GPRS in Rel-6 are the same as the CAP Operation
-- identifiers for CAP V3 for GPRS in Rel-5.

	AccessPointName {},
	GPRSCause {},
	ChargingCharacteristics,
	ChargingResult,
	ChargingRollOver,
	EndUserAddress,
	Extensions,
	FCIGPRSBillingChargingCharacteristics,
	GPRSEventSpecificInformation {},
	GPRSEvent,
	GPRSEventType,
	LocationInformationGPRS,
	PDPID,
	PDPInitiationType,
	QualityOfService,
	SCIGPRSBillingChargingCharacteristics {},
	SGSNCapabilities,
	TimeAndTimezone {},
	TimerID,
	TimerValue
FROM CAP-datatypes datatypes
-- For Rel-6, the CAP-datatypes module is updated to version8(7); Object Identifier 'datatypes'
-- is also updated to version8(7). As a result, the present module uses Rel-6 data type definitions.

	missingCustomerRecord,
	missingParameter,
	parameterOutOfRange,
	systemFailure,
	taskRefused,
	unexpectedComponentSequence,
	unexpectedDataValue,
	unexpectedParameter,
	unknownPDPID
FROM CAP-errortypes errortypes
-- For Rel-6, the CAP-errortypes module is updated to version8(7); Object Identifier
-- 'errortypes' is also updated to version8(7). As a result, the present module uses Rel-6
-- error type definitions.

;

activityTestGPRS OPERATION ::= {
	RETURN RESULT	TRUE
	CODE			opcode-activityTestGPRS}
-- Direction: gsmSCF -> gprsSSF, Timer: Tatg
-- This operation is used to check for the continued existence of a relationship between the gsmSCF 
-- and gprsSSF. If the relationship is still in existence, then the gprsSSF will respond. If no 
-- reply is received, then the gsmSCF will assume that the gprsSSF has failed in some way
-- and will take the appropriate action.

applyChargingGPRS OPERATION ::= {
	ARGUMENT		ApplyChargingGPRSArg
	RETURN RESULT	FALSE
	ERRORS			{missingParameter |
					unexpectedComponentSequence |
					unexpectedParameter |
					unexpectedDataValue |
					parameterOutOfRange |
					systemFailure |
					taskRefused |
					unknownPDPID}
	CODE			opcode-applyChargingGPRS}
-- Direction gsmSCF -> gprsSSF, Timer Tacg
-- This operation is used for interacting from the gsmSCF with the gprsSSF CSE-controlled 
-- GPRS session or PDP Context charging mechanism.

ApplyChargingGPRSArg ::= SEQUENCE { 
	chargingCharacteristics				[0] ChargingCharacteristics,
	tariffSwitchInterval				[1] INTEGER (1..86400)						OPTIONAL,
	pDPID								[2] PDPID									OPTIONAL,
	...
	}
-- tariffSwitchInterval is measured in 1 second units.

applyChargingReportGPRS OPERATION ::= {
	ARGUMENT		ApplyChargingReportGPRSArg
	RETURN RESULT	TRUE
	ERRORS			{missingParameter |
					unexpectedComponentSequence |
					unexpectedParameter |
					unexpectedDataValue |
					parameterOutOfRange |
					systemFailure |
					taskRefused |
					unknownPDPID}
	CODE			opcode-applyChargingReportGPRS}
--	Direction gprsSSF -> gsmSCF,Timer Tacrg
--	The ApplyChargingReportGPRS operation provides the feedback from the gprsSCF to the gsmSCF 
--	CSE-controlled GPRS session charging mechanism.

ApplyChargingReportGPRSArg ::= SEQUENCE {
	chargingResult						[0] ChargingResult,
	qualityOfService					[1] QualityOfService						OPTIONAL,
	active								[2] BOOLEAN DEFAULT TRUE,
	pDPID								[3] PDPID									OPTIONAL,
	...,
	chargingRollOver					[4]	ChargingRollOver						OPTIONAL
	}

cancelGPRS OPERATION ::= {
	ARGUMENT		CancelGPRSArg
	RETURN RESULT	FALSE
	ERRORS			{missingParameter |
					taskRefused |
					unknownPDPID}
	CODE			opcode-cancelGPRS}
--  Direction: gsmSCF ?? gprsSSF, Timer: Tcag
--  This generic operation cancels all previous requests, 
--	i.e. all EDPs and reports can be cancelled by the gsmSCF.

CancelGPRSArg ::= SEQUENCE {
	pDPID								[0] PDPID 									OPTIONAL,
	...
	}

connectGPRS {PARAMETERS-BOUND: bound} OPERATION::= {
	ARGUMENT		ConnectGPRSArg {bound}
	RETURN RESULT	FALSE
	ERRORS			{missingParameter |
					parameterOutOfRange |
					unknownPDPID |
					systemFailure |
					taskRefused |
					unexpectedComponentSequence |
					unexpectedDataValue |
					unexpectedParameter}
	CODE			opcode-connectGPRS}
-- Direction: gsmSCF -> gprsSSF, Timer: Tcong
-- This operation is used to modify the Access Point Name used when establishing a PDP Context.

ConnectGPRSArg {PARAMETERS-BOUND: bound}::= SEQUENCE {
	accessPointName		[0] AccessPointName {bound},
	pdpID		[1] PDPID			OPTIONAL,
	...
	}

continueGPRS OPERATION ::= {
	ARGUMENT		ContinueGPRSArg
	RETURN RESULT	FALSE
	ERRORS			{missingParameter |
					unknownPDPID |
					unexpectedDataValue}
	CODE			opcode-continueGPRS}
--  Direction: gsmSCF -> gprsSSF, Timer: Tcueg
--  This operation is used to request the gprsSSF to proceed with processing at the DP at 
--  which it previously suspended processing to await gsmSCF instructions (i.e., proceed to 
--  the next point in processing in the Attach/Detach state model or PDP Context
--	state model) substituting new data from the gsmSCF.

ContinueGPRSArg ::= SEQUENCE {
	pDPID								[0] PDPID									OPTIONAL,
	...
}

entityReleasedGPRS {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		EntityReleasedGPRSArg {bound}
	RETURN RESULT	TRUE
	ERRORS			{missingParameter |
					taskRefused |
					unknownPDPID}
	CODE			opcode-entityReleasedGPRS}
--  Direction: gprsSSF -> gsmSCF, Timer: Terg
--  This operation is used when the GPRS Session is detached or a PDP Context is diconnected and
--  the associated event is not armed for reporting.
--  The usage of this operation is independent of the functional entity that initiates the Detach
--  or PDP Context Disconnection and is independent of the cause of the Detach or PDP Context
--  Disconnect.

EntityReleasedGPRSArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	gPRSCause							[0] GPRSCause {bound},
	pDPID								[1] PDPID									OPTIONAL,
	...
	}

eventReportGPRS {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		EventReportGPRSArg {bound}
	RETURN RESULT	TRUE
	ERRORS			{unknownPDPID}
	CODE			opcode-eventReportGPRS}
--	Direction gprsSSF -> gsmSCF,Timer Tereg
--		This operation is used to notify the gsmSCF of a GPRS session or PDP context related 
--		events (e.g. PDP context activation) previously requested by the gsmSCF in a 
--		RequestReportGPRSEventoperation.

EventReportGPRSArg {PARAMETERS-BOUND : bound}::= SEQUENCE {
	gPRSEventType						[0] GPRSEventType,
	miscGPRSInfo						[1] MiscCallInfo DEFAULT {messageType request},
	gPRSEventSpecificInformation		[2]	GPRSEventSpecificInformation {bound}	OPTIONAL,
	pDPID								[3]	PDPID OPTIONAL,
	...
	}

furnishChargingInformationGPRS {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		FurnishChargingInformationGPRSArg {bound}
	RETURN RESULT	FALSE
	ERRORS			{missingParameter |
					taskRefused |
					unexpectedComponentSequence |
					unexpectedDataValue |
					unexpectedParameter |
					unknownPDPID}
	CODE			opcode-furnishChargingInformationGPRS}
-- Direction: gsmSCF -> gprsSSF, Timer: Tfcig 
-- This operation is used to request the gprsSSF to generate, register a logical record or to 
-- include some information in the default logical GPRS record.
-- The registered logical record is intended for off line charging of the GPRS session
-- or PDP Context.

FurnishChargingInformationGPRSArg {PARAMETERS-BOUND : bound} ::=
	FCIGPRSBillingChargingCharacteristics{bound}

initialDPGPRS {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		InitialDPGPRSArg {bound}
	RETURN RESULT	FALSE
	ERRORS			{missingCustomerRecord |
					missingParameter |
					parameterOutOfRange |
					systemFailure |
					taskRefused |
					unexpectedComponentSequence |
					unexpectedDataValue |
					unexpectedParameter}
	CODE			opcode-initialDPGPRS}
--	Direction gprsSSF -> gsmSCF,Timer Tidpg
--	This operation is used by the gprsSSF when a trigger is detected at a DP in the GPRS state
--	machines to request instructions from the gsmSCF

InitialDPGPRSArg {PARAMETERS-BOUND : bound}::= SEQUENCE {
	serviceKey							[0] ServiceKey,
	gPRSEventType						[1] GPRSEventType,
	mSISDN								[2] ISDN-AddressString,
	iMSI								[3] IMSI,
	timeAndTimeZone						[4] TimeAndTimezone {bound},
	gPRSMSClass							[5] GPRSMSClass								OPTIONAL,
	endUserAddress						[6] EndUserAddress {bound}					OPTIONAL,
	qualityOfService					[7] QualityOfService						OPTIONAL,
	accessPointName						[8] AccessPointName{bound}					OPTIONAL,
	routeingAreaIdentity				[9] RAIdentity								OPTIONAL,
	chargingID							[10] GPRSChargingID							OPTIONAL,
	sGSNCapabilities					[11] SGSNCapabilities						OPTIONAL,
	locationInformationGPRS				[12] LocationInformationGPRS				OPTIONAL,
	pDPInitiationType					[13] PDPInitiationType						OPTIONAL,
	extensions							[14] Extensions {bound}						OPTIONAL,
	...,
	gGSNAddress							[15] GSN-Address							OPTIONAL,
	secondaryPDP-context				[16] NULL									OPTIONAL,
	iMEI								[17] IMEI									OPTIONAL
	}
-- The RouteingAreaIdentity parameter is not used. 
-- The receiving entity shall ignore RouteingAreaIdentity if received.
-- The RouteingAreaIdentity is conveyed in the LocationInformationGPRS parameter.
-- The CSGInformation is conveyed in the LocationInformationGPRS parameter. The encoding of the
-- parameter is as defined in 3GPP TS 29.002 [11].


releaseGPRS {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		ReleaseGPRSArg {bound}
	RETURN RESULT	FALSE
	ERRORS			{missingParameter |
					taskRefused |
					unknownPDPID}
	CODE			opcode-releaseGPRS}
--  Direction: gsmSCF -> gprsSSF, Timer: Trg
--  This operation is used to tear down an existing GPRS session or PDP Context at any phase.

ReleaseGPRSArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	gprsCause							[0] GPRSCause {bound},
	pDPID								[1]	PDPID									OPTIONAL,
	...
	}

requestReportGPRSEvent {PARAMETERS-BOUND : bound} OPERATION ::= {
	ARGUMENT		RequestReportGPRSEventArg {bound}
	RETURN RESULT	FALSE
	ERRORS			{missingParameter |
					parameterOutOfRange |
					systemFailure |
					taskRefused |
					unexpectedComponentSequence |
					unexpectedDataValue |
					unexpectedParameter |
					unknownPDPID}
	CODE			opcode-requestReportGPRSEvent}
-- Direction: gsmSCF -> gprsSSF, Timer: Trrqe
-- This operation is used to request the gprsSSF to monitor for an event (e.g., GPRS events 
-- such as attach or PDP Context activiation), then send a notification back to the 
-- gsmSCF when the event is detected.

RequestReportGPRSEventArg {PARAMETERS-BOUND : bound} ::= SEQUENCE {
	gPRSEvent							[0] SEQUENCE SIZE (1..bound.&numOfGPRSEvents) OF GPRSEvent,
	pDPID								[1]	PDPID									OPTIONAL,
	...
	}
-- Indicates the GPRS related events for notification.

resetTimerGPRS OPERATION ::= {
	ARGUMENT		ResetTimerGPRSArg
	RETURN RESULT	FALSE
	ERRORS			{missingParameter |
					parameterOutOfRange |
					taskRefused |
					unexpectedComponentSequence |
					unexpectedDataValue |
					unexpectedParameter |
					unknownPDPID}
	CODE			opcode-resetTimerGPRS}
--  Direction: gsmSCF -? gprsSSF, Timer: Trtg
--  This operation is used to request the gprsSSF to refresh an application timer in the gprsSSF.

ResetTimerGPRSArg ::= SEQUENCE {
	timerID								[0] TimerID					DEFAULT tssf,
	timervalue							[1] TimerValue,
	...
	}

sendChargingInformationGPRS {PARAMETERS-BOUND: bound} OPERATION ::= {
	ARGUMENT		SendChargingInformationGPRSArg { bound}
	RETURN RESULT	FALSE
	ERRORS			{missingParameter |
					unexpectedComponentSequence |
					unexpectedParameter |
					parameterOutOfRange |
					systemFailure |
					taskRefused |
					unexpectedDataValue |
					unknownPDPID}
	CODE			opcode-sendChargingInformationGPRS}
-- Direction: gsmSCF -> gprsSSF, Timer: Tscig
-- This operation is used to instruct the gprsSSF on the charging information which the
-- gprsSSF shall send to the Mobile Station by means of GSM access signalling.

SendChargingInformationGPRSArg {PARAMETERS-BOUND: bound}::= SEQUENCE {
	sCIGPRSBillingChargingCharacteristics [0] SCIGPRSBillingChargingCharacteristics {bound},
	...
	}

END

-- 8.1.1	GPRS Reference Number
CAP-GPRS-ReferenceNumber {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
umts-network(1) modules(3) cap-dialogueInformation(111) version8(7)}
-- Module CAP-GPRS-ReferenceNumber is updated to version8(7) for Rel-6. The definitions
-- in this module are not modified, compared to Rel-5.

DEFINITIONS ::= BEGIN

EXPORTS
	id-CAP-GPRS-ReferenceNumber,
	cAP-GPRS-ReferenceNumber-Abstract-Syntax;

IMPORTS

	Integer4
FROM CS1-DataTypes {itu-t(0) identified-organization(4) etsi(0) inDomain(1) in-network(1)
modules(0) cs1-datatypes(2) version1(0)}
;

id-CAP-GPRS-ReferenceNumber OBJECT IDENTIFIER ::= {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) as(1) cap-GPRS-ReferenceNumber(5) version3(2)}

cAP-GPRS-ReferenceNumber-Abstract-Syntax ABSTRACT-SYNTAX ::= {CAP-GPRS-ReferenceNumber IDENTIFIED BY id-CAP-GPRS-ReferenceNumber}

CAP-GPRS-ReferenceNumber ::= SEQUENCE {
	destinationReference				[0] Integer4								OPTIONAL,
	originationReference				[1] Integer4								OPTIONAL
	}
--  This parameter is used to identify the relationship between SGSN and the gsmSCF.

END -- of CAP-GPRS-ReferenceNumber

-- 8.1.2	Operation timers
-- 8.2	gsmSCF/gprsSSF contracts, packages and ACs
-- 8.2.1	gprsSSF/gsmSCF ASN.1 module
CAP-gprsSSF-gsmSCF-pkgs-contracts-acs {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) umts-network(1) modules(3) cap-gprsSSF-gsmSCF-pkgs-contracts-acs(108) version8(7)}
DEFINITIONS ::= BEGIN

-- This module specifies the Operation Packages, Contracts, Application Contexts
-- and Abstract Syntaxes used for the gprsSSF - gsmSCF interface, for the
-- control of GPRS.

-- The table in subclause 2.1 lists the specifications that contain the modules
-- that are used by CAP.

IMPORTS

	PARAMETERS-BOUND,
	cAPSpecificBoundSet
FROM CAP-classes classes
-- Elements that exist in cAPSpecificBoundSet in Rel-5 are not changed in Rel-6. As a
-- result, the value range of data type definitions in Rel-5 are not changed in Rel-6.

	CONTRACT,
	OPERATION-PACKAGE,
	OPERATION
FROM Remote-Operations-Information-Objects ros-InformationObjects

	TCMessage {}
FROM TCAPMessages tc-Messages

	APPLICATION-CONTEXT,
	dialogue-abstract-syntax
FROM TC-Notation-Extensions tc-NotationExtensions

	activityTestGPRS,
	applyChargingGPRS,
	applyChargingReportGPRS,
	cancelGPRS,
	connectGPRS {},
	continueGPRS,
	entityReleasedGPRS {},
	furnishChargingInformationGPRS {},
	initialDPGPRS {},
	releaseGPRS {},
	eventReportGPRS {},
	requestReportGPRSEvent {},
	resetTimerGPRS,
	sendChargingInformationGPRS {}
FROM CAP-gprsSSF-gsmSCF-ops-args gprsSSF-gsmSCF-Operations

	id-ac-CAP-gprsSSF-gsmSCF-AC,
	id-ac-CAP-gsmSCF-gprsSSF-AC,
-- The APPLICATION-CONTEXT Object Identifiers for CAP V3 for GPRS in Rel-6 are the same as for
-- CAP V3 for GPRS in Rel-5.

	id-capGprsSsfTogsmScf,
	id-capGsmScfToGprsSsf,
-- The CONTRACT Object Identifiers for CAP V3 for GPRS are updated in Rel-6.

	id-as-gprsSSF-gsmSCF-AS,
	id-as-gsmSCF-gprsSSF-AS,
-- The ABSTRACT-SYNTAX Object Identifiers for CAP V3 for GPRS are updated in Rel-6.

	id-package-gprsScfActivation,
	id-package-gprsConnect,
	id-package-gprsContinue,
	id-package-gprsRelease,
	id-package-gprsEventHandling,
	id-package-gprsExceptionInformation,
	id-package-gprsTimer,
	id-package-gprsBilling,
	id-package-gprsCharging,
	id-package-gprsChargeAdvice,
	id-package-gprsActivityTest,
	id-package-gprsCancel,
-- The OPERATION-PACKAGE Object Identifiers for CAP V3 for GPRS are updated in Rel-6.

	classes,
	ros-InformationObjects,
	tc-Messages,
	tc-NotationExtensions,

	gprsSSF-gsmSCF-Operations
-- Object Identifier 'gprsSSF-gsmSCF-Operations' is updated for Rel-6.

FROM CAP-object-identifiers {itu-t(0) identified-organization(4) etsi(0) mobileDomain(0)
umts-network(1) modules(3) cap-object-identifiers(100) version8(7)}

;

-- Application Contexts

-- The APPLICATION-CONTEXT definitions for CAP V3 for GPRS are updated in Rel-6.
-- However, the APPLICATION-CONTEXT definitions for CAP V3 for GPRS in Rel-6 use the same
-- Object Identifier for APPLICATION CONTEXT NAME as CAP V3 for GPRS in Rel-5.

-- Refer to ITU-T Recommendation Q.775 for the formal definition of APPLICATION-CONTEXT.
-- The structured DIALOGUE MODE is defined in ITU-T Recommendation Q.771; the
-- dialogue-abstract-syntax ABSTRACT SYNTAX is defined in ITU-T Recommendation Q.775.

cap-gprssf-scfAC APPLICATION-CONTEXT ::= {
	CONTRACT					capGprsSsfToScf
	DIALOGUE MODE				structured
	ABSTRACT SYNTAXES			{dialogue-abstract-syntax |
								gprsSSF-gsmSCFAbstractSyntax}
	APPLICATION CONTEXT NAME	id-ac-CAP-gprsSSF-gsmSCF-AC}
-- 'capGprsSsfToScf' and 'gprsSSF-gsmSCFAbstractSyntax' are defined in the present
-- module.

cap-gsmscf-gprsssfAC APPLICATION-CONTEXT ::= {
	CONTRACT					capGsmScfToGprsSsf
	DIALOGUE MODE				structured
	ABSTRACT SYNTAXES			{dialogue-abstract-syntax |
								gsmSCF-gprsSSFAbstractSyntax}
	APPLICATION CONTEXT NAME	id-ac-CAP-gsmSCF-gprsSSF-AC}
-- 'capGsmScfToGprsSsf' and 'gsmSCF-gprsSSFAbstractSyntax' are defined in the present
-- module.


-- Contracts
-- The CONTRACT definitions for CAP V3 for GPRS are updated in Rel-6.

capGprsSsfToScf CONTRACT ::= {
-- dialogue initiated by gprsSSF with InitialDPGPRS, ApplyChargingReportGPRS,
-- EntityReleasedGPRS and EventReportGPRS Operations
	INITIATOR CONSUMER OF		{gprsScfActivationPackage {cAPSpecificBoundSet} |
								gprsEventHandlingPackage {cAPSpecificBoundSet} |
								gprsChargingPackage |
								gprsExceptionInformationPackage {cAPSpecificBoundSet}}
	RESPONDER CONSUMER OF		{gprsConnectPackage {cAPSpecificBoundSet} |
								gprsProcessingPackage |
								gprsReleasePackage {cAPSpecificBoundSet} |
								gprsEventHandlingPackage {cAPSpecificBoundSet} |
								gprsTimerPackage |
								gprsBillingPackage {cAPSpecificBoundSet} |
								gprsChargingPackage |
								gprsCancelPackage |
								gprsChargeAdvicePackage {cAPSpecificBoundSet}}
	ID							id-capGprsSsfTogsmScf}
-- The OPERATION-PACKAGEs are defined in the present module.

capGsmScfToGprsSsf CONTRACT ::= {
-- dialogue initiated by gsmSCF with ApplyChargingGPRS, ActivityTestGPRS,
-- CancelGPRS, FurnishChargingInformationGPRS, ReleaseGPRS,
-- RequestReportGPRSEvent and SendChargingInformationGPRS Operations
	INITIATOR CONSUMER OF		{gprsReleasePackage {cAPSpecificBoundSet} |
								gprsEventHandlingPackage {cAPSpecificBoundSet} |
								gprsBillingPackage {cAPSpecificBoundSet} |
								gprsChargingPackage |
								gprsActivityTestPackage |
								gprsCancelPackage |
								gprsChargeAdvicePackage {cAPSpecificBoundSet}}
	ID							id-capGsmScfToGprsSsf}
-- The OPERATION-PACKAGEs are defined in the present module.


-- Operation Packages

-- The OPERATION-PACKAGE definitions for CAP V3 for GPRS are updated in Rel-6.

gprsScfActivationPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{initialDPGPRS {bound}}
	ID					id-package-gprsScfActivation}

gprsConnectPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{connectGPRS {bound}}
	ID					id-package-gprsConnect}

gprsProcessingPackage OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{continueGPRS }
	ID					id-package-gprsContinue}

gprsReleasePackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{releaseGPRS {bound}}
	ID					id-package-gprsRelease}

gprsEventHandlingPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{requestReportGPRSEvent {bound}}
	SUPPLIER INVOKES	{eventReportGPRS {bound}}
	ID					id-package-gprsEventHandling}

gprsExceptionInformationPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{entityReleasedGPRS {bound}}
	ID					id-package-gprsExceptionInformation}

gprsTimerPackage OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{resetTimerGPRS }
	ID					id-package-gprsTimer}

gprsBillingPackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{furnishChargingInformationGPRS {bound}}
	ID					id-package-gprsBilling}

gprsChargingPackage OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{applyChargingGPRS}
	SUPPLIER INVOKES	{applyChargingReportGPRS}
	ID					id-package-gprsCharging}

gprsChargeAdvicePackage {PARAMETERS-BOUND : bound} OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{sendChargingInformationGPRS {bound}}
	ID					id-package-gprsChargeAdvice}

gprsActivityTestPackage OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{activityTestGPRS}
	ID					id-package-gprsActivityTest}

gprsCancelPackage OPERATION-PACKAGE ::= {
	CONSUMER INVOKES	{cancelGPRS }
	ID					id-package-gprsCancel}


-- Abstract Syntaxes

-- The ABSTRACT-SYNTAX definitions for CAP V3 for GPRS are updated in Rel-6.

gprsSSF-gsmSCFAbstractSyntax ABSTRACT-SYNTAX ::= {
	GenericGprsSSF-gsmSCF-PDUs
	IDENTIFIED BY	id-as-gprsSSF-gsmSCF-AS}
-- 'GenericGprsSSF-gsmSCF-PDUs' is defined in the present module.

GenericGprsSSF-gsmSCF-PDUs ::= TCMessage {{GprsSsfToGsmScfInvokable},
										  {GprsSsfToGsmScfReturnable}}
-- 'GprsSsfToGsmScfInvokable' and 'GprsSsfToGsmScfReturnable' are defined in the present module.

GprsSsfToGsmScfInvokable OPERATION ::= {
	activityTestGPRS |
	applyChargingGPRS |
	applyChargingReportGPRS |
	cancelGPRS |
	connectGPRS {cAPSpecificBoundSet} |
	entityReleasedGPRS {cAPSpecificBoundSet} |
	eventReportGPRS {cAPSpecificBoundSet} |
	furnishChargingInformationGPRS {cAPSpecificBoundSet} |
	initialDPGPRS {cAPSpecificBoundSet} |
	releaseGPRS {cAPSpecificBoundSet} |
	requestReportGPRSEvent {cAPSpecificBoundSet} |
	resetTimerGPRS |
	sendChargingInformationGPRS {cAPSpecificBoundSet}}

GprsSsfToGsmScfReturnable OPERATION ::= {
	activityTestGPRS |
	applyChargingGPRS |
	applyChargingReportGPRS |
	cancelGPRS |
	connectGPRS {cAPSpecificBoundSet} |
	continueGPRS |
	entityReleasedGPRS {cAPSpecificBoundSet} |
	furnishChargingInformationGPRS {cAPSpecificBoundSet} |
	initialDPGPRS {cAPSpecificBoundSet} |
	releaseGPRS {cAPSpecificBoundSet} |
	requestReportGPRSEvent {cAPSpecificBoundSet} |
	resetTimerGPRS |
	sendChargingInformationGPRS {cAPSpecificBoundSet}}


gsmSCF-gprsSSFAbstractSyntax ABSTRACT-SYNTAX ::= {
	GenericGsmSCF-gprsSSF-PDUs
	IDENTIFIED BY	id-as-gsmSCF-gprsSSF-AS}
-- 'GenericGsmSCF-gprsSSF-PDUs' is defined in the present module.

GenericGsmSCF-gprsSSF-PDUs ::= TCMessage {{GsmScfToGprsSsfInvokable},
										  {GsmScfToGprsSsfReturnable}}
-- 'GsmScfToGprsSsfInvokable' and' GsmScfToGprsSsfReturnable' are defined in the present module.

GsmScfToGprsSsfInvokable OPERATION ::= {
	activityTestGPRS |
	applyChargingGPRS |
	cancelGPRS |
	furnishChargingInformationGPRS {cAPSpecificBoundSet} |
	releaseGPRS {cAPSpecificBoundSet} |
	requestReportGPRSEvent {cAPSpecificBoundSet} |
	sendChargingInformationGPRS {cAPSpecificBoundSet}}

GsmScfToGprsSsfReturnable OPERATION ::= {
	activityTestGPRS |
	applyChargingGPRS |
	cancelGPRS |
	furnishChargingInformationGPRS {cAPSpecificBoundSet} |
	releaseGPRS {cAPSpecificBoundSet} |
	requestReportGPRSEvent {cAPSpecificBoundSet} |
	sendChargingInformationGPRS {cAPSpecificBoundSet}}

END

