Having worked with telephony systems for a while, I can admit, there is nothing with a price to feature ratio as Asterisk in 2019.
But understand me right, a clean Asterisk 16, without any PBX interfaces whatsoever. If you decide to devote some of your time to learning it, Asterisk will pay you back.
Of course, for some scenarios you could be bound to install FreePBX, but in my opinion this interface to Asterisk is a heavily limiting one and things, that are normally possible with Asterisk, won't work there. So you will end up editing Asterisk configuration directly.
One example is: if your incoming DID is not a number, but a letter sequence, due to a trunk you use, there will be no way to add this info to FreePBX, but will easily do the same with Asterisk.
In the situation, where you would think about hardware PBXes or Commercial software ones:
- Commercial distributions will be expensive and inflexible, with poor user interfaces;
- Hardware PBXes are also expensive and not required anymore in 2019. A general-purpose PBX will do the same job perfectly. All the latest innovations, good integrability and security updates are all available to you, when you run on a standardised server OS.