RDMessage {itu-t(0) identified-organization(4) etsi(0) securityDomain(2) retainedData(3) rdHeader(0) version23(23)} DEFINITIONS IMPLICIT TAGS ::= BEGIN -- ============================= -- Object Identifier definitions -- ============================= -- RetainedData DomainId retainedDataDomainId OBJECT IDENTIFIER ::= {itu-t(0) identified-organization(4) etsi(0) securityDomain(2) retainedData(3)} -- rdHeader rdHeaderId OBJECT IDENTIFIER ::= {retainedDataDomainId rdHeader(0) version23(23)} -- ====================================== -- 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, ... , requestType [5] RequestType OPTIONAL, requestFlag [6] RequestFlag OPTIONAL -- Optional parameter specifying additional information associated with the request. } CSPID ::= UTF8String -- Unique identifier for the CSP that issued the request RequestType ::= UTF8String -- Description or reference of the type of Retained Data request RequestFlag ::= UTF8String -- Configuration information associated with 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) ..., externalIdentifier [4] ExternalIdentifier OPTIONAL -- Optional identifier for the request, for correlation with warrant management systems. } 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 ExternalIdentifier ::= UTF8String -- ================================================= -- 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, ..., supplementaryRequest [11] SupplementaryRequest, supplementaryResponse [12] SupplementaryResponse } -- ================================================== -- Definitions of Request message and acknowledgement -- ================================================== RequestMessage ::= SEQUENCE { requestPriority [1] RequestPriority OPTIONAL, requestParameters [2] RequestConstraints OPTIONAL, -- Optional only in case a warrant is transmitted independently of a request 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 -- This parameter shall not be used simultaneously with the numberOfRecordsLimit parameter. -- (see clause 6.3.3.2) nationalRequestParameters [5] NationalRequestParameters OPTIONAL, -- To be defined on a national basis -- Only to be used in case the present document cannot fulfil the national requirements -- or to transmit a warrant. ..., maxRecordsPerBatch [6] INTEGER OPTIONAL, -- Indicates that multi-part delivery shall be used and each ResponseMessage shall not -- contain more records than specified. (see clause 6.3.3.3) requestedData [7] SEQUENCE OF UTF8String OPTIONAL, -- only to use in case of selective requests, it contains -- the path to the selected parameter in XPATH notation numberOfRecordsLimit [8] INTEGER OPTIONAL -- Indicates the upper limit on the number of records to be provided by the CSP. -- This parameter shall not be used simultaneously with the maxHits parameter. -- (see clause 6.3.3.4) } 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.1) -- 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 cannot fulfil the national requirements ..., responseNumber [4] INTEGER OPTIONAL, -- number to identify partial results within parallel multi-part delivery numberOfRecordsFound [5] INTEGER OPTIONAL -- Indicates the total number of records found by the CSP when the value set in the -- numberOfRecordsLimit has been reached or exceeded. -- (see clause 6.3.3.4) } ResponseStatus ::= CHOICE { responseComplete [1] NULL, -- No further results to come responseIncomplete [2] NULL, -- There will be at least one further response message to come responseUnavailable [3] NULL, -- See clause 5.3.1 responseFailed [4] FurtherInformation, -- See clauses 6.2.2.2 and 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, -- To be defined on a national basis -- Only to be used in case the present document cannot fulfil the national requirements ... } 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, -- Details are defined in Annex B messageRecord [2] MessageRecord, -- Details are defined in Annex C networkAccess [3] NetworkAccessRecord, -- Details are defined in Annex E ..., multimediaRecord [4] MultimediaRecord -- Details are defined in Annex D -- Other services will be included (as they are implemented) } ResponseAcknowledgement ::= CHOICE { -- Acknowledges a response has been sent acknowledgeCompleteResults [1] NULL, acknowledgePartialResults [2] NULL, ..., acknowledgePartialResultsNumber [3] INTEGER -- number to acknowledge a specific resultMessage within parallel multi-part delivery } -- ================================================== -- Definitions of an error message and acknowledgment -- ================================================== FurtherInformation ::= SEQUENCE { information [1] UTF8String, contactInformation [2] UTF8String OPTIONAL, ..., categorisedErrorDescription [3] CategorisedErrorDescription OPTIONAL -- see 6.4 } CategorisedErrorDescription ::= SEQUENCE { value [1] INTEGER, description [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 ... } SupplementaryRequest ::= CHOICE { nationalSupplementaryRequest [1] NationalSupplementaryRequest, ... } SupplementaryResponse ::= CHOICE { nationalSupplementaryResponse [1] NationalSupplementaryResponse, ... } NationalSupplementaryRequest ::= 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 a version indicator is included. } NationalSupplementaryResponse ::= 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 a version indicator is included. } TimeSpan ::= SEQUENCE { startTime [1] GeneralizedTime OPTIONAL, endTime [2] GeneralizedTime OPTIONAL, ..., durationTime [3] INTEGER OPTIONAL -- duration in seconds } File ::= SEQUENCE { mediaType [1] UTF8String, -- Media type of the file, e.g. image/jpeg, application/pdf -- Media types (formerly known as MIME types) are assigned and listed by the IANA content [2] OCTET STRING, -- Content of the file ... } -- ============================================== -- Definitions for Generic Subscriber Information -- ============================================== GenericSubscriberInfo ::= SEQUENCE { organizationInfo [1] OrganizationInfo OPTIONAL, individualInfo [2] IndividualInfo OPTIONAL, ..., contracts [3] SEQUENCE OF ContractInformation 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 ..., registeredAddress [4] AddressInformation OPTIONAL, tradingAddress [5] AddressInformation OPTIONAL, otherAddresses [6] SEQUENCE OF OtherAddress OPTIONAL, groupID [7] UTF8String OPTIONAL, -- identity of organization group groupAdministrator [8] UTF8String OPTIONAL, -- identity of organization administrator companyType [9] UTF8String OPTIONAL, -- type of company vatEnabled [10] BOOLEAN OPTIONAL, -- VAT enabled or not vatNumber [11] UTF8String OPTIONAL, -- VAT number createIP [12] IPAddress OPTIONAL, -- IP used to create the subscriber account createTime [13] GeneralizedTime OPTIONAL, -- time that subscriber account was created modifiedDate [14] GeneralizedTime OPTIONAL -- date that subscriber account was modified } 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, ..., profession [7] UTF8String OPTIONAL, otherAddresses [8] SEQUENCE OF OtherAddress OPTIONAL, createTime [9] GeneralizedTime OPTIONAL -- time that subscriber account was created } ContractInformation ::= SEQUENCE { contractDesignation [1] UTF8String OPTIONAL, contractNumber [2] UTF8String OPTIONAL, otherInformation [3] UTF8String OPTIONAL, timeSpan [4] TimeSpan OPTIONAL, contractDocuments [5] SEQUENCE OF File 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" ..., secondsurname [7] UTF8String OPTIONAL, -- a second surname is used in several countries secondsurnamePrefix [8] UTF8String OPTIONAL, secondsurnameSuffix [9] UTF8String OPTIONAL } 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 ..., additionalEmailAddresses [4] SEQUENCE OF UTF8String OPTIONAL -- several email addresses 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 ..., relatedOrganizationInfo [13] OrganizationInfo OPTIONAL, relatedPersonName [14] PersonName OPTIONAL, otherInformation [15] UTF8String OPTIONAL -- additional information in cases of divergent addresses } OtherAddress ::= SEQUENCE { address [1] AddressInformation OPTIONAL, addressType [2] UTF8String OPTIONAL, -- Description of the type of address that has been given in the address field addressComments [3] UTF8String OPTIONAL, -- Any extra information to aid the understanding of the address given ... } AuthenticationInfo ::= SEQUENCE { authenticationType [1] UTF8String OPTIONAL, authenticationNumber [2] UTF8String OPTIONAL, ..., issuingCountry [3] UTF8String (SIZE (2)) OPTIONAL, issuingOrganization [4] UTF8String OPTIONAL, nationality [5] UTF8String OPTIONAL, authenticationDocument [6] SEQUENCE OF File OPTIONAL } PaymentDetails ::= SEQUENCE { billingMethod [1] BillingMethod OPTIONAL, bankAccount [2] BankAccount OPTIONAL, billingAddress [3] ContactDetails OPTIONAL, ..., billingIdentifier [4] BillingIdentifier OPTIONAL } BankAccount ::= SEQUENCE { iBAN [1] IBAN OPTIONAL, bIC [2] BIC OPTIONAL, accountHolder [3] UTF8String OPTIONAL, nationalAccountNumber [4] UTF8String OPTIONAL, -- To be used in case that the account holding bank has no IBAN nationalBankNumber [5] UTF8String OPTIONAL, -- To be used in case that the account holding bank has neither IBAN nor BIC bankName [6] UTF8String OPTIONAL, ..., sepaRefNumber [7] UTF8String OPTIONAL -- To be used for referenceNumber of a SEPA direct debit mandate } IBAN ::= UTF8String -- International Banking Account Number -- format as per ISO 13616-1:2007 [28] BIC ::= UTF8String -- Business Identifier Code -- format as per ISO 9362:2009 [29] BillingMethod ::= ENUMERATED { debit(0), transfer(1), prepaid(2), ... } 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 ..., nationalTelephonySubscriberInfo [5] NationalTelephonySubscriberInfo OPTIONAL -- To be defined on a national basis -- Only to be used in case the present document cannot fulfil the national requirements } NationalTelephonySubscriberInfo ::= SEQUENCE { countryCode [1] UTF8String (SIZE (2)), -- see comment in NationalRequestParameters ... } TelephonySubscriberId ::= UTF8String -- unique identifier for this subscriber, e.g. account number TelephonySubscriberInfo ::= NULL -- Reserved PartyNumberInfo ::= SEQUENCE { partyNumber [1] PartyNumber OPTIONAL, -- referenced partyNumber for the additional information in this type timeSpan [2] TimeSpan OPTIONAL, -- start and end date if applicable in which the number was active disableReason [3] UTF8String OPTIONAL, -- reason of temporarily disable procedure - if applicable ... } ICCIDInfo ::= SEQUENCE { iCCID [1] UTF8String OPTIONAL, timeSpan [2] TimeSpan OPTIONAL, -- activation- and deactivation-date if applicable in which the ICCID was active ..., pUK [3] UTF8String OPTIONAL, -- PUK code associated with the ICCID pUK2 [4] UTF8String OPTIONAL, -- PUK2 code associated with the ICCID iMSI [5] IMSI OPTIONAL, sUPI [6] SUPI OPTIONAL, gPSI [7] GPSI OPTIONAL } LoginInfo ::= SEQUENCE { login [1] UTF8String OPTIONAL, -- login used for authentication, usually a username or email address password [2] UTF8String OPTIONAL, serviceName [3] UTF8String OPTIONAL, -- short description of the kind of service the login / password is used for needsAdditionalAuthentication [4] BOOLEAN OPTIONAL, -- true if additional authentication methods are required, like security questions or -- e-tokens timeSpan [5] TimeSpan OPTIONAL, -- timespan when the login / password was valid ... } 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 subscription 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. ..., allocatedDeviceIDs [12] SEQUENCE OF TelephonyDeviceID OPTIONAL, pUKCode [13] UTF8String OPTIONAL, pUK2Code [14] UTF8String OPTIONAL, iMEI [15] SEQUENCE OF IMEI OPTIONAL, nationalTelephonySubscriptionInfo [16] NationalTelephonySubscriptionInfo OPTIONAL, -- To be defined on a national basis -- Only to be used in case the present document cannot fulfil the national requirements paymentDetails [17] PaymentDetails OPTIONAL, subscriptionType [18] SubscriptionType OPTIONAL, -- Describes the nature of the subscription deliveryAddress [19] AddressInformation OPTIONAL, resellerAddress [20] AddressInformation OPTIONAL, otherAddresses [21] SEQUENCE OF OtherAddress OPTIONAL, registeredNumbersInfo [22] SEQUENCE OF PartyNumberInfo OPTIONAL, -- information about timespan of the active number and deactivation events registeredICCIDs [23] SEQUENCE OF ICCIDInfo OPTIONAL, -- in cases of MultiSIM card contracts loginInfos [24] SEQUENCE OF LoginInfo OPTIONAL, -- e.g. login information according a VMS/UMS account paymentTransactions [25] SEQUENCE OF BillingRecords OPTIONAL } SubscriptionType ::= ENUMERATED { unknown(0), postpay(1), prepay(2), other(3), ... } -- Describes the nature of the subscription NationalTelephonySubscriptionInfo ::= SEQUENCE { countryCode [1] UTF8String (SIZE (2)), -- see comment in NationalRequestParameters ... } TelephonyBillingDetails ::= SEQUENCE { subscriberID [1] TelephonySubscriberId OPTIONAL, serviceID [2] UTF8String OPTIONAL, billingAddress [3] ContactDetails OPTIONAL, billingIdentifier [4] BillingIdentifier OPTIONAL, billingRecords [5] SEQUENCE OF BillingRecords OPTIONAL, ..., nationalTelephonyBillingDetails [6] NationalTelephonyBillingDetails OPTIONAL -- To be defined on a national basis -- Only to be used in case the present document cannot fulfil the national requirements } NationalTelephonyBillingDetails ::= SEQUENCE { countryCode [1] UTF8String (SIZE (2)), -- see comment in NationalRequestParameters ... } 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. ..., nationalTelephonyBillingRecords [6] NationalTelephonyBillingRecords OPTIONAL, -- To be defined on a national basis -- Only to be used in case the present document cannot fulfil the national requirements transactionID [7] UTF8String OPTIONAL, -- Unique reference for this transaction/billing record -- Details to be defined on a national basis transactionStatus [8] UTF8String OPTIONAL, -- Status of the transaction (i.e. "declined", "succeeded", etc.) -- Details to be defined on a national bases copyOfBill [9] SEQUENCE OF File OPTIONAL } NationalTelephonyBillingRecords ::= SEQUENCE { countryCode [1] UTF8String (SIZE (2)), -- see comment in NationalRequestParameters ... } 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, ..., mmsInformation [9] MmsInformation OPTIONAL, nationalTelephonyServiceUsage [10] NationalTelephonyServiceUsage OPTIONAL, -- To be defined on a national basis -- Only to be used in case the present document cannot fulfil the national requirements operatorSpecificCallDetails [11] UTF8String OPTIONAL -- CSP specific value which indicates the nature of a call -- (e.g. "CallIndicator: GPR, CallActionCode: 2") } NationalTelephonyServiceUsage ::= SEQUENCE { countryCode [1] UTF8String (SIZE (2)), -- see comment in NationalRequestParameters ... } 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 iMSI [8] IMSI OPTIONAL, natureOfAddress [9] UTF8String OPTIONAL, -- Nature of address indicator, e.g. "National", "International" forwardedTransferredNumber [10] PartyNumber OPTIONAL, terminatingTransferredNumber [11] PartyNumber OPTIONAL, ..., emailAddress [12] UTF8String OPTIONAL, -- used for MMS that supports also the use of E-Mail addresses (RFC 5322 [24]) iMEI [13] IMEI OPTIONAL, detailedLocation [14] TelephonyNetworkElement OPTIONAL, -- In the case detailed location information per call and party is available -- (e.g. the geoCoordinates for this partyNumber) nationalTelephonyPartyInformation [15] NationalTelephonyPartyInformation OPTIONAL, -- To be defined on a national basis -- Only to be used in case the present document cannot fulfil the national requirements partyType [16] TelephonyPartyType OPTIONAL, dialledDigits [17] UTF8String OPTIONAL } NationalTelephonyPartyInformation ::= SEQUENCE { countryCode [1] UTF8String (SIZE (2)), -- see comment in NationalRequestParameters ... } TelephonyPartyType ::= CHOICE { voicemail [1] NULL, smsServer [2] NULL, other [3] UTF8String, ... } TelephonyCommunicationType ::= ENUMERATED { telephonyFixedCS(0), telephonyWirelessCS(1), sMS(2), ..., mMS(3) } 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 TS 23.040 [16] smsNumOfSM [5] INTEGER (0..65535) OPTIONAL, smsNotifyInd [6] BOOLEAN OPTIONAL, smsProtocolId [7] OCTET STRING (SIZE(1)) OPTIONAL, -- format as per 3GPP TS 23.040 [16] ... } MmsInformation ::= SEQUENCE { mmsEvent [1] ENUMERATED { message(1), notificationMessage(2), deliveryReportMessage(3), readReplyMessage(4), ... } OPTIONAL, -- type of message exchanged mmsStatus [2] ENUMERATED { delivered(0), expired(1), deleted(2), replaced(3), submitted(4), undeliverable(5), passed-on(6), delivery-rejection(7), delivery-forward(8), delivery-copy(9), submission-rejection(10), submission-failure(11), ..., delivered-application(12) -- optional flag indicating MMS was retrieved using -- something other than mobile deivce e.g. web browser } OPTIONAL, mmsNotifInd [3] BOOLEAN OPTIONAL, -- indication that a delivery notification has been generated mmsMsgMod [4] ENUMERATED { none(1), modified(2), stripped(3), ... } OPTIONAL, -- message modification indication for MMS ... } 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, ..., 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), 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), ..., 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) timeSpan [2] TimeSpan OPTIONAL, -- 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 -- communication } NationalTelephonyLocation ::= SEQUENCE { countryCode [1] UTF8String (SIZE (2)), -- see comment in NationalRequestParameters ... } 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), ..., mmsOriginator(14), mmsRecipient(15), mmsOriginatorTrn(16), mmsRecipientTrn(17) } -- ======================= -- 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 ..., 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 ... } 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, ..., 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 ETSI TS 129 274 [32] gen3G(1), -- This corresponds to UTRAN in ETSI TS 129 274 [32] ..., eUTRAN(2), wLAN(3), hSPAEvolution(4), gAN(5), vIRTUAL(6), eUTRANNBIoT(7), lTEM(8), nR(9) -- Note that the labels are taken from ETSI TS 129 274 [32] v15.9.0 clause 8.17, though the -- enumeration values (0 to 9) 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 -- 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 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 -- satellite transponder backhaul airTransport [14] AirTransport OPTIONAL, -- Information about the mobile cells embarked on aircraft using -- satellite transponder backhaul 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, -- The use of this parameter is not recommended, as it is not aligned -- with the format specified in ETSI TS 129 571 [43] -- The parameter n3gppaLocation should be used instead. 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 locationInformationSource [19] UTF8String OPTIONAL, n3gppaLocation [20] N3gppaLocation OPTIONAL, -- format as specified in ETSI TS 129 571 [43] transmitterDetails [21] TransmitterDetails OPTIONAL } NCGI ::= SEQUENCE { pLMNID [1] PLMNID, nRCellID [2] NRCellID } N3gppaLocation ::= SEQUENCE { n3gppTai [1] OCTET STRING (SIZE (5..6)) OPTIONAL, n3IwfId [2] OCTET STRING (SIZE (5)) OPTIONAL, -- Composed of the PLMN-ID (3 octets) and the N3IWF ID (2 -- octets) according to ETSI TS 138 413 clause 9.3.1.57. ueIpv4Addr [3] IPAddress OPTIONAL, ueIpv6Addr [4] IPAddress OPTIONAL, portNumber [5] INTEGER OPTIONAL, ... } NRCellID ::= BIT STRING (SIZE(36)) -- TS 38.413 [23], clause 9.3.1.7 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] ..., geoCoordinatesDec [5] SEQUENCE { 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) -- Example: -- 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 ..., cH1903(13), -- Swiss reference system 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 { north(0), south(1) } 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, ... } HorizontalExtent ::= INTEGER -- metres 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 MessageRecord ::= CHOICE { 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 } 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 ::= UTF8String -- 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 MsgProviderID ::= 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, protocol [7] ENUMERATED { smtp(0), x400(1), ... } 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 ..., editMsg(6) } 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), ..., webmail(2) } 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, -- i.e. credit card etc. 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, -- national extension ..., 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, sUPI [25] SUPI OPTIONAL, gPSI [26] GPSI 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, callState [10] ENUMERATED { 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 } MultimediaPartyInformation ::= SEQUENCE { partyRole [1] MultimediaPartyRole OPTIONAL, partyIdentity [2] PartyIdentity OPTIONAL, subscriberID [3] MultimediaSubscriberID OPTIONAL, communicationTime [4] TimeSpan OPTIONAL, -- Time and duration of the communication iMSI [6] IMSI OPTIONAL, 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, -- service data serviceType [2] INTEGER OPTIONAL, -- service type ... } 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, -- i.e. credit card etc. 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, ... } -- ============================================= -- 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, -- fix assigned IP address imsi [8] IMSI 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) 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, ..., 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, ... } WifiInformation ::= SEQUENCE { 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. 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 } AuthenticationType ::= ENUMERATED { 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 authenticationByMACAddress(3), -- 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, -- the private IP of the host 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 { udp(0), tcp(1), sctp(2), other(3), ... } 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 networkError(4), ... } 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] -- Tag [9] was used in the past and shall not be reused. } GPRSEvent ::= ENUMERATED { pDPContextActivation(1), pDPContextDeactivation(4), gPRSAttach(5), gPRSDetach(6), locationInfoUpdate(10), -- sMS ommited from 3GPP TS 33.108 [11] pDPContextModification(11), servingSystem(12), ... } EPSInformation ::= SEQUENCE { iMSI [1] IMSI OPTIONAL, 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, ... } 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" DynamicAddressFlag ::= BOOLEAN -- TRUE if the PDP/PDN address is dynamic. -- FALSE if IPv4 address is static when PDN type is IPv6 or IPv4v6 DynamicAddressFlagExt ::= BOOLEAN -- 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), ... } FIVEGSInformation ::= SEQUENCE { 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 } PDUSessionType ::= ENUMERATED { iPv4(1), iPv6(2), iPv4v6(3), unstructured(4), ethernet(5) } -- ==================================== -- 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, ..., subscriberID [7] NaSubscriberID OPTIONAL } SUPI ::= CHOICE { iMSI [1] IMSI, nAI [2] NAI, ... } GPSI ::= CHOICE { mSISDN [1] PartyNumber, nAI [2] NAI, ... } PEI ::= CHOICE { iMEI [1] IMEI, iMEISV [2] IMEISV } 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. IMEISV ::= NumericString (SIZE(16)) IMSI ::= OCTET STRING (SIZE(3..8)) -- format as per 3GPP TS 09.02 [8] NAI ::= UTF8String -- ====================================== -- 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, ..., 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 } 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 } TimedIPAddress ::= SEQUENCE { iPAddressSetOrRangeOrMask [0] IPAddressSetOrRangeOrMask, validity [1] TimeSpan, -- Time period during which the information given in this structure is or was valid. ... } NABillingDetails ::= SEQUENCE { subscriberID [1] NaSubscriberID OPTIONAL, serviceID [2] UTF8String OPTIONAL, billingAddress [3] ContactDetails OPTIONAL, billingIdentifier [4] BillingIdentifier OPTIONAL, billingRecords [5] SEQUENCE OF BillingRecords OPTIONAL, ..., naTransactionID [6] UTF8String OPTIONAL, -- Unique reference for this transaction/billing record -- Details to be defined on a national basis naTransactionStatus [7] UTF8String OPTIONAL -- Status of the transaction (i.e. "declined", "succeeded", etc.) -- Details to be defined on a national basis } SSCMode ::= ENUMERATED { sSCMode1(1), sSCMode2(2), sSCMode3MultiPDUSession(3), sSCMode3Multihome(4), ... } PLMNID ::= OCTET STRING (SIZE(3)) UUID ::= OCTET STRING (SIZE(16)) RAT5Type ::= ENUMERATED { nr(1), eutra(2), wlan(3), virtual(4), ... } AMFID ::= SEQUENCE { aMFRegionID [1] AMFRegionID, aMFSetID [2] AMFSetID, aMFPointer [3] AMFPointer } AMFRegionID ::= INTEGER (0..255) AMFSetID ::= INTEGER (0..1023) AMFPointer ::= INTEGER (0..63) END -- end of RDMessage