Kazoo solution’s documentation!¶
Contents:
Kazoo architecture¶
Kazoo contains following types of servers
- database (CouchDB);
- application (whistle, ecallmgr);
- message broker (RabbitMQ);
- media (FreeSwitch);
- registration and proxy (Kamailio).
General kazoo architecture is shown on Fig. 1
Database servers¶
Given type of servers stores:
- kazoo configuration;
- media files (announcements, music on hold, voice mail and etc);
- call detail records (CDR).
Application servers¶
On this servers is executes call processing. Given type of servers contains folowing application:
- whistle;
- 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:
- proceses SIP messages from/to endpoints (hardware and software phones, gateways);
- proxyes RTP media;
- transcodes media.
In simple configuration media servers act as registrator.
Registration and proxy servers¶
This type of servers is:
- Stores information about SIP-endpoints registration;
- delivers sip messages to endpointd via NAT devices (NAT traversal);
- executes load bancing calls betwen media servers;
- 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:
- easy increase performance of each type on servers;
- implement redundancy (no single point of failure);
- 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.
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:
- implement redurance (no single point of failure);
- load balance calls between two servers;
- 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.
What is recommended¶
Current kazoo instalation is located on one server. This architecture is equal half of two servers architecture. First step that must be done for kazoo evolution in your network is install second kazoo server. if the number of calls is not increased 100 times over the next 12 months, the two servers will be enough.