adjust astercc parameters to get better performance for asterisk billing

By | asterBilling, asterCRM | No Comments

There’re some parameters in file astercc.conf for astercc daemons. We can change them to get a beter performance for asterisk billing. please note that u need to restart asterrc daemon to reload configration. refreshrate = 60 refreshrate is the seconds asterrc daemon reload data from database, when u change asterBilling setting a lot, like rate, clid … , u need this parameter, but once your system is stable, u can set it to -1, so that after asterrc load the data when it start, it would not read from database again and again. refreshlock = 30 The seconds we refresh data for astercclock to lock booth, or lock group, reseller. calculateallcdr = no when set to yes, asterrc will re-calculate all records with groupid =-1 or resellerid = -1 in mycdr table, this could be used when u want to calculate the CDRs with no billing . calculateoldcdr = no when set to yes, asterrc will re-calculate all records in mycdr table, this could be used when u want to calculate the history CDR. This could be used when your rate changed and you want to reset all credits. callbackbill = src ; src: bill src only ; dst: bill dst only ; both: both src and dst removeNonSysCDR = 0 ; if we need use asterrc to remove CDR with resellerid = -1 or groupid = -1 removeNoAnswerCDR = 0 ; if we need use asterrc to remove no answer CDR

asterbilling and asterisk2billing (a2billing) for asterisk billing

By | asterBilling | One Comment

a2billing is a widly used billing system, so what’s the difference between a2billing and asterbilling?

system theory:

a2billing work with asterisk through AGI, each call would be handled by a2billing.agi, so you need change your astierks context so that when your phone make calls it will go to a2billing.agi, of course you need to copy a2billing scripts to your asterisk server.

asterbilling runs as linux daemons, connect to asterisk via AMI over tcp,  no need change anything on your asterisk, asterbilling can bill it. Even asterbilling could work with a2billing.

license & free:

a2billing: 100% open source and free to use.

asterbilling: only web scripts are open source, and provides 5 free simultaneous channels, have to purchase when need more channels.


a2billing: like 100 simultaneous calls on single server? i didnt test, 🙁

asterbilling: passed 240 simultaneous calls testing, but didnt test more.

best usage:

a2billing: calling card, callback or wholesale solutions

asterbilling: billing for embedded astiersk, pbx (like all freepbx based system), callshop, hosted callshop soltution

other keywords:

a2billing: openser

asterbilling: realtime billing, reseller

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.

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


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


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

import data in asterCC

By | asterBilling, asterCRM | No Comments

You can import your data via web page in asterCC, in asterCRM, you can import customers, contacts and diallist, in asterBilling, you can import customerrate, grouprate and resellerrate, when import in asterCC, it will require you define how to map your data in excel/csv file to fileds in database.

say you have a rate table what to import as rate for callshop, filename is callshoprate.csv, the content is like

93,0,Afghanistan,0,1,14.5,60,1,2,15.03.08 18:22
9370,0,Afghanistan - Cellular,0,1,11,60,1,2,15.03.08 18:22
9379,0,Afghanistan - Cellular,0,1,11,60,1,2,15.03.08 18:22
35538,0,Albania - Cellular,0,1,10.5638,60,1,2,15.03.08 18:22

1. select your data file, asterCC support excel or csv format OR you can select a exsited file in your “upload” folderand then click “Upload”

then select callshoprate from the drop down menu on left

If this rate is for specific reseller/group, we can selec the reseller and group at the buttom, but here we leave is as “All”, means all groups in all reseller will use this rate by default

click “Import” to import the data, then u might get a Success prompt and see such page

if you only get 0 records from the message, go back and check if anything is wrong.

In astercrm, there’re some more options

why we say asterCC solutions could work with all kinds of asterisk based solution.

By | asterBilling, asterCRM, asterisk | No Comments

asterCC package provides a call center solution and a billing solution for asterisk, the most important feature is, asterCC could work with all asterisk based solutions and no need do any modification to the original system,  as we have tested, including:

  • Trixbox
  • Elastix
  • Callweaver
  • Freepbx
  • Magiclink
  • Fonesoft
  • asterisk2billing (a2b)
  • pbx in a flash

so when you are using a asterisk based system and want to add call center or billing features, asterCC is a good choice.

asterCC solutions connect to your asterisk via AMI over tcp, so even a embedded asterisk equipment would use asterCC for billing or contact center.

asterCC works based callerid, so it doesnt care what’s the asterisk dialplan or how a agi work, as long as you have  correct callerid in your asterisk, asterCC could work with it.

Working as daemon service in linux, asterCC is stable and extremely efficient, we have test that it could support at least 240 simultanieous asterisk calls.

Open source as all web scripts is, there’s also the possibility that you make your own solution based astercc daemons, and with the 5 free simultanieous channel license it provides by default, no need to pay a dollar for small business, like to bill an asterisk pbx with users less than 12.

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.

how to update asterCC license for your asterisk

By | asterBilling, asterCRM | 12 Comments

By default, astercc providers you 5 free simultaneous channels license, you can purchase more if need.

First, edit /opt/asterisk/scripts/astercc/astercc.conf which is in same folder with astercc daemons, go to section [licence], you can find three parameters there

licenceto =
key =     (no this parameter in current version now)
channel = 5

change “channel” to the number of simultaneous channels you need, and “licence to” to the name of your organization, so now it looks like

licenceto = my organization
key =
channel = 50

save and exit,  then execute astercc script, you should get things like

[dev01 astercc]# /opt/asterisk/scripts/astercc/astercc
Invalid key, please contact the administrator
identity = b0a5ebca13556ca9ca91813dd88dfgd9

now send this identitykey and all content in licence section (licenceto and channel) to astercc, we’ll send you back the licence key, then update your astercc.conf with the licence key, restart astercc & asterrc daemons. If no error message output, your astercc support more simultaneous channels now.

for the latest version, we start to use a license file named ‘license.astercc'(64 bits), so after u get the license file, upload it to the same folder with your astercc daemons, usually it’s in


then restart astercc daemons

/opt/asterisk/scripts/astercc/asterccd stop

/opt/asterisk/scripts/astercc/asterccd start

if everything is fine, it should give no errors, then the channels now in astercc is the value you put after channel =  in /opt/asterisk/scripts/astercc/astercc.conf

and use this command you can check if the license will expire some day

/opt/asterisk/scripts/astercc/astercc -h

0000-00-00 means never expire

and astercrm and asterbilling will share same license file, which means when you get the license, you can either use it for astercrm or asterbilling or both.

good luck!

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.