Hello,
Attached is a patch that implements "swap_direction" parameter of acc module. If you turn the parameter on in the configuration file:
modparam("acc", "swap_direction", 1)
then the acc module will swap Calling-Station-ID and Called-Station-ID values when necessary (in this case BYE comming from the callee).
Put the patch in top level source directory (ser-0.9.x) and type: patch -p0 < swap.patch
The patch should work with any 0.9.x release.
Note that Alan DeKok is wrong in thinking that this is a bug in SER. This particular problem is a result of incomplete specification of RADIUS use with SIP. I will commit the patch in CVS so it will be included in future SER releases.
Jan.
On 23-12-2005 17:10, Lenir wrote:
Please read the reply below from one of the maintainers of freeradius:
"Lenir" lenirsantiago@yahoo.com wrote:
But if UserB hangs up on UserA: SER generates a stop-record where the Calling-Station-Id is UserB and the Called-Station-Id is UserA, this is the undesired and incorrect behavior.
It would appear to be a bug in SER.
To me the Calling-Station-Id and the Called-Station-Id should be the same for both start and stop records, am I right by thinking that?
Yes.
According to the developers of SER/OpenSER, this is the correct behavior, whoever sends the hangup signal (BYE or CANCEL) is considered the Calling-Station-Id, and they are unwilling to modify or create a patch to "fix" this.
What they do for something inside of SER is their business. When they generate RADIUS packets, they should follow RADIUS standards and interoperability. The expectation, as you said, is that the Calling/Called-Station-Id doesn't change during a session. If it does, it's a bug and they should fix it.
Alan DeKok.
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
-----Original Message----- From: 'Jan Janak' [mailto:jan@iptel.org] Sent: Thursday, November 17, 2005 10:33 AM To: Lenir Cc: 'Klaus Darilion'; serdev@iptel.org; serusers@iptel.org; devel@openser.org; users@openser.org Subject: Re: [Users] RE: [Serusers] Re: [Serdev] Inaccurate Radius Accounting
On 17-11-2005 10:21, Lenir wrote:
In this case the radius proxy wont work, because you never can anticipate who hangs up the call, thus radius wont know who hung up the
call...Besides
all other voice applications/hardware (SIP and H323) that use radius do
not
behave like that, the Called-Station-ID ALWAYS remains the same, as with
the
Calling-Station-ID.
Could you name those SIP applications that behave the way you describe ?
Jan.
'Jan Janak' wrote:
Hello,
Attached is a patch that implements "swap_direction" parameter of acc module. If you turn the parameter on in the configuration file:
modparam("acc", "swap_direction", 1)
then the acc module will swap Calling-Station-ID and Called-Station-ID values when necessary (in this case BYE comming from the callee).
Does this patch works only for radius or also for db accouning?
klaus
Put the patch in top level source directory (ser-0.9.x) and type: patch -p0 < swap.patch
The patch should work with any 0.9.x release.
Note that Alan DeKok is wrong in thinking that this is a bug in SER. This particular problem is a result of incomplete specification of RADIUS use with SIP. I will commit the patch in CVS so it will be included in future SER releases.
Jan.
On 23-12-2005 17:10, Lenir wrote:
Please read the reply below from one of the maintainers of freeradius:
"Lenir" lenirsantiago@yahoo.com wrote:
But if UserB hangs up on UserA: SER generates a stop-record where the Calling-Station-Id is UserB and the Called-Station-Id is UserA, this is the undesired and incorrect behavior.
It would appear to be a bug in SER.
To me the Calling-Station-Id and the Called-Station-Id should be the same for both start and stop records, am I right by thinking that?
Yes.
According to the developers of SER/OpenSER, this is the correct behavior, whoever sends the hangup signal (BYE or CANCEL) is considered the Calling-Station-Id, and they are unwilling to modify or create a patch to "fix" this.
What they do for something inside of SER is their business. When they generate RADIUS packets, they should follow RADIUS standards and interoperability. The expectation, as you said, is that the Calling/Called-Station-Id doesn't change during a session. If it does, it's a bug and they should fix it.
Alan DeKok.
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
-----Original Message----- From: 'Jan Janak' [mailto:jan@iptel.org] Sent: Thursday, November 17, 2005 10:33 AM To: Lenir Cc: 'Klaus Darilion'; serdev@iptel.org; serusers@iptel.org; devel@openser.org; users@openser.org Subject: Re: [Users] RE: [Serusers] Re: [Serdev] Inaccurate Radius Accounting
On 17-11-2005 10:21, Lenir wrote:
In this case the radius proxy wont work, because you never can anticipate who hangs up the call, thus radius wont know who hung up the
call...Besides
all other voice applications/hardware (SIP and H323) that use radius do
not
behave like that, the Called-Station-ID ALWAYS remains the same, as with
the
Calling-Station-ID.
Could you name those SIP applications that behave the way you describe ?
Jan.
On 29-12-2005 12:50, Klaus Darilion wrote:
'Jan Janak' wrote:
Hello,
Attached is a patch that implements "swap_direction" parameter of acc module. If you turn the parameter on in the configuration file:
modparam("acc", "swap_direction", 1)
then the acc module will swap Calling-Station-ID and Called-Station-ID values when necessary (in this case BYE comming from the callee).
Does this patch works only for radius or also for db accouning?
Just for radius. I did not implement it for other accounting backend because I have no use for it. Patches are welcome (it is trivial).
Jan.