If you haven't already done so, please read the components guide.

Enswitch is very flexible, and allows a wide range of architectures. Most components communicate with other components using IP networking and can be run on different machines, with redundancy, failover, and load balancing where appropriate.

Since there are many choices, we will discuss this with you when planning your system, and we're open to your input on this. Here are some common architectures to consider:

Single machine

This is most suitable for small systems of up to 250 users, typically as a PBX replacement, or for ITSPs to install at their larger customers' premises. A sample system is:

Single machine sample

Two machine cluster

For smaller carrier systems of up to 1000 users, or for those testing the waters before expanding to a larger system, 2 machines are suitable:

  • One machine runs MySQL, OpenSIPS, and the web interface.
  • The other runs Asterisk, call routing, and features such as voicemail, hunt groups, conferencing, etc.

This system can be expanded by adding more Asterisk machines. A sample cluster is:

2 machine cluster sample

Seven machine cluster

For medium sized carrier systems, and as a foundation for larger systems, a 7 machine cluster is suitable, with 2 database and web machines, 2 Asterisk machines, and 2 OpenSIPS machines, and a SAN or NFS device.

This cluster has full redundancy (assuming a redundant SAN device), and any single machine can crash with only a few seconds outage. This system can also be easily expanded; typically the Asterisk machines will run out of capacity first, and more can be added on the fly without affecting service.

A sample cluster is:

Medium sized cluster sample

Larger systems

Systems beyond 7 machines would typically follow the same architecture as above, and can include:

  • More Asterisk machines in parallel to increase call capacity.
  • Redundant voicemail storage using DRBD and GFS, or similar.
  • Dedicated web servers.
  • Dedicated machines for features such as conferencing.
  • Separate backup storage for the database and voicemail files.