When user attempts to use the service, the two most important questions are “Is he allowed to do so?” and “How much is he allowed to consume?”
The traditional authorization scheme, in which the system checks the amount of available funds at the beginning of a call, has many drawbacks. For one, the system does not react to balance changes (refunds, payments, or charges) made while the call is in progress. Since every session is authorized based on the total amount of resources available, overdrafts are possible in the case of multiple concurrent sessions and the like.
This is why PortaBilling (starting with ) now offers you the ability to dynamically lock the funds required to pay for a certain amount of a service before that service is used.
When a session (e.g. a voice call) starts or is in progress, the system “reserves” a small portion of the available funds to cover the next time interval (e.g. 5 minutes). As the end of this interval comes near, the system attempts to reserve funds to cover the next interval, and so on.
If no remaining funds are available, the call is disconnected. So if a customer sends an SMS message during a phone call (decreasing the available funds), or makes a credit card payment (increasing the available funds), this will immediately affect the call – either it will be disconnected sooner, or the maximum allowed call time will increase.
This allows to provide prepaid voice, video and data services with value-based add-ons (e.g. SMS messaging) to your customers in a pre-paid basis with a minimum risk of account overdraft.