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 30 concurrent calls, typically as a PBX replacement or for ITSPs to install at their larger customers' premises. A sample system is:
![Single machine sample](arch_1.gif)
Two machine cluster
For smaller carrier systems of up to 200 concurrent calls, 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](arch_2.gif)
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, 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](arch_medium.gif)
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. One Asterisk machine per 200 concurrent calls is recommended to be conservative on voice quality.
- Dedicated web servers, recommended on systems of 1000 concurrent calls or more, or those with heavy web usage.
- Redundant voicemail storage using DRBD and GFS, or similar.
- Separate backup storage for the database and voicemail files.
- Test and staging machines.