A 180/183 is a REPLY from the PBX, the PBX would not be sending back CallerID in a reply because that's really not how it works
As far as I see in SIP debugs it works during local calls - first Ringing reply includes proper RPID:
Remote-Party-ID: "called name" sip:xxxx@192.168.x.x ...
But if incoming channel is sip-trunk then first Ringing 180 reply (generated by FreePBX before answer from called phone) doesn't include proper RPID. Second Ringing reply (generated called phone) includes proper RPID, but CME handling only first answer.
In this case it is first Ringing reply prevents proper displaying called name on caller's phone.
It turns out this is known problem in asterisk. In this commit (https://reviewboard.asterisk.org/r/4473/) developers talk about this problem. They talked about creating the rpid_immediate option for chan_pjsip driver. And for chan_sip driver rpid_immediate option existing for a long time.
excerpt from comment in source:
rpid_immediate default=no
Send connected line updates on unanswered incoming calls immediately
Send 180 Ringing or 183 Progress response messages to the caller if the connected line information is updated before the call is answered. This can send a 180 Ringing response before the call has even reached the far end. The caller can start hearing ringback before the far end even gets the call
Many phones tend to grab the first connected line information and refuse to update the display if it changes. The first information is not likely to be correct if the call goes to an endpoint not under the control of the first Asterisk box
I will try to play with rpid_immediate option after weekend.