...Tenants are separated properly rather than bolted on, so each one gets its own extensions, DIDs, trunks and routing without seeing anyone else's.
The usual PBX building blocks are there: extensions and device provisioning, inbound and outbound routing, SIP trunks, IVR, ring groups, queues and voicemail, all administered through the web interface rather than by editing dialplan files.
Released under MPL-2.0. There is an Ansible role for installing it, and the web interface is a separate repository if you want to build on it.