记帐时保存Wispr-Location-Id和Wispr-Location-Name

时间:2018-07-16 22:15:39

标签: freeradius wispr

我在城市周围有几个热点,每个热点都有不同的Wispr-Location-Id和Wispr-Location-Name。所有这些热点都使用相同的Radius服务器并共享相同的数据库。

接收计费消息时是否可以保存这两个参数(Wispr-Location-Id和Wispr-Location-Name)

我需要知道哪些客户端从一个热点漫游到另一个热点。 谢谢!

1 个答案:

答案 0 :(得分:0)

您需要编辑特定于数据库方言的查询:

可以在/etc/(raddb|freeradius)/sql/<dialect>/dialup.conf

找到它们

https://github.com/FreeRADIUS/freeradius-server/blob/v2.x.x/raddb/sql/mysql/dialup.conf#L163

您需要将其他字段和值添加到以下查询: -accounting_start_query -accounting_stop_query -accounting_stop_query_alt

针对MySQL修改的accounting_start_query的示例如下:

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表中添加其他字符串类型列以容纳其他值。