[Asterisk-Users] CDR Information and Pipes

BK [address only for mailing lists] bk_mailinglists at yahoo.co.uk
Fri Jul 4 23:18:27 MST 2003


On Saturday, July 5, 2003, at 07:54 AM, Richard Smith wrote:

> Secondly and the reason for this email is that I'm looking to pipe the 
> CDR information generated by Asterisk into a billing system... Can this 
> be done?

Yes, it can be done.

If you want to use the CDR's for billing, you should set the parameter 
"amaflags" in the respective configuration files (ie zapata.conf) to 
"billing" and issue a reload command on the asterisk console, so it 
reloads the configuration files.

Now, you have two choices how you want Asterisk to give you the CDRs: 
right into a MySQL database (see cdr_mysql.conf) or into a flat file in 
/var/log/asterisk/cdr-csv.

If you have a billing system that can import the CDRs directly from 
MySQL, then you will probably want to use the database route, but most 
billing systems I know expect CDRs in a flat file.

Typically, you have what is called a mediation device between the switch 
generating the CDRs (in this case Asterisk) and the billing platform. In 
general, a mediation device performs the following functions:

Stage 1: call collection

read the CDRs from the switch, typically by polling (ie periodically 
perform an ftp get)

Stage 2: integrity check

verify the CDRs are not corrupt or incomplete, generate alarms if any are

Stage 3: filtering

make sure there are no duplicates and omit anything that is not required 
for billing

Stage 4: normalisation

convert the CDRs into an output format that downstream systems (ie 
billing system) can understand

Stage 5: distribution

provide the CDRs in the proper format to any downstream system (billing 
system, settlement, fraud)

Now, you can either let the billing system poll the CDR files off your 
mediation device, or you can push them into the billing platform. Either 
way, it is important to make sure that files are renamed after the 
transfer is complete so as to make sure that you don't start to process 
them before they are complete. I have seen the biggest telcos lose 
hundred thousands of dollars because there was no proper handshake and 
the billing system would assume that  it had reached the end of a CDR 
file while there were still CDRs being written to it which ended then up 
unbilled.

As to the format that your billing system will want the CDRs to be in, 
you need to consult the documentation or the vendor of your billing 
platform. Within limits, this is configurable.

As to a mediation device, I only know the market in respect of big 
telcos and there the typical installation will set you back a million 
USD and more. There may be solutions for smaller installations at a more 
affordable price tag, but you may also be able to write your own.

I have led many mediation projects for big telcos where we needed an 
interim solution during the time it took to deploy the solution of the 
selected vendor. For that we wrote various mediation devices ourselves 
and strange as it may seem they often performed better and were more 
flexible than the final solution. In many cases you will find that there 
are code snippets for parsing CDRs in open source libraries such as the 
PERL archive but also we came across various Java libraries for CDR 
processing.

hope this helps
regards
bk




More information about the asterisk-users mailing list