RDMessage {itu-t(0) identified-organization(4) etsi(0) securityDomain(2) retainedData(3) rdHeader(0) version1(1)} DEFINITIONS IMPLICIT TAGS ::= BEGIN -- ============================= -- Object Identifier Definitions -- ============================= retainedDataDomainId OBJECT IDENTIFIER ::= {itu-t(0) identified-organization(4) etsi(0) securityDomain(2) retainedData(3)} rdHeaderId OBJECT IDENTIFIER ::= {retainedDataDomainId rdHeader(0) version1(1)} -- ====================================== -- Top level definitions for RDHI wrapper -- ====================================== RetainedDataMessage ::= SEQUENCE { rdHeaderId [0] OBJECT IDENTIFIER, retainedDataHeader [1] RetainedDataHeader, retainedDataPayload [2] RetainedDataPayload, retainedDataDigest [3] OCTET STRING OPTIONAL, -- The digitally signed hash of the combined fields above (retainedDataHeader and -- retainedDataPayload) ... } -- ========================================================================== -- Definitions for Retained Data header information, present in every message -- ========================================================================== RetainedDataHeader ::= SEQUENCE { requestID [1] RequestID, cSPID [2] CSPID, timeStamp [3] GeneralizedTime, thirdPartyCSPID [4] CSPID OPTIONAL, ... } CSPID ::= UTF8String -- Unique identifier for the CSP that issued the request RequestID ::= SEQUENCE { countryCode [1] CountryCode, authorisedOrganisationID [2] AuthorisedOrganisationID, requestNumber [3] RequestNumber OPTIONAL, -- all messages except GetStatusMessage and StatusMessage have a request number -- (see clause 6.1.2) ... } CountryCode ::= UTF8String (SIZE(2)) -- A country code as per ISO 3166-1 [4] AuthorisedOrganisationID::= UTF8String -- A unique identifier for an Authorized Organization issuing a Retained Data request RequestNumber ::= UTF8String -- Unique within a given country and Authorized Organization -- ================================================= -- Definitions for Retained Data payload information -- ================================================= RetainedDataPayload ::= CHOICE -- Payload can be a request, response, error or acknowledgement { requestMessage [1] RequestMessage, requestAcknowledgement [2] RequestAcknowledgement, responseMessage [3] ResponseMessage, responseAcknowledgement [4] ResponseAcknowledgement, errorMessage [5] FurtherInformation, cancelMessage [6] CancelMessage, cancelAcknowledgement [7] CancelAcknowledgement, getstatusMessage [8] GetStatusMessage, statusMessage [9] StatusMessage, getResultsMessage [10] GetResultsMessage, ... } -- ================================================== -- Definitions of Request message and acknowledgement -- ================================================== RequestMessage ::= SEQUENCE { requestPriority [1] RequestPriority, requestParameters [2] RequestConstraints, deliveryPointHIB [3] DeliveryPointHIB OPTIONAL, -- pre-arranged set of delivery address(es) of that specific Authorized Organization maxHits [4] INTEGER OPTIONAL, -- Maximum number of records to be returned. -- On a national basis maximum numbers could be considered -- In case of maxHit a responseFailed message is sent and no data is sent (see 6.3.3.2) nationalRequestParameters [5] NationalRequestParameters OPTIONAL, -- to be defined on a national basis -- only to be used in case the present document can not fulfil the national requirements ... } DeliveryPointHIB ::= UTF8String RequestConstraints ::= SEQUENCE { equals [1] RetainedDataRecord OPTIONAL, notEqualTo [2] RetainedDataRecord OPTIONAL, lessThan [3] RetainedDataRecord OPTIONAL, -- For numerical values lessThanOrEqualTo [4] RetainedDataRecord OPTIONAL, -- For numerical values greaterThan [5] RetainedDataRecord OPTIONAL, -- For numerical values greaterThanOrEqualTo [6] RetainedDataRecord OPTIONAL, -- For numerical values startsWith [7] RetainedDataRecord OPTIONAL, -- For strings endsWith [8] RetainedDataRecord OPTIONAL, -- For strings isAMemberOf [9] SEQUENCE OF RetainedDataRecord OPTIONAL, ... } RequestPriority ::= OCTET STRING -- Priority considerations are a matter for national implementation -- This standard makes no statement regarding how such priorities are represented or used RequestAcknowledgement ::= SEQUENCE { suggestedCompletionTime [1] GeneralizedTime OPTIONAL, -- indicative time that results will be ready -- purely informational, not binding for either party ... } -- =================================================== -- Definitions of Response message and acknowledgement -- =================================================== ResponseMessage ::= SEQUENCE { responseStatus [1] ResponseStatus, responsePayload [2] SEQUENCE OF ResponseRecord OPTIONAL, -- Clause 6 explains use of this field -- A responseUnavailable message shall not have a responsePayload (see clause 5.3.3) -- The responseComplete and responseIncomplete message shall have a responsePayload -- If there are no responses, the responsePayload is present but has zero entries nationalResponsePayload [3] NationalResponsePayload OPTIONAL, -- to be defined on a national basis -- only to be used in case the present document can not fulfil the national requirements ... } ResponseStatus ::= CHOICE { responseComplete [1] NULL, -- No further results to come responseIncomplete [2] NULL, -- There may be further results to come responseUnavailable [3] NULL, -- See clause 6.3.3 responseFailed [4] FurtherInformation, -- See clause 6.3.3.2 ... } ResponseRecord ::= SEQUENCE { recordNumber [1] INTEGER, recordPayload [2] RetainedDataRecord, additionalInformation [3] AdditionalInformation OPTIONAL, -- see clause 6.2.4 nationalRecordPayload [4] NationalRecordPayload OPTIONAL, ... } AdditionalInformation ::= SEQUENCE { contactInformation [1] UTF8String OPTIONAL, -- Name or address of operator or person who may have further information otherInformation [2] UTF8String OPTIONAL, ... } RetainedDataRecord ::= CHOICE { telephonyRecord [1] TelephonyRecord, messageRecord [2] MessageRecord, networkAccess [3] NetworkAccessRecord, -- other services will be included (like multimedia) as they are implemented ... } ResponseAcknowledgement ::= CHOICE { -- acknowledges a response has been sent acknowledgeCompleteResults [1] NULL, acknowledgePartialResults [2] NULL, ... } -- ================================================== -- Definitions of an error message and acknowledgment -- ================================================== FurtherInformation ::= SEQUENCE { information [1] UTF8String, contactInformation [2] UTF8String OPTIONAL, ... } -- =================================================== -- Definitions of a cancel message and acknowledgement -- =================================================== CancelMessage ::= NULL -- Cancels an active request CancelAcknowledgement ::= NULL -- Acknowledges the receipt of a cancel message (no other information required) -- =================================================== -- Definitions of status request and response messages -- =================================================== GetStatusMessage ::= SEQUENCE { requestNumbers [1] SEQUENCE OF RequestNumber, ... } StatusMessage ::= SEQUENCE { statusResponse [1] SEQUENCE OF StatusResponse, ... } StatusResponse ::= SEQUENCE { requestNumber [1] RequestNumber, requestStatus [2] RequestStatus, ... } RequestStatus ::= CHOICE { ready [1] NULL, incompleteResultsReady [2] NULL, failureResponseReady [3] NULL, notReady [4] NULL, error [5] FurtherInformation, inDelivery [6] NULL, invalidRequestID [7] NULL, ... } -- ========================================== -- Definitions of status get results messages -- ========================================== GetResultsMessage ::= NULL -- No further information required (the RequestID is given in the header) -- =================== -- National parameters -- =================== NationalRequestParameters ::= SEQUENCE { countryCode [1] UTF8String (SIZE (2)), -- Country Code according to ISO 3166-1 [4], -- the country to which the parameters inserted after the extension marker apply. ... -- In case a given country wants to use additional national parameters according to its law, -- these national parameters should be defined using the ASN.1 syntax and added after the -- extension marker (...). -- It is recommended that an version indicator is included in the national parameters -- definition. } NationalResponsePayload ::= SEQUENCE { countryCode [1] UTF8String (SIZE (2)), -- see comment in NationalRequestParameters ... } NationalRecordPayload ::= SEQUENCE { countryCode [1] UTF8String (SIZE (2)), -- see comment in NationalRequestParameters ... } TimeSpan ::= SEQUENCE { startTime [1] GeneralizedTime OPTIONAL, endTime [2] GeneralizedTime OPTIONAL, ... } -- ============================================== -- Definitions for Generic Subscriber Information -- ============================================== GenericSubscriberInfo ::= SEQUENCE { organizationInfo [1] OrganizationInfo OPTIONAL, individualInfo [2] IndividualInfo OPTIONAL, ... } OrganizationInfo ::= SEQUENCE { name [1] UTF8String OPTIONAL, -- name of the organization contactDetails [2] ContactDetails OPTIONAL, -- address, and name/phone number of a point of contact nationalRegistrationID [3] UTF8String OPTIONAL, -- e.g. social security number ... } IndividualInfo ::= SEQUENCE { name [1] PersonName OPTIONAL, contactAddress [2] ContactDetails OPTIONAL, dateOfBirth [3] GeneralizedTime OPTIONAL, gender [4] ENUMERATED { male(0), female(1), ... } OPTIONAL, identificationNumber [5] UTF8String OPTIONAL, authenticationInfo [6] AuthenticationInfo OPTIONAL, ... } PersonName ::= SEQUENCE { salutation [1] UTF8String OPTIONAL, surname [2] UTF8String OPTIONAL, -- the non-chosen or inherited name of an individual, e.g. “Arend” surnamePrefix [3] UTF8String OPTIONAL, -- any prefix before the surname, e.g. “von”, “van der” surnameSuffix [4] UTF8String OPTIONAL, -- any suffix after the surname, e.g. “Jr”, “III” middleNames [5] UTF8String OPTIONAL, -- that part of the name excluding forename, separable and preceding the surname firstname [6] UTF8String OPTIONAL, -- the first name or initials, e.g. “Peter” ... } ContactDetails ::= SEQUENCE { address [1] AddressInformation OPTIONAL, emailAddress [2] UTF8String OPTIONAL, contactNumber [3] SEQUENCE OF PartyNumber OPTIONAL, -- several numbers (work, home, mobile) may be given for a single subscriber ... } AddressInformation ::= SEQUENCE { flatNumber [1] UTF8String OPTIONAL, buildingName [2] UTF8String OPTIONAL, buildingNumber [3] UTF8String OPTIONAL, streetName [4] UTF8String OPTIONAL, poBox [5] UTF8String OPTIONAL, -- PO box or Response number postalCode [6] UTF8String OPTIONAL, -- Postal code. Example: 2289AC region [7] UTF8String OPTIONAL, province [8] UTF8String OPTIONAL, language [9] UTF8String OPTIONAL, city [10] UTF8String OPTIONAL, country [11] CountryCode OPTIONAL, -- Country code as defined in ISO 3166-1 [4] validity [12] TimeSpan OPTIONAL, -- time from which the address was registered ... } AuthenticationInfo ::= SEQUENCE { authenticationType [1] UTF8String OPTIONAL, -- the type of document used to authenticate, e.g. passport, driver’s license authenticationNumber [2] UTF8String OPTIONAL, -- the number of the document used to authenticate ... } TelephonyRecord ::= CHOICE { telephonySubscriber [1] TelephonySubscriber, telephonyBillingDetails [2] TelephonyBillingDetails, telephonyServiceUsage [3] TelephonyServiceUsage, telephonyDevice [4] TelephonyDevice, telephonyNetworkElement [5] TelephonyNetworkElement, ... } -- ============================== -- Definitions of Subscriber Data -- ============================== TelephonySubscriber ::= SEQUENCE { subscriberID [1] TelephonySubscriberId OPTIONAL, -- unique identifier for this subscriber, e.g. account number genericSubscriberInfo [2] GenericSubscriberInfo OPTIONAL, -- generic personal information about this subscriber telephonySubscriberInfo [3] TelephonySubscriberInfo OPTIONAL, -- service-specific information about this subscriber subscribedTelephonyServices [4] SEQUENCE OF SubscribedTelephonyServices OPTIONAL, -- a subscriber (or account) may have more than one service listed against them ... } TelephonySubscriberId ::= UTF8String -- unique identifier for this subscriber, e.g. account number TelephonySubscriberInfo ::= NULL -- Reserved SubscribedTelephonyServices ::= 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 subsription registeredNumbers [4] SEQUENCE OF PartyNumber OPTIONAL, -- The set of telephone numbers registered for this service registeredICCID [5] UTF8String OPTIONAL, serviceType [6] TelephonyServiceType 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. ... } TelephonyBillingDetails ::= SEQUENCE { subscriberID [1] TelephonySubscriberId OPTIONAL, serviceID [2] UTF8String OPTIONAL, billingAddress [3] ContactDetails OPTIONAL, billingIdentifier [4] BillingIdentifier OPTIONAL, billingRecords [5] SEQUENCE OF BillingRecords OPTIONAL, ... } BillingIdentifier ::= OCTET STRING -- Used to correlate billing information -- useful if the bill-payer is not the subscriber, e.g. company mobiles BillingRecords ::= 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. ... } TelephonyServiceType ::= ENUMERATED { private(0), privatePABX(1), publicPayphone(2), ... } -- ================================= -- Definitions of Service Usage Data -- ================================= TelephonyServiceUsage ::= SEQUENCE { partyInformation [1] SEQUENCE OF TelephonyPartyInformation 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 eventInformation [3] SEQUENCE OF TelephonyEventInformation OPTIONAL, -- A list of events that occurred during this service usage endReason [4] INTEGER OPTIONAL, -- Q.850 cause code for call termination communicationType [5] TelephonyCommunicationType OPTIONAL, bearerService [6] TelephonyBearerService OPTIONAL, smsInformation [7] SmsInformation OPTIONAL, ringDuration [8] INTEGER OPTIONAL, ... } TelephonyPartyInformation ::= SEQUENCE { partyRole [1] TelephonyPartyRole OPTIONAL, partyNumber [2] PartyNumber OPTIONAL, subscriberID [3] TelephonySubscriberId OPTIONAL, deviceID [4] TelephonyDeviceID OPTIONAL, locations [5] SEQUENCE OF TelephonyLocation OPTIONAL, -- List of cell locations used by this party during the service usage communicationTime [6] TimeSpan OPTIONAL, -- Time and duration of the communication iCCID [7] UTF8String OPTIONAL, -- Integrated Circuit Card ID (ICCID) number of the party, in ASCII format iMSI [8] IMSI OPTIONAL, natureOfAddress [9] UTF8String OPTIONAL, -- Nature of address indicator, e.g. “National”, “International” forwardedTransferredNumber [10] PartyNumber OPTIONAL, terminatingTransferredNumber [11] PartyNumber OPTIONAL, ... } TelephonyCommunicationType ::= ENUMERATED { telephonyFixedCS(0), telephonyWirelessCS(1), sMS(2), ... } TelephonyBearerService ::= ENUMERATED { speech(0), data(1), fax(2), ... } SmsInformation ::= SEQUENCE { smsEvent [1] ENUMERATED { shortMessage(1), shortPartMessage(2), compositeMessage(3), notificationMessage(4), ... } OPTIONAL, smsType [2] ENUMERATED { deliverSCtoMS(1), deliverReportMStoSC(2), statusReportSCtoMS(3), commandMStoSC(4), submitMStoSC(5), submitReportSCtoMS(6), reservedMTIValue(7), ... } OPTIONAL, smsStatus [3] ENUMERATED { delivered(0), expired(1), deleted(2), replaced(3), submitted(4), incomplete-submission(5), incomplete-delivery(6), undeliverable(7), passed-on(8), ... } OPTIONAL, smsCmRefNr [4] OCTET STRING (SIZE(1..2)) OPTIONAL, -- format as per 3GPP 23.040 [16] smsNumOfSM [5] INTEGER (0..65535) OPTIONAL, smsNotifyInd [6] BOOLEAN OPTIONAL, smsProtocolId [7] OCTET STRING (SIZE(1)) OPTIONAL, -- format as per 3GPP 23.040 [16] ... } TelephonyEventInformation ::= SEQUENCE { time [1] GeneralizedTime OPTIONAL, -- time when the event occurred type [2] TelephonyEventType OPTIONAL, -- type of event party [3] TelephonyPartyRole OPTIONAL, -- party to which the event is related location [4] TelephonyLocation OPTIONAL, ... } TelephonyEventType ::= CHOICE { basicEventType [1] BasicEventType, callConferenceEventType [2] CallConferenceEventType, callForwardingEventType [3] CallForwardingEventType, messagingEventType [4] MessagingEventType, prepayServiceEventType [5] PrepayServiceEventType, ... } BasicEventType ::= ENUMERATED { handover(1), hold(2), retrieve(3), suspend(4), resume(5), 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), transit(19), mSOriginating(20), callForwarding(21), mSTerminating(22), ... } 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) timeSpan [2] TimeSpan OPTIONAL, -- Time span that this location was valid for ... } TelephonyPartyRole ::= ENUMERATED { originating-Party(0), terminating-Party(1), forwarded-to-Party(2), originalCalled (3), redirecting(4), connected(5), userProvidedCalling(6), roaming(7), translated(8), singlePersonalNumber(9), smsOriginator(10), smsRecipient(11), smsOriginatorTrn(12), smsRecipientTrn(13), ... } -- ======================= -- Device Data definitions -- ======================= TelephonyDevice ::= SEQUENCE { deviceIDType [1] ENUMERATED -- 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 ... } TelephonyDeviceID ::= OCTET STRING -- 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, ... } TelephonyNetworkID ::= OCTET STRING -- Unique identifier for this network element: e.g. a Cell ID -- ==================== -- 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 EN 300 356 [7]) globalCellID [2] OCTET STRING (SIZE (5..7)) OPTIONAL, -- See MAP format (see TS GSM 09.02 [8]) rAI [3] OCTET STRING (SIZE (6)) OPTIONAL, -- The Routeing Area Identifier (RAI) in the current SGSN is coded in accordance with -- 3GPP TS 24.008 [9] without the Routing Area Identification IEI (only the -- last 6 octets are used) 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 3GPP TS 25.431 [10]) oldRAI [7] OCTET STRING (SIZE (6)) OPTIONAL, -- the "Routeing Area Identifier" in the old SGSN is coded in accordance with -- 3GPP TS 24.008 [9] without the Routing Area Identification IEI -- (only the last 6 octets are used) -- This parameter is duplicated from 3GPP TS 33.108 [11] ... } GSMLocation ::= CHOICE { geoCoordinates [1] SEQUENCE { 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 -- Example: -- 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] ... } 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 ... } UMTSLocation ::= CHOICE { point [1] GA-Point, pointWithUnCertainty [2] GA-PointWithUnCertainty, polygon [3] GA-Polygon, ... } GeographicalCoordinates ::= SEQUENCE { latitudeSign [1] ENUMERATED { north, south } OPTIONAL, latitude [2] INTEGER (0..8388607) OPTIONAL, longitude [3] INTEGER (-8388608..8388607) OPTIONAL, ... } 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, ... } -- =================== -- General definitions -- =================== PartyNumber ::= UTF8String -- E164 address of the node in international format MessageRecord ::= CHOICE { msgSubscriber [1] MsgSubscriber, msgServiceUsage [2] MsgServiceUsage, ... } -- ====================================== -- 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, ... } 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, ... } MsgStoreId ::= OCTET STRING -- Unique identifier of the message store. Since not all IDs will necessarily be human -- readable, a generic byte string is used MsgAddress ::= OCTET STRING -- Messaging address, an address to which messages can be sent. In the case of Internet e-mail -- this will be an RFC822-style address MsgProviderId ::= OCTET STRING -- Unique identifier for a service provider, e.g. company name -- ==================================== -- 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, protocol [7] ENUMERATED { smtp(0), x400(1), ... } OPTIONAL, clientID [8] IPAddress OPTIONAL, serverID [9] IPAddress 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, ... } 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] ... } -- ==================================== -- 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)), ... } NAAssignedAddress ::= SEQUENCE { addressSetOrRangeOrMask [1] IPAddressSetOrRangeOrMask OPTIONAL, portNumber [2] INTEGER OPTIONAL, -- populated with the outbound port number addressType [3] ENUMERATED { unknown(0), internal(1), external(2), ... } OPTIONAL, assignedTime [4] TimeSpan OPTIONAL, ... } IPAddressSetOrRangeOrMask ::= CHOICE { 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, ... } END -- of RDMessage