Hi all,
as announced quite a while ago, I finally checked in code that
allows to
produce CDRs (Call Data Records) directly from SIP-Router and
generate
logs accordingly.
The main code portion resides in modules_k/acc and provides a
switch to
enable basic CDR generation including start time, end time, and
duration. Analogous to the existing logging approach, you may
define an
extra parameter covering to-be-included dialog pseudo-variables
that
must be assigned in the configuration script. The new code will
take
care of transforming the basic and custom CDR fields into CDR
logs at
the end of a dialog.
Speaking of dialogs: The implementation relies heavily on the
dialog
module. It takes advantage of dialog variables introduces by
Carsten
Bock and adds a few more features. Most notably, we had to
change the
dialog callback signature to provide both request and response
messages.
Having only one of them proved to be insufficient in certain
cases; for
instance, a locally generated 408 returned a FAKED_REPLY, thus
rendering
it impossible to access dialog variables through the PV
framework. Other
modules using dialog callbacks have been updated along the
commit,
third-party modules outside the repository will need to do so
too (and
think about whether using the request or response is the Right
Thing to do).
Due to the changes brought to the dialog module, I pushed the
new acc
and dialog code into a separate branch called treimann/acc-cdr.
Feel
free to give it a try by consulting the updated documentation
and
suggesting (or, if it's good enough, implementing :) )
improvements. A
Kamailio 1.5 backport of the code has been in usage for quite
some time
with us, so generally there shouldn't be any major logical
flaws.
SIP-Router certainly needs more testing, however, so I'd be glad
for any
feedback. My plan is to merge the code into master branch prior
to the
3.2 feature freeze, unless significant objections arise.
Finally, big-time credits go to my co-worker Sven Knoblich who
is the
main contributor of the code. He's been working on this stuff
for the
past few months and dreams in CDRs by now.
Cheers,
--Timo