Load balancing is a technique of distributing work load across set of machines(cluster in general). It allows to avoid congestion, better utilize resources, maximize throughput, minimize response time, and avoid overload.

Sharing load between multiple components(machines in cluster for instance) in favor to single component handling whole load increases reliability through redundancy.

The load balancing service is usually provided by a dedicated program or hardware device (such as a multilayer switch or a DNS server). It is used to mediate internal communication in computing cluster, especially HA cluster.

Mobicents Containers (JAIN SLEE and Sip Servlets) are SIP enabled, as such they require dedicated SIP balancer which can be integrated with Mobicents Cluster.

This project is response to such demand. SIP Load Balancer is used to balance the load of SIP service requests and responses between nodes in a SIP cluster(JAIN SIP HA Stack generally).

In terms of functionality, the SIP Load Balancer is a simple stateless proxy server that intelligently forwards SIP session requests and responses between User Agents (UAs) on a Wide Area Network (WAN). It ensures that messages exchanged in single session are handled by the same SIP host.

Mobicents SIP Load Balancer is informed by JAIN SIP HA Extension about SIP host availability. Based on this node list balancer forwards messages.

In addition to the SIP load balancing, there are several options for coordinated or cooperative load balancing with other protocols such as HTTP

The SIP/HTTP load balancer exposes an interface to allow users to customize the routing decision making for special purposes. By default there are three built-in algorithms. Custom implementations can be added by implementing interfaces defined in the javadoc and user guide.

Mobicents SIP Load Balancer