This feature reads charging settings from profile configuration and the incoming request, and sets session state accordingly.
Details
Feature name |
DetermineCharging |
|---|---|
Applicable contexts |
SIP service |
SAS Support |
N/A |
Prerequisite features |
None |
Session State inputs and outputs
Inputs
| Name | Type | Purpose |
|---|---|---|
SentinelSelectionKey |
SentinelSelectionKey |
Used to select a configuration profile to load. |
CallType |
CallType |
Used to identify Service-Identifier and Rating-Group AVP values for session. |
Outputs
| Name | Type | Purpose |
|---|---|---|
DisableCharging |
boolean |
Flag indicating whether charging has been disabled for the session. |
InterimCdrsEnabled |
boolean |
Flag controlling whether interim CDRs will be created for the session. |
SessionCdrsEnabled |
boolean |
Flag controlling whether a session CDR will be created at the end of the session. |
ContinueCallOnOCSFailure |
boolean |
Flag controlling whether the session is permitted to continue if there is an OCS failure. |
MonitorCallOnly |
boolean |
Flag controlling whether online charging will be skipped. |
ServiceIdentifier |
Long |
The value of the Service-Identifier AVP to use according to call type and config value. |
RatingGroup |
Long |
The value of the Rating-Group AVP to use according to call type and if configured, otherwise will be null. |
RequestUnitsSeconds |
Long |
The value of the Requested-Service-Unit AVP in Credit Control Requests if configured, otherwise will be null. |
DiameterServiceSpecificInfoConfigListConfig |
List<DiameterServiceSpecificInfoConfig> |
A list of the DiameterServiceSpecificInfoConfig objects or null if not configured. |
OCSId |
String |
The ID of the Diameter OCS server to use. |
Configuration
This feature uses profile configuration to determine how each session state field should be set.
Configuration is kept in two profile tables: DetermineChargingConfigProfileTable and DiameterServiceSpecificInfoProfileTable
The profile table called DetermineChargingConfigProfileTable is made up of profiles with the following fields.
Each profile is scoped by the Sentinel Selection Key.
| Name | Type | Description |
|---|---|---|
DisableCharging |
boolean |
If true, online charging will be disabled for sessions using this profile. |
InterimCdrsEnabled |
boolean |
If true, interim CDRs will be created while sessions using this profile are in progress. |
SessionCdrsEnabled |
boolean |
If true, session CDRs will be created at the end of sessions using this profile. |
ContinueCallOnOCSFailure |
boolean |
If true, sessions using this profile will be allowed to continue in the event of OCS failure. |
ServiceIdForMOC |
Long |
If set, overrides the default value of the Service-Identifier for AVP ('1') for Mobile Originating calls in Credit Control Requests and CDRs. |
ServiceIdForMTC |
Long |
If set, overrides the default value of the Service-Identifier for AVP ('2') for Mobile Terminating calls in Credit Control Requests and CDRs. |
ServiceIdForMFC |
Long |
If set, overrides the default value of the Service-Identifier for AVP ('3') for Mobile Forwarded calls in Credit Control Requests and CDRs. |
ServiceIdForNIC |
Long |
If set, overrides the default value of the Service-Identifier for AVP ('4') for Network Initiated calls in Credit Control Requests and CDRs. |
RatingGroupForMOC |
Long |
If set, the value of the Rating-Group AVP for Mobile Originating calls in Credit Control Requests and CDRs. |
RatingGroupForMTC |
Long |
If set, the value of the Rating-Group AVP for Mobile Terminating calls in Credit Control Requests and CDRs. |
RatingGroupForMFC |
Long |
If set, the value of the Rating-Group AVP for Mobile Forwarded calls in Credit Control Requests and CDRs. |
RatingGroupForNIC |
Long |
If set, the value of the Rating-Group AVP for Network Initiated calls in Credit Control Requests and CDRs. |
RoRequestUnitsSeconds |
Long |
If set, overrides the default value of the Requested-Service-Unit AVP ('60') in Credit Control Requests. |
The profile table called DiameterServiceSpecificInfoProfileTable is made up with the following fields.
Each profile is not scoped by the Sentinel Selection Key and therefore will apply to all sessions.
| Name | Type | Description |
|---|---|---|
ServiceSpecificTypeValue |
Long |
A positive number that identifies the type of data being provided. |
ServiceSpecificDataSessionStateFieldName |
String |
A string containing either a name of the session state field, or a pipe (|) separated list of names of multiple session state fields to map into the Service-Specific-Info AVP value. When multiple fields are specified, the first non-empty field value will be used. |
Feature Statistics
DetermineCharging statistics are tracked by the sentinel.sip SBB and can be found under the following parameter set:
SLEE-Usage → sentinel.sip service ID → sentinel.sip SBB ID → feature.DetermineCharging
| Name | Type | Description |
|---|---|---|
|
Counter |
Incremented when the feature is triggered. |
|
Counter |
Incremented when the feature fails to start. |
|
Counter |
Incremented when the feature fails while executing. |
|
Counter |
Incremented when the feature issues a warning. |
|
Counter |
Incremented when the feature times out during execution. |
|
Counter |
Incremented when the feature disables charging. |
|
Counter |
Incremented when the feature retrieves the ECF address from the P-Charging-Function-Addresses header. |
|
Counter |
Incremented when the feature fails to parse the P-Charging-Function-Addresses header. |
Behaviour
This feature determines charging configuration for the session.
It does this from two main sources:
-
Most configuration is loaded from profile tables.
-
The OCS server to use is determined from the incoming SIP request.
SIP Request OCS Selection
The feature will attempt to identify the OCS to use from the P-Charging-Function-Addresses header.
If the header has an ECF address, it will be used to set the OCSId session state output field.
The OCSId field is used as described here: OCS Destination Configuration.
Profile Data
When triggered this feature will attempt to retrieve a profile from the DetermineChargingConfigProfileTable using the current Sentinel Selection Key.
If a profile is found:
-
DisableCharging,InterimCdrsEnabled,SessionCdrsEnabled,ContinueCallOnOCSFailureandRoRequestUnitsSecondsvalues are mapped directly from their profile fields to their equivalent session output fields. -
Using the
CallTypeidentified by the Determine Call Type Feature, theServiceIdentifierandRatingGroupsession output field values will be set using the corresponding configuration value if set.
If the feature fails to find a DetermineChargingConfigProfileTable profile, their session output fields will not be populated.
The feature will attempt to retrieve profiles from the DiameterServiceSpecificInfoProfileTable.
For each profile found, a DiameterServiceSpecificInfoConfig object will be created using the configured ServiceSpecificTypeValue and ServiceSpecificDataSessionStateFieldName values.
All DiameterServiceSpecificInfoConfig objects are collected into a list and put into the DiameterServiceSpecificInfoConfigList session output field.
The effect of each field is outlined below.
Charging Enabled/Disabled
The DisableCharging field controls whether online charging should be enabled for the session.
When it is set to true the following behaviour is executed:
-
All reservation charging instances in the Charging Manager will be finalised.
-
The
MonitorCallOnlysession output field will be set totrue.
When the MonitorCallOnly session state field is true, feature execution scripts will skip over online charging features.
Interim CDRs
The InterimCdrsEnabled field controls whether interim CDRs will be written for a session.
This is done by checking the value of the field in feature executions scripts, and only executing the Interim CDR Feature if it is true.
Session CDRs
The SessionCdrsEnabled field controls whether a session CDR will be written when a session ends.
This is done by checking the value of the field in feature executions scripts, and only executing the appropriate AVP CDR feature if it is true.
In Sentinel Express deployments this affects execution of the AVP CDR Feature. In Sentinel VoLTE deployments this affects execution of the VoLTE SIP AVP CDR Feature.
Continue Call On OCS Failure
The ContinueCallOnOCSFailure field determines system behaviour when there is a problem communicating with the OCS.
When it is set to true the call will be allowed to continue in the event of an OCS failure, however:
-
No further online charging will occur for the session, even if communication with the OCS is re-established.
-
Rf and CDRs will continue to track the session.
-
OCS failure for a conference call will still result in the session ending (except for mid-session failures).
Service-Identifier AVP and Rating-Group AVPs
If set, the ServiceIdentifier and RatingGroup fields will be used for populating Credit Control Requests and CDRs.
If not set, Sentinel will apply the default Service-Identifier value according to session’s callType and will not populate the Rating-Group AVP in Credit Control Requests and CDRs.
Ro Request Units Seconds
The RoRequestUnitsSeconds field contains the value passed in the Requested-Service-Unit AVP (60) in Credit Control Requests. If the OCS returns a value for
the Granted-Service-Units AVP (in a Credit Control Answer) greater than '60', this field can be used to ensure that subsequent Credit Control Requests for the
call are not sent unexpectedly early.
DiameterServiceSpecificInfoConfigList
The DiameterServiceSpecificInfoConfigList is used by the mapper responsible for generating Diameter Credit Control Requests to populate Service-Specific-Info AVPs in the requests.
For each DiameterServiceSpecificInfoConfig object in the list, the mapper will retrieve a session state field referenced in the ServiceSpecificDataSessionStateFieldNames.
If a value is found in that field, a Service-Specific-Info AVP with the type value specified in the ServiceSpecificTypeValue field, and the found value will be added to the request.
If multiple fields are specified in the ServiceSpecificDataSessionStateFieldNames, the first non-empty field value will be used.
