[Devel] Re: [Users] RE: [Serusers] Re: [Serdev] Inaccurate Radius
Accounting
Klaus Darilion
klaus.mailinglists at pernau.at
Thu Nov 17 10:21:09 CET 2005
Hi!
I think we should leave (open)ser radius as it is. If you need adopt the
accounting packets to fit your billing application, I would add a radius
proxy, which translates the acounting requests according to your needs
and forward it to the billing application.
regards
klaus
Lenir wrote:
>>We could determine who sent the BYE from the value of ftag parameter in
>>Route header field and swap the values, the question is whether this
>>makes sense. The billing system could take all info from start requests
>
>
> I think it would make sense just from a uniformity stand point.
>
>
>>and use the stop request to calculate the session duration only.
>
>
> I don't know if that's the case, but this would probably vary from billing
> system to billing system. I think if we keep it uniform, then it would never
> be a problem. Specially, for billing systems that only support stop-only
> records and billing systems that authenticate by using PIN prefixes,
> specially when one of the parties is not a user but a PSTN number. On my
> billing platform it wont work, it complains about the discrepancy, and the
> fact that when the callee hangs up it doesn't recognize that the CDR is for
> a PSTN user.
>
> Lenir
>
> -----Original Message-----
> From: 'Jan Janak' [mailto:jan at iptel.org]
> Sent: Wednesday, November 16, 2005 3:45 PM
> To: Lenir
> Cc: serdev at iptel.org; serusers at iptel.org; users at openser.org;
> devel at openser.org
> Subject: Re: [Users] RE: [Serusers] Re: [Serdev] Inaccurate Radius
> Accounting
>
> Yes, this can happen if the callee sends BYE. In this case the URIs in
>>From and To header fields are swapped.
>
> The only SIP RADIUS related document (which has expired a long time ago)
> says that Calling-Station-Id is the URI from From header field of any
> SIP request. Thus -- according this I-D it is correct. But use of RADIUS
> with SIP is underspecified so there is no real standard for this.
>
> I don't think it matters that much, because other attributes, namely
> Acct-Session-Id are used to match start and stop radius requests.
>
> We could determine who sent the BYE from the value of ftag parameter in
> Route header field and swap the values, the question is whether this
> makes sense. The billing system could take all info from start requests
> and use the stop request to calculate the session duration only.
>
> Jan.
>
> On 16-11-2005 15:04, Lenir wrote:
>
>>Ok, that put the right things in place. However, here's a twist:
>>Either way, wit switching Sip-Translated-Request-URI and Called-Station-ID
>>around, or not, the CDRs are sent differently depending on who "hands up"
>>the call. For example, notice the User-Name, Calling-Station-ID and
>>Called-Station-ID:
>>
>>User 1000 calls 15615551212, and user 1000 hangs up:
>>=====================================================
>>rad_recv: Accounting-Request packet from host xx.xx.xx.xx:39228, id=206,
>>length=306
>> Acct-Status-Type = Start
>> Service-Type = Sip-Session
>> Acct-Terminate-Cause = 200
>> Error-Cause = Invite
>> User-Name = "1000 at xx.xx.xx.xx"
>> Calling-Station-Id = "sip:1000 at xx.xx.xx.xx"
>> Sip-Translated-Request-URI =
>>"sip:15615551212 at xx.xx.xx.xx;user=phone"
>> Called-Station-Id =
>>"sip:949449852150#15615551212 at gateway;user=phone"
>> Acct-Session-Id =
>
> "000d2890-d47f01f5-6410e8bd-4baf0435 at 66.232.8.116"
>
>> Sip-To-Tag = "33C5A3C-76A"
>> Sip-From-Tag = "000d2890d47f24f85e6c0b91-0092ab53"
>> Sip-CSeq = "102"
>> NAS-IP-Address = xx.xx.xx.xx
>> NAS-Port = 5060
>> Acct-Delay-Time = 0
>>rlm_sql (sql): Reserving sql socket id: 15
>>rlm_sql (sql): Released sql socket id: 15
>>Sending Accounting-Response of id 206 to xx.xx.xx.xx:39228
>>rad_recv: Accounting-Request packet from host xx.xx.xx.xx:39228, id=207,
>>length=300
>> Acct-Status-Type = Stop
>> Service-Type = Sip-Session
>> Acct-Terminate-Cause = 200
>> Error-Cause = 8
>> User-Name = "1000 at xx.xx.xx.xx"
>> Calling-Station-Id = "sip:1000 at xx.xx.xx.xx"
>> Sip-Translated-Request-URI =
>>"sip:15615551212 at xx.xx.xx.xx;user=phone"
>> Called-Station-Id =
>>"sip:949449852150#15615551212 at gateway:5060"
>> Acct-Session-Id =
>
> "000d2890-d47f01f5-6410e8bd-4baf0435 at 66.232.8.116"
>
>> Sip-To-Tag = "33C5A3C-76A"
>> Sip-From-Tag = "000d2890d47f24f85e6c0b91-0092ab53"
>> Sip-CSeq = "103"
>> NAS-IP-Address = xx.xx.xx.xx
>> NAS-Port = 5060
>> Acct-Delay-Time = 0
>>
>>
>>User 1000 calls 15615551212, and user 15615551212 hangs up:
>>===========================================================
>>
>>rad_recv: Accounting-Request packet from host xx.xx.xx.xx:39227, id=200,
>>length=306
>> Acct-Status-Type = Start
>> Service-Type = Sip-Session
>> Acct-Terminate-Cause = 200
>> Error-Cause = Invite
>> User-Name = "1000 at xx.xx.xx.xx"
>> Calling-Station-Id = "sip:1000 at xx.xx.xx.xx"
>> Sip-Translated-Request-URI =
>>"sip:15615551212 at xx.xx.xx.xx;user=phone"
>> Called-Station-Id =
>>"sip:949449852150#15615551212 at gateway;user=phone"
>> Acct-Session-Id =
>
> "000d2890-d47f01f4-372dff4b-793d4acc at 66.232.8.116"
>
>> Sip-To-Tag = "33B37E4-77B"
>> Sip-From-Tag = "000d2890d47f24f639ccef77-4ef08b02"
>> Sip-CSeq = "102"
>> NAS-IP-Address = xx.xx.xx.xx
>> NAS-Port = 5060
>> Acct-Delay-Time = 0
>>rlm_sql (sql): Reserving sql socket id: 1
>>rlm_sql (sql): Released sql socket id: 1
>>Sending Accounting-Response of id 200 to xx.xx.xx.xx:39227
>>rad_recv: Accounting-Request packet from host xx.xx.xx.xx:39227, id=201,
>>length=286
>> Acct-Status-Type = Stop
>> Service-Type = Sip-Session
>> Acct-Terminate-Cause = 200
>> Error-Cause = 8
>> User-Name = "15615551212 at xx.xx.xx.xx"
>> Calling-Station-Id = "sip:15615551212 at xx.xx.xx.xx;user=phone"
>> Sip-Translated-Request-URI = "sip:1000 at xx.xx.xx.xx"
>> Called-Station-Id = "sip:1000 at 66.232.8.116:5061"
>> Acct-Session-Id =
>
> "000d2890-d47f01f4-372dff4b-793d4acc at 66.232.8.116"
>
>> Sip-To-Tag = "000d2890d47f24f639ccef77-4ef08b02"
>> Sip-From-Tag = "33B37E4-77B"
>> Sip-CSeq = "101"
>> NAS-IP-Address = xx.xx.xx.xx
>> NAS-Port = 5060
>> Acct-Delay-Time = 0
>>
>>
>>Shouldn't it always be that the User-Name attribute is the user who
>>initiated the call?
>>
>>Lenir
>>
>>-----Original Message-----
>>From: users-bounces at openser.org [mailto:users-bounces at openser.org] On
>
> Behalf
>
>>Of 'Jan Janak'
>>Sent: Wednesday, November 16, 2005 1:53 PM
>>To: lsantiago at globalgatewaycom.com
>>Cc: serdev at iptel.org; serusers at iptel.org; users at openser.org;
>>devel at openser.org
>>Subject: Re: [Users] RE: [Serusers] Re: [Serdev] Inaccurate Radius
>>Accounting
>>
>>Either reconfigure the billing application to use
>>Sip-Translated-Request-URI (recommended) or change the ID of the
>>attribute in the radiusclient dictionary as suggested by Bogdan.
>>
>>In this particular example you should set Called-Station-Id to 107.
>>
>> Jan.
>>
>>On 16-11-2005 13:09, 'Lenir' wrote:
>>
>>>Ok, so how do I tell acc.so to send Sip-Translated-Request-URI as the
>>>Called-Station-ID instead?
>>>
>>>Lenir Santiago, Partner
>>>Global Gateway Communications, Inc.
>>>2500 Quantum Lakes Drive, Ste. 203
>>>Boynton Beach, FL 33426
>>>Office: 561-853-2213
>>>Cell: 561-722-0966
>>>Fax: 877-875-0060
>>>http://www.globalgatewaycom.com
>>>
>>>-----Original Message-----
>>>From: 'Jan Janak' [mailto:jan at iptel.org]
>>>Sent: Wednesday, November 16, 2005 11:29 AM
>>>To: Bogdan-Andrei Iancu
>>>Cc: Lenir; 'Lenir Santiago'; serdev at iptel.org; serusers at iptel.org;
>>>devel at openser.org; users at openser.org
>>>Subject: Re: [Users] RE: [Serusers] Re: [Serdev] Inaccurate Radius
>>>Accounting
>>>
>>>Why would you do something like this ? All the info that is needed is in
>>>Sip-Translated-Ruquest-ID below. You can see it in the RADIUS dump:
>>>
>>>Sip-Translated-Request-URI = "sip:949449852150#15615551212 at gateway:5060"
>>>
>>> Jan.
>>>
>>>On 16-11-2005 16:50, Bogdan-Andrei Iancu wrote:
>>>
>>>>Hi Lenir,
>>>>
>>>>you can keep the modified To value into an AVP and use the extra
>>>>accounting feature to log it. See
>>>> http://www.openser.org/docs/modules/1.1.x/acc.html#AEN115
>>>>and
>>>> http://www.openser.org/docs/modules/1.1.x/acc.html#AEN350
>>>>
>>>>the problem is how to set it as Called-Station-ID attribute in order
>
> to
>
>>>>avoid overlapping. You can do a trick by playing with the radius
>>>>dictionary (on proxy side) :
>>>> changed the Called-Station-ID to a different ID attribute
>>>> set extra accounting with the original attribute ID of
>>>
>>>Called-Station-ID
>>>
>>>>in this way the acc will set de default TO as something else and you
>
> AVP
>
>>>>as Called-Station-ID ;)
>>>>
>>>>regards,
>>>>bogdan
>>>>
>>>>
>>>>Lenir wrote:
>>>>
>>>>
>>>>>Well, if userA dials to:30, 30 gets translated to:15615551212 and SER
>>>
>>>dials
>>>
>>>>>15615551212, how can I make the acc.so module send the modified
>>>>>to:15615551212 as the Called-Station-ID attribute?
>>>>>
>>>>>This is important for billing, specially if someone forwards to a
>
> long
>
>>>>>distance or international long distance number.
>>>>>
>>>>>-----Original Message-----
>>>>>From: serusers-bounces at iptel.org [mailto:serusers-bounces at iptel.org]
>
> On
>
>>>>>Behalf Of Jan Janak
>>>>>Sent: Wednesday, November 16, 2005 3:15 AM
>>>>>To: Lenir Santiago
>>>>>Cc: serdev at iptel.org; serusers at iptel.org; users at openser.org;
>>>>>devel at openser.org
>>>>>Subject: [Serusers] Re: [Serdev] Inaccurate Radius Accounting
>>>>>
>>>>>Hello,
>>>>>
>>>>>Called-Station-Id attribute always contains the To URI (not
>>>>>Request-URI). You can find the outbound Request-URI in
>>>>>Sip-Translated-Request-URI attribute.
>>>>>
>>>>>Even if you rewrite To header field, it will never be accounted in
>>>>>Called-Station-Id.
>>>>>
>>>>>Jan.
>>>>>
>>>>>On 15-11-2005 21:59, Lenir Santiago wrote:
>>>>>
>>>>>
>>>>>
>>>>>>Hey guys,
>>>>>>
>>>>>>
>>>>>>
>>>>>>I'm using Radius to do pretty much everything regarding my users,
>
> i.e.
>
>>>>>>registrations, authorization, features and preferences. I
>
> implemented
>
>>my
>>
>>>>>>
>>>>>>
>>>>>
>>>>>own
>>>>>
>>>>>
>>>>>
>>>>>>way of doing speeddial by using AVPs provided by radius and AVPOPs
>>>
>>>module,
>>>
>>>>>>Here is the snippet:
>>>>>>
>>>>>>
>>>>>>
>>>>>>AVP-SIP = speedial:30:15615551212
>>>>>>
>>>>>>
>>>>>>
>>>>>> avp_subst("s:caller_speedial/i:99",
>
> "/(.*):(.*)/\2/");
>
>>>>>>#15615551212
>>>>>>
>>>>>> avp_printf("i:98","$rU:*"); #30
>>>>>>
>>>>>> avp_printf("i:97","sip:$avp($temp2)@$td"); #
>>>>>>sip:15615551212 at xx.xx.xx.xx
>>>>>>
>>>>>> avp_printf("i:96","<sip:$avp($temp2)@$td>\r\n"); #
>>>>>><sip:15615551212 at xx.xx.xx.xx>.
>>>>>>
>>>>>> xlog("L_N"," SPEEDIALING: $fU is speed-dialing
>>>>>>$hdr(To)->$avp($temp2)\n");
>>>>>>
>>>>>> if (avp_check("s:caller_speedial", "fm/$temp1/g")) {
>>>>>>
>>>>>>
>>>>>>
>>>>>> #avp_pushto("$To","i:96");
>>>>>>
>>>>>> #avp_pushto("$ruri","i:97");
>>>>>>
>>>>>> #avp_pushto("$duri","i:97");
>>>>>>
>>>>>> #subst('/^To: (.*)@(.*)/To: "$avp($temp2)"
>>>>>><$avp($temp2)@\2/');
>>>>>>
>>>>>> #append_hf("To: \"5615551212\"
>>>>>><15615551212 at xx.xx.xx.xx>;user=phone");
>>>>>>
>>>>>>
>>>>>>#subst_uri('/^sip:(.*)@(.*)$/sip:$avp($temp2)@\2/i');
>>>>>>
>>>>>> #subst_user('/(.*)/$avp($temp2)/');
>>>>>>
>>>>>> #remove_hf("To");
>>>>>>
>>>>>> rewriteuser("15615551212");
>>>>>>
>>>>>> xlog("L_N"," SPEEDIALING: $fU is dialing
>>>>>>
>>>>>>
>>>>>
>>>>>$hdr(To)
>>>>>
>>>>>
>>>>>
>>>>>>$avp($temp2)\n");
>>>>>>
>>>>>> avp_delete("$temp1/g");
>>>>>>
>>>>>> avp_delete("$temp2/g");
>>>>>>
>>>>>>
>>>>>>
>>>>>> };
>>>>>>
>>>>>>
>>>>>>
>>>>>>In this scenario, im forcing it instead of getting the value from
>
> AVPs
>
>>>>>>
>>>>>>
>>>>>
>>>>>just
>>>>>
>>>>>
>>>>>
>>>>>>for ease of showing my point. The problem that I'm having is that no
>>>>>>
>>>>>>
>>>>>
>>>>>matter
>>>>>
>>>>>
>>>>>
>>>>>>what I do to change the To header or change the R-URI, radius ALWAYS
>>>
>>>sends
>>>
>>>>>>the accounting records with the original R-URI, in my case
>>>
>>>30 at xx.xx.xx.xx,
>>>
>>>>>>how can I get acc.so to send the final resulting URI
>>>>>>(15615551212 at xx.xx.xx.xx) in the Called-Station-Id AVP?
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>rad_recv: Accounting-Request packet from host xx.xx.xx.xx:39216,
>>
>>id=97,
>>
>>>>>>length=298
>>>>>>
>>>>>> Acct-Status-Type = Start
>>>>>>
>>>>>> Service-Type = Sip-Session
>>>>>>
>>>>>> Acct-Terminate-Cause = 200
>>>>>>
>>>>>> Error-Cause = Invite
>>>>>>
>>>>>> User-Name = "1000 at xx.xx.xx.xx"
>>>>>>
>>>>>> Calling-Station-Id = "sip:1000 at xx.xx.xx.xx"
>>>>>>
>>>>>> Called-Station-Id = "sip:30 at xx.xx.xx.xx;user=phone"
>>>>>>
>>>>>> Sip-Translated-Request-URI =
>>>>>>"sip:949449852150#15615551212 at gateway;user=phone"
>>>>>>
>>>>>> Acct-Session-Id =
>>>>>>
>>>>>>
>>>>>
>>>>>"000d2890-d47f01e8-1dcc30bc-7a49c7a4 at yy.yy.yy.yy"
>>>>>
>>>>>
>>>>>
>>>>>> Sip-To-Tag = "230383F4-2AF"
>>>>>>
>>>>>> Sip-From-Tag = "000d2890d47f20f54576a906-290bdc33"
>>>>>>
>>>>>> Sip-CSeq = "102"
>>>>>>
>>>>>> NAS-IP-Address = xx.xx.xx.xx
>>>>>>
>>>>>> NAS-Port = 5060
>>>>>>
>>>>>> Acct-Delay-Time = 0
>>>>>>
>>>>>>rlm_sql (sql): Reserving sql socket id: 12
>>>>>>
>>>>>>rlm_sql (sql): Released sql socket id: 12
>>>>>>
>>>>>>Sending Accounting-Response of id 97 to xx.xx.xx.xx:39216
>>>>>>
>>>>>>rad_recv: Accounting-Request packet from host xx.xx.xx.xx:39216,
>>
>>id=98,
>>
>>>>>>length=292
>>>>>>
>>>>>> Acct-Status-Type = Stop
>>>>>>
>>>>>> Service-Type = Sip-Session
>>>>>>
>>>>>> Acct-Terminate-Cause = 200
>>>>>>
>>>>>> Error-Cause = 8
>>>>>>
>>>>>> User-Name = "1000 at xx.xx.xx.xx"
>>>>>>
>>>>>> Calling-Station-Id = "sip:1000 at xx.xx.xx.xx"
>>>>>>
>>>>>> Called-Station-Id = "sip:30 at xx.xx.xx.xx;user=phone"
>>>>>>
>>>>>> Sip-Translated-Request-URI =
>>>>>>"sip:949449852150#15615551212 at gateway:5060"
>>>>>>
>>>>>> Acct-Session-Id =
>>>>>>
>>>>>>
>>>>>
>>>>>"000d2890-d47f01e8-1dcc30bc-7a49c7a4 at yy.yy.yy.yy"
>>>>>
>>>>>
>>>>>
>>>>>> Sip-To-Tag = "230383F4-2AF"
>>>>>>
>>>>>> Sip-From-Tag = "000d2890d47f20f54576a906-290bdc33"
>>>>>>
>>>>>> Sip-CSeq = "103"
>>>>>>
>>>>>> NAS-IP-Address = xx.xx.xx.xx
>>>>>>
>>>>>> NAS-Port = 5060
>>>>>>
>>>>>> Acct-Delay-Time = 0
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>Thanks in advance!
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>Lenir
>>>>>>_______________________________________________
>>>>>>Users mailing list
>>>>>>Users at openser.org
>>>>>>http://openser.org/cgi-bin/mailman/listinfo/users
>>>>>>
>>>>>>
>>>>>>
>>>
>>_______________________________________________
>>Users mailing list
>>Users at openser.org
>>http://openser.org/cgi-bin/mailman/listinfo/users
>>
>
>
>
>
> _______________________________________________
> Users mailing list
> Users at openser.org
> http://openser.org/cgi-bin/mailman/listinfo/users
>
>
More information about the Devel
mailing list