Asterisk CDR when using Call Forward

I have some problems with CDR when using Call Forward or Transfer.
It seems to me that in this case Asterisk writes wrong information in CDR.

Here is extract from my extensions.conf

[macro-stdexten]

;
; Standard extension macro (with call forwarding):
; ${ARG1} - Extension(we could have used ${MACRO_EXTEN} here as well
; ${ARG2} - Device(s) to ring
;

exten => s,1,Set(temp=${DB(CFIM/1${MACRO_EXTEN})})
; Chech Unconditional Forward
exten => s,n,GotoIf(${temp}?cfim:nocfim)
exten => s,n(cfim),SetVar(CALLERID(num)=1${MACRO_EXTEN}) ; change CallerID
exten => s,n,SetVar(CALLERID(name)=${MACRO_EXTEN}) ;
exten => s,n,Dial(local/${temp}@${MACRO_CONTEXT}/n)   ; Unconditional

forward
exten => s,n(nocfim),NoOp
; Check No Answer Forward
exten => s,n,Set(temp=${DB(CFNOANS/1${MACRO_EXTEN})})
exten => s,n,GotoIf(${temp}?cfnoans:nocfnoans)
exten => s,n(nocfnoans),Dial(SIP/${MACRO_EXTEN},tT)
exten => s,n(cfnoans),Dial(SIP/${MACRO_EXTEN},15) ; 15sec timeout
exten => s,n,GotoIf($[${DIALSTATUS}=NOANSWER]?noanswer:another)
exten => s,n(noanswer),NoOp
exten => s,n,Dial(local/${temp}@${MACRO_CONTEXT}/n) ; Forward on noanswer

A calls to B. On B is Call Forwarding Unconditional to C. A and C converse.
A: 13401539
B: 13401538
C: 3328130


In CDR I get two strings:

1."",“13401538”,“3401538”,“full”,""“3401538"”
<13401538>",“SIP/3401539-08703000”,“Local/3328130@full-3b95,1”,“Dial”,“local/332
8130@full/n”,“2007-04-11 15:47:58”,“2007-04-11 15:48:00”,2,0,“NO
ANSWER”,“DOCUMENTATION"
Like B called to B.
2. “”,“13401538”,“3328130”,“full”,”"“3401538"”
<13401538>",“Local/3328130@full-3b95,2”,“SIP/217.199.224.24-0870d000”,“Dial”,“SI
P/3328130@217.199.224.24|90”,“2007-04-11 15:47:58”,“2007-04-11
15:48:00”,2,0,“NO ANSWER”,"DOCUMENTATION"
Like B called to C

But really I want to get such strings:

  1. A called to B.
  2. B called to C.

Could anybody help me?