[Serusers] acc problem

Jiri Kuthan jiri at iptel.org
Wed Jan 8 22:30:03 CET 2003


That is because you don't use Record-route. You have to use
it in order to enforce reouting of subsequent requests 
through SER. Otherwise, they are routed directly between
end-devices, that's how SIP works. The missing script
action is bellow, I will document this issue in user's
guide.

-Jiri

At 04:38 AM 1/8/2003, Joe_chen wrote:
>hi,
>  i have met the same problem with acc. i can get the invite message for accounting,but i can't get the bye message, i also capture the udp packages on ser server, i use MSN for UA, i find the sip messeges like: invite,100 trying,180 ringing ,200 ok(for invite),but when i hangup, there are not bye message, it's  like sending bye message from UA to UA directly,while not going throug ser server,so there is not BYE message for accounting, is it true?
>  how to get the bye message for accounting? please help.
>my ser.cfg is like:
>..
>loadmodule "/usr/local/lib/ser/modules/mysql.so"
>loadmodule "/usr/local/lib/ser/modules/sl.so"
>loadmodule "/usr/local/lib/ser/modules/acc.so"
>#loadmodule "/usr/local/lib/ser/modules/auth.so"
>
>loadmodule "/usr/local/lib/ser/modules/print.so"
>loadmodule "/usr/local/lib/ser/modules/tm.so"
>loadmodule "/usr/local/lib/ser/modules/rr.so"
>loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
>loadmodule "/usr/local/lib/ser/modules/usrloc.so"
>loadmodule "/usr/local/lib/ser/modules/registrar.so"
>..
>modparam("acc", "db_url","sql://ser:heslo@localhost/ser")
>modparam("acc","report_ack",1)
>
>modparam("acc","log_level",1)
>modparam("acc", "acc_flag", 1 )
>modparam("acc", "missed_flag", 3 )
>
># -- tm params --
>modparam("tm", "fr_timer", 10 )
>modparam("tm", "fr_inv_timer", 20 )
>modparam("tm", "wt_timer", 10 )
>
>..
>route{
>
>        # initial sanity checks -- messages with
>        # max_forwars==0, or excessively long requests
>        if (!mf_process_maxfwd_header("10")) {
>                sl_send_reply("483","Too Many Hops");
>                break;
>        };
>        if (len_gt( max_len )) {
>                sl_send_reply("513", "Message too big");
>                break;
>        };
>
>        # Do strict routing if pre-loaded route headers present
>        rewriteFromRoute();
>
>        # if the request is for other domain use UsrLoc
>        # (in case, it does not work, use the following command
>        # with proper names and addresses in it)
>        if (uri==myself) {
>
>                if (method=="REGISTER") {
>
># Uncomment this if you want to use digest authentication
>#                       if (!www_authorize("192.168.139.125", "subscriber")) {
>#                               www_challenge("192.168.139.125", "0");
>#                               break;
>#                       };
>
>                        save("location");
>                        break;
>                };
>
>                # native SIP destinations are handled using our USRLOC DB
>                if (!lookup("location")) {
>                        sl_send_reply("404", "Not Found");
>                        break;
>                };
>        };
># set for accounting (the same value as in acc_flag!)
>        if (method=="INVITE" || method=="BYE"){
>
>                setflag(1);
>
># ... and also report on missed calls ... note that reporting
>#     on missed calls is mutually exclusive with silent C timer
>#
>                setflag(3);
>        };

          # enforce routing of the whole signaling through proxy
         if (method=="INVITE") {
                addRecordRoute();
         };


>        # forward to current uri now
>        if (!t_relay()) {
>                sl_reply_error();
>        };
>
>}
>
>        thanks!                                                        
>
>
>_______________________________________________
>Serusers mailing list
>serusers at lists.iptel.org
>http://lists.iptel.org/mailman/listinfo/serusers 

--
Jiri Kuthan            http://iptel.org/~jiri/ 




More information about the sr-users mailing list