opensips Accting problem

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

opensips Accting problem

dilip-4
Hello,

We have successfully configured opensips + freeradius.
We are using the opensip's accounting module for accounting. we can make
a call.
But after each call, there should be a accounting entry in radius's
radacct table.

Actually, after INVITE pkt acoounting is not starting, but in the BYE
pkt it gives the acct Pkt.

On freeradius server side,we are getting only Acct-Status-Type =Stop
only, not the Acct-Status-Type =start .So that in the database we are
getting the start and stop time same.

Here, is our opensips.cfg file
--------------------------------------------------------
#################################################################################

#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",    1)

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", 2)

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);
                                        Event=$hdr(event)")





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
                #setflag(2);    #Stop accounting
                route(1);
                exit;
        };

         if ((src_ip==X.X.X.X) ) {
                xdbg("\n\n---- From sip proxy -----\n\n");
                setflag(1);
                route(2);
                exit;
        };


        if (method=="REGISTER"){
                route(3);
                exit;
        };
        if (method=="INVITE")
        {
                 xdbg("\n\n-------- Start Accounting   --------\n\n");

                setflag(1); #Start  accounting

                if (nat_uac_test("19"))
                {
                        fix_nated_contact();
                        force_rport();
                };

                xdbg("\n\n---- Invite............----\n\n");


                if (!radius_www_authorize(""))
                {
                        xdbg("\n\n---- RADIUS  ----\n\n");
                        www_challenge("", "0");
                        exit;
                };

        }else if(method=="INFO"){
                setflag(1); #Start  accounting
                       exit;

        }else if(method=="SUBSCRIBE"){
                exit;

        };

        ds_select_dst("1", "0");
        setflag(1);
        forward();
        exit;
}

# generic forward
route[1]
{
        if (!t_relay()) {
            sl_reply_error();
        };
}

route[2]
{
        setflag(1); #Start  accounting
        if (lookup("location"))
        {
                setflag(1); #Start  accounting
                route(1);
        }else{
                sl_send_reply("404", "Not Found");
          xdbg("\n\n-------- To Asterisk ---  --------\n\n");
          ds_select_dst("3", "0");
          forward();

        };
}

route[3]
{
                setflag(1); #Start  accounting
        if (nat_uac_test("18"))
        {
                xdbg("\n\n-------- Nated  --------\n\n");
                fix_nated_register();
                force_rport();
        };


        if (!radius_www_authorize(""))
        {
                www_challenge("", "0");
                exit;
        };

        save("location");
}



freeradius O/p :-


-- Walking the entire request list ---
Cleaning up request 1 ID 175 with timestamp 4917c6d4
Waking up in 1 seconds...
--- Walking the entire request list ---
Cleaning up request 2 ID 176 with timestamp 4917c6d5
Waking up in 2 seconds...
rad_recv: Access-Request packet from host 67.205.85.119:54665, id=180,
length=237
        User-Name = "10009@67.205.85.119"
        Digest-Attributes = 0x0a073130303039
        Digest-Attributes = 0x010f36372e3230352e38352e313139
        Digest-Attributes =
0x0232343931376338303830303030303030376330616338616134643133636563393930613239376536343033623566623639
        Digest-Attributes =
0x042f7369703a31333033333337323530304036372e3230352e38352e3131393a333330303b757365723d70686f6e65
        Digest-Attributes = 0x0308494e56495445
        Digest-Response = "b62af9c297fc6385ed301c207c887136"
        Service-Type = Sip-Session
        Sip-Uri-User = "10009"
        NAS-IP-Address = 67.205.85.119
        NAS-Port = 5060
  Processing the authorize section of radiusd.conf
modcall: entering group authorize for request 5
  modcall[authorize]: module "preprocess" returns ok for request 5
  modcall[authorize]: module "chap" returns noop for request 5
  modcall[authorize]: module "mschap" returns noop for request 5
rlm_digest: Adding Auth-Type = DIGEST
  modcall[authorize]: module "digest" returns ok for request 5
    rlm_realm: Looking up realm "67.205.85.119" for User-Name =
"10009@67.205.85.119"
    rlm_realm: Found realm "67.205.85.119"
    rlm_realm: Adding Stripped-User-Name = "10009"
    rlm_realm: Proxying request from user 10009 to realm 67.205.85.119
    rlm_realm: Adding Realm = "67.205.85.119"
    rlm_realm: Authentication realm is LOCAL.
  modcall[authorize]: module "suffix" returns noop for request 5
  rlm_eap: No EAP-Message, not doing EAP
  modcall[authorize]: module "eap" returns noop for request 5
    users: Matched entry DEFAULT at line 152
  modcall[authorize]: module "files" returns ok for request 5
radius_xlat:  '10009'
rlm_sql (sql): sql_set_user escaped user --> '10009'
radius_xlat:  'SELECT id, UserName, Attribute, Value, op           FROM
radcheck           WHERE Username = '10009'           ORDER BY id'
rlm_sql (sql): Reserving sql socket id: 4

rlm_sql (sql): Released sql socket id: 4
  modcall[authorize]: module "sql" returns ok for request 5
modcall: leaving group authorize (returns ok) for request 5
  rad_check_password:  Found Auth-Type DIGEST
auth: type "digest"
  Processing the authenticate section of radiusd.conf
modcall: entering group authenticate for request 5
    rlm_digest: Converting Digest-Attributes to something sane...
        Digest-User-Name = "10009"
        Digest-Realm = "67.205.85.119"
        Digest-Nonce = "4917c80800000007c0ac8aa4d13cec990a297e6403b5fb69"
        Digest-URI = "sip:13033372500@67.205.85.119:3300;user=phone"
        Digest-Method = "INVITE"
A1 = 10009:67.205.85.119:1234
A2 = INVITE:sip:13033372500@67.205.85.119:3300;user=phone
H(A1) = 51f61b367b1abaf100db924c8247fada
H(A2) = c59454d1e9496206734e22f792d7f57f
KD =
51f61b367b1abaf100db924c8247fada:4917c80800000007c0ac8aa4d13cec990a297e6403b5fb69:c59454d1e9496206734e22f792d7f57f

EXPECTED b62af9c297fc6385ed301c207c887136
RECEIVED b62af9c297fc6385ed301c207c887136
  modcall[authenticate]: module "digest" returns ok for request 5
modcall: leaving group authenticate (returns ok) for request 5
Sending Access-Accept of id 180 to 67.205.85.119 port 54665
Finished request 5
Going to the next request
--- Walking the entire request list ---
Cleaning up request 3 ID 177 with timestamp 4917c6d7
Waking up in 1 seconds...
--- Walking the entire request list ---
Cleaning up request 4 ID 179 with timestamp 4917c6d8
Waking up in 5 seconds...
--- Walking the entire request list ---
Cleaning up request 5 ID 180 with timestamp 4917c6dd
Nothing to do.  Sleeping until we see a request.
rad_recv: Accounting-Request packet from host 67.205.85.119:54665,
id=181, length=422
        Acct-Status-Type = Stop
        Service-Type = Sip-Session
        Sip-Response-Code = 200
        Sip-Method = Bye
        Event-Timestamp = "Nov 10 2008 00:30:22 EST"
        Sip-From-Tag = "387fe440d7625640"
        Sip-To-Tag = "10115608104462043735910073"
        Acct-Session-Id = "a36469cc9c312e09@192.168.1.218"
        Called-Station-Id = "sip:13033372500@67.205.85.119:3300;user=phone"
        Calling-Station-Id = "sip:10009@67.205.85.119:3300;user=phone"
        Canonical-URI = "sip:13033372500@67.205.85.119:3300;user=phone"
        User-Name = "10009"
        Attr-111 = 0x36372e3230352e38352e313139
        Source-IP = "58.68.123.51"
        Source-Port = "64525"
        From-Header = ""urmi"
<sip:10009@67.205.85.119:3300;user=phone>;tag=387fe440d7625640"
        User-Agent = "Grandstream BT120 1.1.0.2"
        NAS-IP-Address = 67.205.85.119
        NAS-Port = 5060
        Acct-Delay-Time = 0




we are not getting the start pkt.
Please help me.


--------------------------------------------------------


Thanks,






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

Re: opensips Accting problem

Bogdan-Andrei Iancu
Hi,

I think your problem is because you are using the same flag (1) for the
radius_flag and for log_missed_flag - use something different for
log_missed_flag.... because this flag is getting reset in cases of failure.

Regards,
Bogdan

Dilip wrote:

> Hello,
>
> We have successfully configured opensips + freeradius.
> We are using the opensip's accounting module for accounting. we can make
> a call.
> But after each call, there should be a accounting entry in radius's
> radacct table.
>
> Actually, after INVITE pkt acoounting is not starting, but in the BYE
> pkt it gives the acct Pkt.
>
> On freeradius server side,we are getting only Acct-Status-Type =Stop
> only, not the Acct-Status-Type =start .So that in the database we are
> getting the start and stop time same.
>
> Here, is our opensips.cfg file
> --------------------------------------------------------
> #################################################################################
>
> #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",    1)
>
> 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", 2)
>
> 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);
>                                         Event=$hdr(event)")
>
>
>
>
>
> 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
>                 #setflag(2);    #Stop accounting
>                 route(1);
>                 exit;
>         };
>
>          if ((src_ip==X.X.X.X) ) {
>                 xdbg("\n\n---- From sip proxy -----\n\n");
>                 setflag(1);
>                 route(2);
>                 exit;
>         };
>
>
>         if (method=="REGISTER"){
>                 route(3);
>                 exit;
>         };
>         if (method=="INVITE")
>         {
>                  xdbg("\n\n-------- Start Accounting   --------\n\n");
>
>                 setflag(1); #Start  accounting
>
>                 if (nat_uac_test("19"))
>                 {
>                         fix_nated_contact();
>                         force_rport();
>                 };
>
>                 xdbg("\n\n---- Invite............----\n\n");
>
>
>                 if (!radius_www_authorize(""))
>                 {
>                         xdbg("\n\n---- RADIUS  ----\n\n");
>                         www_challenge("", "0");
>                         exit;
>                 };
>
>         }else if(method=="INFO"){
>                 setflag(1); #Start  accounting
>                        exit;
>
>         }else if(method=="SUBSCRIBE"){
>                 exit;
>
>         };
>
>         ds_select_dst("1", "0");
>         setflag(1);
>         forward();
>         exit;
> }
>
> # generic forward
> route[1]
> {
>         if (!t_relay()) {
>             sl_reply_error();
>         };
> }
>
> route[2]
> {
>         setflag(1); #Start  accounting
>         if (lookup("location"))
>         {
>                 setflag(1); #Start  accounting
>                 route(1);
>         }else{
>                 sl_send_reply("404", "Not Found");
>           xdbg("\n\n-------- To Asterisk ---  --------\n\n");
>           ds_select_dst("3", "0");
>           forward();
>
>         };
> }
>
> route[3]
> {
>                 setflag(1); #Start  accounting
>         if (nat_uac_test("18"))
>         {
>                 xdbg("\n\n-------- Nated  --------\n\n");
>                 fix_nated_register();
>                 force_rport();
>         };
>
>
>         if (!radius_www_authorize(""))
>         {
>                 www_challenge("", "0");
>                 exit;
>         };
>
>         save("location");
> }
>
>
>
> freeradius O/p :-
>
>
> -- Walking the entire request list ---
> Cleaning up request 1 ID 175 with timestamp 4917c6d4
> Waking up in 1 seconds...
> --- Walking the entire request list ---
> Cleaning up request 2 ID 176 with timestamp 4917c6d5
> Waking up in 2 seconds...
> rad_recv: Access-Request packet from host 67.205.85.119:54665, id=180,
> length=237
>         User-Name = "10009@67.205.85.119"
>         Digest-Attributes = 0x0a073130303039
>         Digest-Attributes = 0x010f36372e3230352e38352e313139
>         Digest-Attributes =
> 0x0232343931376338303830303030303030376330616338616134643133636563393930613239376536343033623566623639
>         Digest-Attributes =
> 0x042f7369703a31333033333337323530304036372e3230352e38352e3131393a333330303b757365723d70686f6e65
>         Digest-Attributes = 0x0308494e56495445
>         Digest-Response = "b62af9c297fc6385ed301c207c887136"
>         Service-Type = Sip-Session
>         Sip-Uri-User = "10009"
>         NAS-IP-Address = 67.205.85.119
>         NAS-Port = 5060
>   Processing the authorize section of radiusd.conf
> modcall: entering group authorize for request 5
>   modcall[authorize]: module "preprocess" returns ok for request 5
>   modcall[authorize]: module "chap" returns noop for request 5
>   modcall[authorize]: module "mschap" returns noop for request 5
> rlm_digest: Adding Auth-Type = DIGEST
>   modcall[authorize]: module "digest" returns ok for request 5
>     rlm_realm: Looking up realm "67.205.85.119" for User-Name =
> "10009@67.205.85.119"
>     rlm_realm: Found realm "67.205.85.119"
>     rlm_realm: Adding Stripped-User-Name = "10009"
>     rlm_realm: Proxying request from user 10009 to realm 67.205.85.119
>     rlm_realm: Adding Realm = "67.205.85.119"
>     rlm_realm: Authentication realm is LOCAL.
>   modcall[authorize]: module "suffix" returns noop for request 5
>   rlm_eap: No EAP-Message, not doing EAP
>   modcall[authorize]: module "eap" returns noop for request 5
>     users: Matched entry DEFAULT at line 152
>   modcall[authorize]: module "files" returns ok for request 5
> radius_xlat:  '10009'
> rlm_sql (sql): sql_set_user escaped user --> '10009'
> radius_xlat:  'SELECT id, UserName, Attribute, Value, op           FROM
> radcheck           WHERE Username = '10009'           ORDER BY id'
> rlm_sql (sql): Reserving sql socket id: 4
>
> rlm_sql (sql): Released sql socket id: 4
>   modcall[authorize]: module "sql" returns ok for request 5
> modcall: leaving group authorize (returns ok) for request 5
>   rad_check_password:  Found Auth-Type DIGEST
> auth: type "digest"
>   Processing the authenticate section of radiusd.conf
> modcall: entering group authenticate for request 5
>     rlm_digest: Converting Digest-Attributes to something sane...
>         Digest-User-Name = "10009"
>         Digest-Realm = "67.205.85.119"
>         Digest-Nonce = "4917c80800000007c0ac8aa4d13cec990a297e6403b5fb69"
>         Digest-URI = "sip:13033372500@67.205.85.119:3300;user=phone"
>         Digest-Method = "INVITE"
> A1 = 10009:67.205.85.119:1234
> A2 = INVITE:sip:13033372500@67.205.85.119:3300;user=phone
> H(A1) = 51f61b367b1abaf100db924c8247fada
> H(A2) = c59454d1e9496206734e22f792d7f57f
> KD =
> 51f61b367b1abaf100db924c8247fada:4917c80800000007c0ac8aa4d13cec990a297e6403b5fb69:c59454d1e9496206734e22f792d7f57f
>
> EXPECTED b62af9c297fc6385ed301c207c887136
> RECEIVED b62af9c297fc6385ed301c207c887136
>   modcall[authenticate]: module "digest" returns ok for request 5
> modcall: leaving group authenticate (returns ok) for request 5
> Sending Access-Accept of id 180 to 67.205.85.119 port 54665
> Finished request 5
> Going to the next request
> --- Walking the entire request list ---
> Cleaning up request 3 ID 177 with timestamp 4917c6d7
> Waking up in 1 seconds...
> --- Walking the entire request list ---
> Cleaning up request 4 ID 179 with timestamp 4917c6d8
> Waking up in 5 seconds...
> --- Walking the entire request list ---
> Cleaning up request 5 ID 180 with timestamp 4917c6dd
> Nothing to do.  Sleeping until we see a request.
> rad_recv: Accounting-Request packet from host 67.205.85.119:54665,
> id=181, length=422
>         Acct-Status-Type = Stop
>         Service-Type = Sip-Session
>         Sip-Response-Code = 200
>         Sip-Method = Bye
>         Event-Timestamp = "Nov 10 2008 00:30:22 EST"
>         Sip-From-Tag = "387fe440d7625640"
>         Sip-To-Tag = "10115608104462043735910073"
>         Acct-Session-Id = "a36469cc9c312e09@192.168.1.218"
>         Called-Station-Id = "sip:13033372500@67.205.85.119:3300;user=phone"
>         Calling-Station-Id = "sip:10009@67.205.85.119:3300;user=phone"
>         Canonical-URI = "sip:13033372500@67.205.85.119:3300;user=phone"
>         User-Name = "10009"
>         Attr-111 = 0x36372e3230352e38352e313139
>         Source-IP = "58.68.123.51"
>         Source-Port = "64525"
>         From-Header = ""urmi"
> <sip:10009@67.205.85.119:3300;user=phone>;tag=387fe440d7625640"
>         User-Agent = "Grandstream BT120 1.1.0.2"
>         NAS-IP-Address = 67.205.85.119
>         NAS-Port = 5060
>         Acct-Delay-Time = 0
>
>
>
>
> we are not getting the start pkt.
> Please help me.
>
>
> --------------------------------------------------------
>
>
> Thanks,
>
>
>
>
>
>
> _______________________________________________
> 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