Multi-tenant

FreePBX doesn’t have true multi-tenant capability. You can emulate it to some degree, however. Incoming is easy, just have separate DID’s for each company and have separate destinations (IVR, etc.) for each DID (use Inbound Routes to select the destinations). Outgoing is harder - the semi-difficult part is forcing each extension to use only the trunks purchased by that company. For that you can use Rob Thomas’ new Outbound Route Permissions module, or one of the other techniques described in How to give a particular extension different or restricted trunk access for outgoing calls.

What you cannot do is assign the same extension numbers to both companies - that is, you can’t have an extension 1101 for both company A and company B. You can assign extensions in Company A extensions in the 1000-1099 range and for Company B use extensions in the 1100-1199 range (just as an example) but unless you take steps to prevent it, each company will be able to call the other’s extensions just by dialing the extension number (which in most cases isn’t a problem, but it could be in some unusual situations).

I hope this answers your question. FreePBX just wasn’t designed to be a multi-tenant solution. What I think some people have done is to run “virtual machines” and then run an instance of Asterisk and FreePBX in each VM, however that probably bings its own set of problems and issues, so I don’t really recommend that either.