Skip to content
RDMessage.asn 115 KiB
Newer Older
RDMessage {itu-t(0) identified-organization(4) etsi(0) securityDomain(2) retainedData(3) rdHeader(0) version29(29)}

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) version29(29)}

-- ======================================
-- 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.
    -- Unique identifier for the CSP that issued the request
RequestType ::= UTF8String
-- Description or reference of the type of Retained Data request

    -- Configuration information associated with the request
    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

-- =================================================
-- 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,
    ...
    -- Priority considerations are a matter for national implementation
    -- This standard makes no statement regarding how such priorities are represented or used
    suggestedCompletionTime     [1] GeneralizedTime OPTIONAL,
        -- Indicative time that results will be ready
        -- Purely informational, not binding for either party
    ...
}

-- ===================================================
-- Definitions of Response message and acknowledgement
-- ===================================================

    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
    ...
    contactInformation      [1] UTF8String OPTIONAL,
        -- Name or address of operator or person who may have further information
    otherInformation        [2] UTF8String OPTIONAL,
    ...
    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)
    -- 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
    -- 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,
    ...
    statusResponse      [1] SEQUENCE OF StatusResponse,
    ...
    requestNumber       [1] RequestNumber,
    requestStatus       [2] RequestStatus,
    ...
    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.
    countryCode     [1] UTF8String (SIZE (2)),
        -- see comment in NationalRequestParameters
    ...
    countryCode     [1] UTF8String (SIZE (2)),
        -- see comment in NationalRequestParameters
    ...
    nationalSupplementaryRequest        [1] NationalSupplementaryRequest,
    ...
    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.
    startTime       [1] GeneralizedTime OPTIONAL,
    endTime         [2] GeneralizedTime OPTIONAL,
    ...,
    durationTime    [3] INTEGER OPTIONAL
        -- duration in seconds
    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
    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
    name                    [1] PersonName OPTIONAL,
    contactAddress          [2] ContactDetails OPTIONAL,
    dateOfBirth             [3] GeneralizedTime OPTIONAL,
    gender                  [4] ENUMERATED
    {
        male(0),
        female(1),
        ...,
        other(2)
    } 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,
    ...
    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
    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
    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
    ...
    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
    billingMethod           [1] BillingMethod OPTIONAL,
    bankAccount             [2] BankAccount OPTIONAL,
    billingAddress          [3] ContactDetails OPTIONAL,
    ...,
    billingIdentifier       [4] BillingIdentifier OPTIONAL
    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
    -- International Banking Account Number
    -- format as per ISO 13616-1:2007 [28]
    -- Business Identifier Code
    -- format as per ISO 9362:2009 [29]
    debit(0),
    transfer(1),
    prepaid(2),
    ...
    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
    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
    ...
    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,
    eID                                 [8] NumericString (SIZE (32)) OPTIONAL
        -- Identifier of the eUICC according to GSMA SGP.02, clause 2.2.2 [53]
    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
    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
    ...
    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
    ...
    -- Used to correlate billing information
    -- useful if the bill-payer is not the subscriber, e.g. company mobiles
    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
    ...
    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")
    trunkGroupIDs                   [12] TrunkGroupIDs OPTIONAL,
    interOperatorIDs                [13] InterOperatorIDs OPTIONAL
}

NationalTelephonyServiceUsage ::= SEQUENCE
{
    countryCode     [1] UTF8String (SIZE (2)),
        -- see comment in NationalRequestParameters
    ...
    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
    ...
    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),
    ...
    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