That’s not a bad recommendation but I guess it will depend on who is actually doing it. I used FreePBX as the “base” for my systems for the simple reason of I didn’t want to reinvent the wheel on some global/generic functions plus it does make management of the system a bit easier.
The only real set back of Asterisk is that to use any level of “domain” support you have to use Real-Time which is a PITA and poorly documented in general. However, with the use of something like Kamailio/OpenSIP that makes things a lot simpler since they allow that.
Services like basic Resi/SOHO/SIP Trunking exist on a system that really just “passes” everything through down to the SIP proxies to have control of the media and it serves as a voicemail server where I route calls for those that have voicemail. Outside of that, everything is down at the proxy level.
For a “Hosted Tenant”, it’s almost the same but I relate individual endpoints/peers for the users for services like BLF, Queues, etc where the tracking, updating, etc of the endpoint/extension are required and needed but even then all the big work is done at the proxy in regards to what digits are accepted, if they can dial LD/International/Local, CallerID setup, etc.
That being said, it’s all pretty much unmanagable in the FreePBX GUI since most of the things are built outside of it like endpoint configs (more control), Parking Lots, Queues, etc. but the core dialplan that exists for apps like CF, DND, FM, Call Recording all work pretty well and can be called on and used.
Of course I could just be biased since I have worked with FreeSWITCH and FusionPBX on projects with some MSP/Providers and I just never liked it. Got nothing bad to say about it. It’s a solid platoform but I just never liked it.