Load balancing trunks advice

All installation and configuration problems and questions

Moderators: gerski, enjay, williamconley, Op3r, Staydog, gardo, mflorell, MJCoate, mcargile, Kumba, Michael_N

Load balancing trunks advice

Postby airflux » 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?
Vicibox 7.0.2 - V. 2.12-551a Build 160427-1656 - svn 2353 – 3 Dell R610 (1 db+www - 4 sas raid 10, 2 dialers - 2 sas raid 1)
Vicibox 7.0.3 - V. 2.14-585a Build 170114-1356 - svn 2659 – 2 Dell R610 (1 db+www - 4 sas raid 10, 1 dialer - 2 sas raid 1)
airflux
 
Posts: 29
Joined: Fri Nov 07, 2014 12:39 pm

Re: Load balancing trunks advice

Postby mflorell » Thu May 11, 2017 6:14 pm

Yes, balance rank works for FILL calls only.

You seem to have a pretty good understanding of all of this. We rarely have clients with trunk configurations like you have described, so there really aren't the kind of fine-tuned options that you are looking for.
mflorell
Site Admin
 
Posts: 18387
Joined: Wed Jun 07, 2006 2:45 pm
Location: Florida

Re: Load balancing trunks advice

Postby airflux » Fri May 12, 2017 8:24 am

Thank you Matt, as always.

In fact, what I'm trying to implement is a kind of LCR based on LB system, but LB exists to avoid overload and create redundancy, and giving priority to N servers leaving others without calls ruins the concept of load balance, that smells like something gone bad.

I have two questions.

1)
Considering the Balance Dialing description:
--
"Balance Dialing - Setting this field to Y will allow the server to place balance calls for campaigns in the system so that the defined dial level can be met even if there are no agents logged into that campaign on this server."
--
my option/idea #3 (agents in d1, d2) will not work because d3 will generate calls also when d1 and d2 are not short, or it will work because d3 will generate calls only when d1 and d2 (with balance rank high) are both short?

2)
If balance dialing = y will generate calls anyway in each server, what you think about an option like "Balance when: other dialers are short / always (default)"? It makes sense or is something useless?


I suppose that an LCR system with some LB option could be interesting, but I'm sure that will be very complex to handle. It should work with carriers, server trunks, campaign trunks, extensions / filters based on phones, multiserver, and every other thing related to calls already available in Vicidial. At this point i think that whell written carrier extensions can solve every problem without adding so much complexity.
Vicibox 7.0.2 - V. 2.12-551a Build 160427-1656 - svn 2353 – 3 Dell R610 (1 db+www - 4 sas raid 10, 2 dialers - 2 sas raid 1)
Vicibox 7.0.3 - V. 2.14-585a Build 170114-1356 - svn 2659 – 2 Dell R610 (1 db+www - 4 sas raid 10, 1 dialer - 2 sas raid 1)
airflux
 
Posts: 29
Joined: Fri Nov 07, 2014 12:39 pm

Re: Load balancing trunks advice

Postby mflorell » Fri May 12, 2017 11:20 pm

1) From what you've written about #3, yes it should work as you describe.

2) balance dialing only works on a dialer when other dialers are short
mflorell
Site Admin
 
Posts: 18387
Joined: Wed Jun 07, 2006 2:45 pm
Location: Florida


Return to Support

Who is online

Users browsing this forum: Google [Bot], njr and 52 guests