12 Managing Midsession-Rated Events

You can configure Oracle Communications Elastic Charging Engine (ECE) to generate a rated event during the middle of a network session based on trigger criteria that you specify.

Topics in this document:

Configuring ECE to Generate Midsession-Rated Events

By default, ECE generates a rated event for a network session when a session ends. You can configure ECE to also generate rated events when an update operation occurs during the session. Such events are called midsession-rated events.

To generate midsession-rated events, you enable the feature and then define conditions, called triggers, that initiate the generation of these events. Triggers are based on one or more of the following criteria:

  • Duration (for example, every 4 hours that a session is active)

  • Quantity (for example, whenever downloaded data totals 70 MB or more)

  • Time of day (for example, daily at 23:00:00 during the life of the session)

  • Custom criteria, such as network condition changes or spans from one offer to another due to balance exhaustion

    Note:

    To trigger a midsession-rated event based on custom criteria, you must extend ECE at the pre-rating or post-rating extension points. See "Pre-Rating Extension - Generating Midsession-Rated Event" and "Post-Rating Extension - Generating Midsession-Rated Events" for more information.

Each trigger is associated with a service-event pair. If an ongoing session meets the trigger conditions when an update operation occurs, a midsession-rated event for the specified service is generated.

Note:

ECE checks for trigger conditions only during update operations. For example, if a trigger condition is "every 200 MB" but an update operation does not occur until the total is 288 MB, the rated event is for 288 MB, not 200 MB.

To configure ECE to generate midsession-rated events:

  1. Access the ECE configuration MBeans in a JMX editor, such as JConsole. See "Accessing ECE Configuration MBeans".

  2. Expand the ECE Configuration node.

  3. Expand charging.midSessionCdrConfiguration.

  4. Expand Attributes.

  5. Set the MidSessionCdrEnabled attribute to true.

  6. Define trigger conditions for one or more service-event pairs:

    1. Expand Operations.

    2. Click addOrUpdateMidSessionCdrTriggerDetails.

    3. Specify values for the fields listed in Table 12-1.

      Table 12-1 Fields for Defining Midsession-Rated Event Triggers

      Field Description

      productType

      Name of the service for which you are creating the trigger (for example, "DATA").

      eventType

      Name of the event for which you are creating the trigger (for example, "DATA_USAGE").

      triggerName

      Name of the trigger you are defining.

      qtyFields

      Name of one or more event fields to which a quantity condition applies (for example, "input_volume; output_volume"). Use a semicolon ( ; ) to separate field names. Values in the fields are summed.

      qtyUnit

      Unit of measure for conditions based on quantity (for example, "MEGABYTES").

      qtyValue

      Total quantity of the unit that triggers event generation (for example, "70").

      durationUnit

      Unit of measure for conditions based on duration (for example, "HOURS").

      durationValue

      Amount of the unit that triggers event generation (for example, "70").

      timeOfDay

      A particular time of day in a 24-hour clock at which to generate the event (for example, "23:00:00", which indicates 11 p.m.). Use the hh:mm:ss format.

      midSessionForNonCounterGrants

      Whether to generate an event based on the consumed unit.

      A trigger with one TriggerConfiguration block is created for the specified service-event pair. All conditions in the block (quantity, duration, time of day) must be met to generate a midsession-rated event.

    4. (Optional) Do one of the following:

      • To define another trigger, click the plus sign in the panel's upper right corner, and repeat step 4 for a different service-event pair.

      • To add a TriggerConfiguration block to the current trigger, click the plus sign in the panel's upper right corner, and repeat step 4 for the same service-event pair.

Note:

  • All conditions in a TriggerConfiguration block must be met (criteria are assumed to be joined by AND).

  • If a trigger contains multiple TriggerConfiguration blocks, the conditions in only one block must be met (blocks are assumed to be joined by OR).

Generating Midsession-Rated Events When USU Block Missing

When the network sends a Final Unit Indicator (FUI) followed by a top up, ECE generates a reauthorization request (RAR). The network then sends an update request, sometimes not including the Used Service Units (USU) block for the ongoing session. When this occurs, ECE generates a midsession-rated event. This ensures that any part of the reservation consumed by the account is reported, preventing revenue loss.

Configuring Non-Linear Rating for Tariff Changes

By default, ECE performs an incremental rating of an active network session based on the tariff changes during a session. You can configure ECE to generate a midsession-rated event whenever a tariff change occurs during a network session. The tariff change can include peak and off-peak rate changes in offers, availability or expiration of charge offers, alteration offers (discount offers) or distribution offers (charge sharing offers), and availability or expiration of customer balances.

Non-linear rating for tariff changes enables ECE to rate long network sessions incrementally based on the exact data consumed between tariff changes. It also lets operators show subscribers the running balance based on the data consumption after each tariff change.

When this feature is enabled, ECE determines if there is a tariff change when authorizing and reserving a balance for a session request from the network. ECE bases the reservation on the requested service units of the session request and sends the Tariff-Time-Change AVP in the usage response to the network to record the exact data consumed before and after the tariff change. ECE also performs reverse rating to calculate the amount of usage the subscriber can afford and reserves the balance for the requested service units based on the worst-case charging condition (the maximum charge that can be applied for the requested service units). This ensures that the overall usage does not exceed the customer's credit limit and that there is no revenue leakage whether the balance is consumed before or after the tariff change.

For non-linear rating, ECE supports only one tariff change for a session request. If more than one tariff change is determined during authorization, ECE considers the tariff change that occurs first for balance reservation and adjusts the validity time to expire at the next tariff change. This ensures that only one tariff change occurs before the session expires. ECE then rates the exact balance consumed based on the rating condition changes before and after the tariff change and generates rated events each time a tariff change occurs in an ongoing session.

To enable incremental rating for tariff changes:

  1. Enabling Non-Linear Rating for Midsession-Rating Condition Changes

  2. Configuring ECE to Support Tariff Time Change

Enabling Non-Linear Rating for Midsession-Rating Condition Changes

When changes in charging occur during an ongoing data session, they trigger a reauthorization request (RAR). For example, when a usage charge transitions from $1 per minute to $1.50 per minute at 12:00:00, ECE sends an RAR notification to the network.

You can configure ECE to generate a midsession-rated event when these charging changes are triggered during an ongoing session. That is, ECE creates one rated event for usage prior to an RAR and another rated event for usage after an RAR.

You can configure ECE to generate rated events for midsession-rating changes based on the following:

  • Product type

  • Product type and event combination

Note:

Non-linear rating for midsession-rating condition changes is supported only for those sessions that generate an RAR.

To configure ECE to use non-linear rating for midsession-rating condition changes:

  1. Access the ECE configuration MBeans in a JMX editor, such as JConsole. See "Accessing ECE Configuration MBeans".

  2. Expand the ECE Configuration node.

  3. Expand charging.reservationConfig.

  4. Expand Operations.

  5. For each product that supports generating rated events for midsession-rating changes, select enabledOrDisableNonLinear and then specify values for these parameters:

    • productType: Specify the name of the product defined in the ECE request specification data (for example, DATA).

    • enableOrDisable: Set to true to enable non-linear rating.

  6. For each product and event combination that supports generating rated events for midsession-rating changes, select enabledOrDisableNonLinearBasedOnProductTypeAndEventType and then specify values for these parameters:

    • enableOrDisableNonLinear: Set this to true.

    • productType: Enter the name of the product defined in the ECE request specification data. For example: TelcoGprs.

    • eventType: Enter the name of one or more events separated by a comma. For example: EventDelayedSessionTelcoGsm,EventDelayedSessionTelcoGprs.

Configuring ECE to Support Tariff Time Change

Note:

Configuring ECE to support tariff time change is a systemwide setting, and it is applied irrespective of the product type. When configured, the tariff time change is considered for all products for which incremental rating is enabled.

To configure ECE to support tariff time change:

  1. Ensure that nonlinear rating is enabled for one or more product types, or product and event combinations. See "Enabling Non-Linear Rating for Midsession-Rating Condition Changes".

    Caution:

    Nonlinear rating must be enabled. The tariff time change functionality is dependent on nonlinear rating.

  2. Access the ECE configuration MBeans in a JMX editor, such as JConsole. See "Accessing ECE Configuration MBeans".

  3. Expand the ECE Configuration node.

  4. Expand charging.server.

  5. Expand Attributes.

  6. Select the tariffTimeChangeSupported attribute and set the value to true.

Sample Non-Linear Rating for Tariff Changes

The following section describes a scenario of tariff change during a data session and the balances and charges applied during and at the end of the session.

Scenario: Offer Becomes Valid and Consumed in a Session

Given a subscriber with:

  • A charge offer named CO Data Standard with a Standard Bytes (Chargeable Balance) followed by Free Use Data (Counter)

  • A starting balance of 50 megabyte (MB) Standard Bytes and 0 Bytes Free Use Data

  • A discount offer named Data Boost is valid from 1:30 PM the same day (100 MB Standard Bytes valid from 1:30 PM for 30 minutes from the first use)

The usage charging flow is as follows:

  • When the subscriber starts a data session at 1.00 PM

  • Consumes 50 MB over 20 minutes at high QoS

  • Consumes 2 MB over 10 minutes at low QoS

  • The purchased Data Boost discount offer becomes valid at 1:30 PM

  • Consumes 100 MB over 20 minutes at high QoS

  • Consumes 5 MB over 15 min at low QoS before terminating the session

Table 12-2 shows how subscriber balances and charges are calculated.

Table 12-2 Subscriber Balance and Charge Details

Balance Name Balance Value Units Charged

Data Standard

0 MB

150 MB

Free Use Data

7 MB

7 MB

Scenario: Noncurrency Voucher Top-up During a Session

The following describes a scenario of a non-predictable rating condition change during a data session and the balances and charges during and at the end of the session.

Given a subscriber with:

  • A charge offer named CO Usage Data

  • A charge of $1 per 1 megabyte (MB) of usage

  • A discount offer that consumes from available free MB

  • An initial balance of 0 MB of Free Data and 0 USD

  • Non-linear rating enabled for product type TelcoGPRS

  • Eligible offers selected based on duration

The usage charging flow is as follows:

  1. A subscriber starts a data session at 23:50:00 on April 1 with an INITIATE request for 30 MB.

  2. ECE grants the subscriber 40 MB with a validity of 1 hour, and reserves a balance of 30 USD.

  3. The subscriber does a noncurrency voucher top-up at 00:00:00, which grants 10 MB of data with a validity of 5 days.

  4. ECE sends an RAR notification.

  5. At 00:02:00 on April 2, the network sends an UPDATE request with requested units as 40 MB and used units as 12 MB (10 MB before midnight and 2 MB after midnight).

  6. ECE does the following:

    • Generates a CDR for 12 MB

    • Grants the subscriber 40 MB with a validity of 1 hour

    The subscriber's balance is now:

    • Current balance: 10 USD (Before midnight, ECE charges for 10 MB @ $1 per MB)

    • Free data = 8 MB (After midnight, ECE subtracts the 2 MB of used data from the 10 MB voucher top up)

  7. At 01:30:00 on April 2, the network sends a TERMINATE request with used units of 20 MB.

  8. ECE generates a CDR for 20 MB.

    The subscriber's balance is now:

    • Current balance: 22 USD (After subtracting the free data, ECE charges an additional 12 USD for 12 MB @ $1 per MB)

    • Free data: 0 (ECE uses the remaining 8 MB of free data)

Viewing Reason for Midsession-Rated Event

ECE automatically adds to the event's contents the reason why a midsession-rated event was triggered. You can view the reason by checking the value of the event's midSessionCDRSplitReason field, which can be set one or more of the reason codes in Table 12-3.

Table 12-3 Reasons for Creating Midsession-Rated Event

Reason Code Description

CONFIGURED_VOLUME_REACHED

The event exceeded a configured volume, such as 100 MB.

CONFIGURED_DURATION_REACHED

The event exceeded a configured amount of time, such as 2 hours.

RATING_CONDITION_CHANGE

The trigger was caused by a change in tariffs.

CONFIGURED_TIME_OF_THE_DAY_CROSSED

The event crossed a configured time of day, such as midnight.

INTERNAL_TRIGGER

The trigger was caused by a context change.

EXTERNAL_TRIGGER

The midsession trigger condition was met.

MULTIPLE_USU

The event contained multiple Used Service Units (USUs).

ECE generates a midsession-rated event for each USU.

MULTIPLE_USU_AND_EXTERNAL_TRIGGER_OR_INTERNAL_TRIGGER

The event was caused by any of the above triggers.

PRE_MIDSESSION_CONDITION

The event reached a custom trigger at the prerating extension point.

POST_MIDSESSION_CONDITION

The event reached a custom trigger at the post-rating extension point.

The following shows a sample snippet of a midsession-rated event with the reasonForMidSessionCDRSplit field set:

balanceOutputMap = {BALANCE=BalanceOutputImpl{ customerId=39384585, balanceId='BALANCE', status='SUCCESS', firstUsageValidityMap{},
impacts{840=[OutImpactImpl{ balanceItemId=1, impact=UnitValue{quantity=60.00, unit=Money{curr=USD}}, validityRule=null, 
firstUsageCreatedTime=null, type=0}]}, grantValidityMap={840={1=[Pair{first=null},{second=null}]}}, recurringImpactMap=null,
firstUsageValidityRuleMap={}, firstUsageCreatedTimeMap={}, currentAndLoanAmounts={840=[Pair{first=60.00}, {second=0}]}}}}'}}
{reasonForMidSessionCDRSplit=[CONFIGURED_DURATION_REACHED]}]