Accounting Problem

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Accounting Problem

dilip-4
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
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: Accounting Problem

Bogdan-Andrei Iancu
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
> [hidden email]
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>  


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: Accounting Problem

dilip-4
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: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
>> [hidden email]
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>>  
>
>


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: Accounting Problem

Bogdan-Andrei Iancu
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: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
>>> [hidden email]
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>>  
>>>      
>>    
>
>
> _______________________________________________
> Users mailing list
> [hidden email]
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>  


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