Hello,

i was working on a similar problem. I followed the acc-dialog -> (r)syslog 
approach.
In rsyslog I piped the message to a script, which appends the message as a 
xml-record to a file in "/var/log/kamailio-call.log“.
(This script might be useful for you to adapt to your needs.)

module(load="omprog“)
local6.* action(type="omprog" binary="/etc/rsyslog-cdr-script.sh")

and my script looks like

#! /bin/ash
Log=/var/log/kamailio-call.log
read fromstdin;
while read fromstdin; do
   echo $fromstdin | sed -e "s/^[^;]* \(.*=\)/\1/" -e 
"s/\(time=[0-9]*\)\.[0-9]*/\1/g" -e "s/\([^=;]*\)=\([^;]*\(;[^ 
][^=]*=[^;]*\)*\); / <\1>\2<\/\1>; /g" -e "s/ \([^=;]*\)=\([^;]*\(;[^ 
][^=]*=[^;]*\)*\)$/ <\1>\2<\/\1>/" | awk 'BEGIN {FS=";"; printf "<call>"} { i = 
1; while(i < NF){if(index($i,"time>")>0) { time_value = $i; 
gsub("<[^>]*>","",time_value); sub(">[^<]*", strftime(">%Y-%m-%dT%H:%M:%S", 
time_value), $i); } printf $i;  i = i+1;} } END {print "</call>"}' >> $Log
done

Here a little explanation that might be helpful to understand the commands:
The sed-command 
*) removes the front syslog-stuff
*) trunks all the post dot digit from any entry that names ends with „time" and 
*) converts it to xml-syntax (one extra for the last entry)

The awk command converts the (trunked) timestamps into a "human-readable“ 
format and adds the enclosing „call“ syntax.
(If you exactly know what your syslog entry syntax is, you might simplify the 
script statements a lot … )

I hope this helps a little.

Regards
Jan-Hendrik


> Am 07.04.2019 um 12:42 schrieb Henning Westerholt <h...@skalatan.de>:
> 
> Hello,
> 
> some starting points:
> 
> - use dlg_manage() or set a dialog flag in the cfg to start dialog tracking
> 
> - setup the dialog event routes (section 11 in README) and put your 
> logging logic there
> 
> Best regards,
> 
> Henning
> 
> Am 06.04.19 um 11:29 schrieb Yu Boot:
>> How to make something on dialog event? Just can't figure it out after 
>> reading module docs :(
>> 
>> 
>> 06.04.2019 2:09, David Villasmil пишет:
>>> You can always export the cdr table periodically.
>>> Take a look at siremis. And when the trigger fires every 5 minutes to 
>>> create the cdrs, just export them.
>>> 
>>> 
>>> Also, as it’s been said, you can use the dialog and when the call 
>>> ends gather all the info and just print it out. You can direct it to 
>>> rsyslog to save it anywhere you want.
>>> 
>> 
>> _______________________________________________
>> Kamailio (SER) - Users Mailing List
>> sr-users@lists.kamailio.org
>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
> 
> -- 
> Henning Westerholt - https://skalatan.de/blog/
> Kamailio services - https://skalatan.de/services
> 
> _______________________________________________
> Kamailio (SER) - Users Mailing List
> sr-users@lists.kamailio.org
> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users

_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to