I get this question a lot. On the CIX their is a field that was added to out-pulse a name, but this isn't used in the US, In the US the receiving carrier will change the phone number with a CNAM database when the call comes to them.

Basically on a PRI the CIX can send out the DID (if the carrier allows) but the names are added by the carrier. If AT&T are blaming the PBX (pretty typical for carriers now days) then that person is incorrect. AT&T needs to make this change to the database.

Just googling around:
https://www.sotelips.net/support/index.php?/Knowledgebase/Article/View/78/24/how-cnam-works
** Although their statement "Generally, the caller-ID number is almost never wrong" doesn't account for caller ID spoofing.

https://blog.flowroute.com/2015/12/02/what-is-cnam-and-how-can-it-work-for-your-business/

https://www.opencnam.com/faq/cnam-basics/115002638454-Where-does-CNAM-data-come-from-
"Where does CNAM data come from?
CNAM data is supplied by the telephone carrier who owns the telephone number and is populated in the authoritative repository that the carrier selects to store its CNAM values. "

https://www.opencnam.com/faq/cnam-b...e-that-is-displayed-when-I-call-someone-
"How do I change the name that is displayed when I call someone?
Official CNAM values can only be changed by your telephone service provider or carrier."

https://support.sip.us/hc/en-us/articles/360015059391-What-is-CNAM-