System information

CHAPTER 22
Clustering
You cannot eat a cluster of grapes at once, but it is very
easy if you eat them one by one.
—Jacques Roumain
The word “clustering” can mean different things to different people. Some people
would say clustering is simply having a replicated system on standby available to be
turned on when the primary system fails. To others, clustering is having several systems
working in concert with one another, with replicated data, fully redundant, and infin-
itely expandable. For most people, it’s probably somewhere between those two
extremes.
In this chapter, we’re going to explore the possibilities for clustering that exist with
Asterisk at a high level, giving you the knowledge and direction to start planning your
system into the future. As examples, we’ll discuss some of the tools that we’ve used in
our own large deployments; while there is no single way to go about building an Asterisk
cluster, the topologies we’ll cover have proven reliable over the years.
Our examples will delve into building a distributed call center, one of the more popular
reasons for building a distributed system. In some cases this is necessary simply because
a company has satellite offices it wants to tie into the primary system. For others, the
goal is to integrate remote employees, or to be able to handle a large number of seats.
We’ll start by looking at a simple, traditional PBX system, and see how that system can
eventually grow into something much larger.
Traditional Call Centers
Most systems deployed before the year 2000 will look quite similar. They will involve
a set of phone lines delivered either via a PRI or through an array of analog lines, which
connect to a PBX system that delivers calls to handsets that are likely proprietary to the
systems deployed. These systems will likely provide a basic set of functions, with extra
489