RDMessage.asn 37.4 KB
Newer Older
    -- 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

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

-- =============================================
-- 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
	...
}

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,
		-- fix assigned IP address
	imsi				[8] IMSI OPTIONAL,
	...
}

-- ===========================================
-- 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)
	naStatus			[4] ENUMERATED
	{
		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,
	...
}

NwAccessType ::= ENUMERATED
{
	undefined(0),
	dialUp(1),
		-- DialUp access
	xDSL(2),
		-- DSL access
	cableModem(3),
		-- Cable access
	lAN(4),
		-- LAN access
	wirelessLAN(5),
		-- Wireless LAN access (e.g. hotspot)
	wimax(6),
	mobilePacketData(7),
		-- Network access over GSM/3GPP GPRS, UMTS, etc.
	...
}

DialUpInformation ::= SEQUENCE
{
	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]
}

GPRSEvent ::= ENUMERATED 
{
	pDPContextActivation(1),
	pDPContextDeactivation(4),
	gPRSAttach(5),
	gPRSDetach(6),
	locationInfoUpdate(10),
		-- sMS ommited from 3GPP TS 33.108 [11],
	pDPContextModification(11),
	servingSystem(12),
	...
}

-- ====================================
-- Definitions of Network Access Device
-- ====================================

NADeviceId ::= UTF8String

NADevice ::= SEQUENCE
{
	naDeviceId		[1] NADeviceId OPTIONAL,
		-- Identifier of this device. 
	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,
	...
}

IMEI ::= OCTET STRING (SIZE(8)) 
	-- format as per TS GSM 09.02 [8]

IMSI ::= OCTET STRING (SIZE(3..8)) 
	-- format as per TS GSM 09.02 [8]

-- ======================================
-- 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)),
	addressSetOrRangeOrMask		[1] IPAddressSetOrRangeOrMask OPTIONAL,
	portNumber					[2] INTEGER OPTIONAL,
		-- populated with the outbound port number
		internal(1),
		external(2),
		...
	} OPTIONAL,
	assignedTime				[4] TimeSpan OPTIONAL,
	...,
	destinationAddress			[5] IPAddress OPTIONAL,
		-- used in cases where a single external IP/port pair is translated to multiple internal 
		-- IP/port pairs, with the destination IP/port used to multiplex them
	destinationPort				[6] INTEGER OPTIONAL
		-- used in cases where a single external IP/port pair is translated to multiple internal 
		-- IP/port pairs, with the destination IP/port used to multiplex them
	set		[0] SEQUENCE OF IPAddress,
	range	[1] IPRange,
	mask	[2] IPMask
}

IPRange ::= SEQUENCE 
	-- Things like 172.16.10.0/26
{
	prefix			[0] IPAddress,
	subnetlength	[1] INTEGER (1..128)
}

IPMask ::= SEQUENCE
	-- Things like 172.16.10.0/255.255.255.240
{
	base	[0] IPAddress,
	mask	[1] IPAddress
}

NABillingDetails	::= SEQUENCE
{
	subscriberID		[1] NaSubscriberID OPTIONAL,
	serviceID			[2] UTF8String OPTIONAL,
	billingAddress		[3] ContactDetails OPTIONAL,
	billingIdentifier	[4] BillingIdentifier OPTIONAL,
	billingRecords		[5] SEQUENCE OF BillingRecords OPTIONAL,
	...
}