On Thu, Jun 30, 2016 at 03:56:00PM +0000, Colin Morelli wrote:
However, I think the best solution would be something like what Daniel mentioned - to have multiple (maybe 2-4 but the number really depends on your availability and scalability requirements) Kamailio instances at the edge, each with a corresponding standby ready to take over that IP in a failover scenario.
Added benifit is the ability to upgrade/update the standby machine and simply failover to verify/test with a simple rollback mechanism.
Combine that setup with rotating the A and SRV records in your DNS server (most DNS servers support automatically rotating the records in a response), and you should be able to support all kinds of clients.
Roundrobin DNS A, SRV and NAPTR for sip.example.com. With records for sip0/sip1.example.com and as last the bare ip addresses. And you can make any redundant setup that any client supports.
The trick (IMHO) is to use the Path modules in the loadbalancer/proxy and registrar server. Add the Path headers (with received paramaters) on the loadbalancer/proxy and make sure the registrar module uses these headers. Use dispatcher with callid hasing to loadbalance to the backends. For the same secret for authentication over de backends (modparam("auth", "secret", "sharedsecret")).