Radius Account Unique Module 0. INTRODUCTION This module adds a (hopefully) unique session id to an accounting packet based on the 'key' value specified in radiusd.conf. 1. WHAT DOES IT DO The module looks for a list of dictionary attributes in radiusd.conf specified by the 'key' variable in the module's configuration section. Based on the attributes listed, it will concatenate the attribute name and value received in the accounting request packet, and then calculate a (unique) md5 digest value from that concatenated list of attributes. That's a mouthful, read it again for clarity :) After generating the md5 digest value, it adds it to the accounting request packet received from the client. It will look something like this in your detail file: Acct-Unique-Session-Id = "c66ef57e480b9d26" 2. HOW DO I USE IT First, you have to add the module to the modules{} section of radiusd.conf. It should look something like this: modules { ... stuff here ... acct_unique { key = "User-Name, Acct-Session-Id, NAS-IP-Address, NAS-Port-Id" } ... stuff here ... } NOTE: Any attribute you specify that is not found in the 'dictionary' file will cause the server to fail and exit with an error. NOTE: If you want the Acct-Unique-Session-Id of the Start and the Stop packet of a particular session to match, you must use values for the key that will stay the same for the Start and Stop. The above example is a good start. Adding 'Acct-Session-Time', for example, would cause a mismatch because that value is not the same on the Start and Stop accounting packets. Then you have to add it to the accounting{} section of radiusd.conf so it will be called. For example: accounting { acct_unique files unix } Then either stop and restart radiusd (or kill -HUP) and you're ready to go. 4. ACKNOWLEDGEMENTS Primary author - Alan DeKok (?) Readme and code additions - Jeff Carneal A very important '*' - Alan Curry :)