I've got this:
Module: Loaded SQL rlm_sql (sql): Driver rlm_sql_postgresql (module rlm_sql_postgresql) loaded
and linked
rlm_sql (sql): Attempting to connect to [EMAIL PROTECTED]:/radacct
rlm_sql (sql): starting 0
rlm_sql (sql): Attempting to connect rlm_sql_postgresql #0
rlm_sql (sql): Connected new DB handle, #0
.
.
.
rlm_sql (sql): starting 24
rlm_sql (sql): Attempting to connect rlm_sql_postgresql #24
rlm_sql (sql): Connected new DB handle, #24
Module: Instantiated sql (sql)
Is it right if it goes up to 24 ?
Yes.
In radiusd.conf, we changed the following: - bind_address = * + bind_address = 1.2.3.4 - port = 0 + port = 1812 - with_cisco_vsa_hack = no + with_cisco_vsa_hack = yes - $INCLUDE ${confdir}/sql.conf + $INCLUDE ${confdir}/pgsql-voip.conf # (cfr here attached) accounting { + sql }
And instead of the sql.conf, we based our config on the attached file pgsql-voip.conf.
Check this link for more info:
http://www.freeradius.org/cgi-bin/cvsweb.cgi/%7Echeckout%7E/radiusd/src/billing/README?rev=1.5&content-type=text/plain
What you can do also to test is activate the following in pgsql-voip.conf: # Print all SQL statements when in debug mode (-x) sqltrace = yes sqltracefile = ${logdir}/sqltrace.sql
When you start freeradius -x, you should see something like this when FreeRADIUS is receiving packets:
...rlm_sql...
Listening on IP address 1.2.3.4, ports 1812/udp and 1813/udp.
Ready to process requests.
rad_recv: Accounting-Request packet from host 5.6.7.8:1646, id=18, length=452
Acct-Session-Id = "0A00000000000080"
Calling-Station-Id = "123"
Called-Station-Id = "0123456789"
h323-setup-time = "h323-setup-time=15:05:24.010 UTC Fri Apr 9 2004"
h323-gw-id = "h323-gw-id=mygwid"
h323-conf-id = "h323-conf-id=002E1B53 3AA8911D 0C002E65 0A1F0207"
h323-call-origin = "h323-call-origin=originate"
h323-call-type = "h323-call-type=VoIP"
Cisco-AVPair = "h323-incoming-conf-id=002E1B53 3AA8911D 0C002E65 0A1F0207"
User-Name = "user-name"
Cisco-AVPair = "connect-progress=Call Up"
Acct-Status-Type = Start
Service-Type = Login-User
NAS-IP-Address = 5.6.7.8
Acct-Delay-Time = 0
rlm_sql (sql): Reserving sql socket id: 24
rlm_sql_postgresql: query: INSERT INTO StartVoIP (RadiusServerName, UserName, NASIPAddress, AcctTime, CalledStationId, CallingStationId, AcctDelayTime, h323gwid, h323callorigin, h323setuptime, h323confid) VALUES ('myservername', 'user-name', '5.6.7.8', now(), '0123456789', '123', '0', 'mygwid', 'originate', strip_dot('15:05:24.010 UTC Fri Apr 9 2004'), '002E1B53 3AA8911D 0C002E65 0A1F0207')
rlm_sql_postgresql: Status: PGRES_COMMAND_OK
rlm_sql_postgresql: affected rows = 1
rlm_sql (sql): Released sql socket id: 24
Sending Accounting-Response of id 18 to 5.6.7.8:1646
I hope this will help you...
Thanks for your help!
-----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Pascal Polleunus Sent: Tuesday, April 20, 2004 11:01 AM To: [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Subject: Re: Freeradius + PostgreSQL not working
VoipOne NOC wrote:
Hi
I have freeradius 0.9.3, compiled on a Debian Unstable system for PostgreSQL support.
Once I installe everything, it seems to work right. Following is the final output from "freeradius -xxyz -l stdout" :
Do you have something like this: Module: Loaded SQL rlm_sql (sql): Driver rlm_sql_postgresql (module rlm_sql_postgresql) loaded and linked rlm_sql (sql): Attempting to connect to user@:/dbname rlm_sql (sql): starting 0 rlm_sql (sql): Attempting to connect rlm_sql_postgresql #0 rlm_sql (sql): Connected new DB handle, #0 ...
Listening on IP address *, ports 1812/udp and 1813/udp, with proxy on 1814/udp. Ready to process requests.
And when I try to send the radius packets for accounting from my Cisco router, it just doesn't work
Do you receive some output in debug mode, from your router?
I have the following lines changed in my radiusd.conf:
with_cisco_vsa_hack = yes
$INCLUDE ${confdir}/postgresql.conf #unix (wtmp file) * commented out
#radutmp * commented out
Added sql instead of the unix accounting method.
If anyone has experience with this, please let me know what I can do.
We succeeded to make it work with Debian Sarge + PostgreSQL 7.4.2 + Cisco ;-)
- List info/subscribe/unsubscribe? See
http://www.freeradius.org/list/users.html
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
# Id: postgresql.conf,v 1.8.2.11 2003/07/15 11:15:43 pnixon Exp $ # # Configuration for the SQL module, when doing H323 VoIP billing. # # The database schema is available at: # # src/radiusd/src/billing/h323_db_postgresql.sql # sql {
# Database type currently must be rlm_sql_postgresql to work with this setup. driver = "rlm_sql_postgresql" # Connect info server = "localhost" login = "postgres" password = "" # Database configuration radius_db = "radius" # Database table configuration acct_table1 = "Start" acct_table2 = "Stop" authcheck_table = "radcheck" authreply_table = "radreply" groupcheck_table = "radgroupcheck" groupreply_table = "radgroupreply" usergroup_table = "usergroup" # Remove stale session if checkrad does not see a double login deletestalesessions = yes # Print all SQL statements when in debug mode (-x) sqltrace = no sqltracefile = ${logdir}/sqltrace.sql # number of sql connections to make to server num_sql_socks = 25 # Radius server name so you can tell which radius server handled a request # when you have multiple radius servers and one database. radius_server_name = myservername ####################################################################### # Query config: Username ####################################################################### # This is the username that will get substituted, escaped, and added # as attribute 'SQL-User-Name'. '%{SQL-User-Name}' should be used below # everywhere a username substitution is needed so you you can be sure # the username passed from the client is escaped properly. # # Uncomment the next line, if you want the sql_user_name to mean: # # Use Stripped-User-Name, if it's there. # Else use User-Name, if it's there, # Else use hard-coded string "none" as the user name. # #sql_user_name = "%{Stripped-User-Name:-%{User-Name:-none}}" # sql_user_name = "%{User-Name}" ####################################################################### # Accounting Queries ####################################################################### # accounting_onoff_query - query for Accounting On/Off packets # accounting_update_query - query for Accounting update packets # accounting_start_query - query for Accounting start packets # accounting_start_query_alt - query for Accounting start packets # (alternate in case first query fails) # accounting_stop_query - query for Accounting stop packets # accounting_stop_query_alt - query for Accounting start packets # (alternate in case first query doesn't # affect any existing rows in the table) ####################################################################### # Note: The VoIP accouting does not need Alternate queries in the shipped # configuration as all queries are INSERTS, hence should always work. # If they do not work then you probably have duplicate records in your table. accounting_start_query = "INSERT into ${acct_table1}%{h323-call-type} \ (RadiusServerName, UserName, NASIPAddress, AcctTime, CalledStationId, \ CallingStationId, AcctDelayTime, h323gwid, h323callorigin, h323setuptime, h323confid) \ values('${radius_server_name}', '%{SQL-User-Name}', \ '%{NAS-IP-Address}', now(), '%{Called-Station-Id}', \ '%{Calling-Station-Id}', '%{Acct-Delay-Time:-0}', '%{h323-gw-id}', \ '%{h323-call-origin}', strip_dot('%{h323-setup-time}'), '%{h323-conf-id}')" accounting_stop_query = "INSERT into ${acct_table2}%{h323-call-type} \ (RadiusServerName, UserName, NASIPAddress, AcctTime, \ AcctSessionTime, AcctInputOctets, AcctOutputOctets, CalledStationId, CallingStationId, \ AcctDelayTime, H323RemoteAddress, CiscoNASPort, h323callorigin, h323confid, \ h323connecttime, h323disconnectcause, h323disconnecttime, h323gwid, h323setuptime) \ values('${radius_server_name}', '%{SQL-User-Name}', '%{NAS-IP-Address}', now(), '%{Acct-Session-Time:-0}', \ '%{Acct-Input-Octets:-0}', '%{Acct-Output-Octets:-0}', '%{Called-Station-Id}', '%{Calling-Station-Id}', \ '%{Acct-Delay-Time:-0}', NULLIF('%{h323-remote-address}', '')::inet, '%{Cisco-NAS-Port}', \ '%{h323-call-origin}', '%{h323-conf-id}', strip_dot('%{h323-connect-time}'), '%{h323-disconnect-cause}', \ strip_dot('%{h323-disconnect-time}'), '%{h323-gw-id}', strip_dot('%{h323-setup-time}'))" }