Forums Read-only archive

Failover Redundancy question

5 posts · Brekeke SIP Server Forum

ajlindy Original post
1. Brekeke Product Name and Version: 3.5.5.7

2. Java version: unknown

3. OS type and the version: Windows 2012 R2

4. UA (phone), gateway or other hardware/software involved: Cisco Cube

5. Your problem:

Matching Patterns
$request = ^INVITE
To = sip:(.+)@
$addr = <list of IP addresses>

Deploy Patterns
To = sip:%1@<IP1>
$session = failover sip:%1@IP2 sip:%1@IP3
&failover.timer.provisional = 35


Here's my problem -- If I send the dial to the first IP and get a 183 Trying back from them, but literally nothing else (like a Ringing message or a 200 OK that the call has been answered) and 35 seconds happens, it will send a call attempt to the 2nd IP address.

So basically, I am double-dialing numbers IF the carrier ever bogs down and SIP messaging doesn't come back fast enough.

To me, that's not really why I want to have a failover. I want to fail over to IP 2 or IP3 if IP1 truly is dead and is rejecting calls or something of that nature.

Is there any kind of change I can make to have my failover work like I truly want it to work?
Niloc
Why did you put "&failover.timer.provisional = 35"?
If you don't want to make a failover after any provisional response (1xx)
is received, let you set a big number there such as 86400 (=1 day)

&failover.timer.provisional = 86400
ajlindy
For me, 35 seconds was an arbitrary number so that if we didn't get anything from the first IP we wouldn't sit there forever.

However, I can set it to that timer (1 day) and in doing so what actually would cause it to try to use IP2 or IP3 if IP1 was actually broken? How could we be able to tell?
Niloc
&failover.timer.provisional is the timer applied after any provisional response is received.

If you need a timer just after an INVITE is sent, use &failover.timer.inviting. The default value is 10 (sec)

https://docs.brekeke.com/sip/failover-w ... -dial-plan

[Matching Patterns]
$request = ^INVITE
To = sip:(.+)@
$addr = <list of IP addresses>

[Deploy Patterns]
To = sip:%1@<IP1>
$session = failover sip:%1@IP2 sip:%1@IP3
&failover.timer.inviting = 35

the above rule kicks the failover if IP1 doesn't respond for 35 sec.
ajlindy
That's beautiful. I think that's what we need, Niloc.

Thank you! I'll take it back to the client and see what they think.