Hi everybody,
I just commited on the CVS a grand ACC restructuring and clean-up. Here
is form commit log:
- simplify internal logic for preparing and message selection
- more efficient data collection
- eliminate the FMT-based accounting; instead of it, a default set of
basic values are all the time accounted; for more, extra accounting
should be used -> this leads to a more selective / flexible /
performant
accounting
- pre-builds sets of names / columns / RADIUS AVPs / DIAMETER AVPs
instead
of doing it each time a request is accounted
- "n/a" string for not found/available values replaced with empty
string ""
- eliminated a lot of un-necessary functions - heritage from the all TM
callback design (pre pre-transaction transaction)
- DB accounting table redesigned
- accounting logic separated in a new file for a better modularity.
- implemented an accounting environment for storing data; helps in
reducing
the number of function's parameters and of internal functions; more
important, useless conversions from str to int and to int again are
eliminated
The most important change was the drop of FMTs for a more flexible
system: have a basic set of values used of call matching, plus the usage
of extra accounting for anything more. The basic set is defined to :
method name
From URI
From TAG
To URI
To TAG
CallID
Cseqno
Reply code
Reply reason
Time stamp
having a timestamp generated by the proxy instead by the backend
(syslog, RADIUS server, SQL server) is important as it is more accurate
- the delays due transport to the backend server are eliminated. Also
the time is logged in UNIX timestamp format to avoid confusions about
timezones.
From how to use it (enabling acc via flags), nothing changed :)..only
some module parameters were lost. For more details, please see:
http://openser.org/docs/modules/1.2.x/acc.html
any feedback is welcomed
regards,
bogdan