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