As of Feb 2018, 3CX V15.5 8801.3 there are a few hoops one must jump through to get 3CX to properly present outbound callerid using CallCentric. I choose CallCentric as it was a "supported" partner, some of the issues may be fixed by 3CX in the auto-commissioning of adding a trunk, and certainly the following nuggets could get added to the 3CX CallCentric help documentation. In particular the last 2 settings below should be automatically set by 3CX during the add sip trunk process. Here is the complete digest of what you need to do to enable CallerID propagation from a user extension through a CallCentric outbound SIP Trunk. Get the phone number(s) "Verified" by CallCentric. They require a verification process to avoid fraud At any point in time, if anything goes wrong, the default callerID loaded on CallCentric extension will be used. They have a process where you can dial a "verification number" after keying your phone number in to their API and this will automatically verify the number and add it to the possible callerIDs on your account. If you have a large block of numbers, you open a trouble ticket, and present a screen shot proving you have control of the DIDs. They were fine with my presenting Vitelity DIDs to load as permitted outbound CID from their system. Setup your outbound parameters for CallCentric as follows. Any other field should be set to "default" The last 2 are the "special ones" that aren't the default setting when my SIP Trunk was constructed by the 3CX system. Code: Request Line URI: User Part - CalledNum Request Line URI: Host Part - GWHostPort Contact: User Part - AuthID Contact: Host Part - ContactUri To: Display Name - CalledName To: User Part - CalledNum To: Host Part - GWHostPort From: Display Name - CallerName From: User Part - AuthID From: Host Part - GWHostPort P-Asserted Identity : User Part - "OutboundCallerId" P-Asserted Identity : Host Part - "OutHostPort" In your extensions, you must be sure to have an 11 digit number. For the US/Canada that means your outgoing callerID field needs to be 1+AreaCode+Prefix+Station (no plus signs) It is not sufficient for your outbound rules to rewrite to prepend the 1. The outbound rewrite rules do not affect the "P-Asserted Identity : User Part" field. This wasted a ton of my time. That's it. You can verify all is good by turning on "Verbose" debugging and making an outbound call. From the dashboard, hit activity log, press the gear and select verbose. I normally do this when the system is quiet. Turn on verbose, purge, make the call, hit refresh, and then look at the data. Turn off verbose as soon as possible. It chews both CPU and log space. In addition, verbose logging puts a lot of writes to your SSD which will prematurely age it. I leave my logging at Low, unless I am actually looking for something. Here is what you are looking for in the Verbose log file: P-Asserted-Identity: <sip:firstname.lastname@example.org:5060> If that CID is not an 11 digit number, CallCentric will default to whatever is on the account.