Skip to content
RDMessage.asn 95.6 KiB
Newer Older
	telephonyFixed(3),
	telephonyWireless(4),
	sMS(5),
	mMS(6)
}

MultimediaPartyRole	::=	ENUMERATED
{
	calling(0),
	called(1),
	calledAssertedIdentity(2),
	calledApplicationServer(3),
	originalCalled(4),
	redirecting(5),
	multimediaNetworkIndependent(6),
	directory(7),
	broadcastReceiver(8),
	broadcastSender(9),
	originalCalling(10),
	forwarded-to-Party(11),
	connected(12),
	userProvidedCalling(13),
	roaming(14),
	translated(15),
	singlePersonalNumber(16),
	smsOriginator(17),
	smsRecipient(18),
	smsOriginatorTrn(19),
	smsRecipientTrn(20),
	mmsOriginator(21),
	mmsRecipient(22),
	mmsOriginatorTrn(23),
	mmsRecipientTrn(24)
}

MultimediaBearerService	::=	ENUMERATED
{
	speech(0),
	data(1),
	fax(2),
	video(3),
	emergencyCall(4),
	...
}

ImsInformation	::=	SEQUENCE
{
	service				[1] ENUMERATED
	{
		session(1),
		message(2),
		refer(3),
		...
	} OPTIONAL,
	roleOfNode			[2] ENUMERATED
	{
		originating(1),
		terminating(2),
		proxy(3),
		b2bua(4),
		...
	} OPTIONAL,
	serviceInfo			[4] SEQUENCE OF ImsServiceInfo OPTIONAL,
	...
}

ImsServiceInfo ::= SEQUENCE
{
	serviceData		[1] OCTET STRING OPTIONAL,
	serviceType		[2] INTEGER OPTIONAL,
}

MediaComponent ::= SEQUENCE
{
	time								[1] GeneralizedTime OPTIONAL,
	mediaName							[2] UTF8String OPTIONAL,
	mediaDescription					[3] UTF8String OPTIONAL,
	mediaInitiator						[4] PartyIdentity OPTIONAL,
	accessCorrelationID					[5] OCTET STRING OPTIONAL,
	nationalMultimediaMediaComponent	[6] NationalMultimediaMediaComponent OPTIONAL,
	...
}

AccessNetworkInfo ::= CHOICE
{
	paniHeaderInfo		[1] PaniHeaderInfo,
	...
}

PaniHeaderInfo	::= SEQUENCE
{
	accessType 		[1] OCTET STRING OPTIONAL,
    -- ASCII string '3GPP-E-UTRAN-TDD', ' IEEE-802.11'... : see ETSI TS 124 229 [xx] clause 7.2A.4 
    accessClass  		[2] OCTET STRING OPTIONAL,
    -- ASCII string '3GPP-UTRAN', '3GPP-E-UTRAN',... : see ETSI TS 124 229 [xx] clause 7.2A.4
    networkProvided	[3] NULL OPTIONAL,
    -- present if provided by the network
    paniLocation		[4] Location OPTIONAL,
	-- Cell-ID and location information if available
	paniTime			[5] GeneralizedTime OPTIONAL,
	-- indicates the time when the location was reported at the start of the session, 
	-- or during or at the end of the session if the location is retained for the event
    ...,
	paniHeaderContent    [6] OCTET STRING OPTIONAL
		-- Complete content of the P-Access-Network-Info header field
-- ==============================
-- Definitions of Billing Data
-- ==============================

MultimediaBillingDetails ::= SEQUENCE
{
	subscriberID						[1] MultimediaSubscriberID OPTIONAL,
	serviceID						[2] UTF8String OPTIONAL,
	billingAddress						[3] ContactDetails OPTIONAL,
	billingIdentifier					[4] MultimediaBillingIdentifier OPTIONAL,
	billingRecords						[5] SEQUENCE OF MultimediaBillingRecords OPTIONAL,
	nationalMultimediaBillingDetails			[6] NationalMultimediaBillingDetails OPTIONAL,
		-- To be defined on a national basis
		-- Only to be used in case the present document cannot fulfil the national requirements
	multimediaBillingAddress				[7] MultimediaBillingAddress OPTIONAL,
	copyOfBill						[8] SEQUENCE OF File OPTIONAL
MultimediaBillingAddress ::= SEQUENCE
{
	addressSuppliedTime			[1] GeneralizedTime OPTIONAL,
	name						[2] PersonName OPTIONAL,
	address						[3] AddressInformation  OPTIONAL,
	...
}

NationalMultimediaBillingDetails ::= SEQUENCE
{
	countryCode		[1] UTF8String (SIZE (2)),
		-- see comment in NationalRequestParameters
	...
}

MultimediaBillingIdentifier ::= OCTET STRING
	-- Used to correlate billing information
	-- useful if the bill-payer is not the subscriber, e.g. company mobiles

MultimediaBillingRecords ::= SEQUENCE
{
	time								[1] GeneralizedTime OPTIONAL,
	place								[2] UTF8String OPTIONAL,
	amount								[3] REAL OPTIONAL,
	currency							[4] UTF8String (SIZE(3)) OPTIONAL,
		-- as per ISO 4217 [5]
	method								[5] UTF8String OPTIONAL,
	nationalMultimediaBillingRecords	[6] NationalMultimediaBillingRecords OPTIONAL,
		-- To be defined on a national basis
		-- Only to be used in case the present document cannot fulfil the national requirements
	multimediaTransactionID				[7] UTF8String OPTIONAL,
		-- Unique reference for this transaction/billing record
		-- Details to be defined on a national basis
	multimediaTransactionStatus			[8] UTF8String OPTIONAL
		-- Status of the transaction (i.e. "declined", "succeeded", etc.)
		-- Details to be defined on a national bases
}

NationalMultimediaBillingRecords ::= SEQUENCE
{
	countryCode		[1] UTF8String (SIZE (2)),
		-- see comment in NationalRequestParameters
	...
}

-- ===================
-- General definitions
-- ===================

PartyIdentity ::= UTF8String
	-- E.164 address of the party in international format, or
	-- SIP URI or TEL URI representing E.164

QualityOfService ::= UTF8String
	-- Free text description of the invoked quality of service

NationalMultimediaSubscriberInfo ::= SEQUENCE
{
	countryCode		[1] UTF8String (SIZE (2)),
		-- see comment in NationalRequestParameters
	...
}

NationalMultimediaServices ::= SEQUENCE
{
	countryCode		[1] UTF8String (SIZE (2)),
		-- see comment in NationalRequestParameters
	...
}

NationalMultimediaServiceUsage ::= SEQUENCE
{
	countryCode		[1] UTF8String (SIZE (2)),
		-- see comment in NationalRequestParameters
	...
}

NationalMultimediaPartyInformation ::= SEQUENCE
{
	countryCode		[1] UTF8String (SIZE (2)),
		-- see comment in NationalRequestParameters
	...
}

NationalMultimediaMediaComponent ::= SEQUENCE
{
	countryCode		[1] UTF8String (SIZE (2)),
		-- see comment in NationalRequestParameters
	...
}
-- =======================
-- Device Data definitions
-- =======================

MultimediaDevice ::= SEQUENCE
{
	deviceIDType					[1] ENUMERATED
		-- Type of identifier for telephony device
	{
		unknown(0),
		imei(1),
		macAddress(2),
		...
	} OPTIONAL,
	multimediaDeviceID				[2] MultimediaDeviceID OPTIONAL,
		-- Unique identifier for this device according to type of identifier
	subscriberID					[3] MultimediaSubscriberID OPTIONAL,
		-- Identifier for a known user of this equipment.
		-- Usage of this parameter is subject to national legislation.
	nationalMultimediaDevice		[4] NationalMultimediaDevice OPTIONAL,
		-- To be defined on a national basis
		-- Only to be used in case the present document cannot fulfil the national requirements
	...
}

NationalMultimediaDevice ::= SEQUENCE
{
	countryCode		[1] UTF8String (SIZE (2)),
		-- see comment in NationalRequestParameters
	...
}

MultimediaDeviceID ::= OCTET STRING
	-- A unique identifier for the multimedia device. For example, the IMEI number
	-- of a mobile handset

NetworkAccessRecord::= CHOICE
{
	naSubscriber		[1] NASubscriber,
	naServiceUsage		[2] NAServiceUsage,
	naDevice			[3] NADevice,
	naNetworkElement	[4] NANwElement,
	naBillingDetails	[5] NABillingDetails,

EdgeComputingRecord ::= CHOICE
{
	edgeComputingSubscriber		                [1] EdgeComputingSubscriber,
	edgeComputingApplicationBillingDetails	    [2] EdgeComputingApplicationBillingDetails,
	edgeComputingApplicationUsage	            [3] EdgeComputingApplicationUsage,
	edgeComputingDevice			                [4] EdgeComputingDevice
}

-- ==============================
-- Definitions of Edge Computing Subscriber Data
-- ==============================

EdgeComputingSubscriber ::= SEQUENCE
{
	subscriberID						   [1] EdgeComputingSubscriberID OPTIONAL,
		-- unique identifier for this subscriber, i.e., EECID
	genericSubscriberInfo                  [2] GenericSubscriberInfo OPTIONAL,
		-- generic personal information about this subscriber
	edgeComputingSubscriberInfo            [3] UTF8String OPTIONAL,
    subscribedEdgeComputingApplications    [4] SEQUENCE OF SubscribedEdgeComputingApplications OPTIONAL
		-- a subscriber may have more than one edge computing applications listed against them
}

EdgeComputingSubscriberID ::= UTF8String
	-- unique identifier for this subscriber, i.e., EECID

SubscribedEdgeComputingApplications ::= SEQUENCE
{
	edgeComputingApplicationID    [1] UTF8String OPTIONAL,
		-- Unique identifier for this application within the edge ASP
	providerID                    [2] UTF8String OPTIONAL,
		-- Unique identifier for the edge ASP
	timespan                      [3] TimeSpan OPTIONAL,
		-- Start and end data, if applicable, of the subscription
	registeredIdentifiers         [4] SEQUENCE OF UTF8String OPTIONAL,
		-- The set of identifiers registered for this application
	edgeComputingApplicationType  [5] UTF8String OPTIONAL,
	installationAddress           [6] AddressInformation OPTIONAL,
		-- installation address, if different from the registered address
	connectionDate                [7] GeneralizedTime OPTIONAL,
		-- Date the subscriber was actually connected
		-- (May differ from the start of subscription)
	iMSI                          [8] IMSI OPTIONAL,
    sUPI                          [9] SUPI OPTIONAL,
    gPSI                          [10] GPSI OPTIONAL,
	lineStatus                    [11] UTF8String OPTIONAL,
		-- Edge ASP-specific description of current line status,
		-- e.g. "Active", "Ceased", etc.
	paymentDetails                [12] PaymentDetails OPTIONAL,
	subscriptionType              [13] SubscriptionType OPTIONAL,
		-- Describes the nature of the subscription
	deliveryAddress               [14] AddressInformation OPTIONAL,
	resellerAddress               [15] AddressInformation OPTIONAL,
	otherAddresses                [16] SEQUENCE OF OtherAddress OPTIONAL,
	orderTime                     [17] GeneralizedTime OPTIONAL,
		-- Time when the subscribed edge computing application was ordered by the user
	allocatedDeviceIDs            [18] SEQUENCE OF EdgeComputingDeviceID OPTIONAL,
	paymentTransactions           [19] SEQUENCE OF EdgeComputingApplicationBillingRecords OPTIONAL
}


-- =================================
-- Definitions of Edge Computing Application Usage Data
-- =================================

EdgeComputingApplicationUsage ::= SEQUENCE
{
	subscriberID                        [1] EdgeComputingSubscriberID OPTIONAL,
	communicationTime                   [2] TimeSpan OPTIONAL,
		-- Time and duration of the edge computing application session.
	octetsSent                          [3] INTEGER OPTIONAL,
    octetsReceived                      [4] INTEGER OPTIONAL,
    reasonCause                         [5] UTF8String OPTIONAL,
		-- cause for application session termination
	qualityOfService                    [6] QualityOfService OPTIONAL,
	edgeComputingApplicationID          [7] UTF8String OPTIONAL,
	providerID       				    [8] UTF8String OPTIONAL,
	cdrNumber						    [9] UTF8String OPTIONAL, -- as per ASP defined format
	clientIP						    [10] IPAddress OPTIONAL,
	edgeApplicationServersInfo          [11] SEQUENCE OF EdgeApplicationServerInfo
}

EdgeApplicationServerInfo ::= SEQUENCE
{
	edgeApplicationServerID                 [1] UTF8String OPTIONAL, 
    edgeApplicationServerIP                 [2] IPAddress OPTIONAL,
    edgeApplicationServerLocation           [3] Location OPTIONAL,
    edgeApplicationServerVirtualResources   [4] EdgeApplicationServerVirtualResources OPTIONAL,
    serviceContinuity                       [5] BOOLEAN OPTIONAL
}

EdgeApplicationServerVirtualResources ::= SEQUENCE
{
    meanVirtualCPUUsage         [1] REAL OPTIONAL,
    meanVirtualMemoryUsage      [2] REAL OPTIONAL,
    meanVirtualDiskUsage        [3] REAL OPTIONAL,
    durationStartTime           [4] GeneralizedTime OPTIONAL,
    durationEndTime             [5] GeneralizedTime OPTIONAL
}

-- ==============================
-- Definitions of Edge Computing Billing Data
-- ==============================

EdgeComputingApplicationBillingDetails ::= SEQUENCE
{
	subscriberID						[1] EdgeComputingSubscriberID OPTIONAL,
	edgeComputingApplicationID		    [2] UTF8String OPTIONAL,
	billingAddress						[3] ContactDetails OPTIONAL,
	billingIdentifier					[4] EdgeComputingBillingIdentifier OPTIONAL,
	billingRecords						[5] SEQUENCE OF EdgeComputingApplicationBillingRecords OPTIONAL,
	edgeComputingBillingAddress	        [6] EdgeComputingBillingAddress OPTIONAL,
	copyOfBill							[7] SEQUENCE OF File OPTIONAL
}

EdgeComputingBillingAddress ::= SEQUENCE
{
	addressSuppliedTime			[1] GeneralizedTime OPTIONAL,
	name						[2] PersonName OPTIONAL,
	address						[3] AddressInformation OPTIONAL
}

EdgeComputingBillingIdentifier ::= OCTET STRING
	-- Used to correlate billing information
	-- useful if the bill-payer is not the subscriber, e.g. company mobiles

EdgeComputingApplicationBillingRecords ::= SEQUENCE
{
	time								[1] GeneralizedTime OPTIONAL,
	place								[2] UTF8String OPTIONAL,
	amount								[3] REAL OPTIONAL,
	currency							[4] UTF8String (SIZE(3)) OPTIONAL,
		-- as per ISO 4217 [5]
	method								[5] UTF8String OPTIONAL,
		-- i.e. credit card etc.
	edgeComputingTransactionID			[6] UTF8String OPTIONAL,
		-- Unique reference for this transaction/billing record
		-- Details to be defined on a national basis
	edgeComputingTransactionStatus		[7] UTF8String OPTIONAL
		-- Status of the transaction (i.e. "declined", "succeeded", etc.)
		-- Details to be defined on a national bases
}

-- =======================
-- Definitions of Edge Computing Device Data
-- =======================

EdgeComputingDevice ::= SEQUENCE
{
	deviceIDType				[1] ENUMERATED
		-- Type of identifier for telephony device
	{
		unknown(0),
		imei(1),
		macAddress(2),
		...
	} OPTIONAL,
	edgeComputingDeviceID		[2] EdgeComputingDeviceID OPTIONAL,
		-- Unique identifier for this device according to type of identifier
	subscriberID				[3] EdgeComputingSubscriberID OPTIONAL
		-- Identifier for a known user of this equipment.
		-- Usage of this parameter is subject to national legislation.
	
}

EdgeComputingDeviceID ::= OCTET STRING
	-- A unique identifier for the edge computing device. For example, the IMEI number
	-- of a mobile handset

-- =============================================
-- Definitions of Network Access Subscriber Data
-- =============================================

NAProviderID ::= UTF8String

NAAuthID ::= UTF8String

NaSubscriberID ::= UTF8String

NASubscriber ::= SEQUENCE
	-- Generic information on a service subscriber, supplemented with information specific to
	-- network access services.
{
	validity			[1] TimeSpan OPTIONAL,
	subscriberID		[2] NaSubscriberID OPTIONAL,
		-- Unique identifier for this subscriber, e.g. account number
	naSubscriptions		[3] SEQUENCE OF NAServiceSubscription OPTIONAL,
		-- List of all known services subscribed to by this user
	allocatedDeviceIDs	[4] SEQUENCE OF NADeviceId OPTIONAL,
		-- List of all known devices allocated to this user.
	subscriber			[5] GenericSubscriberInfo OPTIONAL,
		-- Name, address and other generic subscriber information
	...,
	allocatedDevices	[6] SEQUENCE OF NADevice OPTIONAL
		-- If present, contains device details for all elements from allocatedDeviceIDs
}

NAServiceSubscription ::= SEQUENCE
	-- Description of the subscription to a Network Access service
{
	validity				[1] TimeSpan OPTIONAL,
	naServiceID				[2] UTF8String OPTIONAL,
		-- Identifier for the service, e.g. account plan name.
	naProviderID				[3] NAProviderID OPTIONAL,
		-- Unique identifier for the provider of the service, e.g. company name
	naAuthID				[4] NAAuthID OPTIONAL,
		-- Unique identifier for this subscription, e.g. logon name
	options					[5] UTF8String OPTIONAL,
		-- Human readable text with restrictions or options to the subscription
	installationAddress			[6] AddressInformation OPTIONAL,
	fixIpAddress				[7] IPAddress OPTIONAL,
	allocatedDeviceIDs			[9] SEQUENCE OF NADeviceId OPTIONAL,
	naServiceStatus				[10] UTF8String OPTIONAL,
		-- CSP-specific description of current service status, e.g. "Active", "Ceased", etc.
	registeredICCID				[11] UTF8String OPTIONAL,
	nationalNASubscription			[12] NationalNASubscription OPTIONAL,
	paymentDetails				[13] PaymentDetails OPTIONAL,
	additionalIPAddresses			[14] SEQUENCE OF IPAddressSetOrRangeOrMask OPTIONAL,
	subscriptionType			[15] SubscriptionType OPTIONAL,
		-- Describes the nature of the subscription
	deliveryAddress				[16] AddressInformation OPTIONAL,
	resellerAddress				[17] AddressInformation OPTIONAL,
	otherAddresses				[18] SEQUENCE OF OtherAddress OPTIONAL,
	allocatedDevices			[19] SEQUENCE OF NADevice OPTIONAL,
		-- If present, contains device details for all elements from allocatedDeviceIDs
	mSISDNs					[20] SEQUENCE OF PartyNumber OPTIONAL,
	registeredICCIDs			[21] SEQUENCE OF ICCIDInfo OPTIONAL,
	paymentTransactions			[22] SEQUENCE OF BillingRecords OPTIONAL,
	sUPI					[23] SUPI OPTIONAL,
	gPSI					[24] GPSI OPTIONAL,
	timedIPAddresses		        [25] SEQUENCE OF TimedIPAddress OPTIONAL
NationalNASubscription ::= SEQUENCE
	-- Description of the subscription to a Network Access service
{
	countryCode				[1] UTF8String (SIZE(2)),
		-- see comment in NationalRequestParameters
	...
}

-- ===========================================
-- Definitions of Network Access Service Usage
-- ===========================================

NAServiceUsage ::= SEQUENCE
{
	naAccessTime					[1] GeneralizedTime OPTIONAL,
		-- Time of connection to the NAS
	naAuthID					[2] NAAuthID OPTIONAL,
		-- Username used to obtain network access
	nwAccessType					[3] NwAccessType OPTIONAL,
		-- Type of network access attempted. If not undefined(0), this should be one of the types
		-- supported by the NAS (identified below by naNwElementID)
	{
		unknown(0),
		succeeded(1),
			-- Authentication OK and access granted
		failed(2),
			-- Authentication failure (wrong credentials or time out)
		rejected(3),
			-- Rejected by the CSP (e.g. usage limits exceeded)
		...
	} OPTIONAL,
	interval					[5] TimeSpan OPTIONAL,
		-- Start time and end time (duration) of network access.
	naDeviceId					[6] NADeviceId OPTIONAL,
		-- Device used to access the service
	naNwElementID					[7] NANwElementID OPTIONAL,
		-- Network element (NAS) onto which the naDevice is connected
	naAssignedAddress				[8] SEQUENCE OF NAAssignedAddress OPTIONAL,
		-- IP address assigned by the network access service. May be fixed or dynamic
	location					[9] Location OPTIONAL,
		-- Location of the access (for e.g. GPRS handsets)
	dialUpInformation				[10] DialUpInformation OPTIONAL,
	gprsInformation					[11] GprsInformation OPTIONAL,
	octetsDownloaded				[12] INTEGER OPTIONAL,
	octetsUploaded					[13] INTEGER OPTIONAL,
	endReason					[14] NAEndReason OPTIONAL,
	subscriberID					[15] NaSubscriberID OPTIONAL,
		-- Identifier for a known user of this network access
	ePSInformation					[16] EPSInformation OPTIONAL,
	wifiInformation					[17] WifiInformation OPTIONAL,
	addressTranslationRecords			[18] SEQUENCE OF AddressTranslationRecord OPTIONAL,
		-- contains extended information about the NAT or PAT operations carried out within this
		-- service usage session
	naDevice					[19] NADevice OPTIONAL,
		-- If present, contains the device details for the device referenced in naDeviceID
	additionalLocations				[20] SEQUENCE OF TimedLocation OPTIONAL,
		-- List of additional locations and optional access time during the network access service
		-- usage
	sNSSAI						[21] OCTET STRING (SIZE(4)) OPTIONAL,
	notifyUri					[22] OCTET STRING (SIZE(3..8)) OPTIONAL,
	fiveGSInformation				[23] FIVEGSInformation OPTIONAL
TimedLocation	::= SEQUENCE
{
	location			[1]	Location,
	naAccessTime		[2] GeneralizedTime OPTIONAL,
	...
}
	bSSID								[1] OCTET STRING (SIZE (6)) OPTIONAL,
		-- The Basic Service Set Identification for the connection.
		-- This is also the MAC address of the access point (the present document assumes
		-- that records are for infrastructure mode, not ad-hoc mode).
		-- The MAC address of the user is given in the naDeviceID in the structure (one level up)
	sSID								[2] UTF8String OPTIONAL,
		-- The human-readable Service Set Identifier
		-- It should be noted that this is typically only available on the air interface and so
		-- is not likely to be logged by CSPs (though may be recorded at a more local level).
		-- Therefore requesting organizations should not expect this to be populated typically.
		-- It is not guaranteed to be unique.
	username							[3] UTF8String OPTIONAL,
	locationOfAccessPoint				[4] Location OPTIONAL,
	-- Location of the Access Point as lat/long, grid reference or postal address.
	-- Requesting organizations should be aware that Access Points can be moved, sometimes
	-- without the knowledge of the CSP
	authenticationType					[5] AuthenticationType OPTIONAL,
	additionalAuthenticationInformation	[6] AdditionalAuthenticationInformation OPTIONAL,
	accessPointIPAddress				[7] IPAddress  OPTIONAL,
	accessPointAdditionalDescriptions	[8] SEQUENCE OF UTF8String OPTIONAL,
			-- Informal description of location, category or type of access point,
			-- or a name of the network to which the access point belongs.
marthy's avatar
marthy committed
	accessPointAdditionalProviders		[9] SEQUENCE OF UTF8String OPTIONAL,
			-- For WiFi, there may be other parties involved in hosting or owning the
			-- Access Points, e.g. access point provider or partner providers
marthy's avatar
marthy committed
	cSPDefinedName						[10] UTF8String OPTIONAL
		-- CSP-defined label or name assigned to the access point.
		-- The access points of a CSP within a venue or geographical location
		-- typically share this name.
	authenticationBySMS(1),
		-- Used if authentication arranged through a code sent to mobile
		-- additionalAuthenticationInformation shall contain the phone number
	authenticationByCookie(2),
		-- If authentication was granted on the basis of a cookie left from a previous visit to a
		-- site.
		-- No other mandatory addtionalAuthenticationInformation
		-- If authentication was granted because the MAC address of the UE was recognised due
		-- to a previous visit.
		-- additionalAuthenticationInformation shall contain the MAC Address unless it is already
		-- populated as NADeviceID in this record.
	authenticationByEAPSIM(4),
		-- If authenticated by EAP SIM see TS 33.234 [36]
		-- additionalAuthenticationInformation shall contain the IMSI
		-- Other varieties of EAP could be added here later, together with any extra information
		-- they could provide.
	authenticationByUsernameAndPassword(5),
		-- additionalAuthenticationInformation should contain username and password if appropriate
	authenticationByPaymentOrVoucher(6),
		-- additionalAuthenticationInformation should contain Voucher or Payment details
		-- if appropriate.
	...
}

AdditionalAuthenticationInformation ::= SEQUENCE
{
	phoneNumber			[1] PartyNumber OPTIONAL,
		-- e.g. number to which an SMS was sent
	mACAddress			[2] OCTET STRING (SIZE (6)) OPTIONAL,
	iMSI				[3] IMSI OPTIONAL,
	username			[4] UTF8String OPTIONAL,
			-- Names supplied are unlikely to be verified
	password			[5] UTF8String OPTIONAL,
			-- Only to be populated if it is both appropriate and available
	paymentReference	[6] UTF8String OPTIONAL,
		-- For example, the number of a voucher that was used in authentication
	...
}

AddressTranslationRecord ::= SEQUENCE
{
	validity							[1] TimeSpan OPTIONAL,
		-- time at which the address translation started and/or ended
	privateIPAddress					[2] IPAddress OPTIONAL,
	privatePort							[3] INTEGER OPTIONAL,
		-- the private port of the host
	publicIPAddress						[4] IPAddress OPTIONAL,
		-- the translated IP of the host, i.e. the address known by the remote host
	publicPort							[5] AddressTranslationPortAssignment OPTIONAL,
		-- the translated port(s) of the host, i.e. the port(s) known by the remote host, if
		-- applicable
	destinationIPAddress				[6] IPAddress OPTIONAL,
		-- the IP address of the remote host
	destinationPort						[7] INTEGER OPTIONAL,
		-- the port of the remote host
	connectionType						[8] ENUMERATED
	{
		...
	} OPTIONAL,
	...
}

AddressTranslationPortAssignment ::= CHOICE
{
	singlePort						[1] INTEGER,
		-- only one port is assigned to the host, that port number is specified here
	portRange						[2] SEQUENCE OF PortRange,
		-- if a range of translated ports is assigned to the host, specify it here
	...
}

PortRange ::= SEQUENCE
{
	-- The range given is inclusive of both ends
	lowerBound		[1] INTEGER OPTIONAL,
	upperBound		[2] INTEGER OPTIONAL,
	...
}

NAEndReason ::= ENUMERATED
{
	unknownReason(0),
	timeout(1),
	userDisconnect(2),
		-- e.g. user logs off
	networkDisconnect(3),
		-- e.g. user's time/credits have been used up
}

NwAccessType ::= ENUMERATED
{
	undefined(0),
	dialUp(1),
		-- DialUp access
	xDSL(2),
		-- DSL access
	cableModem(3),
		-- Cable access
	lAN(4),
		-- LAN access
		-- Wireless LAN access (e.g. hotspot)
	wimax(6),
	mobilePacketData(7),
		-- Network access over GSM/3GPP GPRS, UMTS, etc.
	...,
	gPON(8)
		-- Gigabit capable Passive Optical Network access, based on Optical Line Terminal, 
		-- see ITU-T G.984-1 [54]
	diallingNumber		[1] PartyNumber OPTIONAL,
		-- Telephone number used for dial-up access
	dialledNumber		[2] PartyNumber OPTIONAL,
	callback			[3] PartyNumber OPTIONAL,
		-- Call back number used for dial-up access
	...
}

GprsInformation ::= SEQUENCE
{
	iMSI					[1] IMSI OPTIONAL,
	mSISDN					[2] PartyNumber OPTIONAL,
	sgsnAddress				[3] SEQUENCE OF IPAddress OPTIONAL,
	ggsnAddress				[4] IPAddress OPTIONAL,
	pDP-address-allocated	[5] IPAddress OPTIONAL,
	aPN						[6] UTF8String OPTIONAL,
	pDP-type				[7] OCTET STRING (SIZE(2)) OPTIONAL,
		-- format as per TS 101 671 [6]
	gPRSEvent				[8] GPRSEvent OPTIONAL
		-- format as per 3GPP TS 33.108 [11]
	-- Tag [9] was used in the past and shall not be reused.
{
	pDPContextActivation(1),
	pDPContextDeactivation(4),
	gPRSAttach(5),
	gPRSDetach(6),
	locationInfoUpdate(10),
		-- sMS ommited from 3GPP TS 33.108 [11]
	pDPContextModification(11),
	servingSystem(12),
	iMSIUnauthenticatedFlag	[2] IMSIUnauthenticatedFlag OPTIONAL,
	mSISDN						[3] PartyNumber OPTIONAL,
	iMEISV						[4] IMEI OPTIONAL,
	s-GWAddress					[5] IPAddress OPTIONAL,
	p-GWAddress					[6] IPAddress OPTIONAL,
	p-GWPLMNIdentifier				[7] P-GWPLMN-ID OPTIONAL,
	aPNNetworkID					[8] AccessPointNameNI OPTIONAL,
	pDP-PDNType					[9] OCTET STRING (SIZE (1))OPTIONAL,
		-- PDN/PDP Type number as defined in ETSI TS 129 274 [32] clause 8.34
	pDP-PDNAddress					[10] IPAddress OPTIONAL,
		-- IP address allocated to the PDP context / PDN connection
		-- i.e. IPv4 address when PDP/PDN Type is IPv4 or IPv6 prefix
		-- when PDP/PDN Type is IPv6 or IPv4v6.
	pDP-PDNAddressExtension				[11] IPAddress OPTIONAL,
		-- IPv4 address of the served IMSI when PDP/PDN type is IPv4v6
	dynamicAddressFlag				[12] DynamicAddressFlag OPTIONAL,
	dynamicAddressFlagExt				[13] DynamicAddressFlagExt OPTIONAL,
	rATType						[14] INTEGER (0..255) OPTIONAL,
		-- RAT Type coding according to ETSI TS 129 274 [32] clause 8.17
		-- NOTE - as of v1.23.1 of the present document, this field has changed to optional
	ePSEvent					[15] EPSEvent OPTIONAL,
	...,
	uERadioCapID					[16] UERadioCapID OPTIONAL
IMSIUnauthenticatedFlag ::= BOOLEAN
	-- TRUE if unauthenticated IMSI vs. FALSE for authenticated IMSI

P-GWPLMN-ID ::= OCTET STRING (SIZE (3))
	-- This is a copy from the Tracking Area Identity (TAI) IE
	-- specified in TS 29.274 [32] clause 8.21.4:
	--	Bits   8  7  6  5  4  3  2  1
	--		1st OCTET MCC digit 2	MCC digit 1
	--		2nd OCTET MNC digit 3	MCC digit 3
	--		3rd OCTET MNC digit 2	MNC digit 1

AccessPointNameNI ::= IA5String (SIZE(1..63))
	-- Network Identifier part of APN in dot representation.
	-- For example, if the complete APN is "apn1a.apn1b.apn1c.mnc022.mcc111.gprs"
	-- NI is "apn1a.apn1b.apn1c"
	-- TRUE if the PDP/PDN address is dynamic.
	-- FALSE if IPv4 address is static when PDN type is IPv6 or IPv4v6
	-- TRUE if IPv4 PDP/PDN address is dynamic, which is allocated during IP CAN bearer activation,
	-- initial attach and UE requested PDN connectivity with PDP/PDN type IPv4v6.
	-- FALSE if IPv4 address is static.
EPSEvent ::= ENUMERATED
	-- The list of "EPSEvent" below is partly taken from 3GPP TS 33.108 [11] EpsHI2Operations
	-- from the "EPSEvent ::=ENUMERATED" module
	e-UTRANAttach(16),
	e-UTRANDetach(17),
	bearerActivation(18),
	bearerModification(20),
	bearerDeactivation(21),
	trackingAreaUpdate(25),
	servingEvolvedPacketSystem(26),
	sUPI								[1] SUPI OPTIONAL,
	dNN								[2] UTF8String OPTIONAL,
	gPSI								[3] GPSI OPTIONAL,
	pEI								[4] PEI OPTIONAL,
	pDUSessionID							[6] INTEGER (0..255) OPTIONAL,
	sNSSAI								[7] OCTET STRING (SIZE(4)) OPTIONAL,
	pDUIpv4Address							[8] IPAddress OPTIONAL,
	pDUIpv6Address							[9] IPAddress OPTIONAL,
	pDUAddressPrefixLength						[10] INTEGER (0..128) OPTIONAL,
	rFSPIndex							[11] INTEGER (1..255) OPTIONAL,
	applicationId							[12] UTF8String OPTIONAL,
	applicationServiceProviderIdentity				[13] UTF8String OPTIONAL,
	serviceId							[14] INTEGER OPTIONAL,
	chargingId							[15] UTF8String OPTIONAL,
	pDUType								[16] PDUSessionType OPTIONAL,
	sSCMode								[17] SSCMode OPTIONAL,
	vPLMNId								[18] PLMNID OPTIONAL,
	hPLMNId								[19] PLMNID OPTIONAL,
	chargingCharacteristics						[20] UTF8String OPTIONAL,
	chargingCharacteristicsSelectionMode				[21] UTF8String OPTIONAL,
	pDUSessionStartTime						[22] GeneralizedTime OPTIONAL,
	pDUSessionStopTime						[23] GeneralizedTime OPTIONAL,
	lowPriorityIndicator						[24] BOOLEAN OPTIONAL,
	dataOffStatus							[25] BOOLEAN OPTIONAL,
	diagnostics							[26] INTEGER OPTIONAL,
	uETimeZone							[27] UTF8String OPTIONAL,
	uPFAddress							[28] IPAddress OPTIONAL,
	aMFAddress							[29] IPAddress OPTIONAL,
	uDMAddress							[30] IPAddress OPTIONAL,
	sMFAddress							[31] IPAddress OPTIONAL,
	uPFId								[32] UUID OPTIONAL, 
	aMFIdentifier							[33] AMFID OPTIONAL,
	uDMIdentifier							[34] UUID OPTIONAL,
	sMFIdentifier							[35] UUID OPTIONAL,
	uPFPDNAddress							[36] IPAddress OPTIONAL,
	uPFPDNAddressExtension						[37] IPAddress OPTIONAL,
	dynamicAddressFlag						[38] BOOLEAN OPTIONAL,
	dynamicAddressFlagExt						[39] BOOLEAN OPTIONAL,
	rAT5Type							[40] RAT5Type OPTIONAL,
	flowQosInfo							[41] OCTET STRING OPTIONAL,
	serviceID							[42] INTEGER OPTIONAL,
	...,
	uERadioCapID							[43] UERadioCapID OPTIONAL,
	rANSecondaryRATType						[44] RAT5Type OPTIONAL
PDUSessionType ::= ENUMERATED
{
    iPv4(1),
    iPv6(2),
    iPv4v6(3),
    unstructured(4),
-- ====================================
-- Definitions of Network Access Device
-- ====================================

NADeviceId ::= UTF8String

NADevice ::= SEQUENCE
{
	naDeviceId		[1] NADeviceId OPTIONAL,
	description		[2] UTF8String OPTIONAL,
		-- Human readable description of device
	location		[3] Location OPTIONAL,
	macAddress		[4] OCTET STRING (SIZE (6)) OPTIONAL,
		-- MAC or ethernet address
	dslID			[5] UTF8String OPTIONAL,
	imei			[6] IMEI OPTIONAL,
	subscriberID		[7] NaSubscriberID OPTIONAL,
	uERadioCapID		[8] UERadioCapID OPTIONAL
SUPI ::= CHOICE
{
    iMSI        [1] IMSI,
    nAI         [2] NAI,
	...
}

GPSI ::= CHOICE
{
    mSISDN      [1] PartyNumber,
    nAI         [2] NAI,
	...
}

PEI ::= CHOICE
{
    iMEI        [1] IMEI,
IMEI ::= OCTET STRING (SIZE(8))
	-- format as per 3GPP TS 09.02 [8]
	-- NOTE: When comparing IMEIs, an IMEI can be considered "equal to" the requested IMEI even
	-- if the checksum or software version digits are different or not present.
IMSI ::= OCTET STRING (SIZE(3..8))
	-- format as per 3GPP TS 09.02 [8]
UERadioCapID ::= UTF8String (SIZE(12..22))
	-- format as per ETSI TS 123 003 [41] clause 29.2

-- ======================================
-- Definitions of Message Network element
-- ======================================

NANwElementID ::= UTF8String

NANwElement ::= SEQUENCE
	-- In this context, the network element is more commonly referred to as NAS
{
	validity				[1] TimeSpan OPTIONAL,
		-- Period for which this interval is valid
	naNwElementID			[2] NANwElementID OPTIONAL,
		-- Unique ID of this NAS (Network Access Server)
	naProviderID			[3] NAProviderID OPTIONAL,
		-- Unique identifier of the provider managing this NAS.
	supportedAccessTypes	[4] SEQUENCE OF NwAccessType OPTIONAL,
	location				[5] Location OPTIONAL,
	...
}

IPAddress ::= CHOICE
{
	iPv4BinaryAddress	[1] OCTET STRING (SIZE(4)),
	iPv6BinaryAddress	[2] OCTET STRING (SIZE(16)),
	iPTextAddress		[3] IA5String (SIZE(7..45)),
marthy's avatar
marthy committed
PortNumber ::= CHOICE
{ 
	tCPPort	[0] TCPPort,
	uDPPort	[1] UDPPort,
	...