Diameter Interim Messages

A session using the Diameter Credit-Control (CC) application consists of one Diameter START message, zero or more INTERIM messages, and one STOP message. This topic focuses mainly on INTERIM messages and how MATRIXX Engine handles each one received during a session.

A START message can request usage authorization and mark the start of the session. When the authorization quantity is calculated, the amount is reserved from the gross balances so the usage can be rated. A STOP message can report used quantity and mark the end of the session. The final used quantity is rated and the gross balances are updated.

An INTERIM message can report a used quantity, a request for an additional authorized quantity, or both each START and INTERIM message received, MATRIXX Charging Application first checks to see that the subscriber or device associated with the service usage has an active status. If so, it then calculates the used quantity and authorization quantity to determine if rating can occur. When the used quantity is rated, the gross balances are updated in real-time. This allows subscribers querying balances to see the usage already completed within the session. They do not have to wait until the session is done to see the updated balances. When the authorization quantity is calculated, as with START messages, the amount that would be charged is reserved from the gross balance so the usage can be rated.

Service contexts offer a way to individually rate different types of usage (SMS, data, voice, and so forth) within a single session. The data stored in the engine for the session tracks the used quantity, authorized quantity and balance reservations for each service context. Each Diameter Credit-Control message within a session need not include all service contexts being tracked for the session. An INTERIM or STOP message can include service contexts not reported in preceding messages, in which case additional contexts are added to the data stored for the session. For more information about service contexts, see Diameter Multiple-Service Credit Control (MSCC).

When an INTERIM message has an authorization request, the amount requested is considered to be the total request. This requested amount is not added to the previously-authorized reservation. Instead, if there is any previously-authorized quantity that was reserved but not used, that quantity is forfeited and all balance reservations for that quantity are released to the gross balance. Then the new balance reservations are created based on the new authorized amount. Any unused authorized quantity is forfeited even if the message does not report a used quantity.

After the used quantity for a segment of a session is rated, it is not re-rated when a later used quantity is reported—any used quantity subsequently reported is handled as additional usage that occurred after the usage already rated. Because charges are not re-calculated when later usage is reported, charges cannot be based on usage characteristics that are not known before the session ends. For example, rates cannot be based on the end time of a session or the total usage quantity for a session.

The rates applied to each message within a session can vary due to the following conditions:
  • Different rates apply to different portions of the session, as with rating based on quantity tiers and time-of-day.
  • Usage characteristics reported in the network message vary for each segment, for example, when the quality of service attributes change.

The pricing object revisions that are valid at the session start time are used for all charging and authorization for the session.

Processing Interim Messages

After the subscriber or device is determined to be active, MATRIXX Charging Application processes each INTERIM message in the following manner:
  1. For each service context present, the charges for the used quantity reported are calculated and any reservations are subtracted from the reserved balance. In the data tracked for the session, the total used quantity for the session is incremented by the amount reported.
  2. For each service context in the message, the authorization requests are calculated and the new amount authorized is reserved and stored in the data tracked for the session. If no amount is requested, the amount authorized becomes zero.

A separate set of reservations is tracked for each service context within a session.

When processing the used quantity in an INTERIM or STOP message, the total used quantity stored becomes the starting offset for the usage reported. The starting offset can affect the results of quantity range rating normalization. If the usage quantity represents duration, then the offset also effects the absolute time of the usage, which can effect which balances and purchased product offers are valid for rating the usage. It also effects the results of time-of-day normalization.

The following rules apply during session rating:
  • If a rating formula has a fixed quantity, it is applied only once, and only for the initial authorization and charging operation of the session. If there is no fixed part in the rating formulas for the first segment, even if the rating formulas for later segments of the session have fixed quantities, they are not applied. This logic is applied on a per-service context basis. The fixed parts of rating formulas are applied only to the first authorization and charging operation for a service context.
  • If a turnstile meter is applicable during rating, it is incremented only once, during the first rating operation for each service context within a session. The turnstile meter is not incremented on any later rating operations within the session.
  • As with all message processing, if beats are used during rating and the beat rounds the quantity up, the rounded quantity is charged for only the first time, and not recharged for any further INTERIM and STOP messages.

CCR-I Failures

To ensure rating does not create a session if a CCR-I fails to authorize (for voice and CCR-I), you must set the MSI=0 on the Charging Server input interface. On the Charging Server input interface, a context failure terminates the session for MSI=Not Present and MSI=0, but when MSI=1, a context failure does not terminate the session. For the Diameter interface, there is a difference between MSI=Not Present (do not use MSCC) and MSI=0 or MSI=1 (use MSCC). Session Termination shows the different configuration scenarios for a CCR-I failure.

Table 1. Session Termination
MSI= # Contexts Charging: Context failure terminates session? Diameter: Uses MSCC?
Not Present 1 Y N
0 1 Y Y
1 Any number (0-n) N Y