Not Registered with floating address

Hello everyone.

Happy new year! :slight_smile:

I have configured two Asterisk with one floating address for fail-over.

Asterisk 1 : 192.168.0.1
Asterisk 2 : 192.168.0.2

Floating address : 192.168.0.3 (configured with Heartbeat)

For example, Asterisk 1 is active. Asterisk 2 is stand-by.

I tried to register a phone IP

In sip.conf:
register => 6000:6000@192.168.0.3

After many minutes, I have SIP error 408…

But, I modified the register in " 6000:6000@192.168.0.1 "
192.168.0.1 is a Asterisk 1 (active)

How to register with virtual address (floating address)?

Regards

You should check the server that currently has the floating address. What is its configuration? Is it bound to 0.0.0.0? Do you see the traffic coming in using wireshark or tcpdump?

Hi jcolp,

The floating address is active on ‘Asterisk 1’.

I put in sip.conf in [general]

bindaddress=0.0.0.0

Yeah, I analyzed with tcpdump:

192.168.1.107 (it’s Phone IP) -> 192.168.0.3 (floating address) SIP
192.168.0.1 (Asterisk 1) -> 192.168.1.107 SIP
192.168.1.107 -> 192.168.0.1 SIP

3 packets only… After, it’s cause error 408 SIP…

So the phone sends request to 192.168.0.3 but receives response from 192.168.0.1 - that won’t work. The phone is still waiting for a response from 192.168.0.3 - that’s why you see 408 (timeout).

Options you have:

  • specify on the phone side to “trust” all 3 IPs - that’s not a very good solution and might be impossible, depending on the vendor
  • force asterisk/heartbeat/iptables to use the floating IP for outgoing connections
  • remove 192.168.0.1 and 192.168.0.2 from the servers and use another NIC and/or subnet