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

Asterisk Bug Tracker noreply at bugs.digium.com
Tue Dec 2 09:09:38 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:                     ready for testing
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-12-02 09:09 CST
====================================================================== 
Summary:                    [patch] 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)

======================================================================
Relationships       ID      Summary
----------------------------------------------------------------------
related to          0013881 [patch] AGI command "answer" ...
====================================================================== 

---------------------------------------------------------------------- 
 (0095673) sh0t (reporter) - 2008-12-02 09:09
 http://bugs.digium.com/view.php?id=13797#c95673 
---------------------------------------------------------------------- 
I tried that new forkcdr options and this is what I get.
For example forkcdr(Av) (without any resetcdr)
A - Lock the original CDR against the answer time being updated.
         This will allow the disposition on the original CDR to remain the
same.

Correct me if I'm wrong, but I expect CDR system to not change
"AnswerTime" in original CDR.

Bellow example log from manager events (to see more than on CDR records)
during this call, 

Event: Cdr
Privilege: call,all
AccountCode: 1111
Source: 4852xxxxxx
Destination: 4822xxxxx
DestinationContext: alekontakt
CallerID: "4852xxxxxx" <4852xxxxxx>
Channel: SIP/4822xxxxxx-008f9c20
DestinationChannel:
LastApplication: Dial
LastData: SIP/a_outp/0502xxxxxx|15
StartTime: 2008-12-02 15:42:57
AnswerTime: 2008-12-02 15:43:10
EndTime: 2008-12-02 15:43:17
Duration: 20
BillableSeconds: 7
Disposition: ANSWERED
AMAFlags: DOCUMENTATION
UniqueID: 1228228977.66
UserField: MAIN 


Event: Cdr
Privilege: call,all
AccountCode: 1111
Source: 4852xxxxxx
Destination: s
DestinationContext: testfork
CallerID: "4852xxxxxx" <4852xxxxxx>
Channel: SIP/4822xxxxxx-008f9c20
DestinationChannel: SIP/a_outp-00870500
LastApplication: Dial
LastData: SIP/a_outp/0502xxxxxx|15
StartTime: 2008-12-02 15:43:01
AnswerTime: 2008-12-02 15:43:10
EndTime: 2008-12-02 15:43:17
Duration: 16
BillableSeconds: 7
Disposition: ANSWERED
AMAFlags: DOCUMENTATION
UniqueID: 1228228977.66
UserField: OUTpggw1 

"AnswerTime" in the original CDR has changed to the time when bridge
linked those two channels.

The patch you provided earlier helped with problem of missing CDR, so tell
me if this is another/different issue ? 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2008-12-02 09:09 sh0t           Note Added: 0095673                          
======================================================================




More information about the asterisk-bugs mailing list