Not exactly what you’re looking for, but there is this block of dialplan that preserves the outbound caller ID of the original dialing extension. It’s based on IAX trunks, but it could be modified without too much trouble to use SIP.