WARNING: this is an automatic post retrieved from the Asterisk-Users Mailing List, not an authored post
September 25, 2010
Tags: asterisk, asterisk cluster, B2BUA, hardware load balancer, OpenSIPS, sip, SIP load balancer, sip servers
My company has experience in setting up single asterisk setup, but recently one of our customers asked us to set up an asterisk cluster, that must be High Availability and Load Balanced. So I wrote here to have some hint or advice about the configuration we thought.
First of all I’ll explain you the Asterisk Cluster scenario:
The asterisk cluster must serve as Call Center “Hub-and-Spoke”. There are lots of little call-centers (~15 ops), phisically separated, that must appears as a single “Big Virtual Call-Center”. The call-center is inbound and outbound.
Initially the “Virtual Call-Center” will be composed of 15 small call-centers (= ~230 ops), but the prevision is to grow to ~800 ops.
Asterisk must work as B2BUA, because the customer does not want the call-centers contact directly the upstream SIP providers. Asterisk server must also record the call and, maybe, do some transcoding.
The single asterisks instances talk each-other with DUNDi/IAX2 to pass the calls from an op to another op registered on another server. We’ll use a mysql database (NDB cluster) to avoid to have multiple sip.conf files with the registration informations (asterisk-rt). We must, in any case, use asterisk, because the whole call-center has to be integrated with a 3rd part software for predictive calling ad power dialing which has been developed for asterisk.
The SIP servers are behind NAT, because the customer want to use only one public IP address; every asterisk server will have a different RTP port range to avoid rtp conflicts.
And, for now, the LB part works manually registering the ops on different asterisk servers. But now we have to achieve the HA part of the setup.
We started considering a SIP hardware load balancer, like Radware or Brocade, but neither a single nor a couple of this equipments (HA, remember?) do not fit in the customer budget. So, we started thinking about use OpenSIPS (formerly OpenSER) as a SIP load-balancer. (the customer has server hardware that could be used for this, and we will use VRRP for redundancy).
In the OpenSIPS features we read “load balancing with failover”, but we could not find any useful and complete configuration example. Is OpenSIPS able to know if an asterisk server is UP or DOWN, or must we use a 3rd part tool, like mon?
Anyone has experience in use OpenSIPS as SIP load balancer (not to work as “real” SIP proxy)?
Any hint/advice for this part, or for the global setup?
Thanks in advance for the help!
PS: sorry for my weak english
PS2: sorry for cross posting but, if the general setup is more asterisk related, the OpenSIPS part is, obviously, OpenSIP specific.