-- FurherSpecOfTypeOfInterception Type

FurtherSpecOfTypeOfInterception ::= BIT STRING {
	iRI (0),
	cC (1),
	stereo (2),	-- Default: mono
	optionA (3)	-- Default: Option B
	}
--  Explanation: 	iRI and cC provide the information, whether IRI and CC are requested. 
-- 	Stereo indicates indicates, whether the cC needs to be delivered in stereo or mono mode
--	optionA indicates, that Option A shall be used, where option A and B exist.


-- LeaRequirementsList Type

-- This parameter is used to pass information concerning the LI function to be started in the receiving side.
-- It is assumed that only the sending side is able to decide if the LI function has to be started or not.

LeaRequirementsList ::= SET OF (SIZE 1..3) 	-- max. 3, see ES 201671, A.3
	SEQUENCE { 	-- see ES 201 671, 7.1
	lawfulInterceptionIdentifier	[0] LawfulInterceptionIdentifier,
	furtherSpecOfTypeOfInterception	[1] FurtherSpecOfTypeOfInterception,
	hI2DestAddress	[2] LemfAddress OPTIONAL,
	hI3DestAddress	[3] LemfAddress OPTIONAL,
	otherNetwork-dependantParam	[4] BIT STRING {
			locationInformation (0)	
			-- others to be defined
			}
	}
-- Explanation:	lawfullInterceptionIdentifier: see ES 201 671, A.9

-- LemfAddress Type

LemfAddress ::= CHOICE {
	e164-Number	[0] OCTET STRING (SIZE 1..25),
	x25-Number	[1] OCTET STRING (SIZE 1..25),
	iP-Address	[2] OCTET STRING (SIZE 1..25),
	otherAddress	[3] OCTET STRING (SIZE 1..25)	
		     -- e.g. individual agreed address
	}

-- LiAssociatedData Type

LiAssociatedData ::= CHOICE {
	triggerInformation	[0] TriggerInformation,
	leaRequirements	[1] LeaRequirementsList
	}

-- LiCorrelationID

-- The definition below is exactly the same as used in the TCAP protocol for the TCAP Transaction Identifier.

LiCorrelationID ::= IMPLICIT OCTET STRING (1..4)
-- INServiceSpecificHi2Data Type

-- This parameter is used as a container to send HI2 information from the SCP to the LEMF via the SSP

INServiceSpecificHi2Data ::= OCTET STRING (SIZE 1..64)

-- SignallingPartyId Type

SignallingPartyId ::= ENUMERATED  {
  	unknown  (0 ), 
   	aParty  (1 ), 
  	bParty  (2 )
	}

-- TriggerCriteria Type

TriggerCriteria ::= ENUMERATED  {
  	unknown  (0 ), 
   	IsLIID  (1 ), 
  	IsCreditCardNr  (2 )
	InbandDN (3)
	}
-- This type shall be expanded as new Trigger Criteria Types are identifed
-- Numbers from 0 to 1000 shall be allocated by a standardization body
-- Numbers from 1001 to 9999 shall be allocated by a national regulatory agencies
-- Numbers above 10000 shall be mutually agreeable between operators

-- Explanation:	This type identifies the type of triggerinformation, which is send.

-- TriggerInformation Type

-- This parameter is used to pass information concerning the target identification. It is assumed that
-- the receiving side is able to decide autonomously if the LI function has to be started or not.

TriggerInformation ::= SEQUENCE  {
	triggerCriteria	[0] TriggerCriteria DEFAULT IsLIID,
	criteria	[1] GenericDigits,
	callIdentifier	[2] CallIdentifier OPTIONAL
	}
-- LiInfo Type

LiInfo ::= SEQUENCE {
	liRequired	[0] BOOLEAN,
	cCcaptured	[1] BOOLEAN,
	callIdentifier	[2] CallIdentifier,
	signallingPartyId	[3] SignallingPartyId DEFAULT unknown,
	lawfulInterceptionIdentifier	[4] LawfulInterceptionIdentifier,
	leaRequirements	[5] LeaRequirementsList OPTIONAL
	}


