Summary:ASTERISK-14043: [patch] Diameter implementation of Asterisk CDR.
Reporter:Leena Meenakshy (leena_m)Labels:
Date Opened:2009-04-30 10:57:53Date Closed:2011-06-07 14:00:28
Versions:Frequency of
Environment:Attachments:( 0) cdr_diameter.c
( 1) cdr.conf
( 2) diameter_cdr
( 3) diameter_module.tar.gz
( 4) diameter_patch
( 5) diameter.zip
Description:The feature implements Base Accounting of Diameter protocol, the next generation AAA protocol which overcomes the drawbacks of RADIUS.

The architecture and design of the feature (diameter module) can be extended for applications like prepaid and credit control with ease.

The feature provides interface to integrate it with CDR module of asterisk.

Accounting in Diameter is handled in two different ways, Real-time accounting and One-time accounting. The module takes care of both the types.

With the existing CDR feature of asterisk, one-time accounting is enabled and tested. The feature uses TCP for peer support. Peer state machine and Accounting Session state machine are implemented with reference to RFC 3588.
Every time CDR of a call is posted in asterisk, this feature sends an accounting message with CDR information to the Diameter Server. This feature also takes care of packet loss, retransmission and failover as per RFC 3588.

Interim accounting is also implemented in the feature but not tested. It is not yet integrated and enabled with Asterisk as I could not find a proper Diameter server to test Interim accounting. Storing and sending of accounting records in case of failures is not done as of now


The one-time accounting of this module is tested only with CDF Simulator of Open Cloud Diameter Resource Adaptors and Simulators.
Comments:By: Leena Meenakshy (leena_m) 2009-04-30 11:08:48

My developer's license has been cancelled for some reason. I have applied for it again.

By: Matthew Nicholson (mnicholson) 2009-05-27 12:24:29

Please combine all of the files you have uploaded into one patch against asterisk trunk.  Once that is done, please post the patch on http://reviewboard.asterisk.org for review.

By: Leena Meenakshy (leena_m) 2009-06-02 09:15:24

The diameter_patch file contains the code of the diameter feature. The configuration parameters of the feature are read from an asterisk file.

By: Sean Bright (seanbright) 2009-06-09 13:22:07

Hi leena_m,

I made an initial pass at reviewing your patch on reviewboard and commented there that you would need to work on conforming to the coding guidelines before I gave it a thorough review.  Are you planning to do that?


By: Matthew Nicholson (mnicholson) 2009-06-09 13:26:31

Review board link for reference https://reviewboard.asterisk.org/r/268/

By: Leena Meenakshy (leena_m) 2009-06-10 06:20:05

Hi seanbright,

I have updated the diff file(i.e Diff r3 in the asteriskboard) taking care of the coding guidelines.
Note:The files in the diameter folder(except cdr_diameter.c) use only some of the asterisk provided api's(eg.for threads) as it is intended to be used by third party applications also.

By: Leif Madsen (lmadsen) 2009-07-13 10:20:32

Setting this to "Ready for Review" so someone can review the diff on reviewboard and offer any additional criticism if necessary. Thanks!

By: Matthew Nicholson (mnicholson) 2009-08-20 11:04:36

I have assigned this to nobody, as I do not currently have time to finish reviewing this issue.

By: Russell Bryant (russell) 2009-12-07 10:46:46.000-0600

I see that in this code, there is a lot of custom TCP socket handling.  We have a common API for handling TCP (and TLS) sessions.  New code that uses TCP sockets must use that.

By: Leif Madsen (lmadsen) 2010-01-07 11:09:39.000-0600

Pinging reporter for feedback after a note from Russell on 12/07/2009.

By: Leif Madsen (lmadsen) 2010-03-23 09:49:01

Unfortunately we need to suspend this issue due to a lack of feedback from the reporter. If the reporter (or anyone else) can move this issue forward, we'd love to see some progress on this.

If someone other than the original reporter would like to move this forward, please find a bug marshal on the asterisk-dev mailing list or #asterisk-bugs IRC channel on the Freenode IRC network to have this issue reopened. Thanks!