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


; 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

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:

8130@full/n”,“2007-04-11 15:47:58”,“2007-04-11 15:48:00”,2,0,“NO
Like B called to B.
2. “”,“13401538”,“3328130”,“full”,”"“3401538"”
P/3328130@|90”,“2007-04-11 15:47:58”,“2007-04-11
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?