Hello;
There is a problem in acc_radius module that radius message has
2 time sends "Acct-Status-Type = Start" when call is established as
example below. it should be ALIVE as i see in rad_status.if
req_METHOD is ACK , it should be ALIVE. And There is a problem
Sip-Method Problem that even if it is ACK , it sends Invite. How can
i fix these problems could you help me about it?
i already defined Acct-Status-Ttpe Values like Below
VALUE Acct-Status-Type Failed 15 # RFC2866, acc
VALUE Acct-Status-Type Start 1 # RFC2866, acc
VALUE Acct-Status-Type Stop 2 # RFC2866, acc
VALUE Acct-Status-Type Alive 3 # RFC2866, acc
When i debug tag.len in Invite and ack transaction i get 0 value but
in Bye it has bigger than 0 .So that it never be Alive
static inline uint32_t rad_status( struct sip_msg *req, int code )
{
str tag;
unsigned int in_dialog_req = 0;
tag = get_to(req)->tag_value;
if(tag.s!=0 && tag.len!=0)
in_dialog_req = 1;
if (req->REQ_METHOD==METHOD_INVITE &&
in_dialog_req == 0
&& code>=200 && code<300)
return rd_vals[RV_STATUS_START].v;
if ((req->REQ_METHOD==METHOD_BYE ||
req->REQ_METHOD==METHOD_CANCEL))
return rd_vals[RV_STATUS_STOP].v;
if (in_dialog_req != 0)
return rd_vals[RV_STATUS_ALIVE].v;
return rd_vals[RV_STATUS_FAILED].v;
}
---------- RADIUS PACKET------------
Mon Jun 29 12:47:33 2015
Acct-Status-Type = Start
Service-Type = Sip-Session
Sip-Response-Code = 200
Sip-Method = Invite
Mon Jun 29 12:47:33 2015
Acct-Status-Type = Start
Service-Type = Sip-Session
Sip-Response-Code = 200
Sip-Method = Invite
Mon Jun 29 12:48:07 2015
Acct-Status-Type = Stop
Service-Type = Sip-Session
Sip-Response-Code = 200
Sip-Method = Bye