Olivier
2013-Mar-29 10:02 UTC
[asterisk-users] Asterisk 11 - Change CDR in hangup exten [Was: CDR values changed in hangup handler not saved]
2013/3/29 Julian Lyndon-Smith <asterisk at dotr.com>> check out the endbeforehexten option in cdr.conf > > this needs to set to "yes" > > Julian >Unfortunately, this doesn't help. Let's drop the hangup handler at the moment, and focus on the "saving to file" part. Then my issue is I can't update CDR value is hangup exten. Here is a dialplan that illustrate this: [from-foobar] exten => _X.,1,Verbose(0,Entering context ${CONTEXT} from channel ${CHANNEL(channeltype)} ${CHANNEL} with EXTEN and CID set to ${EXTEN} and ${CALLERID(num)}) same => n, Set(CDR(userfield)=foo) same => n, Dial(SIP/foobar/${EXTEN}) same => n, Set(CDR(userfield)=bar) same => n, Hangup() exten => h,1,Verbose(0,Entering context ${CONTEXT} from ${CHANNEL(channeltype)} channel ${CHANNEL} with EXTEN and CID set to ${EXTEN} and ${CALLERID(num)}) same => n, ExecIf($["x${CHANNEL(channeltype)}"="xLocal"]?Set(CDR(userfield)=baz1:baz2) My goal is to get either baz1 or baz2 value in /var/log/asterisk/cdr-csv/Master.csv. Typing channel originate Local/7005 at from-foobar application Playback tt-monkeys, I can see that the line with ExecIf is run but CDR still contains foo value (the one set before Dial). The strange thing is : 1. a CDR is written at the moment extension 7005 answers, 2. no other CDR is added when 7005 hangs up (so can't tell how long extension 7005 listened to monkeys fellows). (Setting endbeforehexten to either yes or no has no effect on this behaviour. My question are: 1. Is it simply possible to update CDR in hangup exten ? 2. How can I have a CDR for the application Playback part (see above) ? 3. Any tip or suggestion ? Cheers -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20130329/a689df12/attachment.htm>
Julian Lyndon-Smith
2013-Mar-29 12:49 UTC
[asterisk-users] Asterisk 11 - Change CDR in hangup exten [Was: CDR values changed in hangup handler not saved]
Ah, right. Have a look at this documentation: You may need to add some mapping Julian cdr_custom This CDR backend allows for custom formatting of CDR records in a log file. This module is most commonly used for customized CSV output. The configuration file used for this module is /etc/asterisk/cdr_custom.conf. A single section called [mappings] should exist in this file. The [mappings] section contains mappings between a filename and the custom template for a CDR. The template is specified using Asterisk dialplan functions. The following example shows a sample configuration for cdr_custom that enables a single CDR log file, Master.csv. This file will be created as /var/log/asterisk/cdr-custom/Master.csv. The template that has been defined uses both the CDR() and CSV_QUOTE() dialplan functions. The CDR() function retrieves values from the CDR being logged. The CSV_QUOTE() function ensures that the values are properly escaped for the CSV file format: [mappings] Master.csv => ${CSV_QUOTE(${CDR(clid)})},${CSV_QUOTE(${CDR(src)})}, ${CSV_QUOTE(${CDR(dst)})},${CSV_QUOTE(${CDR(dcontext)})}, ${CSV_QUOTE(${CDR(channel)})},${CSV_QUOTE(${CDR(dstchannel)})}, ${CSV_QUOTE(${CDR(lastapp)})},${CSV_QUOTE(${CDR(lastdata)})}, ${CSV_QUOTE(${CDR(start)})},${CSV_QUOTE(${CDR(answer)})}, ${CSV_QUOTE(${CDR(end)})},${CSV_QUOTE(${CDR(duration)})}, ${CSV_QUOTE(${CDR(billsec)})},${CSV_QUOTE(${CDR(disposition)})}, ${CSV_QUOTE(${CDR(amaflags)})},${CSV_QUOTE(${CDR(accountcode)})}, ${CSV_QUOTE(${CDR(uniqueid)})},${CSV_QUOTE(${CDR(userfield)})} In the actual configuration file, the value in the Master.csv mapping should be on a single line. cdr_manager On 29 March 2013 10:02, Olivier <oza_4h07 at yahoo.fr> wrote:> > > > 2013/3/29 Julian Lyndon-Smith <asterisk at dotr.com> > >> check out the endbeforehexten option in cdr.conf >> >> this needs to set to "yes" >> >> Julian >> > > > Unfortunately, this doesn't help. > > Let's drop the hangup handler at the moment, and focus on the "saving to > file" part. > Then my issue is I can't update CDR value is hangup exten. > > Here is a dialplan that illustrate this: > > [from-foobar] > exten => _X.,1,Verbose(0,Entering context ${CONTEXT} from channel > ${CHANNEL(channeltype)} ${CHANNEL} with EXTEN and CID set to ${EXTEN} and > ${CALLERID(num)}) > same => n, Set(CDR(userfield)=foo) > same => n, Dial(SIP/foobar/${EXTEN}) > same => n, Set(CDR(userfield)=bar) > same => n, Hangup() > > exten => h,1,Verbose(0,Entering context ${CONTEXT} from > ${CHANNEL(channeltype)} channel ${CHANNEL} with EXTEN and CID set to > ${EXTEN} and ${CALLERID(num)}) > same => n, > ExecIf($["x${CHANNEL(channeltype)}"="xLocal"]?Set(CDR(userfield)=baz1:baz2) > > My goal is to get either baz1 or baz2 value in > /var/log/asterisk/cdr-csv/Master.csv. > > Typing channel originate Local/7005 at from-foobar application Playback > tt-monkeys, I can see that the line with ExecIf is run but CDR still > contains foo value (the one set before Dial). > The strange thing is : > 1. a CDR is written at the moment extension 7005 answers, > 2. no other CDR is added when 7005 hangs up (so can't tell how long > extension 7005 listened to monkeys fellows). > (Setting endbeforehexten to either yes or no has no effect on this > behaviour. > > > My question are: > 1. Is it simply possible to update CDR in hangup exten ? > 2. How can I have a CDR for the application Playback part (see above) ? > 3. Any tip or suggestion ? > > Cheers > > -- > _____________________________________________________________________ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > New to Asterisk? Join us for a live introductory webinar every Thurs: > http://www.asterisk.org/hello > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users >-- Julian Lyndon-Smith IT Director, Dot R Limited "I don?t care if it works on your machine! We are not shipping your machine!? The kangaroo dances: http://www.youtube.com/watch?v=MAWl5iYOaUg -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20130329/956e30cf/attachment.htm>