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