[asterisk-users] Asterisk 11 - Change CDR in hangup exten [Was: CDR values changed in hangup handler not saved]

Julian Lyndon-Smith asterisk at dotr.com
Fri Mar 29 12:24:16 CDT 2013


you can't set values in the h extension _unless_ you use the
endbeforehexten option in cdr.conf

you may need to reload the cdr module or restart asterisk for the
option to take effect.

It works. I know it does, as I use hangup handlers all the time. Much
better than the h extension ;)


Julian

On 29 March 2013 14:06, Olivier <oza_4h07 at yahoo.fr> wrote:
> Thanks but I willingly choose a standard CDR field (I checked with both
> accountcode and userfield) which appears in
> /var/log/asterisk/cdr-csv/Master.csv (to keep cdr-cusdom/Master.csv away to
> simplify things)
> the fact found in Master.csv is  foo, the value set before entering the
> hangup extension (see previous dialplan)).
>
> To me, this is either a feature ("you can't set CDR values in hangup exten")
> or a bug.
>
> How would you qualify this ?
>
>
> 2013/3/29 Julian Lyndon-Smith <asterisk at dotr.com>
>>
>> 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
>>
>> --
>> _____________________________________________________________________
>> -- 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
>
>
>
> --
> _____________________________________________________________________
> -- 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



More information about the asterisk-users mailing list