[Spce-user] billing free time

Daniel Tiefnig dtiefnig at sipwise.com
Wed Nov 21 07:52:07 EST 2012

On 11/20/2012 08:39 PM, Joan Cifre (ibred) wrote:
> then I can't explain why I have a subscriber created since May, and
> with all the calls with the charge not zero, during all months.


as I've written in one of my e-mails, the interval change for the
accounts may not be calculated correctly if you change the billing
profile settings while it is assigned to these VoIP accounts.

Just checked the source and the problem indeed is that the free time
contingent is - simplified - only calculated based on the VoIP account's
current balance and used free time in the last billing interval like
follows: (ftb = free time balance)

new-ftb = old-ftb + old-ftb-used

So the change in the billing profile is not propagated to the VoIP
account balance. This certainly is an annoyance if you need to change
your billing profiles after you've already assigned accounts to it. The
whole billing stuff is subject for significant change and improvement
for 3.0, which will be released in spring next year. In the meantime
this is something we'll have to cope with.

If you've not added aditional free time to the accounts, you can
manually fix the current balance of existing accounts in the database by
running the following query:

  UPDATE contract_balances cb
         INNER JOIN contracts c ON c.id = cb.contract_id
         INNER JOIN billing_mappings bm ON bm.contract_id = c.id
         INNER JOIN billing_profiles bp ON bp.id = bm.billing_profile_id
           SET cb.free_time_balance =
                 bp.interval_free_time - cb.free_time_balance_interval
         WHERE c.create_timestamp < cb.start
           AND c.terminate_timestamp IS NULL
           AND (bm.start_date < cb.start OR bm.start_date IS NULL)
           AND (bm.end_date > now() OR bm.end_date IS NULL)
           AND cb.start = '2012-11-01 00:00:00';


More information about the Spce-user mailing list