Diameter Quota Authorization

When a network message using the Diameter Credit-Control (CC) Application requests an authorized quantity before allowing usage, the authorized quantity (the quota) is returned in a response to the network by the MATRIXX Charging Application. The actual authorized quota may be less than the requested quantity.

Note: If a CCA is returned with a Result-Code other than 2001 (DIAMETER_SUCCESS) at the message/command level, the session is terminated immediately. In addition, if an MSCC in a CCR is rated and a Result-Code other than 2001 is returned in the CCA, the context is terminated immediately.

If a quota is not present in a CCR, the MATRIXX Charging Application can be configured to use a default value to determine the quantity to authorize. There can be different defaults for authorization requests and re-authorization requests. For example, a data service type might have a default authorization quota of 10 megabytes and a default re-authorization quota of 5 megabytes. In addition, anytime a sub-session is first created, the default authorization quota is used, regardless of the Diameter message type specified in the message.

The size of the requested quota is determined from a combination of the explicit requested amount in the CCR message and the configured default quota specified in the service type definition. If there is not enough available balance amount to charge for the requested amount, for example, when the amount is limited by credit limits on balances and meters in the wallet, the actual size of the authorized quota might be lower.

If the CCR message contains the Diameter Reporting-Reason AVP, the quota is not granted if the AVP is set to QHT (1) or FINAL (2). These values indicate the client is not sending data, so the MATRIXX Charging Application does not authorize any additional quota.

Note: A context end notification (MtxSessionContextEndNotification) is generated when a session's service context is terminated and context end notification delivery is enabled for that specific context. A MtxSessionContextEndNotification and MtxSessionContextEndEvent are generated when a session is terminated with a message of CC-Request-Type TERMINATE_REQUEST, a session expires, a session is terminated due to an error, or a context is reset with reporting reason FINAL.

The MATRIXX Charging Application only returns a quota in response to Diameter CC START and INTERIM request messages when the subscription or device identified in the CC message is active. If the subscription is inactive or suspended, a quota value of 0 (zero) is returned with a failing result code.

When an INTERIM CCR message is received for a service context, the default quota is examined if necessary, for example, when there is either no quota amount requested or the service context type is configured to always use the default quota. The default authorization amount is used for the first authorization of the service context. After a FINAL reporting reason, any further authorization for the service context type is considered a new sub-session and the default authorization quota, rather than the re-authorization quota, is used.

For INTERIM CCR messages, the MATRIXX Charging Application attempts to authorize 100% of the quota before and after a rate change when the rating boundary is determined by time or volume. Boundaries can include the default and maximum quota validity times (QVT) configured by the operator per service context (both default to 4294967295 seconds, or about 136 years), start and end dates, bill and balance cycle dates, time-based rate changes such as peak and off-peak, and so forth. For example, when authorizing a 30 minute phone call at 11:45 PM, 15 minutes is authorized before midnight and 15 minutes is authorized after midnight.

Note: Authorization of volume/data across a rate change requires that the maximum possible quota at any given time be reserved because the whole quota before or after the rate change could be used. Balance validity times can trigger a rate change that must be authorized across as well. For example, authorization against a periodic balance may require that quota be reserved in both the current and next period(s). For this reason, you should use a reasonable quota validity time (QVT) to limit how far into the future quota is authorized. For example, if the QVT is 15 minutes, authorization across rate changes occurs only up to 15 minutes from the event time. Also, relevant balance templates should be configured with sufficiently high window size and low and high water marks to accommodate the additional reservations. Rollover balances are not considered when authorizing for future periods. For more information about rollover balances, see MATRIXX Pricing and Rating.

Quota Authorization Process

In general, quota authorization uses the following process:
  1. INTERIM and STOP messages release reservations and forfeit outstanding quotas for the relevant context. For STOP messages, it is all contexts in a session; for INTERIM messages, it is all contexts in the message.
  2. Quota reported as used is charged.
  3. START and INTERIM messages reserve quantities and authorize quota for future usage for each context in the message.
Step 2 and step 3 reuse any quota released by step 1.

For more information about event segmentation and rating boundaries, see the discussion about event segmentation during rating in MATRIXX Pricing and Rating.

Each request for volume/data or service-specific quota in a START or INTERIM CC message is authorized as follows:
  1. Request for quota Q arrives at time T0.
  2. Quota Q is rated using the rates and balances at time T0. This determines the available quota (Q0), the reservation required to cover it (R0), and the next time boundary (T1).
    • If Q0 is less than Q, rating stops. R0 is reserved. Q0 is authorized until time T1 with a quota threshold of 0 and with Final-Unit-Indication (FUI) as configured.
    • If T1 is due to the maximum quota validity time (max-QVT) for this service context, rating stops. R0 is reserved. Q0 is authorized until time T1.
  3. Quota Q is rated using the rates and balances at time T1. This determines the available quota (Q1), the reservation required to cover it (R1), and the next time boundary (T2).
    • If Q1 is less than Q, rating stops. R0 is reserved. Q0 is authorized until time T1.
  4. The maximum impact per balance period from R0 and R1 is reserved. (If a period is impacted by either R0 or R1, that impact is reserved. If a period is impacted by both R0 and R1, whichever impact is greater is reserved.)
  5. The lesser of Q0 or Q1 is authorized until time T2, with Tariff-Time-Change (TTC) at time T1. Request for quota Q arrives at time T0.
Quota Authorization Examples provides quota authorization examples.
Table 1. Quota Authorization Examples

Condition

Reserve

Authorize

Tariff-Time-Change

(TTC)

Validity-Time

(QVT)

Time-Quota-Threshold

Volume-Quota-Threshold

Unit-Quota-Threshold

(TQT/VQT/UQT)

Final-Unit-Indication (FUI)

Q0 < Q R0 Q0 None T1 0 As Configured
Q1 < Q or T1 = max-QVT R0 Q0 None T1 As Configured None
All Other Cases R0, R1 min(Q0, Q1) T1 T2 As Configured None
The GGSN reports one or more Used-Service-Unit AVPs, each with an optional Tariff-Change-Usage (TCU) AVP equal to one of the following:
  • UNIT_BEFORE_TARIFF_CHANGE (0)
  • UNIT_AFTER_TARIFF_CHANGE (1)
  • UNIT_INDETERMINATE (2)

If TTC = T1 was issued in step 5, any usage with TCU = UNIT_AFTER_TARIFF_CHANGE is charged at time T1/TTC. All other usage is charged at time T0.

Tarriff-Time-Change (TTC)

TTC Example provides a TTC example.
Figure 1. TTC Example
In the TTC example, at 5:30 AM:
  • The MATRIXX Charging Application authorizes one hour as the quota validity time (QVT).
  • The QVT crosses the rate change.
  • The MATRIXX Charging Application returns Time to Change.
At 6:30 AM:
  • The Packet Data Network Gateway (PGW) reports usage with Before and After TTC.
  • The MATRIXX Charging Application reports one event with two impacted offers and the amounts charged to each offer.
  • The event time, or authorized time, reported is 5:30 AM.