0

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

收到计费消息时有什么方法可以保存这两个参数(Wispr-Location-Id 和 Wispr-Location-Name)

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

4

1 回答 1

0

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

它们可以在/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来保存额外的值。

于 2018-07-17T13:08:50.827 回答