-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathmonthlycounter.conf
39 lines (37 loc) · 1.15 KB
/
monthlycounter.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#
# This query properly handles calls that span from the
# previous reset period into the current period but
# involves more work for the SQL server than those
# below
#
counter-name = Monthly-Session-Time
check-name = Max-Monthly-Session
reply-name = Session-Timeout
sqlmod-inst = sql
key = User-Name
reset = monthly
query = "SELECT SUM(acctsessiontime - \
GREATEST((%b - UNIX_TIMESTAMP(acctstarttime)), 0)) \
FROM radacct WHERE username='%{%k}' AND \
UNIX_TIMESTAMP(acctstarttime) + acctsessiontime > '%b'"
#
# This query ignores calls that started in a previous
# reset period and continue into into this one. But it
# is a little easier on the SQL server
#
#query = "\
# SELECT SUM(acctsessiontime) \
# FROM radacct\
# WHERE username='%{${key}}' \
# AND acctstarttime > FROM_UNIXTIME('%b')"
#
# This query is the same as above, but demonstrates an
# additional counter parameter '%e' which is the
# timestamp for the end of the period
#
#query = "\
# SELECT SUM(acctsessiontime) \
# FROM radacct \
# WHERE username='%{${key}}' \
# AND acctstarttime BETWEEN FROM_UNIXTIME('%b') \
# AND FROM_UNIXTIME('%e')"