[Serusers] acc problem

Joe_chen chenhb at sict.ac.cn
Wed Jan 8 04:38:08 CET 2003


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);
        };

        # forward to current uri now
        if (!t_relay()) {
                sl_reply_error();
        };

}

 	thanks!                                                        





More information about the sr-users mailing list