<div class="gmail_quote">
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">> Dear All,<br>><br>><br>><br>> I have a few questions regarding the rlm_sqlcounter module and its<br>
> configuration. I have a freeradius 2.1.0 communicating with a router running<br>> chillispot 1.1  I set up counters for time, data volume, and with different<br>> reset periods. All works fine and as expected.<br>
><br>><br>><br>> Here my questions:<br>><br>><br>><br>> 1)      After the time or data volume for a period (say a month) is reached<br>> the user is automatically disconnected – as expected. Rather them not<br>
> allowing to log in , I would like freeradius to return some other attributes<br>> (WISPr-Bandwidth-Max-Up and WISPr-Bandwidth-Max-Down work fine with<br>> ChilliSpot) to be sent to the router for the user, so that a connection is<br>
> still possible, but at a much lower maximum speed. Can that be done, and if<br>> so, can someone give me a pointer. I was thinking maybe using unlang, but I<br>> may be barking up the wrong tree.<br>><br><br>
You might be better off making changes to your provisioning system<br>assuming you are using a database backend although<br>you might be able to get away with unlang.</blockquote>
<div> </div>
<div>I know 'I might be able to get away with unlang'. I was hoping for a useful pointer as to how.</div>
<div> </div>
<div>I have followed this up further and have a new roadblock. I have put this code into my 'authorize' section:</div>
<div>...</div>
<div>        monthlytotal<br>        if (reject) {<br>        update control {<br>                        Auth-Type := "Accept"<br>        }<br>        update reply {<br>                        WISPr-Bandwidth-Max-Down := 256000<br>
                        WISPr-Bandwidth-Max-Up := 32000<br>                }<br>        }<br>        monthlyupload<br>        monthlydownload</div>
<div><br>        logintime<br>...</div>
<div> </div>
<div>Module monthlytotal is behaving as expected (definition below), throwing a reject, when the so far in the month used Octets exceed the set limit for the user.</div>
<div> </div>
<div>However, what appears to happen when looking through the debug (below), freeradius appears to stop processing any further modules in the authorise section. Is that what is expected? If so, can this behaviour be changed through configuration, or does this require a whole new module?</div>

<div> </div>
<div>...</div>
<div>sqlcounter monthlytotal {<br>                counter-name = Max-Monthly-Total-Octets<br>                        check-name = Max-Monthly-Total<br>                        reply-name = ChilliSpot-Max-Total-Octets<br>                        sqlmod-inst = sql02<br>
                        key = User-Name<br>                        reset = monthly<br>        query = "SELECT IFNULL(SUM(AcctInputOctets - GREATEST((%b - UNIX_TIMESTAMP(AcctStartTime)), 0))+ SUM(AcctOutputOctets -GREATEST((%b - UNIX_TIMESTAMP(AcctStartTime)), 0)),0) FROM radacct WHERE UserName='%{%k}' AND UNIX_TIMESTAMP(AcctStartTime) + AcctSessionTime > '%b'"<br>
}<br>...</div>
<div> </div>
<div>...</div>
<div>Mon Jan 12 11:49:28 2009 : Debug: rlm_sqlcounter: (Check item - counter) is less than zero<br>Mon Jan 12 11:49:28 2009 : Debug: rlm_sqlcounter: Rejected user yubvef24, check_item=500000, counter=535178<br>Mon Jan 12 11:49:28 2009 : Info: ++[monthlytotal] returns reject<br>
Mon Jan 12 11:49:28 2009 : Info: Using Post-Auth-Type Reject<br>Mon Jan 12 11:49:28 2009 : Info: +- entering group REJECT {...}<br>Mon Jan 12 11:49:28 2009 : Debug:       expand: %{User-Name} -> yubvef24<br>Mon Jan 12 11:49:28 2009 : Debug:  attr_filter: Matched entry DEFAULT at line 11<br>
Mon Jan 12 11:49:28 2009 : Info: ++[attr_filter.access_reject] returns updated<br>Mon Jan 12 11:49:28 2009 : Info: Delaying reject of request 0 for 1 seconds<br>...<br></div>
<div> </div>
<div> </div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid"><span id=""></span><br><br>><br>><br>> 2)      The   reset = monthly   method seem to the first of the current<br>
> month. That is one way of doing it, but I would like the reset to occur at<br>> the same date in the month every month. So if someone signs up, say on the<br>> 12th of a month, the reset will occur every month on the 12th. Can that be<br>
> done with freeradius?<br>><br>><br><br>rlm_sqlcounter only support calendar month or day or week.</blockquote>
<div> </div>
<div>I am surprised to hear that, as this seems to be the standard way any ISP I came accross in this part of the world seems to define a 'month', including large internationals. If the final answer remains 'no, this cannot be done', who do I need to contact to discuss sponsoring the development of such a new feature within the module?</div>

<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid"><span id=""></span><br><br>><br>> 3)      Currently I receive something like   Reply-Message = "Your maximum<br>
> never usage time has been reached"   when the counter reaches its limit –<br>> even when what was counted as not time but data volume. Can Reply-Message<br>> for sqlcounter be configured as in the expiration module?<br>
><br>><br><br>rlm_sqlcounter does not have provision for cusom reply messages. There<br>was a patch floating around to send custom reply messages from<br>rlm_sqlcounter. Probably you should look in mailing list archives.<br>
</blockquote>
<div>I have done that, thanks. Neither search for 'rlm_sqlcounter' nor 'Reply-Message' yielded anything useful. </div>
<div> </div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid"><span id=""></span><br>><br>> 4)      One surprise I have had: I don't quite understand how the system<br>
> calculates the day for the beginning of the reset = weekly. I appreciate<br>> that calculating the day of the week is not easy as for example first of the<br>> current month or beginning of the day, so I was not surprised to not have a<br>
> Monday, but I was surprised to see the SQL query run with 'Fri Jan 09 2009<br>> 00:00:00 GMT+1300 (New Zealand Daylight Time)' as beginning of the week,<br>> when running the query on a Saturday. BTW, SQL time is configured correctly,<br>
> and the UNIX_TIMESTAMP is giving a correct timestamp for local time. What am<br>> I missing?<br>> (Note: When setting reset = 7d, I get something more explainable like 'Sat<br>> Jan 10 2009 00:00:00 GMT+1300 (New Zealand Daylight Time)', which is the<br>
> beginning of the today's day. Should reset = weekly and reset =7d yield the<br>> same result? If not, what is weekly vs 7d, and why does the week not start<br>> on a Monday?<br>><br></blockquote>
<div>Interesting running it today, Monday, 12 January 2009 12:26:36 p.m. NZSTD, I get Tuesday, 6 January 2009 12:00:00 a.m. NZSTD as beginning of the time weekly period the system is checking. </div>
<div>Can someone explain that logic?<br><br><br><br><br>---------- Forwarded message ----------<br>From: Eric <<a href="mailto:bbahar3@gmail.com">bbahar3@gmail.com</a>><br>To: <a href="mailto:freeradius-users@lists.freeradius.org">freeradius-users@lists.freeradius.org</a><br>
Date: Sun, 11 Jan 2009 08:26:41 +0330<br>Subject: Re:freeradius doesn't sent information to mysql<br>I had sent an instance of accounting request from my vpn server to radius server. you send me that  I haven't got anything configured in the accounting section. do you mean that vpn server frame is correct but accounting section in radius server doesn't work?<br>
<br>>rad_recv: Accounting-Request packet from host <a href="http://10.10.10.3:11858/" target="_blank" rel="nofollow">10.10.10.3:11858</a>, id=133,<br>>length=260<br>>        Acct-Status-Type = Start<br>>        Acct-Delay-Time = 0<br>
>        NAS-IP-Address = 10.10.10.3<br>>        Service-Type = Framed-User<br>>        Framed-Protocol = PPP<br>>        NAS-Port = 4<br>>        MS-RAS-Vendor = 311<br>>        MS-RAS-Version = "MSRASV5.20"<br>
>        NAS-Port-Type = Virtual<br>>        Tunnel-Type:0 = PPTP<br>>        Tunnel-Medium-Type:0 = IP<br>>        Calling-Station-Id = "192.168.201.59"<br>>        Tunnel-Client-Endpoint:0 = "192.168.201.59"<br>
>        Microsoft-Attr-35 = 0x4d5352415356352e3130<br>>        Microsoft-Attr-34 = 0x4d535241532d302d312d34304432 </div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<div>454332364243374334<br>>        Acct-Session-Id = "118382"<br>>        User-Name = "school"<br>>        Framed-IP-Address = 10.10.10.4<br>>        Framed-MTU = 1400<br>>        Session-Timeout = 389554<br>
>        Idle-Timeout = 1200<br>>        Acct-Multi-Session-Id = "953"<br>>        Acct-Link-Count = 1<br>>        Event-Timestamp = "Dec 31 2008 15:45:03 IRST"<br>>        Acct-Authentic = RADIUS<br>
>        MS-MPPE-Encryption-Types = 0x00000000<br>>Sending Accounting-Response of id 133 to 10.10.10.3 port 11858<br></div><br>-<br>List info/subscribe/unsubscribe? See <a href="http://www.freeradius.org/list/users.html" target="_blank">http://www.freeradius.org/list/users.html</a><br>
<br></blockquote></div><br>