Alonso Genis
2014-Nov-20 18:10 UTC
[asterisk-users] Error saving cdr at h exten in Asterisk13
Dears, I need to save some information on userfield when calls end in Asterisk13, but I have two error cases: 1. With endbeforehexten=no in cdr.conf, I have a registry in cdr, but userfield is not set. 2. With endbeforehexten=yes, I have two lines in cdr, one with duration, src e dst correct, and a second line with userfield setting and dst h. I am using cdr_odbc.conf, with Asterisk11.14.0 it works fine. May be this is a bug in asterisk13's cdr? pabx=# select calldate,src,dst,duration,billsec,uniqueid,userfield from cdr order by calldate desc limit 2; calldate | src | dst | duration | billsec | uniqueid | userfield ------------------------+------+------+----------+---------+--------------+----------- 2014-11-20 14:37:03-02 | 1901 | h | 0 | 0 | 1416501411.0 | teste 2014-11-20 14:36:51-02 | 1901 | 1234 | 11 | 9 | 1416501411.0 | (2 registros) Atenciosamente, Alonso Genis Analista de Desenvolvimento alonso at planetfone.com.br
Matthew Jordan
2014-Nov-20 18:17 UTC
[asterisk-users] Error saving cdr at h exten in Asterisk13
On Thu, Nov 20, 2014 at 12:10 PM, Alonso Genis <alonso at planetfone.com.br> wrote:> Dears, > > I need to save some information on userfield when calls end in Asterisk13, but I have two error cases: > > 1. With endbeforehexten=no in cdr.conf, I have a registry in cdr, but userfield is not set. > 2. With endbeforehexten=yes, I have two lines in cdr, one with duration, src e dst correct, and a second line with userfield setting and dst h. > > I am using cdr_odbc.conf, with Asterisk11.14.0 it works fine. May be this is a bug in asterisk13's cdr? > > > > > pabx=# select calldate,src,dst,duration,billsec,uniqueid,userfield from cdr order by calldate desc limit 2; > calldate | src | dst | duration | billsec | uniqueid | userfield > ------------------------+------+------+----------+---------+--------------+----------- > 2014-11-20 14:37:03-02 | 1901 | h | 0 | 0 | 1416501411.0 | teste > 2014-11-20 14:36:51-02 | 1901 | 1234 | 11 | 9 | 1416501411.0 | > (2 registros) >If you are setting the userfield in the 'h' extension, then this is what I would expect. CDRs are finalized when the path of communication between channels is finished; altering the data after that point updates the next CDR for that channel. It isn't retroactive. The 'h' extension is special in that 'endbeforehexten' explicitly ignores updates in 'h' extension. If you disable 'endbeforehexten', then you will get a CDR for the channel while it updates the hangup logic - but again, modifications occur on that CDR, not on previous ones. If you want the CDR for the channel prior to the 'h' extension to have a userfield entry, you have to apply it before the channel hangs up. -- Matthew Jordan Digium, Inc. | Engineering Manager 445 Jan Davis Drive NW - Huntsville, AL 35806 - USA Check us out at: http://digium.com & http://asterisk.org
Possibly Parallel Threads
- Asterisk13 don't execute h exten inside macros
- Asterisk 11 - Change CDR in hangup exten [Was: CDR values changed in hangup handler not saved]
- Modifying CDR values from a hangup extension in Asterisk 13
- Possible Bug (Include ${HANGUPCAUSE} in CDR)
- Modifying CDR values from a hangup extension in Asterisk 13