Hi, I need some help with inserting custom attributes to MySQL server. It seems
that version 2.2 broke it, at least on my server… When I revert back to 2.1 it
immediately starts to work with same config files.
Below are config files and traces for both versions.
Any idea?
thanks,
brm
----------------------
Relevant part of dialup.conf (modified to include custom attributes):
accounting_start_query = " \
INSERT INTO ${acct_table1} \
(acctsessionid, acctuniqueid, username, \
imsi, imei, ms_timezone, \
rat_type, user_location_info, realm, \
nasipaddress, nasportid, \
nasporttype, acctstarttime, acctstoptime, \
acctsessiontime, acctauthentic, connectinfo_start, \
connectinfo_stop, acctinputoctets, acctoutputoctets, \
calledstationid, callingstationid, acctterminatecause, \
servicetype, framedprotocol, framedipaddress, \
acctstartdelay, acctstopdelay) \
VALUES \
('%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}', \
'%{SQL-User-Name}', \
'%{3GPP-IMSI}', '%{3GGP-IMEISV}', '%{3GPP-MS-TimeZone}', \
'%{3GPP-RAT-type}', '%{3GPP-User-Location-Info}', '%{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')"
Slightly modified dictionary.3gpp file to include custom attributes:
# new attributes
ATTRIBUTE 3GGP-IMEISV 20 string
ATTRIBUTE 3GPP-RAT-type 21 byte
ATTRIBUTE 3GPP-User-Location-Info 22 octets
ATTRIBUTE 3GPP-MS-TimeZone 23 integer has_tag
# set RAT-TYPE
VALUE 3GPP-RAT-Type Reserved 0
VALUE 3GPP-RAT-Type UTRAN 1
VALUE 3GPP-RAT-Type GERAN 2
VALUE 3GPP-RAT-Type WLAN 3
VALUE 3GPP-RAT-Type GAN 4
VALUE 3GPP-RAT-Type HSPA-Evolution 5
VALUE 3GPP-RAT-Type IEEE-802-16e 101
VALUE 3GPP-RAT-Type 3GPP2-eHRPD 102
VALUE 3GPP-RAT-Type 3GPP2-HRPD 103
VALUE 3GPP-RAT-Type 3GPP2-1xRTT 104
VALUE 3GPP-RAT-Type 3GPP-EPS 105
This is the accounting start record from debug mode:
rad_recv: Accounting-Request packet from host xxxxxxxx port 54002, id=50,
length=375
Acct-Status-Type = Start
Event-Timestamp = "Jan 26 2013 18:20:08 CET"
Framed-IP-Address = xxxxxxx
Called-Station-Id = "xxxxxx"
Calling-Station-Id = "xxxxxxx"
NAS-IP-Address = xxxxxxx
NAS-Identifier = "xxxxxxx"
Service-Type = Framed-User
NAS-Port-Type = Virtual
Acct-Session-Id = "5BB9DD25a7846fd9"
3GPP-IMSI = "xxxxxxx"
3GPP-IMSI-MCC-MNC = "xxxxxxx"
3GPP-NSAPI = "5"
3GGP-IMEISV = "xxxxxxx"
3GPP-RAT-type = UTRAN
3GPP-User-Location-Info = 0x0192f307000a79be
3GPP-Charging-ID = 2810474457
3GPP-PDP-Type = IP
3GPP-Selection-Mode = "0"
Error on version 2.2:
...
+- entering group accounting {...}
[sql] expand: %{Calling-Station-Id} -> xxxxxxxx
[sql] sql_set_user escaped user --> 'xxxxxxxxx'
[sql] WARNING: Unknown module "3GPP-IMSI" in string expansion "%',
'%{3GGP-IMEISV}', '%{3GPP-MS-TimeZone}', '%{3GPP-RAT-type}',
'%{3GPP-User-Location-Info}', '%{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')"
[sql] expand: /var/log/radius/sqltrace.sql -> /var/log/radius/sqltrace.sql
rlm_sql (sql): Reserving sql socket id: 24
rlm_sql_mysql: query: INSERT INTO radacct
(acctsessionid, acctuniqueid, username, imsi,
imei, ms_timezone, rat_type, user_location_info,
realm, nasipaddress, nasportid,
nasporttype, acctstarttime, acctstoptime, acctsessiontime,
acctauthentic, connectinfo_start, connectinfo_stop,
acctinputoctets, acctoutputoctets, calledstationid,
callingstationid, acctterminatecause, servicetype,
framedprotocol, framedipaddress, acctstartdelay,
acctstopdelay) VALUES ('5BB9DD25a7846393',
'b158b29df3a9d9e4', 'xxxxxxxxx', '
rlm_sql_mysql: MYSQL check_error: 1064 received
[sql] Couldn't insert SQL accounting START record - You have an error in your
SQL syntax; check the manual that corresponds to your MySQL server version for
the right syntax to use near ''' at line 1
Success on version 2.1:
…
+- entering group accounting {...}
[sql] expand: %{Calling-Station-Id} -> XXXXXXXXXXX
[sql] sql_set_user escaped user --> 'XXXXXXXXXXX'
[sql] expand: %{Acct-Delay-Time} ->
[sql] ... expanding second conditional
[sql] expand: INSERT INTO radacct (acctsessionid,
acctuniqueid, username, imsi, imei,
ms_timezone, rat_type, user_location_info, realm,
nasipaddress, nasportid, nasporttype,
acctstarttime, acctstoptime, acctsessiontime, acctauthentic,
connectinfo_start, connectinfo_stop, acctinputoctets,
acctoutputoctets, calledstationid, callingstationid,
acctterminatecause, servicetype, framedprotocol,
framedipaddress, acctstartdelay, acctstopdelay) VALUES
('%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}',
'%{SQL-User-Name}', '%{3GPP-IMSI}', '%{3GGP-IMEISV}',
'%{3GPP-MS-TimeZone}', '%{3GPP-RAT-type}', '%{3GPP-User-Location-Info}',
'%{Realm}', '%{NAS-IP-Address}', '%{NAS-Port}',
'%{NAS-Port-Type}', '%S', NU
[sql] expand: /var/log/radius/sqltrace.sql -> /var/log/radius/sqltrace.sql
rlm_sql (sql): Reserving sql socket id: 24
rlm_sql_mysql: query: INSERT INTO radacct
(acctsessionid, acctuniqueid, username, imsi,
imei, ms_timezone, rat_type, user_location_info,
sgsnipaddress, realm, nasipaddress, nasportid,
nasporttype, acctstarttime, acctstoptime,
acctsessiontime, acctauthentic, connectinfo_start,
connectinfo_stop, acctinputoctets, acctoutputoctets,
calledstationid, callingstationid, acctterminatecause,
servicetype, framedprotocol, framedipaddress,
acctstartdelay, acctstopdelay) VALUES
('5BB9DD25a7846fd9', '03de33c93bd3a02b', 'XXXXXXXXXXX',
'XXXXXXXXXXX', 'XXXXXXXXXXX', '0x04fc', 'UTRAN', '0x0192f307000a79be',
'', 'XXXXXXXXXXX', '', 'Virtual', '2013-01-26
18:20:06', NULL, '0', '', '', '', '0', '0',
'XXXXXXXXXXX', 'XXXXXXXXXXX', '', 'Framed-User',
'GPRS-PDP-Context', 'XXXXXXXXXXX', '0', '0')
rlm_sql (sql): Released sql socket id: 24
++[sql] returns ok
[attr_filter.accounting_response] expand: %{User-Name} ->
++[attr_filter.accounting_response] returns noop
Sending Accounting-Response of id 50 to XXXXXXXXXXX port 54002
Finished request 0.
-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html