This is what I have so far if somebody can benefit:
globals_custom.conf
QGOSUB=EQueueCDRVariables
extenstions_override_freepbx.conf
[macro-hangupcall]
include => macro-hangupcall-custom
exten => s,1(start),GotoIf($[“${USE_CONFIRMATION}”=“” | “${RINGGROUP_INDEX}”=“” | “${CHANNEL}”!=“${UNIQCHAN}”]?theend)
exten => s,n(delrgi),Noop(Deleting: RG/${RINGGROUP_INDEX}/${CHANNEL} ${DB_DELETE(RG/${RINGGROUP_INDEX}/${CHANNEL})})
exten => s,n(theend),ExecIf($[“${ONETOUCH_RECFILE}”!=“” & “${CDR(recordingfile)}”=“”]?Set(CDR(recordingfile)=${ONETOUCH_RECFILE}))
;START CDR Mod
;OUTBOUND
exten => s,n,GotoIf($[“${DIRECTION}”!=“OUTBOUND”]?inbound)
exten => s,n,Set(CDR(EDisposition)=${DIALSTATUS})
exten => s,n,Set(CDR(EBilling)=$[${EPOCH}-${EAGENTCONNECTOUT}])
exten => s,n,Set(CDR(EAgent)=${FROMEXTEN})
exten => s,n,Set(CDR(EDirection)=${DIRECTION})
exten => s,n,Goto(myend)
;INBOUND
exten => s,n(inbound),GotoIf($[“${MACRO_CONTEXT}” != “ext-queues”]?myend)
exten => s,n,GotoIf($[“${ABANDONED}”=“TRUE”]?abandoned)
;queue answered
exten => s,n,Set(EQUEUEWAIT=$[${SHARED(EAGENTCONNECT)}-${QUEUEJOINTIME}])
exten => s,n,Set(CDR(EDisposition)=ANSWER)
exten => s,n,Set(CDR(EBilling)=$[${EPOCH}-${SHARED(EAGENTCONNECT)}])
exten => s,n,Set(CDR(EAgent)=${SHARED(EAGENT)})
exten => s,n,Goto(common)
;queue abandoned
exten => s,n(abandoned),Set(EQUEUEWAIT=$[${EPOCH}-${QUEUEJOINTIME}])
exten => s,n,Set(CDR(EDisposition)=ABANDON)
;queue common
exten => s,n(common),Set(CDR(EDirection)=${DIRECTION})
exten => s,n,Set(CDR(EQPos)=${QUEUEPOSITION})
exten => s,n,Set(CDR(EQWait)=${EQUEUEWAIT})
;end
exten => s,n(nyend),NoOp(End of CDR Mod)
;END CDR Mod
exten => s,n,Hangup
exten => s,n,MacroExit()
extensions_custom.conf
[macro-dialout-trunk-predial-hook]
exten => s,1,Set(DIRECTION=OUTBOUND)
exten => s,n,Set(EAGENTCONNECTOUT=${EPOCH})
exten => s,n(done),MacroExit()
[EQueueCDRVariables]
exten => s,1,NoOp
exten => s,n,Set(SHARED(EAGENTCONNECT,${MASTER_CHANNEL(CHANNEL)})=${EPOCH})
exten => s,n,Set(SHARED(EAGENT,${MASTER_CHANNEL(CHANNEL)})=${CUT(DIALEDPEERNUMBER,@,1)})
exten => s,n,Return()