freeradius - 记帐时保存的 Wispr-Location-Id 和 Wispr-Location-Name
问题描述
我在城市周围有几个热点,每个热点都有不同的 Wispr-Location-Id 和 Wispr-Location-Name。所有这些热点使用相同的 Radius 服务器并共享相同的数据库。
收到计费消息时有什么方法可以保存这两个参数(Wispr-Location-Id 和 Wispr-Location-Name)
我需要知道哪些客户端从一个热点漫游到另一个热点。谢谢!
解决方案
您需要编辑特定于您的数据库方言的查询:
它们可以在/etc/(raddb|freeradius)/sql/<dialect>/dialup.conf
https://github.com/FreeRADIUS/freeradius-server/blob/v2.xx/raddb/sql/mysql/dialup.conf#L163
您需要将其他字段和值添加到以下查询: - accounting_start_query
- accounting_stop_query
-accounting_stop_query_alt
一个accounting_start_query
为 MySQL 修改的例子是:
accounting_start_query = " \
INSERT INTO ${acct_table1} \
(acctsessionid, acctuniqueid, username, \
realm, nasipaddress, nasportid, \
nasporttype, acctstarttime, acctstoptime, \
acctsessiontime, acctauthentic, connectinfo_start, \
connectinfo_stop, acctinputoctets, acctoutputoctets, \
calledstationid, callingstationid, acctterminatecause, \
servicetype, framedprotocol, framedipaddress, \
acctstartdelay, acctstopdelay, xascendsessionsvrkey,
wisprlocationid, wisprlocationname) \
VALUES \
('%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}', \
'%{SQL-User-Name}', \
'%{Realm}', '%{NAS-IP-Address}', '%{NAS-Port}', \
'%{NAS-Port-Type}', '%S', NULL, \
'0', '%{Acct-Authentic}', '%{Connect-Info}', \
'', '0', '0', \
'%{Called-Station-Id}', '%{Calling-Station-Id}', '', \
'%{Service-Type}', '%{Framed-Protocol}', '%{Framed-IP-Address}', \
'%{%{Acct-Delay-Time}:-0}', '0', '%{X-Ascend-Session-Svr-Key}',\
'%{WISPR-Location-Name}', '%{WISPR-Location-ID}')"
您还需要在表中添加额外的字符串类型列radacct
来保存额外的值。
推荐阅读
- r - ggplot2中心y轴标题
- javascript - 相对于背景中的元素定位反应模态
- android - 在 gradle build 上运行函数并将结果保存为资源中的 JSON
- robotframework - 如何使用命令机器人框架执行 bat 文件(.bat)?
- sapui5 - 图像不显示 sapui5
- html - Mozilla Firefox 中带有选择标签的表单控件显示文本,但 Chrome 中的相同组件不显示
- selenium - 带有 IE 11 的硒
- nginx - Nginx全球服务器块?
- java - ZipInputStream 转换
- python-3.x - 在任何照明(低或高)下对物体进行图像分割