CDR(dst) not work when call is an outgoing originate

I have been calling between 2 asterisk servers
CDR(dst) value is good on the called server but it is incorrect on the calling server. i.e. its good for incoming calls but not for outgoing.

The cdr “dst” value is set in channel.c code in __ast_request_and_dial() by ast_cdr_init()

in ast_cdr_init() the dst is set by
ast_copy_string(cdr->dst, S_OR(ast_channel_macroexten©,[b]ast_channel_exten/b), sizeof(cdr->dst));

This would seem to explain why…because on the originating server the “exten” is the src, not the dst. is this a Bug?

Does anyone know a way I can reliably and consistently get the called/destination address from the cdr or channel variables?
Thanks, Tom