Load balancing trunks advice
Posted: Thu May 11, 2017 11:22 am
Hi guys
I'm trying to understand how to load balance calls between different trunks/carriers on 3 servers giving priority to specific carriers, something like Balance Rank works for dialers. Working with 1 dialer only I know that I can balance calls between trunks writing custom exten, but server LB make things harder for me.
Consider the following scenario:
- 1 db
- 1 web (we will start with less than 100 agents, and we will add an extra web server if necessary)
- 2 dialers with digium E1 card (2 slot - 60 channels) [named d1, d2]
- 1 dialer full voip, using phone aliases and load balancing (60 channels) [named d3]
- 100 agents or less, phone aliases, everyone connected to each dialer
- 4 PRI E1 trunks, each with 30 channels
- 1 outbound campaign
- calls on PRI E1 trunks cost less than calls on voip trunk
Having agents connected to d1 d2 d3, logged in the same campaign with for example ratio 1.5, I would like to route the first 120 calls on d1, d2, then the remaining 30 calls on d3.
With ratio 1 I would like to route 100 calls on d1, d2, leaving d3 with 0 calls.
If I've understood correctly how to LB works, the first step is:
- configure Load Balancing = y on all server
- prioritize FILL calls on d1 d2 setting Balance RANK properly
- create 3 carriers, 1 for each server, using the same dial prefix configured in the campaign (2 DAHDI/x + 1 SIP/x)
- set Max Trunks = 60 on d1 d2 (E1), = XX on d3 (SIP)
But doing that, the agents connected to d3 will call using d3 carrier directly. It's right? Balance RANK works for FILL calls only, not for all outbound calls. Or not? My goal is to don't generate calls on d3 if trunks on d1 d2 are available (not short).
I've think I can:
1) create 2 campaigns with different dial prefix, 1 for d1 d2 with LB active, 1 for d3 (voip) with no LB, then split agents when d1-d2 goes SHORT. But this i sad
2) use 1 dialer only with 4 E1 lines and voip trunk, then write an exten that load balance calls using "group count" (found on other posts), hoping that this dialer can handle all... But I love too much LB!
3) register 50 agents on d1 and 50 on d2, then 0 on d3. Configure on d3 "active agent server = 0" to avoid errors. Configure server LB to all servers, giving priority to d1 d2 with Balance Rank.
But I really really would like to split 33,3 (lol) agents for each server, because I suppose this is better and give me more scalability.
Any advice?
I'm trying to understand how to load balance calls between different trunks/carriers on 3 servers giving priority to specific carriers, something like Balance Rank works for dialers. Working with 1 dialer only I know that I can balance calls between trunks writing custom exten, but server LB make things harder for me.
Consider the following scenario:
- 1 db
- 1 web (we will start with less than 100 agents, and we will add an extra web server if necessary)
- 2 dialers with digium E1 card (2 slot - 60 channels) [named d1, d2]
- 1 dialer full voip, using phone aliases and load balancing (60 channels) [named d3]
- 100 agents or less, phone aliases, everyone connected to each dialer
- 4 PRI E1 trunks, each with 30 channels
- 1 outbound campaign
- calls on PRI E1 trunks cost less than calls on voip trunk
Having agents connected to d1 d2 d3, logged in the same campaign with for example ratio 1.5, I would like to route the first 120 calls on d1, d2, then the remaining 30 calls on d3.
With ratio 1 I would like to route 100 calls on d1, d2, leaving d3 with 0 calls.
If I've understood correctly how to LB works, the first step is:
- configure Load Balancing = y on all server
- prioritize FILL calls on d1 d2 setting Balance RANK properly
- create 3 carriers, 1 for each server, using the same dial prefix configured in the campaign (2 DAHDI/x + 1 SIP/x)
- set Max Trunks = 60 on d1 d2 (E1), = XX on d3 (SIP)
But doing that, the agents connected to d3 will call using d3 carrier directly. It's right? Balance RANK works for FILL calls only, not for all outbound calls. Or not? My goal is to don't generate calls on d3 if trunks on d1 d2 are available (not short).
I've think I can:
1) create 2 campaigns with different dial prefix, 1 for d1 d2 with LB active, 1 for d3 (voip) with no LB, then split agents when d1-d2 goes SHORT. But this i sad
2) use 1 dialer only with 4 E1 lines and voip trunk, then write an exten that load balance calls using "group count" (found on other posts), hoping that this dialer can handle all... But I love too much LB!
3) register 50 agents on d1 and 50 on d2, then 0 on d3. Configure on d3 "active agent server = 0" to avoid errors. Configure server LB to all servers, giving priority to d1 d2 with Balance Rank.
But I really really would like to split 33,3 (lol) agents for each server, because I suppose this is better and give me more scalability.
Any advice?