When a CDR is written that contains certain characters (e.g. +, ;) it is
encoded (like a URL gets encoded).
The SQL insert statement query is produced by OpenSER/Radius:
10625 Query INSERT INTO radacct
(RadAcctId, AcctSessionId, AcctUniqueId, UserName, Realm, NASIPAddress,
NASPortId, AcctStartTime, AcctStopTime, AcctSessionTime,
AcctInputOctets, AcctOutputOctets, CalledStationId, CallingStationId,
AcctTerminateCause, ServiceType, FramedProtocol, FramedIPAddress,
AcctStartDelay, AcctStopDelay, SipResponseCode, SipMethod,
SipTranslatedRequestURI, SipToTag, SipFromTag, SipRPID,
SourceIP, SourcePort, CanonicalURI) VALUES (NULL,
'149a4cbd403b071e109d89b50a17b3a5(a)202.180.1.1'1.1', 'e04d0b07ab2eca3e',
SUBSTRING_INDEX('sip:094455667@202.180.1.1',':',-1),
SUBSTRING_INDEX('sip:094455667@202.180.1.1', '@',-1),
'127.0.0.1',
'5060', '2009-06-20 11:44:49', '0', '0', '0',
'0',
SUBSTRING_INDEX('sip:=2B6012345678@147.202.1.1',':',-1),
SUBSTRING_INDEX('sip:094455667@202.180.1.1',':',-1),
'200',
'SIP', '', '', '0', '0',
'200', 'Invite',
SUBSTRING_INDEX('',':',-1), 'as03a3d864', 'as69938f56',
'', '',
'', SUBSTRING_INDEX('',':',-1))
However the records written to the file system by OpenSER/Radius are not
encoded:
Sat Jun 20 11:44:49 2009
Acct-Status-Type = Start
Service-Type = SIP
Sip-Response-Code = 200
Sip-Method = Invite
Event-Timestamp = "Jun 20 2009 11:44:49 NZST"
Sip-From-Tag = "as69938f56"
Sip-To-Tag = "as03a3d864"
Acct-Session-Id = "149a4cbd403b071e109d89b50a17b3a5(a)202.180.1.1"
Called-Station-Id = "sip:+6012345678@147.202.1.1"
Calling-Station-Id = "sip:094455667@202.180.1.1"
User-Name = "sip:094455667@202.180.1.1"
NAS-Port = 5060
Acct-Delay-Time = 0
NAS-IP-Address = 127.0.0.1
Client-IP-Address = 127.0.0.1
Acct-Unique-Session-Id = "e04d0b07ab2eca3e"
Timestamp = 1245455089
So how can I write +6012345678 to the database, rather than =2B6012345678?
Any advice appreciated.
Regards
Cameron