| # Rather than maintaining separate (GDBM) databases of |
| # accounting info for each counter, this module uses the data |
| # stored in the raddacct table by the sql modules. This |
| # module NEVER does any database INSERTs or UPDATEs. It is |
| # totally dependent on the SQL module to process Accounting |
| # packets. |
| # |
| # The sql-module-instance' parameter holds the instance of the sql |
| # module to use when querying the SQL database. Normally it |
| # is just "sql". If you define more and one SQL module |
| # instance (usually for failover situations), you can |
| # specify which module has access to the Accounting Data |
| # (radacct table). |
| # |
| # The 'reset' parameter defines when the counters are all |
| # reset to zero. It can be hourly, daily, weekly, monthly or |
| # never. It can also be user defined. It should be of the |
| # form: |
| # num[hdwm] where: |
| # h: hours, d: days, w: weeks, m: months |
| # If the letter is ommited days will be assumed. In example: |
| # reset = 10h (reset every 10 hours) |
| # reset = 12 (reset every 12 days) |
| # |
| # The 'key' parameter specifies the unique identifier for the |
| # counter records (usually 'User-Name'). |
| # |
| # The 'query' parameter specifies the SQL query used to get |
| # the current Counter value from the database. There are 3 |
| # parameters that can be used in the query: |
| # %b unix time value of beginning of reset period |
| # %e unix time value of end of reset period |
| # |
| # The 'check_name' parameter is the name of the 'check' |
| # attribute to use to access the counter in the 'users' file |
| # or SQL radcheck or radcheckgroup tables. |
| # |
| # DEFAULT Max-Daily-Session > 3600, Auth-Type = Reject |
| # Reply-Message = "You've used up more than one hour today" |
| # |
| sqlcounter dailycounter { |
| sql_module_instance = sql |
| dialect = ${modules.sql.dialect} |
| |
| counter_name = Daily-Session-Time |
| check_name = Max-Daily-Session |
| reply_name = Session-Timeout |
| |
| key = User-Name |
| reset = daily |
| |
| $INCLUDE ${modconfdir}/sql/counter/${dialect}/${.:instance}.conf |
| } |
| |
| sqlcounter monthlycounter { |
| sql_module_instance = sql |
| dialect = ${modules.sql.dialect} |
| |
| counter_name = Monthly-Session-Time |
| check_name = Max-Monthly-Session |
| reply_name = Session-Timeout |
| key = User-Name |
| reset = monthly |
| |
| $INCLUDE ${modconfdir}/sql/counter/${dialect}/${.:instance}.conf |
| } |
| |
| sqlcounter noresetcounter { |
| sql_module_instance = sql |
| dialect = ${modules.sql.dialect} |
| |
| counter_name = Max-All-Session-Time |
| check_name = Max-All-Session |
| key = User-Name |
| reset = never |
| |
| $INCLUDE ${modconfdir}/sql/counter/${dialect}/${.:instance}.conf |
| } |
| |
| # |
| # Set an account to expire T seconds after first login. |
| # Requires the Expire-After attribute to be set, in seconds. |
| # You may need to edit raddb/dictionary to add the Expire-After |
| # attribute. |
| sqlcounter expire_on_login { |
| sql_module_instance = sql |
| dialect = ${modules.sql.dialect} |
| |
| counter_name = Expire-After-Initial-Login |
| check_name = Expire-After |
| key = User-Name |
| reset = never |
| |
| $INCLUDE ${modconfdir}/sql/counter/${dialect}/${.:instance}.conf |
| } |