Hangup Context CDR issue

I am having a minor issue with cdr variables onthe hangup context
i have set endbeforehexten=yes in cdr.conf
i am using 1.8.7.1
i have made a 23 second call and i can see it in the cdr with the correct information but some fields are not set correctly

-- Executing [h@INBOUND-USER-PROCEED:1] NoOp("SIP/testuser-00000002", "DIALSTATUS        : ANSWER") in new stack
-- Executing [h@INBOUND-USER-PROCEED:2] NoOp("SIP/testuser-00000002", "ANSWEREDTIME      : 23") in new stack
-- Executing [h@INBOUND-USER-PROCEED:3] NoOp("SIP/testuser-00000002", "DIALEDTIME        : 34") in new stack
-- Executing [h@INBOUND-USER-PROCEED:4] NoOp("SIP/testuser-00000002", "CDR(clid)         : "testuser" <0000> ") in new stack
-- Executing [h@INBOUND-USER-PROCEED:5] NoOp("SIP/testuser-00000002", "CDR(src)          : testuser ") in new stack
-- Executing [h@INBOUND-USER-PROCEED:6] NoOp("SIP/testuser-00000002", "CDR(dst)          : 0410000000") in new stack
-- Executing [h@INBOUND-USER-PROCEED:7] NoOp("SIP/testuser-00000002", "CDR(dcontext)     : INBOUND-USER-PROCEED") in new stack
-- Executing [h@INBOUND-USER-PROCEED:8] NoOp("SIP/testuser-00000002", "CDR(channel       : SIP/testuser-00000002 ") in new stack
-- Executing [h@INBOUND-USER-PROCEED:9] NoOp("SIP/testuser-00000002", "CDR(dstchannel)   : IAX2/VBE3-16526 ") in new stack
-- Executing [h@INBOUND-USER-PROCEED:10] NoOp("SIP/testuser-00000002", "CDR(lastapp)      : NoOp ") in new stack
-- Executing [h@INBOUND-USER-PROCEED:11] NoOp("SIP/testuser-00000002", "CDR(lastdata)     : "Call completed successfully" ") in new stack
-- Executing [h@INBOUND-USER-PROCEED:12] NoOp("SIP/testuser-00000002", "CDR(start)        : 2011-12-08 16:20:49 ") in new stack
-- Executing [h@INBOUND-USER-PROCEED:13] NoOp("SIP/testuser-00000002", "CDR(answer)       :  ") in new stack
-- Executing [h@INBOUND-USER-PROCEED:14] NoOp("SIP/testuser-00000002", "CDR(end)          : 2011-12-08 16:20:49") in new stack
-- Executing [h@INBOUND-USER-PROCEED:15] NoOp("SIP/testuser-00000002", "CDR(duration)     : 0") in new stack
-- Executing [h@INBOUND-USER-PROCEED:16] NoOp("SIP/testuser-00000002", "CDR(billsec)      : 0") in new stack
-- Executing [h@INBOUND-USER-PROCEED:17] NoOp("SIP/testuser-00000002", "CDR(disposition)  : NO ANSWER ") in new stack
-- Executing [h@INBOUND-USER-PROCEED:18] NoOp("SIP/testuser-00000002", "CDR(amaflags)     : BILLING ") in new stack
-- Executing [h@INBOUND-USER-PROCEED:19] NoOp("SIP/testuser-00000002", "CDR(accountcode)  : 340222") in new stack
-- Executing [h@INBOUND-USER-PROCEED:20] NoOp("SIP/testuser-00000002", "CDR(uniqueid)     : 1323325215.4 ") in new stack
-- Executing [h@INBOUND-USER-PROCEED:21] NoOp("SIP/testuser-00000002", "CDR(userfield)    : 61410000000") in new stack
-- Executing [h@INBOUND-USER-PROCEED:22] NoOp("SIP/testuser-00000002", ""Hangupcause:16"") in new stack

what am i doing wrong or is this a bug

Thanks
Darren