[Serusers] radius acc: where are the start records?

Jan Janak jan at iptel.org
Thu Nov 18 22:09:26 CET 2004


Do you see route[1] in your log files when the INVITE message is being
processed ? You seem to have the radius_flag configured to 1 and that
flag is set in route(1), so check if that route section really gets
executed when ser forwards the INVITE message.

  Jan.

On 17-11 16:20, Bruno Lopes F. Cabral wrote:
> Hi there
> 
> after slashing my head with a hammer for a little bit,
> reading many times the SER RADIUS Howto and acc man
> page, I managed to get acc to log some RADIUS accounting
> packets (Stop records and Call Failure records) with
> FreeRADIUS
> 
> unfortunately, I could not discover how to generate
> the START records, no matter what I tried!!
> 
> as the Stop record doesn't have RADIUS session-time,
> I need the Start record so my current billing system
> can be used.
> 
> I've searched the list archives quite a bit, and
> googled on [serusers] and FreeRADIUS lists but
> couldn't find a clue.
> 
> any help would be gratelly appreciated
> 
> snippets of ser.cfg
> 
> [...]
> loadmodule "/usr/lib/ser/modules/registrar.so"
> loadmodule "/usr/lib/ser/modules/auth.so"
> loadmodule "/usr/lib/ser/modules/auth_radius.so"
> # acc compiled with RADIUS support
> loadmodule "/usr/lib/ser/modules/acc.so"
> loadmodule "/usr/lib/ser/modules/nathelper.so"
> # -- acc params --
> modparam("acc", "radius_config", "/etc/radiusclient/radiusclient.conf")
> modparam("acc", "radius_flag", 1)
> modparam("acc", "radius_missed_flag", 2)
> #modparam("acc", "log_level", 1)
> #modparam("acc", "failed_transactions", 1)
> #modparam("acc", "report_cancels", 1)
> #modparam("acc", "report_ack", 1)
> 
> # -- usrloc params --
> modparam("usrloc", "db_mode",   0)
> # -- auth_radius params --
> modparam("auth_radius", "radius_config", 
> "/etc/radiusclient/radiusclient.conf")
> 
> # -- rr params --
> # add value to ;lr param to make some broken UAs happy
> modparam("rr", "enable_full_lr", 1)
> 
> # !! Nathelper
> modparam("registrar", "nat_flag", 6)
> modparam("nathelper", "natping_interval", 30) # Ping interval 30 s
> modparam("nathelper", "ping_nated_only", 1)   # Ping only clients behind NAT
> 
> [...] pretty much nathelper.cfg example [...]
> 
>                 # native SIP destinations are handled using our USRLOC DB
>                 if (!lookup("location")) {
>                         log(1,"LOG: not found\n");
>                         setflag(2);
>                         sl_send_reply("404", "Not Found");
>                         break;
>                 };
>         };
>         append_hf("P-hint: usrloc applied\r\n");
>         route(1);
> }
> 
> route[1]
> {
>         # !! Nathelper
>         if (uri=~"[@:](192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)" 
> && !search("^Route:")){
>             sl_send_reply("479", "We don't forward to private IP 
> addresses");
>             break;
>         };
> 
>         log(1, "LOG: route[1]\n");
>         setflag(1);
> 
>         # if client or server know to be behind a NAT, enable relay
>         if (isflagset(6)) {
>             force_rtp_proxy();
>         };
>         t_on_reply("1");
> 
>         # send it out now; use stateful forwarding as it works reliably
>         # even for UDP2TCP
>         if (!t_relay()) {
>                 sl_reply_error();
>         };
> }
> 
> onreply_route[1] {
>         if (isflagset(6) && status =~ "(183)|2[0-9][0-9]") {
>                 fix_nated_contact();
> # CHECK LATER: does this need to be enclosed on
> # if(method==BYE || method==CANCEL)  ???
>                 force_rtp_proxy();
>         } else if (nat_uac_test("1")) {
>                 fix_nated_contact();
>         };
> }
> 
> # EOF ---
> 
> one thing that I noticed was that, depending on which
> side ended the call, the RADIUS Stop packet cames with
> that side being the calling-station-id and the peer
> being the called-station-id. is it supposed to be that
> way?
> 
> Cheers
> !3runo
> 
> P.S. in case it matters:
> 
> # ser -V
> version:  0.8.14 (i386/linux)
> flags: STATS:Off, USE_IPV6, USE_TCP, DISABLE_NAGLE, DNS_IP_HACK, 
> SHM_MEM, SHM_MMAP, PKG_MALLOC, F_MALLOC, FAST_LOCK-ADAPTIVE_WAIT
> ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, 
> MAX_URI_SIZE 1024, BUF_SIZE 65535
> @(#) $Id: main.c,v 1.168.4.3 2004/06/28 15:41:21 andrei Exp $
> main.c compiled on 07:13:08 Nov 17 2004 with gcc 3.3
> 
> _______________________________________________
> Serusers mailing list
> serusers at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers




More information about the sr-users mailing list