[asterisk-bugs] [Asterisk 0013022]: CDR does not get written

Asterisk Bug Tracker noreply at bugs.digium.com
Mon Aug 11 05:43:51 CDT 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=13022 
====================================================================== 
Reported By:                falves11
Assigned To:                murf
====================================================================== 
Project:                    Asterisk
Issue ID:                   13022
Category:                   CDR/General
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     closed
Asterisk Version:           SVN 
SVN Branch (only for SVN checkouts, not tarball releases):  trunk 
SVN Revision (number only!): 128951 
Disclaimer on File?:        N/A 
Request Review:              
Resolution:                 won't fix
Fixed in Version:           
====================================================================== 
Date Submitted:             2008-07-08 08:59 CDT
Last Modified:              2008-08-11 05:43 CDT
====================================================================== 
Summary:                    CDR does not get written
Description: 
I upgraded to the current version, 128951, last night, and realized that
the CDR does not get written to the database unless I use "resetCDR(w)" in
the "h" extension, which constitutes a profound change from the past
behavior. For example, I have this dialplan:

[default]
exten
=>_X.,1,Set(ARRAY(CARRIERLIST,Z,NANI,CLIST,PLIST)=${MINIXEL_ROUTING(${EXTEN},${anix},${X})})
exten =>_X.,n,NoCDR()
exten =>_X.,n,GotoIf($[${Z} = 0]?default,rejected,1)
exten =>_X.,n,Set(CALLERID(all)=${NANI})
exten =>_X.,n,Set(TIMEOUT(absolute)=3600)
exten =>_X.,n,Set(i=1)
exten =>_X.,n,ForkCDR()
exten =>_X.,n,While($[${i} <= ${Z}])
exten =>_X.,n,Set(CDR(userfield)=${CLIST}${CUT(PLIST,-,${i})})
exten =>_X.,n,Set(CDR(accountcode)=${SIPIP:1})
exten =>_X.,n,Dial(${CUT(CARRIERLIST,-,${i})},45,L(3600000)) ;dial once
;exten =>_X.,n,Verbose(0,"${DIALSTATUS} Result: ${SIPIP:1}")
exten =>_X.,n,ResetCDR(w)
exten =>_X.,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?default,dropcall,1)
exten =>_X.,n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?default,dropcall,1)
exten =>_X.,n,Set(i=$[${i} + 1])
exten =>_X.,n,EndWhile
exten =>_X.,n,Hangup(34)
exten => h,1,ResetCDR(w) ;THIS IS REQUIRED TO GET CDR IN TRUNK 128951
exten => dropcall,1,Hangup()
exten => rejected,1,Verbose(0,"Rejected:" ${destino}-From: ${SIPIP:1})
exten => rejected,2,Hangup(34)

====================================================================== 

---------------------------------------------------------------------- 
 (0091282) falves11 (reporter) - 2008-08-11 05:43
 http://bugs.digium.com/view.php?id=13022#c91282 
---------------------------------------------------------------------- 
CDR ODBC is broken in both Trunk and 1.4. It stops recording CDR after
about 1.5 hours. I tried to use cdr_tds, but it needs to record userfield,
where I store vital billing info. I wonder if you could patch cdr_tds and
of course make it permanent. We need two methods of recording cdr that can
be used for business. I cannot submit any traces becuause it just stops
working. I think the whole ODBC engine collapses, befcause func_odbc also
stops working. It is like the connection-reuse mechanism gets frozen. I can
use cdr_tds which does notr suffer from such woes, but I need userfield. My
machine is open for inspection, if I don't go out of business first. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2008-08-11 05:43 falves11       Note Added: 0091282                          
======================================================================




More information about the asterisk-bugs mailing list