Pickup Issues

Hi,

asterisk version 11.19
freepbx version 2.11

First Question

If i dial feature code *8 to pickup another ringing extension, pickup is done correctly and a missed call is logged on first ringing extension. I like this behavior.
The thing is i have Cisco phones and i have custom dialplan to do pickups when softkey is pressed.

exten => pickup,1,Macro(user-callerid,)
exten => pickup,n,Set(PICKUP_EXTEN=${AMPUSER})
exten => pickup,n,Pickup()

My problem is that using dialpan Pickup() no missed call is logged on first ringing extension.
How can i reproduce *8 code in my custom dialplan so i can have same behavior?
Or as alternative to make a dial to *8 through dialplan?

Second question
Scenario:
A : ringing extension
B : extension want to pickup call

Can i somehow with custom dialplan, when A is ringing, B do pickup and A stops ringing(missed call log) and channel is connected to B like a new ring in call. So B can decide to answer or not the call after seeing Caller ID. Also this help so B has CID in phone log history.