Hi Dilip,

Only successful transactions are accounted (2xx replied) by default.
Maybe the BYE from callee fails for whatever reason. To force the 
accounting of failed transaction also, enable the 
"failed_transaction_flag" flag.

Regards,
Bogdan

Dilip wrote:
> hi Bogdan,
> I have change the Accounting flag and they are different.
> but still the problem is there.
> openser receves the BYE. and also enter into loose route but accounting 
> is not happeng.
>
>
>    if (loose_route()){
>                 if(method == "BYE")
>                 {   xdbg("In the BYE Method");
>                     setflag(1);     #Stop accounting
>              }
>                 route(1);
>                 exit;
>         };
>
>
> What i am missing in my cfg file.
> Please guide me.
> Regards,
> Dilip
> Bogdan-Andrei Iancu wrote:
>   
>> 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:[EMAIL PROTECTED]/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
>>> [email protected]
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>>   
>>>       
>>     
>
>
> _______________________________________________
> Users mailing list
> [email protected]
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>   


_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to