Prepaid Account Balance Can Go Negative (Doc ID 562743.1)

Last updated on SEPTEMBER 19, 2016

Applies to:

Oracle Communications Billing and Revenue Management - Version 7.3.0.0.0 to 7.3.1.0.1 [Release 7.3.0 to 7.3.1]
Information in this document applies to any platform.
***Checked for relevance on 11-Mar-2010***


Symptoms

A products is defined with a voice event with minimum event quantity and rounding increment of 30
seconds, and the PIN_FLD_INCR_QUANTITY defined in pin_config_reservation_aaa_prefs is bigger
than 30 seconds. Hence, the authorized quantity is expected to be a multiple of 30 seconds.

The OverrideCreditLimit entry in bus_params_rating.xml file is also enabled, so that the credit
limit check is always disabled when calling TCF_STOP_ACCOUNTING opcode but is still enabled during TCF_AUTHORIZE phase.

With the above settings it is expected that, if the account balance is lower than the cost of 30 seconds,
the authorized quantity will still be zero or 30 seconds.

The actual behavior is that, in the scenario above, TCF_AUTHORIZE opcode authorize a number of
seconds between zero and 30 (i.e. 12). In this case the call will be enabled for 12 seconds but,
when the TCF_STOP_ACCOUNTING is called at the end of the call, the client is accounted for the
entire cost of 30 seconds, the balance goes below the 0 Euro limit, and the client will pay for more
than the call duration.

It seems that, if the balance is lower than the PIN_FLD_INCR_QUANTITY, the rating engine uses a
linear logic and doesn't use the 30 seconds increment logic.

Furthermore the authorized seconds are always more than the available seconds. For example, if the
customer has credit for 15 seconds, the opcode authorize 20 seconds.

As another, different example of the same problem, the following has also been verified:

1. Set the rate as 0.06 euros for 30 seconds with minimum_increment as 30 seconds.
2. Create a prepaid account with current balance -0.09 Euro.
3. Try authorizing a call for 60 seconds. Since the available resource is only sufficient to make
a 45 second call, we do reverse rating and return an authorization for 45 seconds
4. End the call after 45 seconds.

Expected result -- The call should be rated for 45 seconds and the account balance should become 0

Actual result -- The quantity is incremented by the minimum increment after 45 which results in a
net quantity of 60 seconds. Rating rates the total quantity and the balance is impacted by 0.12
euros. The account balance going positive to 0.03.

In stop accounting we don't have a credit limit check or any reverse rating logic, reverse
rating logic in authorization should be taking care of the minimum increment as well and we should
authorize only up to 30 secs instead of 45 secs, while it doesn't.

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms