[asterisk-bugs] [Asterisk 0013797]: forkcdr() doesn't fork when call disposition is ANSWERED

Asterisk Bug Tracker noreply at bugs.digium.com
Thu Nov 20 07:46:05 CST 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=13797 
====================================================================== 
Reported By:                sh0t
Assigned To:                murf
====================================================================== 
Project:                    Asterisk
Issue ID:                   13797
Category:                   Applications/app_forkcdr
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     assigned
Asterisk Version:           1.4.22 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             2008-10-29 08:59 CDT
Last Modified:              2008-11-20 07:46 CST
====================================================================== 
Summary:                    forkcdr() doesn't fork when call disposition is
ANSWERED
Description: 
Hello, I have problem with forkcdr app. (sip-sip calls)
First look at this sample dialplan

exten => s,1,answer
exten => s,n,Set(CDR(accountcode)=1001)
exten => s,n,Set(CDR(userfield)=MAIN)
exten => s,n,wait(2)
exten => s,n,ForkCDR()
exten => s,n,ResetCDR()
exten => s,n,Set(CDR(userfield)=OUTpggw1)
exten => s,n,Dial(SIP/pggw1,20)
exten => s,n,hangup

Everything works ok when that Dial result is NO ANSWER or for example
FAILED
but if I answer that call. I will see only one CDR record (that with
userfield MAIN)

(the failure scenario (with answered call))
bellow two examples of the cdr records (stored in pgsql database)
2008-10-29
14:17:58,32,32,11,pg-gw,SIP/pggw2-c8073fd0,,Dial,SIP/pggw1|20,14,6,ANSWERED,3,1001,1225286278.17290,MAIN

(the expected one, only when call disposition is NO ANSWER or billsec=0)
2008-10-29
14:19:03,32,32,11,pg-gw,SIP/pggw2-c807dd30,,ForkCDR,,10,10,ANSWERED,3,1001,1225286343.17309,MAIN
2008-10-29
14:19:05,32,32,s,test1,SIP/pggw2-c807dd30,SIP/pggw1-01139f40,Dial,SIP/pggw1|20,8,0,NO
ANSWER,3,1001,1225286343.17309,OUTpggw1

I'm using forkcdr because I need to have two cdr records. One for
incomiing call and one for that dial.

It worked for a long time with earlier versions of asterisk (for example
1.4.11)

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

---------------------------------------------------------------------- 
 (0095168) sh0t (reporter) - 2008-11-20 07:46
 http://bugs.digium.com/view.php?id=13797#c95168 
---------------------------------------------------------------------- 
hello. I've checked this problem on my test machine with other versions of
asterisk and here are the results:

asterisk 1.4.21
08-11-20 12:52,"0123456
<0123456>",123456,"s","testfork","SIP/4822349-00861cb0",,"ForkCDR",,29,27,"ANSWERED",3,"1.4.21","1227181967.0","MAIN"
08-11-20 12:52,"0123456
<0123456>",123456,"s","testfork","SIP/4822349-00861cb0","SIP/a_outp-00874fe0","Dial","SIP/a_outp/05026000xx",25,10,"ANSWERED",3,"1.4.21","1227181967.0","OUTpggw1"
asterisk 1.4.22
08-11-20 12:37,"0123456
<0123456>",123456,48223349,"ain","SIP/4822349-0085dbd0",,"Dial","SIP/a_outp/05026000xx",22,9,"ANSWERED",3,"1.4.22","1227181020.0","MAIN"
asterisk 1.4.23RC1
08-11-20 12:46,"0123456
<0123456>",123456,"s","testfork","SIP/4822349-0085ec50","SIP/a_outp-00870f00","Dial","SIP/a_outp/05026000xx",0,0,"NO
ANSWER",3,"1.4.23rc1","1227181574.0","OUTpggw1"
08-11-20 12:46,"0123456
<0123456>",123456,48223349,"ain","SIP/4822349-0085ec50",,"ForkCDR",,23,21,"ANSWERED",3,"1.4.23rc1","1227181574.0","MAIN"
08-11-20 12:46,"0123456
<0123456>",123456,"s","testfork","SIP/4822349-0085ec50","SIP/a_outp-00870f00","Dial","SIP/a_outp/05026000xx",19,9,"ANSWERED",3,"1.4.23rc1","1227181574.0","OUTpggw1"

As you can see It was OK on 1.4.21 (we've got 2 CDR records as expected)
then on 1.4.22 ForkCDR didn't work, and finally on 1.4.23RC1 the same
config and scenario will generate 3 CDR records, one for incoming call, and
two for that outgoing dial (after ForkCDR and ResetCDR)

Another strange thing is that record from 1.4.23RC1 with DISPOSITIO=NO
ANSWER, billsec=0 and duration=0 which is useless in my opinion. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2008-11-20 07:46 sh0t           Note Added: 0095168                          
======================================================================




More information about the asterisk-bugs mailing list