--- /dev/null
+
+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 checksum from that concatenated list of attributes.
+ That's a mouthful, read it again for clarity :)
+
+ After generating the md5 checksum, 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: When you specify the key, there MUST NOT be spaces anywhere in
+ the string. Additionally, 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
+ }
+
+
+4. ACKNOWLEDGEMENTS
+
+ Primary author - Alan DeKok (?)
+ Readme and code additions - Jeff Carneal
+ A very important '*' - Alan Curry :)
+