While 3CX uses *5 to block outside caller ID I don't believe it works internally, and I've not seen anything on permanently blocking internal caller ID (most users have no need to). If you don't mind using two simultaneous call instances per call, you might try a loop trunk and outbound caller ID (of the originating extension of, say, 00000000, or some other "nonsense" number. That might accomplish what you want internally, but probably isn't practical, and will most likely cause issues on outside calls, if that number is sent to a provider.