Queues with external Agents and CallerID

I’ve got a system which I just set up that has a queue which has a combination of internal extension and external (cellphone) based virtual agents.

The internal extensions have Follow Me turned on, and those have external (cellphone) numbers in their call list.

If an agent logs in with their extension, and a call comes in to them, but they don’t answer it via their extension and it comes to their cellphone via FollowMe, the CID of the call is correct - it’s the inbound caller’s CID.

If an agent logs in with their cellphone, and a call comes in to them, the CID is defaulting to the Trunk CID.

Why isn’t the CID behavior the same between FollowMe and external Queue Agents?

Is there anything I can do to make external Queue Agents get the proper CID?

This is on a PIAF purple system using FreePBX 2.9.