Dave Seddon <[EMAIL PROTECTED]> wrote:
> Most ISP billing packages are designed to bill stardard dialup, where
> there is a start and a stop.  DSL ppp sessions stay up for ages, so a
> seesion might go for more than a month.  Also, billing packages usually
> show pretty graphs of usage, based on starts and stops.  Therefore, it
> would make billing really easy if for each 'Alive' recieved, a start and
>  a stop was sent to the Billing system.  It would appear as if each DSL
> customer connected and disconnected every ten minutes.

  Hmm.. so you want to break the server to work around a broken
billing system.  I can't say I like that idea.

> Maybe you have an idea of an easier way?

  Use the detail file, and the alive packets, to create another fake
'detail' file, with the daily start/stop packets for the users
session.  You can then use feed that hacked detail file to the billing
software.

> Why is generating new packets problematic?  Surely proxying generates
> packets reliably?

  Yes, but creating and receiving new packets *outside* of the
existing infrastructure should be avoided.  I believe that you can
come up with a slightly different solution to the problem, which
doesn't require such weirdness *inside* of the RADIUS server.

> The billing system we use backeds to oracle, so I guess I could do
> inserts directly into that, however I thought the community would be
> better served by a module like I'm suggesting, that could input standard
> dail-up radius into any billing system.

  I believe that you would be better off hacking 'radrelay', or
creating your own equivalent.  Read the detail files, crunch the
sessions, and create daily start/stop packets.

  That way, the program generating the fake packets is *not* inside of
the RADIUS server, and is much simpler.

> Cool.  It looks like I can just copy the rlm_detail module.

  If you do write a module, I would say that you need some combination
of radutmp & detail.  Use the utmp information to determine who's
online, and for how long.  Then, when you receive a new 'alive' packet
at the start of a day, write to the pseduo-detail file a 'stop' packet
for the previous day, and a 'start' packet for the current day.  Then
update the 'utmp' information, with the fact that the user "logged in"
again.

  Alan DeKok.

- 
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to