Kazoo solution’s documentation!

Contents:

Kazoo architecture

Kazoo contains following types of servers

  1. database (CouchDB);
  2. application (whistle, ecallmgr);
  3. message broker (RabbitMQ);
  4. media (FreeSwitch);
  5. registration and proxy (Kamailio).

General kazoo architecture is shown on Fig. 1

Kazoo general architecture

Database servers

Given type of servers stores:

  1. kazoo configuration;
  2. media files (announcements, music on hold, voice mail and etc);
  3. call detail records (CDR).

Application servers

On this servers is executes call processing. Given type of servers contains folowing application:

  1. whistle;
  2. ecallmgr.

Whistle application is prepares call processing rules. Ecallmgr application is executes call processing rules on media servers.

Message broker

All exchange between whistle application, ecallmgr and registation servers (description of the functions listed below) is executed via message broker. Message broker is delivers request and responces between kazoo components.

Media servers

This type of servers is:

  1. proceses SIP messages from/to endpoints (hardware and software phones, gateways);
  2. proxyes RTP media;
  3. transcodes media.

In simple configuration media servers act as registrator.

Registration and proxy servers

This type of servers is:

  1. Stores information about SIP-endpoints registration;
  2. delivers sip messages to endpointd via NAT devices (NAT traversal);
  3. executes load bancing calls betwen media servers;
  4. executes simple fraud and DDoS protection.

In simple configuration separate registrator (proxy) server may be not installed.

Each application on separate servers

In the maximum kazoo configuration each application is installed on separate servers. This solution is permits:

  1. easy increase performance of each type on servers;
  2. implement redundancy (no single point of failure);
  3. implement easy software version upgrade.

Maximum kazoo architecture is shown on figure below. To simplify the figure are not shown the communications with each to each circuit.

Kazoo maximal architecture

All application on two servers

In this architecture is exists two instance of each type of application. Instances of applications (database, message brokers, media and etc), running on each server.

This sollution is permits:

  1. implement redurance (no single point of failure);
  2. load balance calls between two servers;
  3. more simple to understand architecture, and more easy to maintain than maximum architecture.

Two server kazoo architecture is shown on figure below. Communications with each to each circuit are shown on figure.

Two servers Kazoo architecture

Indices and tables