Review Board 1.7.16


Diameter implementation of Asterisk CDR

Review Request #268 - Created May 29, 2009 and discarded

leena_m
trunk
15006
Reviewers
asterisk-dev
Asterisk
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(Event based) 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.
trunk/cdr/Makefile
Revision 199728 New Change
1
#
1
#
2
# Asterisk -- A telephony toolkit for Linux.
2
# Asterisk -- A telephony toolkit for Linux.
3
#
3
#
4
# Makefile for CDR backends
4
# Makefile for CDR backends
5
#
5
#
6
# Copyright (C) 1999-2006, Digium, Inc.
6
# Copyright (C) 1999-2006, Digium, Inc.
7
#
7
#
8
# This program is free software, distributed under the terms of
8
# This program is free software, distributed under the terms of
9
# the GNU General Public License
9
# the GNU General Public License
10
#
10
#
11

    
   
11

   
12
-include $(ASTTOPDIR)/menuselect.makeopts $(ASTTOPDIR)/menuselect.makedeps
12
-include $(ASTTOPDIR)/menuselect.makeopts $(ASTTOPDIR)/menuselect.makedeps
13

    
   
13
DIAMETERDIR=diameter
14
MODULE_PREFIX=cdr
14
MODULE_PREFIX=cdr
15
MENUSELECT_CATEGORY=CDR
15
MENUSELECT_CATEGORY=CDR
16
MENUSELECT_DESCRIPTION=Call Detail Recording
16
MENUSELECT_DESCRIPTION=Call Detail Recording
17

    
   
17

   
18
all: _all
18
all: _all
19

    
   
19

   

    
   
20
clean::

    
   
21
	rm -f $(DIAMETERDIR)/*.o

    
   
22
	rm -f $(DIAMETERDIR)/.*.d $(DIAMETERDIR)/*.i

    
   
23

   
20
include $(ASTTOPDIR)/Makefile.moddir_rules
24
include $(ASTTOPDIR)/Makefile.moddir_rules

    
   
25

   

    
   
26
$(if $(filter cdr_diameter,$(EMBEDDED_MODS)),modules.link, cdr_diameter.so): $(DIAMETERDIR)/diameter_avp.o $(DIAMETERDIR)/diameter_message.o $(DIAMETERDIR)/diameter_transport.o $(DIAMETERDIR)/diameter_session.o $(DIAMETERDIR)/diameter_base.o $(DIAMETERDIR)/diameter_transaction.o
trunk/cdr/cdr_diameter.c
New File
 
trunk/cdr/diameter/diameter_avp.h
New File
 
trunk/cdr/diameter/diameter_avp.c
New File
 
trunk/cdr/diameter/diameter_base.h
New File
 
trunk/cdr/diameter/diameter_base.c
New File
 
trunk/cdr/diameter/diameter_message.h
New File
 
trunk/cdr/diameter/diameter_message.c
New File
 
trunk/cdr/diameter/diameter_session.h
New File
 
trunk/cdr/diameter/diameter_session.c
New File
 
trunk/cdr/diameter/diameter_transaction.h
New File
 
trunk/cdr/diameter/diameter_transaction.c
New File
 
trunk/cdr/diameter/diameter_transport.h
New File
 
trunk/cdr/diameter/diameter_transport.c
New File
 
  1. trunk/cdr/Makefile: Loading...
  2. trunk/cdr/cdr_diameter.c: Loading...
  3. trunk/cdr/diameter/diameter_avp.h: Loading...
  4. trunk/cdr/diameter/diameter_avp.c: Loading...
  5. trunk/cdr/diameter/diameter_base.h: Loading...
  6. trunk/cdr/diameter/diameter_base.c: Loading...
  7. trunk/cdr/diameter/diameter_message.h: Loading...
  8. trunk/cdr/diameter/diameter_message.c: Loading...
  9. trunk/cdr/diameter/diameter_session.h: Loading...
  10. trunk/cdr/diameter/diameter_session.c: Loading...
  11. trunk/cdr/diameter/diameter_transaction.h: Loading...
  12. trunk/cdr/diameter/diameter_transaction.c: Loading...
  13. trunk/cdr/diameter/diameter_transport.h: Loading...
  14. trunk/cdr/diameter/diameter_transport.c: Loading...

https://reviewboard.asterisk.org/ runs on a server provided by Digium, Inc. and uses bandwidth donated to the open source Asterisk community by API Digital Communications in Huntsville, AL USA.
Please report problems with this site to asteriskteam@digium.com.