The one issue not asked is whether the delay is noticed on extension to extension calls over the LAN or, if the delay is only noticed on external calls.
Given the quoted ping times, I assume 3CX is premise based, correct?
What is the the telephony connection type - analog, SIP, PRI, etc. and how carried - cable ISP, DSL, etc.? If SIP you might ping the provider IP and see the response times, if available.
Is delay the only issue or do they ever experience jitter or lost packets that result in a stuttering effect or gaps in the conversation?
What kind of phones are in use and are they using a jitter buffer and if so how are these setup? Jitter buffers introduce a small delay between the receiving of voice packets and the subsequent processing of same into analog signals for delivery to the handset. This allows for the phone to overcome some delay variations in how the packets arrived in relation to how heard by the extension owner. In most cases the jitter buffer delay is small and most will never know, but I guess this depends on the sensitivity of who is listening and then how they conveyed it to others so that others then become sensitized to it and it becomes a crisis. You can try and disable the jitter buffer and see if this has any effect (imagined or real).
My guess is that internal calling is fine and only external calls have the issue. If this is the case, then it would seem that the internal network is fine as is the server as these devices have no awareness of calls being internal or external. If the delay is experienced on all calls, then you may very well have some internal issues.
While waiting for the answers to the above,keep in mind that the system is packet switch based and that there will always be some amount of latency be it an analog signal being converted to SIP by a gateway or by the SIP provider and the carriage in between along with the time it takes to convert at the phone, traverse the router, internal network, etc. Usually, these are all extremely small and unnoticeable, but the right combination of factors may make it more noticeable.
If using SIP, there are a couple of things to consider:
1. The provider, where located, reputation and what/who are they using for their delivery? There is a lot to be said about a provider who is using tier 1 carriers, has multiple data centers and is able to support your needs and help with issues. A supported provider is also desired as it helps to insure a level of compatibility. It might not be the best scenario to be in New York and then pick a provider whose only center is in California.
2. The carrier (meaning who transports the packets) and how delivered. You may have an excellent provider but the carrier network may not be as good and could be an issue. There are some tools available that can help you identify (to a degree) the quality of the connection and its ability to reliably transport signals. I have uploaded a sample of a site and as you can see, the latency is OK, but for a period of time last night, the site saw packet loss approaching 10%. This would have definitely been noticeable and resulted in jitter as well as gaps.
3. You may need to consider the benefit of the carrier and provider being one and the same. If this is possible, then it becomes the "one throat to choke" model as it eliminates the finger pointing and puts the onus on the one entity to resolve. While this may be a somewhat more expensive route to take, it may come down to customer satisfaction.