Call Forward, Call pickup, Caller ID Issue

Hi, I have such issue:

FreePBX based on asterisk 1.8. I have phones Cisco SPA 502G/504G/525G2.
I have setup internal extensions with Employees Names.
I think all issues has same explanations:

  1. When I call from Ext 1 to Ext 2, Phone 1 didn’t retrieve Ext 2 ‘Name’. Only after I have made just 1 call from Ext 2 to Ext 1, after this name is written when dialing extension, I think Phone can’s sync Extension Name from SIP. and takes Caller name from some Cache, but not shure.

  2. I have set up Group Pickup and General Pickup with *8 and **#. Pickup works perfectly, except Caller ID. Case: Ext 1 is calling to Ext 2. I have picked call from Ext 3, and as caller ID I have on screen “*8” or “**XXXX” and not who is calling.

  3. fast same issue with call transfer: Case: Ext 1 is calling to Ext 2, during speaking Ext 2 transfers call to Ext 3. on Ext 3 phone incoming caller ID is Ext 2, not Ext 1.

Need suggestion, what config is missing, its phones issue or Asterisk configuration?