RDMessagever21.txt 85.1 KB
Newer Older
	messagingEventType			[4] MessagingEventType,
	prepayServiceEventType		[5] PrepayServiceEventType,
	...,
	nationalTelephonyEventType	[6] NationalTelephonyEventType
		-- To be defined on a national basis
		-- Only to be used in case the present document cannot fulfil the national requirements
}

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

BasicEventType ::= ENUMERATED
{
	handover(1),
	hold(2),
	retrieve(3),
	suspend(4),
	ect(6),
	mpty(7),
	mptyHold(8),
	mptyRetrieve(9),
	mptySplit(10),
	uus1(11),
	uus2(12),
	uus3(13),
	serviceSpeech(14),
	serviceFax(15),
	tpyInvoke(16),
	tpyPrivateComm(17),
	serviceActivation(18),
	...,
	callAttempt(23),
	callStart(24),
	callEnd(25),
	cliWithheld(26)
}

CallForwardingEventType ::= ENUMERATED
{
	cfuActivation(1),
	cfuModification(2),
	cfuDe-activation(3),
	cfcNoReplyActivation(4),
	cfcNoReplyModification(5),
	cfcNoReplyDe-activation(6),
	cfcBusyActivation(7),
	cfcBusyModification(8),
	cfcBusyDe-activation(9),
	cfcOutOfRangeActivation(10),
	cfcOutOfRangeModification(11),
	cfcOutOfRangeDe-activation(12),
	cfcUnavailableActivation(13),
	cfcUnavailableModification(14),
	cfcUnavailableDe-activation(15),
	cfuFaxActivation(16),
	cfuFaxModification(17),
	cfuFaxDe-activation(18),
	...
}

CallConferenceEventType ::= ENUMERATED
{
	confBeginSeizure(1),
	confAdd(2),
	confSplit(3),
	confIsolate(4),
	confReattach(5),
	confDrop(6),
	confBeginActive(7),
	...
}

MessagingEventType ::= ENUMERATED
{
	mSOriginatingSMSinMSC(1),
	mSTerminatingSMSinMSC(2),
	shortMessageDelivery(3),
	mMMessage(4),
	mMNotification(5),
	mMDeliveryReport(6),
	mMReadReply(7),
	...
}

PrepayServiceEventType ::= ENUMERATED
{
	serviceActivation(1),
	...
}

TelephonyLocation ::= SEQUENCE
{
	telephonyNetworkID			[1] TelephonyNetworkID OPTIONAL,
		-- ID of the network element location (e.g. Cell ID)
		-- Time span that this location was valid for
	nationalTelephonyLocation	[3] NationalTelephonyLocation OPTIONAL,
		-- To be defined on a national basis
		-- Only to be used in case the present document cannot fulfil the national requirements
	detailedLocation			[4] TelephonyNetworkElement OPTIONAL
		-- The extended information for this network element as it was at the time of the
}

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

TelephonyPartyRole ::= ENUMERATED
{
	originating-Party(0),
	terminating-Party(1),
	forwarded-to-Party(2),
	redirecting(4),
	connected(5),
	userProvidedCalling(6),
	roaming(7),
	translated(8),
	singlePersonalNumber(9),
	smsOriginator(10),
	smsRecipient(11),
	smsOriginatorTrn(12),
	smsRecipientTrn(13),
	...,
	mmsOriginator(14),
	mmsRecipient(15),
	mmsOriginatorTrn(16),
	mmsRecipientTrn(17)
}

-- =======================
-- Device Data definitions
-- =======================

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

NationalTelephonyDevice ::= SEQUENCE
{
	countryCode		[1] UTF8String (SIZE (2)),
		-- see comment in NationalRequestParameters
	...
	-- A unique identifier for the telephony device. For example, the IMEI number
	-- of a mobile handset

-- ========================
-- Network Data definitions
-- ========================

TelephonyNetworkElement ::= SEQUENCE
{
	telephonyNetworkID					[1] TelephonyNetworkID OPTIONAL,
	cellInformation						[2] Location OPTIONAL,
		-- The Location information id
	validity							[3] TimeSpan OPTIONAL,
	nationalTelephonyNetworkElement		[4] NationalTelephonyNetworkElement OPTIONAL,
		-- To be defined on a national basis
		-- Only to be used in case the present document cannot fulfil the national requirements
	transmitterDetails					[5] TransmitterDetails OPTIONAL
}

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

TelephonyNetworkID ::= OCTET STRING
	-- Unique identifier for this network element: e.g. a Cell ID

TransmitterDetails ::= SEQUENCE
{
	alternativeID					[1] UTF8String OPTIONAL,
	-- For use by CSPs with an alternative naming scheme for cells
	beamWidth						[2] INTEGER OPTIONAL,
	-- beam width in degrees
	-- note that the beam bearing is given in the gsmLocation Azimuth field
	radiatedPower					[3] INTEGER OPTIONAL,
	-- Effective radiated power in watts.
	antennaHeight					[4] INTEGER OPTIONAL,
	-- Height of antenna from ground in metres
	range							[5] INTEGER OPTIONAL,
	-- Indication of range or radius of cell or sector coverage, in metres
	-- Precise definition is to be decided on a national basis (e.g. distance
	-- at which some fixed percentage of calls are connected)
	frequency						[6] INTEGER OPTIONAL,
	-- transmitter frequency in kHz
	technology						[7] TransmitterTechnology OPTIONAL,
	nationalTransmitterDetails		[8] NationalTransmitterDetails OPTIONAL,
	...
}

TransmitterTechnology	::= ENUMERATED
{
	gen2G(0),		-- This corresponds to GERAN in 3GPP TS 29.274 [32]
	gen3G(1),		-- This corresponds to UTRAN in 3GPP TS 29.274 [32]
	...,
	eUTRAN(2),
	wLAN(3),
	hSPAEvolution(4),
	gAN(5),
	vIRTUAL(6)
	-- Note that the labels are taken from 3GPP TS 29.274 [32] v12.3.0 clause 8.17, though the
	-- enumeration values (0 to 6) are not.
}

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

-- ====================
-- Location information
-- ====================

Location ::= SEQUENCE
{
	e164-Number					[1] OCTET STRING (SIZE (1..25)) OPTIONAL,
		-- Coded in the same format as the ISUP location number (parameter field)
		-- of the ISUP (see ETSI EN 300 356 [7])
	globalCellID					[2] OCTET STRING (SIZE (5..7)) OPTIONAL,
		-- See MAP format (see ETSI TS 100 974 [8])
	rAI						[3] OCTET STRING (SIZE (6)) OPTIONAL,
		-- The Routeing Area Identifier (RAI) in the current SGSN is coded in accordance with
		-- ETSI TS 124 008 [9] without the Routing Area Identification IEI (only the
	gsmLocation					[4] GSMLocation OPTIONAL,
	umtsLocation					[5] UMTSLocation OPTIONAL,
	sAI						[6] OCTET STRING (SIZE (7)) OPTIONAL,
		-- format:	PLMN-ID	3 octets (no. 1-3)
		--			LAC		2 octets (no. 4-5)
		--			SAC		2 octets (no. 6-7)
		--			(according to ETSI TS 125 413 [31])
	oldRAI						[7] OCTET STRING (SIZE (6)) OPTIONAL,
		-- the "Routeing Area Identifier" in the old SGSN is coded in accordance with
		-- ETSI TS 124 008 [9] without the Routing Area Identification IEI
		-- (only the last 6 octets are used)
		-- This parameter is duplicated from ETSI TS 133 108 [11]
	postalLocation					[8] AddressInformation OPTIONAL,
	extendedLocation				[9] ExtendedLocation OPTIONAL,
	userLocationInformation				[10] OCTET STRING (SIZE(1..35)) OPTIONAL,
		-- coded according to ETSI TS 129 274 [32]; the type IE is not included
	tAI						[11] OCTET STRING (SIZE (6)) OPTIONAL,
	eCGI						[12] OCTET STRING (SIZE (8)) OPTIONAL,
	maritimeTransport				[13] MaritimeTransport OPTIONAL,
		-- Information about the mobile cells embarked on ships using 
	airTransport					[14] AirTransport OPTIONAL,
		-- Information about the mobile cells embarked on aircraft using 
	bSSID						[15] OCTET STRING (SIZE (6)) OPTIONAL,
		-- 48-bit (6 octet) MAC address of the WLAN access point derived from the BSSID
	nCGI						[16] NCGI OPTIONAL,
		-- format as specified in 3GPP TS 38.413 [42].
	n3gaLocation					[17] OCTET STRING (SIZE (4)) OPTIONAL,
		-- format as specified in 3GPP TS 29.571 [43]
	trackingAreaIdentifier				[18] OCTET STRING (SIZE (5..6)) OPTIONAL
		-- where: MCC+MNC = 3 octets, TAC (4G)   = 2 octets or
		-- TAC (5G) = 3 octets and without length indicator
}

NCGI ::= SEQUENCE
{
    pLMNID                      [1] PLMNID,
    nRCellID                    [2] NRCellID
NRCellID ::= BIT STRING (SIZE(36))
-- TS 38.413 [23], clause 9.3.1.7

	{
		latitude	[1] UTF8String (SIZE(7..10)) OPTIONAL,
			-- format: XDDMMSS.SS
		longitude	[2] UTF8String (SIZE(8..11)) OPTIONAL,
			-- format: XDDDMMSS.SS
		mapDatum	[3] MapDatum OPTIONAL,
		azimuth		[4] INTEGER (0..359) OPTIONAL,
			-- The azimuth is the bearing, relative to true north
		...
	},
		-- format: XDDMMSS.SS (on latitudes) or XDDDMMSS.SS (on longitudes)
		--		X			: N(orth), S(outh), E(ast), W(est)
		--		DD or DDD	: degrees (numeric characters)
		--		MM			: minutes (numeric characters)
		--		SS.SS		: seconds, the second part (.SS) is optional
		--		latitude (short form)		N502312
		--		longitude (long form)		E1122312.18
	utmCoordinates		[2] SEQUENCE
	{
		utm-Zone	[1] UTF8String (SIZE(3)) OPTIONAL,
		utm-East	[2] UTF8String (SIZE(6)) OPTIONAL,
		utm-North	[3] UTF8String (SIZE(7)) OPTIONAL,
			-- Universal Transverse Mercator
			-- example	utm-Zone	32U
			--			utm-East	439955
			--			utm-North	5540736
		mapDatum	[4] MapDatum OPTIONAL,
		azimuth		[5] INTEGER (0..359) OPTIONAL,
			-- The azimuth is the bearing, relative to true north
		...
	},
	utmRefCoordinates	[3] SEQUENCE
	{
		utm-GridZone				[1] UTF8String (SIZE(2)) OPTIONAL,
			-- numerals from 1 to 60
		utm-GridBand				[2] UTF8String (SIZE(1)) OPTIONAL,
			-- character between C and X
		squareID					[3] UTF8String (SIZE(2)) OPTIONAL,
			-- characters from A to Z
		numericalLocationEasting	[4] UTF8String (SIZE(5)) OPTIONAL,
		numericalLocationNorthing	[5] UTF8String (SIZE(5)) OPTIONAL,
			-- Universal Transverse Mercator Reference = Military Grid Reference System (MGRS)
			-- example	utm-GridZone				32
			--			utm-GridBand				U
			--			squareID					PU
			--			numericalLocationEasting	9129
			--			mumericalLocationNorthing	4045
			-- In both panels, utm-GridBand and squareID the 'I' and 'O' characters are not used
			-- because of their similarity to the digits one and zero.
		mapDatum					[6] MapDatum OPTIONAL,
		azimuth						[7] INTEGER (0..359) OPTIONAL,
			-- The azimuth is the bearing, relative to true north
		...
	},
	wGS84Coordinates	[4] OCTET STRING,
		-- format is as defined in 3GPP TS 03.32 [12]
	{
		latitudeDec		[1] UTF8String (SIZE(3..12)) OPTIONAL,
			-- format: XDD.nnnnnnnn
		longitudeDec	[2] UTF8String (SIZE(4..13)) OPTIONAL,
			-- format: XDDD.nnnnnnnn
		mapDatum		[3] MapDatum OPTIONAL,
		azimuth			[4] INTEGER (0..359) OPTIONAL,
			-- The azimuth is the bearing, relative to true north
		...
	}
		-- format: XDD.nnnnnnnn (on latitudes) or XDDD.nnnnnnnn (on longitudes)
		--		X			: N(orth), S(outh), E(ast), W(est)
		--		DD or DDD	: degrees (numeric characters)
		--		nnnnnnnn	: post decimal positions (numeric characters)
		--		latitude		N50.38666667
		--		longitude		E112.38671670
}

MapDatum ::= ENUMERATED
{
	wGS84(1),
		-- World Geodetic System 1984
	wGS72(2),
	eD50(3),
		-- European Datum 50
	rD(4),
		-- Rijks Driehoek (Netherlands)
	potsdamDatum(5),
	datumAustria(6),
	eTRS89(7),
		-- European Terrestrial Reference System 1989
	nAD27(8),
		-- North American Datum 1927
	oSGB36(9),
		-- Ordnance Survey of Great Britain
	oSNI52(10),
		-- Ordnance Survey of Northern Ireland
	tM65(11),
	iTM(12),
		-- Irish Transverse Mercator
	cH1903Plus(14)
		-- New Swiss reference system
UMTSLocation ::= CHOICE
{
	point					[1] GA-Point,
	pointWithUnCertainty	[2] GA-PointWithUnCertainty,
	polygon					[3] GA-Polygon,
	...
}

GeographicalCoordinates ::= SEQUENCE
{
	latitudeSign	[1] ENUMERATED
	{
	} OPTIONAL,
	latitude		[2] INTEGER (0..8388607) OPTIONAL,
	longitude		[3] INTEGER (-8388608..8388607) OPTIONAL,
	...,
	mapDatum		[4] MapDatum OPTIONAL,
	azimuth			[5] INTEGER (0..359) OPTIONAL
		-- The azimuth is the bearing, relative to true north
}

GA-Point ::= SEQUENCE
{
	geographicalCoordinates		[1] GeographicalCoordinates,
	...
}

GA-PointWithUnCertainty ::=SEQUENCE
{
	geographicalCoordinates		[1] GeographicalCoordinates,
	uncertaintyCode				[2] INTEGER (0..127)
}

maxNrOfPoints					INTEGER ::= 15

GA-Polygon ::= SEQUENCE (SIZE (1..maxNrOfPoints)) OF GA-Polygon-Elements

GA-Polygon-Elements ::= SEQUENCE
{
	geographicalCoordinates		[1] GeographicalCoordinates,
	...
}

ExtendedLocation ::= CHOICE
{
	spot			[1] Spot,
	circle			[2] Circle,
	region			[3] Region,
	route			[4] Route,
	...
}

Spot ::= CHOICE
{
	gsmLocation			[1] GSMLocation,
	postalLocation		[2] AddressInformation,
	...
}

Circle ::= SEQUENCE
{
	centre				[1] Spot,
	radius				[2] HorizontalExtent,
	...
}

Region ::= SEQUENCE
{
	cornerMarks			[1] SEQUENCE OF Spot,
	...
}

Route ::= SEQUENCE
{
	routeMarks			[1] SEQUENCE OF Spot,
	width				[2] HorizontalExtent OPTIONAL,
	...
}

MaritimeTransport ::= SEQUENCE
{
	shipName			[1] UTF8String OPTIONAL,
		-- Registered ship name
	imoNumber			[2] IA5String (SIZE(10)) OPTIONAL,
		-- International Maritime Organization (IMO) ship number:
		-- IMO prefix with 7-digit number, e.g. IMO7812345
	...
}

AirTransport ::= SEQUENCE
{
	iATAAirlineCode			[1] IA5String (SIZE(2)) OPTIONAL,
		-- Two-character designation code assigned to the airline
		-- by the International Air Transport Association (IATA)
	iCAOOperatorCode		[2] IA5String (SIZE(3)) OPTIONAL,
		-- Three-letter designation code assigned to the aircraft operator agency
		-- by the International Civil Aviation Organization (ICAO).
		-- The iCAOOperatorCode should be used only when the aircraft operator does not have
		-- an assigned IATA airline code.
	aircraftRegistration	[3] UTF8String OPTIONAL,
		-- Aircraft identification as in the aircraft's certificate of registration
		-- e.g. G-IABC, N99999, F-OAAA
	flightNumber			[4] IA5String OPTIONAL,
		-- Flight number assigned by the airline operating the aircraft
	...
}


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

PartyNumber ::= UTF8String
	-- E.164 address of the party in international format
	msgSubscriber			[1] MsgSubscriber,
	msgServiceUsage			[2] MsgServiceUsage,
	...,
	msgBillingDetails		[3] MsgBillingDetails
}

-- ======================================
-- Definitions of Message Subscriber Data
-- ======================================

MsgSubscriber ::= SEQUENCE
	-- Generic information on a service subscriber, supplemented with information specific to
	-- asynchronous message services
{
	validity		[1] TimeSpan OPTIONAL,
	subscriberID		[2] MsgSubscriberID OPTIONAL,
	msgStores		[3] SEQUENCE OF MsgStore OPTIONAL,
		-- message stores allocated to this subscriber
	subscriber		[4] GenericSubscriberInfo OPTIONAL,
	paymentDetails		[5] PaymentDetails OPTIONAL
MsgSubscriberID ::= OCTET STRING
	-- Unique identifier for this subscriber, e.g. account number

MsgStore ::= SEQUENCE
	-- Location into which messages are temporarily stored. All asynchronous message services by
	-- definition require some message store. E.g. in the case of e-mail this will be a mailbox
{
	validity			[1] TimeSpan OPTIONAL,
	msgStoreID			[2] MsgStoreID OPTIONAL,
	aliases				[3] SEQUENCE OF MsgAddress OPTIONAL,
		-- The complete list of all addresses that get delivered into this message store.
	providerID			[4] MsgProviderID OPTIONAL,
	...,
	msgForwardingAddresses		[5] SEQUENCE OF MsgAddress OPTIONAL,
	msgStoreSubscriberRelatedIDs	[6] SEQUENCE OF ContactDetails OPTIONAL
	-- Unique identifier of the message store. Since not all IDs will necessarily be human
	-- readable, a generic byte string is used
	-- Messaging address, an address to which messages can be sent. In the case of Internet e-mail
	-- this will be an RFC822-style address
	-- NOTE - as of v1.2.1, this field has changed from OCTET STRING to UTF8String
	-- Unique identifier for a service provider, e.g. company name
	-- NOTE - as of v1.2.1, this field has changed from OCTET STRING to UTF8String

-- ====================================
-- Definitions of Message Service Usage
-- ====================================

MsgServiceUsage ::= CHOICE
	-- Choice of different types of activities
	-- Manipulation of stored address books is outside the scope
{
	msgTransmission		[1] MsgTransmission,
	msgStoreOperation	[2] MsgStoreOperation,
	...
}

MsgTransmission ::= SEQUENCE
	-- Sending of an outgoing message, or reception of an incoming message
{
	dateTime				[1] GeneralizedTime OPTIONAL,
	subscriberID			[2] MsgSubscriberID OPTIONAL,
	senderAddress			[3] MsgAddress OPTIONAL,
	recipients				[4] SEQUENCE OF MsgAddress OPTIONAL,
	msgStores				[5] SEQUENCE OF MsgStoreID OPTIONAL,
		-- List of all local msgStores that received a copy of the message
		-- For transit messages this field is not used
	deliveryStatus			[6] ENUMERATED
	{
		unknown(0),
		succeeded(1),
			-- Delivery might still fail at a subsequent mail server
		failed(2),
			-- E.g. when mailbox quota exceeded (mailbox full)
		retried(3),
			-- Deferred and retried at a later time
		...
	} OPTIONAL,
	clientID				[8] IPAddress OPTIONAL,
	serverID				[9] IPAddress OPTIONAL,
	...,
	messageID				[10] MessageID OPTIONAL,
	sourceServerName		[11] UTF8String OPTIONAL,
	destinationServerName	[12] UTF8String OPTIONAL
}

MsgStoreOperation ::= SEQUENCE
	-- Manipulation of a message store.
{
	dateTime		[1] GeneralizedTime OPTIONAL,
	subscriberID	[2] MsgSubscriberID OPTIONAL,
	msgStore		[3] MsgStoreID OPTIONAL,
	operation		[4] ENUMERATED
	{
		connect(0),
			-- Successful authorization for access to msgStore
		disconnect(1),
		retrieveMsg(2),
			-- Viewing msg using a webmail client is also considered retrieval
		partialretrieveMsg(3),
			-- E.g. the TOP command in POP3
		deleteMsg(4),
		addMsg(5),
			-- E.g. the APPEND command in IMAP
	} OPTIONAL,
	senderAddress	[5] MsgAddress OPTIONAL,
		-- For Internet email, use the From address in the mail headers
	recipients		[6] SEQUENCE OF MsgAddress OPTIONAL,
		-- For Internet email, use the To, CC, and BCC addresses in the mail headers
	protocol		[7] ENUMERATED
	{
		pop(0),
		imap(1),
	} OPTIONAL,
	clientID		[8] IPAddress OPTIONAL,
	serverID		[9] IPAddress OPTIONAL,
	...,
	messageID		[10] MessageID OPTIONAL
MessageID ::= UTF8String
	-- Unique identifier for this message, e.g RFC 822 header

-- ==============================
-- Definitions of Billing Data
-- ==============================

MsgBillingDetails ::= SEQUENCE
{
	subscriberID				[1] MsgSubscriberID OPTIONAL,
	serviceID				[2] UTF8String OPTIONAL,
	billingAddress				[3] ContactDetails OPTIONAL,
	billingIdentifier			[4] MsgBillingIdentifier OPTIONAL,
	billingRecords				[5] SEQUENCE OF MsgBillingRecords OPTIONAL,
	nationalMsgBillingDetails		[6] NationalMsgBillingDetails OPTIONAL,
		-- To be defined on a national basis
		-- Only to be used in case the present document cannot fulfil the national requirements
	...,
	copyOfBill				[7] SEQUENCE OF File OPTIONAL
NationalMsgBillingDetails ::= SEQUENCE
{
	countryCode		[1] UTF8String (SIZE (2)),
		-- see comment in NationalRequestParameters
	...
}

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

MsgBillingRecords ::= 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,
	nationalMsgBillingRecords	[6] NationalMsgBillingRecords OPTIONAL,
		-- To be defined on a national basis
		-- Only to be used in case the present document cannot fulfil the national requirements
	...,
	msgTransactionID			[7] UTF8String OPTIONAL,
		-- Unique reference for this transaction/billing record
		-- Details to be defined on a national basis
	mgsTransactionStatus		[8] UTF8String OPTIONAL
		-- Status of the transaction (i.e. "declined", "succeeded" etc.)
		-- Details to be defined on a national bases
}

NationalMsgBillingRecords ::= SEQUENCE
{
	countryCode		[1] UTF8String (SIZE (2)),
		-- see comment in NationalRequestParameters
	...
}
MultimediaRecord ::= CHOICE
{
	multimediaSubscriber		[1] MultimediaSubscriber,
	multimediaBillingDetails	[2] MultimediaBillingDetails,
	multimediaServiceUsage		[3] MultimediaServiceUsage,
	...,
	multimediaDevice		[4] MultimediaDevice
}

-- ==============================
-- Definitions of Subscriber Data
-- ==============================

MultimediaSubscriber ::= SEQUENCE
{
	subscriberID						[1] MultimediaSubscriberID OPTIONAL,
		-- unique identifier for this subscriber, e.g. account number
	genericSubscriberInfo				[2] GenericSubscriberInfo OPTIONAL,
		-- generic personal information about this subscriber
	multimediaSubscriberInfo			[3] MultimediaSubscriberInfo OPTIONAL,
		-- service-specific information about this subscriber
	subscribedMultimediaServices		[4] SEQUENCE OF SubscribedMultimediaServices OPTIONAL,
		-- a subscriber (or account) may have more than one service listed against them
	multimediaServiceRegistrationInfo	[5] MultimediaServiceRegistrationInfo OPTIONAL
}

MultimediaSubscriberInfo ::= SEQUENCE
{
	nationalMultimediaSubscriberInfo	[1] NationalMultimediaSubscriberInfo OPTIONAL,
	...
}

MultimediaSubscriberID ::= UTF8String
	-- unique identifier for this subscriber, e.g. account number

MultimediaServiceRegistrationInfo ::= SEQUENCE
{
	emailAddress				[1] UTF8String OPTIONAL,
	-- subscriber email address in RFC2822 format
	languageAtRegistration		[2] UTF8String OPTIONAL,
	-- subscriber language as in ISO 639
	accountCreationTime			[3] GeneralizedTime OPTIONAL, -- start time of account
	accountCreationIP			[4] IPAddress OPTIONAL, -- subscriber IP at creation
	accountCreationCountry		[5] UTF8String (SIZE (2)) OPTIONAL,
	-- subscriber country as specified in ISO 3166-1
	clientPlatformType			[6] UTF8String OPTIONAL, -- subscriber platform
	clientVersion				[7] UTF8String OPTIONAL, -- subscriber platform version
	...
}

SubscribedMultimediaServices ::= SEQUENCE
{
	serviceID					[1] UTF8String OPTIONAL,
		-- Unique identifier for this service within the operator
	providerID					[2] UTF8String OPTIONAL,
		-- Unique identifier for the service provider
	timeSpan					[3] TimeSpan OPTIONAL,
		-- Start and end data, if applicable, of the subscription
	registeredIdentifiers				[4] SEQUENCE OF PartyIdentity OPTIONAL,
		-- The set of identifiers registered for this service
	registeredICCID					[5] UTF8String OPTIONAL,
	serviceType					[6] MultimediaServiceType OPTIONAL,
	installationAddress				[7] AddressInformation OPTIONAL,
		-- installation address, if different from the registered address
	connectionDate					[8] GeneralizedTime OPTIONAL,
		-- Date the subscriber was actually connected
		-- (May differ from the start of subscription)
	iMSI						[9] IMSI OPTIONAL,
	carrierPreselect				[10] BOOLEAN OPTIONAL,
	lineStatus					[11] UTF8String OPTIONAL,
		-- CSP-specific description of current line status,
		-- e.g. "Active", "Ceased", etc.
	nationalMultimediaServices			[12] NationalMultimediaServices OPTIONAL,
	paymentDetails					[13] PaymentDetails OPTIONAL,
	subscriptionType				[14] SubscriptionType OPTIONAL,
		-- Describes the nature of the subscription
	deliveryAddress					[15] AddressInformation OPTIONAL,
	resellerAddress					[16] AddressInformation OPTIONAL,
	otherAddresses					[17] SEQUENCE OF OtherAddress OPTIONAL,
	multimediaServiceType				[18] UTF8String OPTIONAL,
		-- Service name used by the service provider which may be proprietary
	orderTime					[19] GeneralizedTime OPTIONAL,
		-- Time when the subscribed service was ordered by the user
	iMEIs						[20] SEQUENCE OF IMEI OPTIONAL,
	registeredICCIDs				[21] SEQUENCE OF ICCIDInfo OPTIONAL,
	privateUserIdentities				[22] SEQUENCE OF IMPI OPTIONAL,
	allocatedDeviceIDs				[23] SEQUENCE OF MultimediaDeviceID OPTIONAL,
	paymentTransactions				[24] SEQUENCE OF MultimediaBillingRecords OPTIONAL
MultimediaServiceType ::= ENUMERATED
{
	private(0),
	privatePABX(1),
	publicPayphone(2),
	geographicalfixed(3),
	geographicalindependent(4),
	...
}

IMPI ::= UTF8String
	-- Private User Identity of the IP Multimedia Subsystem subscription

-- =================================
-- Definitions of Service Usage Data
-- =================================

MultimediaServiceUsage ::= SEQUENCE
{
	partyInformation				[1] SEQUENCE OF MultimediaPartyInformation OPTIONAL,
		-- This parameter provides the concerned party (Originating, Terminating or
		-- forwarded party), the identity(ies) of the party and all the information
		-- provided by the party
	communicationTime				[2] TimeSpan OPTIONAL,
		-- Time and duration of the communication
	reasonCause					[3] INTEGER OPTIONAL,
		-- cause code for call termination e.g. SIP Reason code
	communicationType				[4] MultimediaCommunicationType OPTIONAL,
	bearerService					[5] MultimediaBearerService OPTIONAL,
	qualityOfService				[6] QualityOfService OPTIONAL,
	ringDuration					[7] INTEGER OPTIONAL,
	callID						[8] MultimediaCallID OPTIONAL,
	originalCallID					[9] MultimediaCallID OPTIONAL,
		bNotReached(1),
		bAlert(2),
		bAnswered(3),
		...
	} OPTIONAL,
	answerTime					[11] GeneralizedTime OPTIONAL,
	contentType					[12] SEQUENCE OF UTF8String OPTIONAL,
	mediaComponents					[13] SEQUENCE OF MediaComponent OPTIONAL,
	imsInformation					[14] ImsInformation OPTIONAL,
	nationalMultimediaServiceUsage			[15] NationalMultimediaServiceUsage OPTIONAL,
	serviceID					[16] UTF8String OPTIONAL,
	providerID					[17] UTF8String OPTIONAL,
	cdrNumber					[18] UTF8String OPTIONAL, -- as per CSP defined format
	clientIP					[19] IPAddress OPTIONAL,
	relayIP						[20] IPAddress OPTIONAL,
	vmLength					[21] INTEGER OPTIONAL, -- number of seconds
	reason						[22] UTF8String OPTIONAL,
	smsInformation					[23] SmsInformation OPTIONAL,
	mmsInformation					[24] MmsInformation OPTIONAL
	partyRole						[1] MultimediaPartyRole OPTIONAL,
	partyIdentity						[2] PartyIdentity OPTIONAL,
	subscriberID						[3] MultimediaSubscriberID OPTIONAL,
	communicationTime					[4] TimeSpan OPTIONAL,
		-- Time and duration of the communication
	natureOfAddress						[7] UTF8String OPTIONAL,
		-- Nature of address indicator, e.g. "National", "International"
	uRI							[8] UTF8String OPTIONAL,
	partyNumber						[9] PartyNumber OPTIONAL,
	naAssignedAddress					[10] NAAssignedAddress OPTIONAL,
	forwardedTransferredIdentifier				[11] PartyIdentity OPTIONAL,
	terminatingTransferredIdentifier			[12] PartyIdentity OPTIONAL,
	nationalMultimediaPartyInformation			[13] NationalMultimediaPartyInformation OPTIONAL,
	userAgent						[14] UTF8String OPTIONAL,
		-- e.g. SIP User-Agent field (see RFC 3261 [26])
	octetsUploaded						[15] INTEGER OPTIONAL,
	octetsDownloaded					[16] INTEGER OPTIONAL,
	accessNetworkInformation				[17] SEQUENCE OF AccessNetworkInfo OPTIONAL,
	privateUserIdentity					[18] IMPI OPTIONAL,
	iMEI							[19] IMEI OPTIONAL
}

MultimediaCallID	::=	UTF8String

MultimediaCommunicationType	::=	ENUMERATED
{
	multimediaFixed(0),
	multimediaWireless(1),
	multimediaNetworkIndependent(2),
	...,
	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,