"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.
So for my purposes, i need the Calling-Station-Id and the Called-Station-Id to be the same on both the star and stop records, since the start record is always correct, what do I need to do to have FR "fix" the stop record when it receives it to show the same Calling-Station-Id and the Called-Station-Id as the Start Record?
I would say it's not a FreeRADIUS issue. Rather, just inject the records into SQL as-is, and write a script to post-process the SQL database, to fix the records. Alan DeKok.