SipInterimCdr is a system feature that is responsible for writing interim Call Detail Records and/or Diameter Accounting Requests (ACRs) throughout the session.

SipInterimCdr runs at various key points throughout a session and if any of its write conditions are met it writes either or both of:

  1. an interim AVP CDR using the cdr-ra

  2. an ACR using the rf-control-ra

Interim AVP CDRs and Diameter Accounting Records (ACRs) have substantially similar content and the same triggering logic hence both are supported by this feature.

The feature maintains a timer for the interim CDR period. This timer may be adjusted according to the Rf accounting interval provided by the CDF. The interim CDR timer is armed redundantly if session replication is enabled.

Tip

By default, Sentinel runs SipInterimCdr as the very last feature in the post phase of almost every Sip or Charging related feature execution script and EndSession. For example:

featurescript OnPostSubscriberCheck {
    if not session.MonitorCallOnly { run B2BUAScurPostFeature }
    run SDPMonitor mode "post"
    run DetermineCauseCode
    run DiameterServiceInfo
    run SipInterimCdr
}

Details

Feature script name

SipInterimCdr

Applicable contexts

SIP service

SAS Support

No

Prerequisite features

None, but information from various features is used if available

Session state inputs and outputs

Control flags indicating that an interim CDR should be written

Name Type Description Where set

WriteCdrOnSDPChange

boolean

Indicates that a meaningful SDP change occurred on a monitored leg

SDP Comparison feature

LegForCdrs

String

Name of the leg for which CDRs and/or ACRs should be written

Defaults to callingParty, can be set by another feature during call setup.

Inputs

If any of these fields are unset the feature will skip writing the current CDR and/or ACR.

Name Type Description Where set

CallId

String

The unique ID of the call

DiameterServiceInfo feature

CallType

Enumerated

The type of the call. One of MobileOriginating, MobileTerminating, MobileForwarded, NetworkInitiated, or EmergencyCall

DetermineCallType feature, SipThirdPartyHttpTrigger feature

ChargingResult

int

The result code of the Diameter session

Sentinel SIP service

DiameterServiceContextId

String

The Diameter context ID of the relevant service

AcceptSip feature, SipThirdPartyHttpTrigger feature

EndSessionCause

Integer

The end session cause code

LegManager

EventId

String

  • For SUBSCRIBE and NOTIFY events, the main value and id parameter of the Event header.

  • For REFER events, the string refer and the sequence number.

DiameterServiceInfo feature

ImsInformation

org.jainslee.resources.diameter .ro.types.vcb0.ImsInformation

The IMS-Information Diameter AVP

DiameterServiceInfo feature

LatestOcsAnswer

org.jainslee.resources.diameter .ro.types.vcb0.CreditControlAnswer

The latest OCS response message

Sentinel SIP service

PlayedAnnouncementIDs

int[]

IDs of the played announcements

SipPlayAnnouncement feature, SipMidCallPlayAnnouncement feature

OcsSessionIds

String[]

An array of all the OCS session IDs for the call

Various features

OcsSessionTerminationCause

Integer

The OCS session termination cause

Sentinel SIP service

SentinelSelectionKey

com.opencloud.sentinel .common.SentinelSelectionKey

The selection key (for example, <platform>::::) for selecting configuration data

Various features

SipServiceType

Enumerated

The type of service Sentinel is processing. One of Message, Subscription, SipCall, or Unknown.

AcceptSip feature

Subscriber

String

The subscriber associated with the session

SipSubscriberDetermination feature

Statistics

Name Description

CDRWritten

Number of times a CDR or ACR was successfully written

CDRWriteError

Number of times a CDR or ACR was not successfully written

EventCDRWritten

Number of times an Event CDR or ACR was successfully written

StartCDRWritten

Number of times a Start CDR or ACR was successfully written

InterimCDRWritten

Number of times a Interim CDR or ACR was successfully written

StopCDRWritten

Number of times a Stop CDR or ACR was successfully written

TriggeredOnSDPChange

Number of times the feature was triggered due to SDP change

TriggeredOnInterimCdrTimer

Number of times the 'InterimCdrTimer' fired

NoLegForCdr

Number of times the feature ran with no leg for CDRs configured

RfControlActivityLost

Number of times rfControlActivity was lost from session state so a CDR or ACR was not successfully written

Functionality

This feature can be configured to:

  • write CDRs to the local filesystem (through the cdr-ra), and/or

  • write ACRs using the Diameter Rf protocol (through the rf-control-ra)

This feature uses the information from the session state fields mentioned above and constructs a CDR and/or ACR for output. See AVP CDR Format for the format of the CDRs.

Although the feature runs in many execution points, it inspects various session state fields to decide whether or not to write an interim CDR and/or ACR.

An interim CDR and/or ACR will be written under any of the following conditions:

  • On the initial SIP request on the 'LegForCdrs'

  • On the SipInterimCdr feature timer, if no CDR has been recently written

  • On session end

  • When a feature (e.g. SDP Monitor) sets WriteCdrOnSDPChange to true

When the feature is about to write an INTERIM or STOP ACR for a Sentinel Session, if checks if the current Rhino node has an Rf Control Activity for the Diameter Rf session. If it does not, a new Rf Control Activity is started using the same Rf session identifier. This fails over the Rf session.

Also see Charging Information for general information about the contents of CDRs, ACRs and CCRs.

Note This feature only supports writing binary CDRs. If the cdr-ra is configured to write text CDRs the feature will fail to execute.

Configuration

These parameters configure the feature:

Parameter Type Description

WriteCdrOnSDPChange

boolean

When a meaningful SDP change occurs on a monitored leg, write a CDR

InterimTimerPeriod

long

The maximum duration in seconds between timer driven interim CDRs. Setting this to zero will disable timer based interim CDRs.

UseCdrRa

boolean

Whether interim CDRs should be written to disk using the cdr-ra

UseRfControlRa

boolean

Whether ACRs should be written using the rf-control-ra

Configuration profile naming

Configuration Profile Table Name Description Profile Naming

SipInterimCdrProfileTable

SipInterimCdr feature configuration parameters

SentinelSelectionKey (for example, OpenCloud::::)

Feature responses

Response Reason

featureHasFinished

feature has finished

featureFailedToExecute

Cause.invalidSessionState, "rfControlActivity no longer in session state"

Provisioning interfaces

The feature is provisioned using the Sentinel Features REST API or web interface.

Previous page Next page
Sentinel Express Version 3.1.0