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:
-
Improved failure characteristics. Interim CDRs are recording more frequently during a session, so any system failures will result in less records being lost.
-
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.
-
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. |
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
.
Related features
For configuring when Interim CDRs are written, refer to the Sip Interim Cdr feature documentation.
Other features can inform the Sip 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 Sip Interim Cdr features are:
Feature | Behaviour |
---|---|
Determines which leg to charge then records it to the |
|
Detects when SDPs have changed and sets the |
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.
Extending CDR content
To customise the content included in Interim CDRs, refer to Customising CDRs from the SDK documentation.