Dial failover on different dialer is possible?
Posted: Mon Jul 24, 2017 12:42 pm
Hi guys,
I'm working on a new cluster with 4 dialers (plus 1db and 2www), first 2 dialers (d1, d2) will use 2 PRI E1 each, last 2 dialers will be an agent server with no carriers (d3) and a pure dialer with no agents (d4). We can use voip carriers only if there are no PRI channel available, this is the reason for this strange setup. Load balance, server priority and max trunks options will be used for our LCR schema, giving priority to d1 > d2 > d4.
I need some help for manual and 3ways calls, they are are not balanced, they are dialed on the current agent server.
The point is the agi script call_log.agi, executed before the dial (call_log insert @ stage START) and at the hangup (call_log update and more @ stage END), but what appens if I start using IAX2 trunks between dialers to find an available dialer respecting our priority?
For example, with the following carrier on d3 for manual calls only (pseudo-code):
1) dial using iax2-trunk-d1-PRI, if fails CONGESTION
2) if dial #1 is congested, dial using iax2-trunk-d2-PRI, if fails CONGESTION
3) if dial #2 is congested, dial using iax2-trunk-d3-VOIP, and this will work because there are no limits on channels number like PRI
Is a must to exec call_log.agi on the server that are trying to make the call, but if dial fails because congestion due to no channel available and I need to change dialer, I must cancel this call_log.agi event? For example triggering the END stage (like hangup) after every fail using a custom agi script?
It's a bad idea? There are better best pratice for that?
I'm working on a new cluster with 4 dialers (plus 1db and 2www), first 2 dialers (d1, d2) will use 2 PRI E1 each, last 2 dialers will be an agent server with no carriers (d3) and a pure dialer with no agents (d4). We can use voip carriers only if there are no PRI channel available, this is the reason for this strange setup. Load balance, server priority and max trunks options will be used for our LCR schema, giving priority to d1 > d2 > d4.
I need some help for manual and 3ways calls, they are are not balanced, they are dialed on the current agent server.
The point is the agi script call_log.agi, executed before the dial (call_log insert @ stage START) and at the hangup (call_log update and more @ stage END), but what appens if I start using IAX2 trunks between dialers to find an available dialer respecting our priority?
For example, with the following carrier on d3 for manual calls only (pseudo-code):
1) dial using iax2-trunk-d1-PRI, if fails CONGESTION
2) if dial #1 is congested, dial using iax2-trunk-d2-PRI, if fails CONGESTION
3) if dial #2 is congested, dial using iax2-trunk-d3-VOIP, and this will work because there are no limits on channels number like PRI
Is a must to exec call_log.agi on the server that are trying to make the call, but if dial fails because congestion due to no channel available and I need to change dialer, I must cancel this call_log.agi event? For example triggering the END stage (like hangup) after every fail using a custom agi script?
It's a bad idea? There are better best pratice for that?