What is a SIP trunk? The term appears nowhere in RFC 3261. I guess you mean a SIP endpoint that accepts a wide range user values in the request URI, at least in one direction, and large numbers of simultaneous sessions, although some people would use SIP trunk for ones with only one of those properties, and SIP phones can often meet that definition for small numbers of user values and sessions.
Next, are we really talking about IP Telephony Service Providers as the end point, or are we talking about tie line type ones, between different exchanges in the same company, or related, companies?
For ITSP ones, are we talking about IP authenticated ones or ones that require registration?
Asterisk, will, by default, pass caller ID over a “trunk”, in exactly the same way a it passes it to extensions, with the default being in the From: header. However, ITSPs that require registration generally end up with the From: user name being used as the account name, so you have to enable P-Asserted-Identity, or Remote-Party-ID headers, if they support them. You also need one of these, even of phones, if you want the connected line ID to update during the call.
Another complication, especially with ITSPs is that, with SIR/SHAKEN being introduced in North America, ITSPs will be getting rather careful with what they accept in terms of originator ID from end users, and if your name or ID gets through, it may well be tagged in a way that causes recipients to treat the call as voice spam.
(If you start using something like FreePBX, its dialplan messes about with caller ID in the middle of the diaplan, so the default Asterisk behaviour of passing through exactly what it received from the caller is less likely to apply. Even with Asterisk, if you specify a caller ID against an end point, that will override the information received from the endpoint.)