Sunday, November 23, 2008

Rates setting in asterbilling for asterisk billing

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.

Posted by solo at 04:57:55 | Permalink | No Comments »

adjust astercc parameters to get better performance for asterisk billing

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

Posted by solo at 04:56:41 | Permalink | No Comments »

asterbilling and asterisk2billing (a2billing) for asterisk billing

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.

performance:

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

Posted by solo at 04:55:33 | Permalink | No Comments »

Thursday, November 13, 2008

add language package for asterCRM

For now asterCRM provides user two languages, English and Simplified Chinese, if you want to add a new language, follow this article you can make it yourself. say you want to add German to astercrm, first go to astercrm/login.php and find the following lines:

English 简体中文

we use de_GER for German so we add line then it looks like

English 简体中文 Germany

save the file, then when you enter astercrm login page, you can see

select Germany and login, and we go to next to change words.

asterCRM language files locate in astercrm/include/language, where you can see files like account_cn_ZH.php account_en_US.php portal_cn_ZH.php portal_en_US.php … so cn_ZH means Simplified Chinese, for Germany one, you can copy account_cn_ZH.php as account_de_GER.php, copy portal_cn_ZH.php as portal_de_GER.php

dont copy from en_US file coz for some words we have English as default in pages, so it could be not integral in the language file, en_US files could be used as reference. Then open the copied file account_de_GER.php with some text editor, and start translate, so it looks like

<?
$add_account = “Ein neues Benutzerkonto wurde hinzugefügt”;
$update_rec = “Eintrag wurde aktualisiert”;

?>

save the file with format UTF-8 when you finish.

translate one by one …, not much but need some patient untill all finish.

The last thing, change all images, go to astercrm/skin/default, you can see folders like “images_cn”, “images_en”.. copy images_en as images_de then modify all images in the folder.

refresh your browser then you can see asterCRM with your translation!

Posted by solo at 01:56:48 | Permalink | No Comments »

add google map for your customer in asterCRM

asterCRM support goolge map, so you can add a map for your customer using this feature. 1. you need to apply a google api key go to http://code.google.com/apis/maps/index.html click “Sign up for a Google Maps API key.” on right

click the check box and enter your web site URL then button “Generate API Key”

done! now you get the key for Google Maps API Read the rest of this entry »

Posted by solo at 01:54:36 | Permalink | No Comments »

Dynamic Agent mode with asterisk, FreePBX and asterCRM

Dynamic Agent mode is very useful in a outbound call center, agents login to a queue and hear some music we definied in the queue, then predictive dailer start works, it dials customer numbers and once it get connected the dialer will redirect the call to the queue, and agent in the queue could hear a beep immediately then could start talking to the customer, it’s so quick that customer just think it’s a call from the agent. With asterCRM, agent could get customer information once the call get connected, here we’ll introduce how to set dynamic agent in freepbx and asterisk: First, we need to add some extensions and queues in FreePBX: add extensions: go to FreePBX extensions page, then we add a queue and choose a dynamic agent for it like following figure yes, if you want to add a dynamic agent for a queue, you should add a agent number with A in queue agent list, and we can notice that message from FreePBX. so we need to counfigure agent.conf in asterisk conf directory, here we add a dynamic agent which number is 1000, its passoword is 0000, name is Brad then we add a dialplan for agent login in extensions_custom.conf like following line: update the context of extension 8000 to “agent-test”. here, we had a queue which include a dynamic agnet, well then we need add a user in astercrm, go to the extension management page of astercrmand add a new extension and assign agent 1000 to him: Agnet start work: first the extension have to login as a agent to PBX, when 8000 dial “*789″, it would hear the prompt that require to enter the agent number and password to login as the agent, enter agent number 1000 and password 0000, it can login as agent 1000. login to asaterCRM by brad/1234, the asterCRM could pop-up if anyone call to Agent/1000 or extension 8000.
Posted by solo at 01:52:02 | Permalink | Comments (2)