[OpenSIPS-Users] Accounting Problem

Bogdan-Andrei Iancu bogdan at voice-system.ro
Thu Nov 20 19:21:14 CET 2008


Hi Dilip,

Try not to use the same flag for accounting flag and for missed_call 
flag - this may lead to unpredictable behaviour .

Use different flags and see if the problem still persists.

Regards,
Bogdan

Dilip wrote:
> Hello Everybody,
> I am using freeradius+Openser for the accounting purpose.
> I explain using example.
> 1) This  is working perfectly.
>                      A    ===call to=>   B 
>                    Accounting is starting
>              When A hangup the call then Accounting is stop and it makes 
> the Entry in the db.
>                 Accounting  stop message is generated and total session 
> time is calculated.
> 2) This scenario is not working.
>
>                      A    ===call to=>   B 
>                    Accounting is starting .
>              When B hangup the call then Accounting is not happening and 
> didnt get any msg at radius server side.
>              So that the TotalSession time is becomes zero.
>
>
> For that i have  attached my openser.cfg   here.
>
>
>
> #openser version 1.1
> # ----------- global configuration parameters ------------------------
>
> debug=9          # debug level (cmd line: -dddddddddd
> fork=yes
> log_stderror=yes  # (cmd line: -E)
> #log_facility=LOG_LOCAL5
> check_via=no    # (cmd. line: -v)
> dns=no          # (cmd. line: -r)
> rev_dns=no      # (cmd. line: -R)
>
> #listen=0.0.0.0
> listen=udp:192.168.1.1
> port=3300
> children=8
> #fifo="/tmp/openser_fifo"
>
> #unix_sock_children=2
>
> # ------------------ module loading ----------------------------------
> mpath="/usr/local/lib/openser/modules"
>
> loadmodule "mysql.so"
> loadmodule "sl.so"
> loadmodule "tm.so"
> loadmodule "rr.so"
> loadmodule "maxfwd.so"
> loadmodule "usrloc.so"
> loadmodule "registrar.so"
> loadmodule "textops.so"
> loadmodule "xlog.so"
> loadmodule "uri.so"
> loadmodule "acc.so"
> loadmodule "auth.so"
> loadmodule "auth_radius.so"
> loadmodule "dispatcher.so"
> loadmodule "nathelper.so"
> loadmodule "enum.so"
> #loadmodule "mediaproxy.so"
> #loadmodule "uri_db.so"
> # ----------------- setting module-specific parameters ---------------
> #------------------ registrar testing---------------------------------
> modparam("registrar", "default_expires", 2250000)
>
> #------------------Dialog Module--------------------------------------
>
> # -- usrloc params --
> modparam("dispatcher", "list_file", 
> "/usr/local/etc/openser/dispatcher.list")
> modparam("usrloc","db_url","mysql://openser:openserrw@localhost/openser")
> modparam("usrloc","db_mode", 3)
> modparam("usrloc", "timer_interval", 30)
> #modparam("usrloc", "expires_column", "225000")
> #modparam("usrloc", "cseq_delay", 60)
> #modparam("usrloc", "timer_interval", 30)
> #modparam("usrloc","desc_time_order", 1)
> #modparam("usrloc", "matching_mode", 1)
> #modparam("registrar", "desc_time_order", 1)
> modparam("usrloc", "desc_time_order", 0)    
> #modparam("registrar", "max_contacts", 1)
>
> # -- acc params --
>
> #################################################################################
> #modparam("acc", "failed_transaction_flag", 1)
> #modparam("acc", "report_cancels",     0)
> #modparam("acc", "report_ack",         0)
> #modparam("acc", "early_media",        0)
>
> #modparam("acc", "log_level",          1)
> modparam("acc", "log_flag",           1)
> modparam("acc", "log_missed_flag",    2)
>
> modparam("acc", "service_type", 15)
> modparam("acc|auth_radius", 
> "radius_config","/etc/radiusclient-ng/radiusclient.conf")
> modparam("acc", "radius_flag",        1)
> modparam("acc", "radius_missed_flag", 1)
>
> modparam("acc", "radius_extra", "
>                                        Called-Station-Id=$tu;
>                                        Calling-Station-Id=$fu;
>                                        Canonical-URI=$tu;
>                                         User-Name=$au;
>                                         Sip-User-Realm=$ar;
>                                       Source-IP=$si;
>                                         Source-Port=$sp;
>                                       From-Header=$hdr(from);
>                                         User-Agent=$hdr(user-agent);
>                                         Contact=$hdr(contact);
>                                         ENUM-TLD=$avp(s:enum_tld);
>                                         Event=$hdr(event)")
>
>
>
> # -- rr params --
> # add value to ;lr param to make some broken UAs happy
> modparam("rr", "enable_full_lr", 1)
> #modparam("nathelper", "rtpproxy_disable_tout", 1)
>
> #modparam("nathelper", "received_avp", "$avp(i:42)")
>
> # -------------------------  request routing logic -------------------
>
> # main routing logic
>
> route{
>         xdbg("\n\n---- Start -----\n\n");
>         if (!mf_process_maxfwd_header("10")) {
>                 sl_send_reply("483","Too Many Hops");
>                 exit;
>         };
>
>         if (msg:len >=  2048 ) {
>                 sl_send_reply("513", "Message too big");
>                 exit;
>         };
>    
>         if (!method=="REGISTER"){
>                 record_route();
>         };
>
>         xdbg("\n\n---- Before Loose route  ----\n\n");
>         if (loose_route()){
>                 xdbg("\n\n---- Loose route  ----\n\n");
>                 xdbg("\n\n-------- Stop Accounting   --------\n\n");
>                 setflag(1);     #Stop accounting
>                 route(1);
>                 exit;
>         };
>
>         if ((src_ip==192.168.1.5) ) {
>
>                 xdbg("\n\n---- From sip proxy server urmi -----\n\n");
>                 route(2);
>                 exit;
>         };
>
>
>         if (method=="REGISTER"){
>                 xdbg("\n\n---- Register  ----\n\n");
>                 route(3);
>                 exit;
>         };
>         if (method=="INVITE")
>         {
>                 xdbg("\n\n---- Invite  ----\n\n");
>                 xdbg("\n\n-------- Start Accounting   --------\n\n");
>
>                 if (nat_uac_test("19"))
>                 {
>                         xdbg("\n\n-------- Nated  --------\n\n");
>                         fix_nated_contact();
>                         force_rport();
>                 };
>
>                 xdbg("\n\n---- Invite  INSIDE.............----\n\n");
>
>                 if (!radius_www_authorize(""))
>                 {
>                         xdbg("\n\n---- Inside RADIUS  ----\n\n");
>                         www_challenge("", "0");
>                         exit;
>                 };
>
>                 acc_rad_request("Start");
>
>                 xdbg("\n\n---- AFTER RADIUS  ----\n\n");
>
>
>         };
>
> #       exit;
>
>
>
>         ds_select_dst("1", "0");
>         forward();
>         exit;
> }
>
> # generic forward
> route[1]
> {
>         if (!t_relay()) {
>             sl_reply_error();
>         };
> }
>
> route[2]
> {
>         if (lookup("location"))
>         {
>                 route(1);
>         }else{
>                 sl_send_reply("404", "Not Found");
>           xdbg("\n\n-------- To sip proxy ---urmi  --------\n\n");
>           ds_select_dst("3", "0");
>           forward();
>
>         };
> }
>
> #Register
> route[3]
> {
>         if (nat_uac_test("18"))
>         {
>                 xdbg("\n\n-------- Nated  --------\n\n");
>                 fix_nated_register();
>                 force_rport();
>         };
>
>         if (!radius_www_authorize(""))
>         {
>         xdbg("\n\n--- Inside Route 3  ----\n\n");
>                 www_challenge("", "0");
>                 exit;
>         };
>
>         save("location");
> }
>
> Is there anything is missing please help me.
>
>
> Regards,
> Dilip Modi
>
>                
>
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>   




More information about the Users mailing list