CDR getting caller id on outgoing calls

We use the asterisk phonebook to store all our numbers, when a call comes in the phones show the caller and it registers in the cdr fine. But when we call out the cdr just shows the number dialled and not the name of the person. If it can retrieve data form the phonebook for incoming why doesnt it do it for outgoing.

Secondly for incoming call on cdr we weant to see which extension answered the call, right now all it shows is ‘1’ Is there any way to make it show which extension picked up?