If you haven't already done so, please read the components guide.
Enswitch is very flexible, and allows different architectures for different requirements. Most components communicate with other components using IP networking and can be run on different machines, with redundancy, failover, and load balancing where appropriate. Here are common configurations for small to medium sized systems:
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.
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, Kamailio, 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.
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 Kamailio 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.
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 for each 200 to 400 concurrent calls is recommended to maintain 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.