Load balancer

Yeti load balancer acts as SIP proxy and allows to distribute incoming calls across multiple SEMS nodes. To implement load balancer you can use Kamailio or OpenSIP sip proxies with dispatcher module

Load balancer requirements

Load balancer should add headers to initial INVITE:

  • X-ORIG-IP with original call originator IP

  • X-ORIG-PORT with source port number of call originator

  • X-ORIG-PROTO with protocol number: 1 for UDP, 2 for TCP and 3 for TLS

Load balancer should add Record-Route headers to modify SIP route-set and stay on signaling path.

Load balancer IP should be registered in System->Load balancers.

SIP flow with load-balancer

        sequenceDiagram
        participant O as Call originator<br/> IP 203.0.113.5
        participant LB as Yeti Load Balancer
        participant N as Yeti Node
        O->>LB: INVITE
        LB->>O: 100 Trying
        LB->>N: INVITE <br/> X-ORIG-IP:203.0.113.5 <br/> X-ORIG-PORT:5060  <br/> X-ORIG-PROTO:1
        N->>LB: 100 Trying
        Note over N: call routing
        N->>LB: 180 Ringing
        LB->>O: 180 Ringing
        N->>LB: 200 OK
        LB->>O: 200 OK
        O->>LB: ACK
        LB->>N: ACK
        N-->>O: RTP
        O-->>N: RTP
        N->>LB: BYE
        LB->>O: BYE
        O->>LB: 200 OK
        LB->>N: 200 OK
        N->>LB: ACK
        LB->>O: ACK
        Note over N: CDR writing