If you do a ‘blind transfer’, the caller ID of the original caller should be preserved. On Yealink, this is done by pressing Tran, dialing the destination number and pressing Tran again. This can conflict with the Dial-now feature (if pressing the last digit of the transferred-to number causes the number to be immediately dialed, you’ll get an attended transfer). You could avoid this conflict by setting up a special Outbound Route with a prefix that gets removed.
You can also set BLF keys to do blind transfer, but that setting applies to all BLFs.
If you need an attended transfer to show the number of the original caller, I believe that you’ll need to write some custom dialplan.
Attended transfer using the Tran key would be very difficult to modify. When you press Tran, the original caller is put on hold. Dialing the transferred-to number results in a new, unrelated call. When you complete the transfer, the phone tells Asterisk to splice the two calls together.
You would probably want to modify the “In-Call Asterisk Attended Transfer” feature, by default activated by sending DTMF *2. Sorry, I know nothing about its internals.
With attended transfer you can’t get the caller ID of who you are transferring until after you complete the transfer. This is what the rpid settings do. They can’t set the caller ID until you complete the transfer as at the time you make the first leg of the attended call your phone is not telling the PBX anything beyond your ext is calling another ext. Only once you don’t he actual transfer do we know anything about the other caller and that is when the caller ID will get updates if your device supports the rpid features.
I know our Sangoma phones support it and I am sure Yealink does, I just can’t advise how to set it up. I am sure someone else here can help that knows Yealink.