Multi Tenant configuration in FreeSWITCH
The ability to host multiple clients on a single installation of FreeSWITCH greatly increases the ability of FreeSWITCH to be used in a multi-tenant scenario, such as a multi-tenant building served by a single FreeSWITCH instance, or commercial service providers.
The configuration for running FreeSWITCH in a multi-tenant configuration is actually very easy. SIP Domains are the key. Separating each tenant into it's own domain using SIP domains offers the advantage of being able to reuse the same dialplan for every tenant. Exceptions to this are when some tenants have an IVR as their front end, and some tenants map DIDs directly to extensions.
The best way to document the configuration of domains is to dive right into the XML config files. The configuration shown below uses the stock XML default configuration, with domain support added. Several sections of the default dialplan can be ripped out, because they are not needed. Documented is a basic, no frills multi-tenant system with each tenant(domain) determined from where the call originated. Inbound calls are routed directly to extensions with a 1:1 mapping.
First, lets start by building the directory. under conf/, you'll notice a default.xml and default/ folder. copy both of these to company-a.com.xml, and company-a.com, respectively.