Prepaid billing

Home » Asterisk Users » Prepaid billing
Asterisk Users 4 Comments

Hi All,

I am writing a billing engine in AGI. My scenario is :

One customer can have simultaneous calls and I need to hang up one
customer’s all call when balance reaches 0

If I set limit for each call using ‘L’ in dial command, lets say 5 minutes
in accordance with remaining credit and connect the call, few seconds later
a 2nd call comes in and the first call is still in progress. If I permit
the same 5 minutes as per this formula and both calls remains connected for
the next 5 minutes then credit will go in minus which is not acceptable.

One option is to charge credit via AMI and as soon as the credit goes 0,
hangup all calls for this customer.

Is there any other way to achieve this ?

Zohair Raza

4 thoughts on - Prepaid billing

  • Hi Zohair,

    By using only asterisk it’s not possible. So used progremming languages and
    do realtime billing at your ends.

    like 1st caller will take complete amount ($5) and if 2nd call will come
    then deduct used amount and share remaining amount to others like that.

    On Tue, Jan 17, 2012 at 9:54 PM, Zohair Raza

  • Hi,

    I understand this, but I think there isn’t any option that helps us to
    reduce cost while call is in progress.

    One option that I was thinking is to check elapsed time by “core show
    channel channel-id” and deduct the amount but we need to check it every
    second or x seconds via AMI.

    Zohair Raza

  • Batter is used DB to store intime of call then when ever currect used time
    is required then deduct from intime – current time.

    On Wed, Jan 18, 2012 at 1:01 PM, Zohair Raza