Skip to content
RDMessage.asn 115 KiB
Newer Older
    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,
    ...
    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
    countryCode     [1] UTF8String (SIZE (2)),
        -- see comment in NationalRequestParameters
    ...
    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)
    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),
    ...
    confBeginSeizure(1),
    confAdd(2),
    confSplit(3),
    confIsolate(4),
    confReattach(5),
    confDrop(6),
    confBeginActive(7),
    ...
    mSOriginatingSMSinMSC(1),
    mSTerminatingSMSinMSC(2),
    shortMessageDelivery(3),
    mMMessage(4),
    mMNotification(5),
    mMDeliveryReport(6),
    mMReadReply(7),
    ...
    serviceActivation(1),
    ...
    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
    countryCode     [1] UTF8String (SIZE (2)),
        -- see comment in NationalRequestParameters
    ...
    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)
marthy's avatar
marthy committed
TrunkGroupIDs ::= SEQUENCE
{
    incomingTrunkGroupID        [1] UTF8String OPTIONAL,
        -- identifies the incoming PSTN leg. Format as defined by the CSP.
    outgoingTrunkGroupID        [2] UTF8String OPTIONAL,
        -- identifies the outgoing PSTN leg. Format as defined by the CSP.
    ...
marthy's avatar
marthy committed
}

InterOperatorIDs ::= SEQUENCE
{
    originatingInterOperatorID      [1] UTF8String OPTIONAL,
        -- orig-ioi formated as defined in IETF RFC 7315 [55].
    terminatingInterOperatorID      [2] UTF8String OPTIONAL,
        -- term-ioi, formated as defined in IETF RFC 7315 [55].
    transitInterOperatorIDList      [3] UTF8String OPTIONAL,
        -- transit-ioi-list, formated as defined in IETF RFC 7315 [55].
    ...
-- =======================
-- 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
    countryCode     [1] UTF8String (SIZE (2)),
        -- see comment in NationalRequestParameters
    ...
    -- A unique identifier for the telephony device. For example, the IMEI number
    -- of a mobile handset

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

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

NationalTelephonyNetworkElement ::= SEQUENCE
{
    countryCode     [1] UTF8String (SIZE (2)),
        -- see comment in NationalRequestParameters
    ...
    -- Unique identifier for this network element: e.g. a Cell ID
    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
    pLMNID                      [1] PLMNID,
    nRCellID                    [2] NRCellID,
    ...
    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

    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
    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
    point                   [1] GA-Point,
    pointWithUnCertainty    [2] GA-PointWithUnCertainty,
    polygon                 [3] GA-Polygon,
    ...
    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
    geographicalCoordinates     [1] GeographicalCoordinates,
    ...
    geographicalCoordinates     [1] GeographicalCoordinates,
maxNrOfPoints                   INTEGER ::= 15

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

GA-Polygon-Elements ::= SEQUENCE
{
    geographicalCoordinates     [1] GeographicalCoordinates,
    ...
    spot            [1] Spot,
    circle          [2] Circle,
    region          [3] Region,
    route           [4] Route,
    ...
    gsmLocation         [1] GSMLocation,
    postalLocation      [2] AddressInformation,
    ...
    centre              [1] Spot,
    radius              [2] HorizontalExtent,
    ...
    cornerMarks         [1] SEQUENCE OF Spot,
    ...
    routeMarks          [1] SEQUENCE OF Spot,
    width               [2] HorizontalExtent OPTIONAL,
    ...
    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
    ...
    iATAAirlineCode         [1] IA5String (SIZE(2)) OPTIONAL,
        -- Two-character designation code assigned to the airline
        -- by the International Air Transport Association (IATA)
    iCAOOperatorCode        [2] IA5String (SIZE(3)) OPTIONAL,
        -- Three-letter designation code assigned to the aircraft operator agency
        -- by the International Civil Aviation Organization (ICAO).
        -- The iCAOOperatorCode should be used only when the aircraft operator does not have
        -- an assigned IATA airline code.
    aircraftRegistration    [3] UTF8String OPTIONAL,
        -- Aircraft identification as in the aircraft's certificate of registration
        -- e.g. G-IABC, N99999, F-OAAA
    flightNumber            [4] IA5String OPTIONAL,
        -- Flight number assigned by the airline operating the aircraft
    ...
-- ===================
-- General definitions
-- ===================

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

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

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

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

MsgServiceUsage ::= CHOICE
    -- Choice of different types of activities
    -- Manipulation of stored address books is outside the scope
    msgTransmission     [1] MsgTransmission,
    msgStoreOperation   [2] MsgStoreOperation,
    ...
    -- 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,
    clientPort              [13] PortNumber OPTIONAL,
    serverPort              [14] PortNumber OPTIONAL
    -- 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),
        sendMsg(7),
            -- Only applicable to webmail solutions
        forwardMsg(8)
            -- Only applicable to webmail solutions
    } 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,
    clientPort      [11] PortNumber OPTIONAL,
    serverPort      [12] PortNumber OPTIONAL
    -- 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
    ...
    -- 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.
    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
    countryCode     [1] UTF8String (SIZE (2)),
        -- see comment in NationalRequestParameters
    ...
    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
    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
    private(0),
    privatePABX(1),
    publicPayphone(2),
    geographicalfixed(3),
    geographicalindependent(4),
    ...
    -- 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,
    trunkGroupIDs                   [25] TrunkGroupIDs OPTIONAL,
    interOperatorIDs                [26] InterOperatorIDs OPTIONAL
    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),
    ...,