Overall: For under 50 extensions and without any special functionality, 3CX is a very user-friendly platform. However, for any project that requires any custom functionality, 3CX will simply not be able to offer help.
Pros: The 3CX installer on both Linux and Windows is incredibly easy to use and users can go from nothing to a fully-featured phone system in less than 20 minutes. Once installed, the user interface is very clean and straightforward. The 3CX Softphone that can be installed on Windows and mac computers pairs effortlessly with 3CX provisioning files.
Cons: 3CX offers very little customization outside of the user interface, and commonly phone system managers will be simply unable to perform more-complex call routing. As an example, dynamic outbound routes are simply not possible outside of the overly-simple Outbound Routes tab, and you are limited to only prefix, length of destination, and from extension. Compared to FreePBX and FusionPBX, the ability to customize 3CX is almost non-existent. 3CX Support will 100% of the time deflect any technical issues to the carrier, and after numerous ticket responses later, they will finally admit to being able to help. SIP SRV records are completely broken and not compliant with the SIP RFC. It’s hilarious how catastrophic this lack of functionality is. Faxing is completely broken. It will be a complete nightmare if you attempt to run T.38 faxing over a 3CX phone system.