Difference between revisions of "Billing"

From FusionPBX
Jump to: navigation, search
Line 18: Line 18:
 
*Daily "sweeps" of CDRs and bills into the user's running charges list.
 
*Daily "sweeps" of CDRs and bills into the user's running charges list.
  
 +
==Big questions==
 +
'''Is the user ID in fusionpbx a one:one relationship with a billing account, e.g. a mod_nibblebill account?'''
  
 +
Generally, yes - one user can have multiple extensions, but only one billing account.
  
 +
However, perhaps we want to assign more than one user to the same bill. Each one should be able to see his own service and modify it accordingly. Maybe.
 +
 +
 +
==Tables==
 
{| border="1"
 
{| border="1"
 
|+Payment Trail
 
|+Payment Trail

Revision as of 00:36, 4 November 2010

This is a project by AviMarcus to manage billing for VoIP.

My use:

I have no billing mechanism of any kind. This will have to be the whole thing.

  1. Bill various monthly and per-minute charges.
    1. Bill residential users a flat monthly fee, optionally a monthly per-DID fee, and per-minute, as set in the dialplan handled by mod_nibblebill.
    2. Bill business in a multi-tenant manner. Flat fee for PBX hosting/support and flat fee for trunks (if through me) or per-minute, again as per mod_nibblill.
  2. This should integrate with paypal, which allows variable recurring. It's free until 2011 then only $20/year.
    1. Trigger paypal payments on a low balance threshold.
  3. It should provide a payment/balance trail and list the CDRs and the prices of whatever they were billed. Also, let me restrict outgoing calls for no balance.
  4. I would like integration with DIDWW API, so users can choose to add a new DID and it gets added to their monthly charges and gets automatically routed to their extension (personal) or where they want (business)
  5. Perhaps - users, or atleast the admin, should be able to cancel monthly charges - but to be completed at the end of the month.
    1. Since the monthly charges are stored in a DB, then we should be able to dynamically check from the dial plan if someone has a certain service enabled or not. e.g. if this account has an unlimited plan, use their gateway (gw_${user}) else, use the carrier and charge with mod_nibblebill


Methodology

  • Daily "sweeps" of CDRs and bills into the user's running charges list.

Big questions

Is the user ID in fusionpbx a one:one relationship with a billing account, e.g. a mod_nibblebill account?

Generally, yes - one user can have multiple extensions, but only one billing account.

However, perhaps we want to assign more than one user to the same bill. Each one should be able to see his own service and modify it accordingly. Maybe.


Tables

Payment Trail
payment_id date nibble_id amount current_balance
INT unsigned primary_key datetime int unsigned decimal(10,4) decimal(10,4)
35 2010-11-03 11:02:15 5 $30.00 $43.12

Payment trail - record the payments.

  • Do I want to save the balance at the time of the payment? Maybe, it's good to know..