Tag

realtime billing

Rates setting in asterbilling for asterisk billing

By | asterBilling | 3 Comments

There are three rates in asterBilling, reseller rate, callshop rate and customer rate.

  • reseller rate: the rate admin sell to reseller
  • callshop rate (group rate): the rate reseller sell to callshop (group)
  • customer rate: the rate callshop sell to customers

Rates in asterBilling could be inherited, for example, here’s two records in resellerrate

dialpreifx = 0086
number length = 0
connect charge = 0.2
init block = 60
rate = 0.2
billing block = 60
resellerid = 0

dialpreifx = 0049
number length = 0
connect charge = 0.4
init block = 60
rate = 0.4
billing block = 60
resellerid = 0

Because we dont specify which reseller is this rate for (resellerid = 0), this rate could be used for all resellers.  So what if some resellers want to change this rate rather than use this “default” rate? quite simple, just add another rate for the reseller:

dialpreifx = 0086
number length = 0
connect charge = 0.2
init block = 60
rate = 0.2
billing block = 60
resellerid = 1

so for this reseller (resellerid=1), when customer dial a number begin with 0086, it will use this new rate, we  can call it “overwrite”, but for other resellers who dont set their rate, it would use the one admin setted.

Just like reseller rate, group rate could also be inherited.

A:
dialpreifx = 0086
number length = 0
connect charge = 0.2
init block = 60
rate = 0.2
billing block = 60
resellerid = 1
grouprid = 1

B:


dialpreifx = 0086
number length = 0
connect charge = 0.4
init block = 60
rate = 0.4
billing block = 60
resellerid = 1
grouprid = 0

C:

dialpreifx = 0086
number length = 0
connect charge = 0.4
init block = 60
rate = 0.4
billing block = 60
resellerid = 0
groupid = 0

so rate C is a rate for all reseller and all group,  rate B is for all groups in reseller 1, rate A is only for group 1.

Through inherit rate, admin could be much easier to control the rates, like just set one rate for all resellers, and adjust some when they require some difference, also reseller could just set one rate for his callshops, and only do minor change to provide different rate plan.

asterbilling hosted callshop solution for asterisk

By | asterBilling | 22 Comments

asterBilling is a realtime billing software for asterisk. Through asterBilling, it’s very easy to build a hosted callshop solution for asterisk. benefits of asterBilling hosted callshop solution:

  • reseller, callshop, customer three level billing
  • all web based
  • high performance
  • all asterisk system compatible

here, i’ll introduce u how to build a hosted callshop solution using asterisk and asterbilling. 1. step1, install asterisk 2. step2, set trunk and dialplan in asterisk edit /etc/asterisk/sip.conf and add your trunk there then set dialplan, go to /etc/asterisk/extensions.conf and add a context there 3. step3, install asterBilling 4. step4, check asterbilling.conf.php We need to modify asterbilling config file to meet our system, so check the “asterbilling.conf.php” in asterbilling folder, find section “sipbuddy” change context to be “context = from-booth”, so the sip peer generated by asterbilling will use context “from-booth” for outbound calls. * if you are using freepbx, you can use “context=from-internal” here, then it you can set outbound in your freepbx and all booth will use that. By default, asterbilling will generate all sip peers to the file “/etc/asterisk/sip_astercc”, you can change to other name if you want, or leave it blank if u dont want asterbilling generate the sip peers also we need to include the conf file in sip.conf so that asterisk could load peers asterbilling generated modify /etc/asterisk/sip.conf and add #include sip_astercc.conf 5. step5, set resellers and groups 6. step6, add clid as reseller reseller 7. step7, set rates asterbilling provides three level billing: rate to reseller: the rate you sell to resellers rate to callshop: the rate resellers sell to callshops rate to customer: the rate callshops sell to customers 8. step8, login as groupadmin/operate check callshop interface callshop 9. step9, check reports

How to set asterBilling working with Freepbx, Trixbox, Elastix …

By | asterBilling | 21 Comments

asterBilling is a realtime billing solution for asterisk, could be used as a hosted callshop or just a simple billing system for your asterisk pbx. Many people are using freepbx based system as their pbx, like trixbox, elastix … so here i’ll introduce you how to use asterBilling to bill your asterisk pbx.

the first thing is, you must have freepbx installed and have a user their, say you want to bill these two users: solo <8000> and donnie <8001>

next go to asterBilling manager login (like http://asterccserver/asterbilling/manager_login.php) and login as “admin”

Although we only want to bill our pbx,  still have to add a reseller first, go to “reseller” and click “Add” button, pur some message in the form and click “continue”

i left “Credit Lmit” to be null and “Limit Type” to “No limt” coz i just want to know how much each phone dialed each month.

then go to “Account Group” and add a group there

Read More

using astercc and asterrc daemon to bill your asterisk

By | asterBilling | 2 Comments

asterrc is a billing script in asterCC package, together with astercc, asterrc could provide you the realtime billing feature to your asterisk system.

there’re some billing fields in table ‘curcdr’, they are

`credit` : credit by customer rate (rates in table ‘myrate’)
`callshopcredit`: credit by callshop (rates in table ‘callshoprate’)
`resellercredit`: credit by reseller (rates in table ‘resellerrate’)
`creditlimit`: if we have a creditlimit for this call, if it has once the ‘credit’ reach the number, the call would be hang up
`destination` : destination of the call, get from table ‘myrate’
`memo` : rate of the call, get from table ‘myrate’

asterrc daemon will maintain these fields during a live call, and we have same fields in table mycdr, so when a call is finished, we can also get the credit of the call.

Also, we have billing fields in table ‘clid’, ‘accountgroup’,’resellergroup’

`curcredit` current credit (works as a billing flag)
`credit_clid` total clid credit for the item
`credit_group` total group credit for the item
`credit_reseller` total reseller credit for the item

Here’s a example to show you how asterrc works

say we have defined a rate, we sell to reseller in 0.1 a minute, reseller sell to callshop in 0.2 a minute, and callshop sell 0.4 a minute to customer, when customer start a call, astercc will get the live CDR into table curcdr, and asterrc will put value 0.4, 0.2, 0.1 to fields ‘credit’, ‘callshopcredit’, ‘resellercredit’ when it’s the first minute, and then 0.8, 0.4, 0.2 when it’s the second minute …. when it’s 2 minutes and a half, customer hangup the call, then we get a record with billing message 1.2 in ‘credit’,  0.6 in ‘callshopcredit’, 0.3 in ‘resellercredit’, meantime fields in clid, accountgroup and resellergroup would be updated, credit_clid = credit_clid + 1.2, credit_group = credit_group + 0.6, credit_reseller = credit_reseller + 0.3.

field ‘curcredit’ is used to save credit for comparing with creditlimt, it is updated after a call is finished, if limit type is set and curcredit is greater or equal with the creditlimit, the call would be hangup, when clid/group/reseller charges, we set curcredit = curcredit – {fund charged} so that curcredit is less than creditlimit and calls can go out.
Say a reseller pay you 500 euro, and u set his limit type to prepaid, and creditlimit = 500, then it is curcredit = 0, limittype= prepaid, creditlimit = 500 in table resellergroup, then booths under this reseller start to call ,  curcredit will increase by resellerrate, when it reachs 500, all calls stoped, reseller comes to you and charge 2000 euro, here you have two options

1. set credit limit to 500+2000 = 2500, but not recommend, coz there’d no log for changing of creditlimit

2. charge 2000 to curcredit, then curcredit = 500-2000 = -1500,  and this operation would be logged in credithistory, so that you can check the charge history of each customer.

Hope this could help you under stand how asterbilling works.

History about asterCC, asterCRM and asterBilling

By | asterBilling, asterCRM | One Comment

In July, 2007, we start a project, the aim is to provide a call center system for asterisk, which should be all web based and no rely on dialplan, also should have some simple CRM features. That’s how asterCRM came, we made it all open source and free to use so that it could grow faster. On 2007-08-08, we released the first version, 0.01beta, then 0.01, 0.03, 0.04 … it upgraded almost every month. At the same time, we’d like to provide a realtime billing solution for asterisk, then we made tow daemons running in linux, astercc and asterrc, astercc could catch live CDR from asterisk and asterrc could bill based rate and destination. We found this billing solution is perfect for hosted callshop, then we released asterCC on 2008-3-5, asterCC means the core of the system is the astercc daemon. After asterCC released, we found that we could get a much better performance and much more features if we use astercc damon in asterCRM, then we start integrate astercc daemon into asterCRM, then we released 0.0461 and 0.047beta, so that asterCRM could work based astercc daemon smoothly. So for now, both the billing solution and the call center solution need astercc daemon, then we decide rename them and package both into one software, we use asterCC as the package name, asterCRM as call center solution as it was, and use asterBilling as the software for realtime billing. asterCC ——asterCRM ——asterBilling asterCRM and asterBilling are both open source software, but the point is that you have to purchase license to get more simultaneous channels support in astercc daemon, by default it provide 5 free license so you can experience how asterCRM and asterBilling works.

Install asterBilling on your server

By | asterBilling | 53 Comments
  1. Download and unzip the source
  2. cd /var/www/html
    wget http://voxel.dl.sourceforge.net/sourceforge/astercc/astercc-0.09beta.zip
    unzip astercc-0.09beta.zip
    mv astercc-0.09beta astercc

  3. Create the directories and move astercc daemon scripts:
  4. mkdir -p /opt/asterisk/scripts/astercc/
    mv /var/www/html/astercc/daemons/* /opt/asterisk/scripts/astercc/
    chmod +x /opt/asterisk/scripts/astercc/astercc
    chmod +x /opt/asterisk/scripts/astercc/asterrc
    chmod +x /opt/asterisk/scripts/astercc/asterccd

  5. Create the MySQL database and table, asterCC need mysql 4.1 or above
  6. mysqladmin -uyourmysqluser -pyourmysqlpasswd create astercc
    mysql -uyourmysqluser -pyourmysqlpasswd astercc <sql/astercc.sql

    Note: here we create the database named astercc, you could use whatever db name you want use your configration to replace yourmysqluser and yourmysqlpasswd

  7. Update /etc/asterisk/manager.conf to enable Manager connections
  8. Note: asterisk and astercc could be on different server

    Add something like this to the manager.conf file:

    [general] enabled = yes
    port = 5038
    bindaddr = 0.0.0.0
    ;displayconnects = yes

    ;the following line could be changed by yourself
    [eventsdaemon] secret = myeventsdaemon
    read = system,call,log,verbose,command,agent,user
    write = system,call,log,verbose,command,agent,user
    deny=0.0.0.0/0.0.0.0
    ; only allow local access, if you want to run astercrm on another server
    ; use your astercrm ip to replace 127.0.0.1 or add a new line
    permit=127.0.0.1/255.255.255.0

  9. Modify /var/www/html/astercc/astercc.conf.php and /opt/asterisk/scripts/astercc/astercc.conf to fit your configration
  10. Start astercc daemons
  11. /opt/asterisk/scripts/astercc/asterccd start
    Note: If your astercc scripts in other directory,
    you need to modify script path in CONFIGURATION SECTION of asterccd and asterccdaemon
    to fit your script path (modify path of astercc,asterrc and asterccdaemon in asterccd;
    modify path of asterccd and monitor log in asterccdaemon).

    Start astercc daemons when system startup:
    Note: This option can only fit to redhat-release system.
    If you want astercc daemons to start automatically when you boot your
    machine, you need to :

    cp /opt/asterisk/scripts/astercc/asterccd /etc/rc.d/init.d
    chmod 755 /etc/rc.d/init.d/asterccd
    chkconfig –add asterccd

    Advice: Configure your astercc restart once everyday, it’s not necessary, but it’s good for your astercc operation.
    for example: you want to restart astercc at 0′clock everyday,just do the following line as root.
    crontab -e
    add a line:
    0 0 * * * /etc/rc.d/init.d/asterccd restart
    end of this file, the first ‘0’ figures minutes and the second ‘0’ figures hours.

  12. Set folder access
  13. chmod 777 /var/www/html/astercc/upload

  14. Testing: browse to http://localhost/astercc
  15. browse to http://localhost/astercc

    or http://YOUR-WEB-SERVER-ADDRESS/astercc

    login with admin/admin

  16. Set your first booth
    • go Reseller and add a reseller
    • go Group add a group belong to the reseller
    • go Clid add some clid for this group, then the account in asterisk with the clid would be billing as a user in this group
    • go Account add a account, usertype could be groupadmin and belongs to the group you just added
    • go Rate to Customer and add some rate for the group, if you dont select reseller or group, the rate could be the default rate all all resellers/groups
    • login as groupadmin account, then you should see some box as the attachments.
    • try make a call using the ip phone with the clid, you could see the calling and billing message in the box