Building & Installation
This module is not built by default. In order to build this module, you will need to perform the following steps:
- Download and install the 'freeradius-client' library. You will need to run the CVS head version. Documentation on how to do this can be found here: freeradius-client
- Uncomment the 'mod_radius_cdr' entry in 'modules.conf'.
- Run 'make' && 'make install'.
Install Configuration Files
You will need to copy the configuration files from the source directory, into your FreeSWITCH configuration directory.
The files you need to copy are 'mod_radius_cdr.conf.xml' and the the 'radius' directory ( and it's contents ).
- Edit 'conf/modules.conf' to load mod_radius_cdr with the other event_handlers that you want enabled.
- Edit 'conf/freeswitch.xml' to include 'mod_radius_cdr.conf.xml'.
- Run FreeSWITCH. You should see the following in the startup messages:
The dictionary directive specifies the location of the RADIUS dictionary file. If the module can't find this file, it won't run.
The radius_retries directive tells the module how many times to try sending a request to a server before failing. The default is 3 retries. The radius_timeout directive tells the module how many seconds to wait between request attempts before timing out. The default is 5 seconds. The total time a request may be pending is ( radius_timeout * radius_retries * number_of_servers ). Currently, the module blocks the thread while it is sending the requests. This may cause threads to hang around longer than expected after a call, if your RADIUS servers are not reachable/responding.
The acctserver directive defines the servers to be used ( sequentially ) for sending requests. The format for the value is: host:port:secret. The host SHOULD be defined as an IP address, not as DNS hostname. You can specify a DNS hostname, but inconsistent behavior has been observed when doing this. A maximum of 8 servers can be defined.
Here's a sample RADIUS transaction ( logged to a detail file via FreeRADIUS server ):