The purpose, lifecycle, and features related to Interim CDRs are described on this page.

Overview

Interim CDRs are a CDR format used for recording CDRs at multiple points during the lifetime of a session. This format has several benefits over the once-per-session CDRs written by the session-based CDR features:

  1. Improved failure characteristics. Interim CDRs are recording more frequently during a session, so any system failures will result in less records being lost.

  2. Interop with offline charging systems. This format is designed to reflect the message content requirements for interaction with offline charging systems via the Rf interface.

  3. More accurate. This format records changes in specific AVPs (e.g. SIP SDP AVPs) during the lifecycle of a session allowing changes in media state to be more accurately tracked.

Interim CDR content

Interim CDRs are written as a collection of AVPs conforming to the definitions listed in Sentinel AVP definitions. In addition to the standard AVPs, Interim CDRs contain additional AVPs to facilitate interpretation and correlation of their content.

These additions are summarized in the following table:

AVP Description Specification

Accounting-Record-Type

Lifecycle enum indicating when the record was written. See below table.

RFC 6733

Accounting-Record-Number

Unique-per-session number starting at 0 indicating how many records have been written for this session.

RFC 6733

OC-Interim-CDR-Reason

Contains the leg the Interim CDR relates to, and the reason it was written.

Sentinel AVP definitions

The Accounting-Record-Type AVP can have the following enumerated values:

Accounting-Record-Type When written…​

START_RECORD

When a session is established (answered).

INTERIM_RECORD

Mid-session, either in response to SDP changes or based on timer events (both configurable).

STOP_RECORD

When a session finishes.

EVENT_RECORD

When the last Interim CDR written is also the first one written, e.g. for recording of one-off SMS events.

Interim CDR Correlation

If the IMS Charging Identifier (ICID) is present during network interactions it will be included in all Interim CDRs produced for a session.

When Running List CDRs, ICIDs present in a CDR file can be listed with --list-icids, or filtered with a specific ICID using --filter-by-icid.

For configuring when Interim CDRs are written, refer to the VoLTE Interim Cdr feature documentation.

Other features can inform the VoLTE Interim Cdr feature of important session state changes by writing values to the control fields defined by the SipInterimCdrSessionState session state interface.

The features which affect the behaviour of the VoLTE Interim Cdr features are:

Feature Behaviour

Determine Chargeable Leg Feature

Determines which leg to charge then records it to the LegForCdrs session state field.

SDP Monitor Feature

Detects when SDPs have changed and sets the WriteCdrOnSDPChange session state field. This instructs the Interim CDR feature to (if configured) write an interim CDR when SDPs have changed.

MMTel Conference Subscription Feature

Sets the LegForCdrs session state field to the conference moderator leg.

Suppress SDP CDR Feature

Unsets the WriteCdrOnSDPChange session state field for non-roaming Mobile Terminating calls.

Controlling when Interim CDRs are written

The Interim CDR feature writes CDRs at specific points during a session. There are several mechanisms to control when interim CDRs are written including feature configuration and session state control fields, as described in the feature documentation.

Example call flow

Below is an annotated call flow indicating where Interim CDRs are written during a typical SIP Mobile Originating session.

mo with ocs interim cdrs

Extending CDR content

To customise the content included in Interim CDRs, refer to Customising CDRs from the SDK documentation.

Previous page Next page
Sentinel VoLTE Version 2.8.0