How can I configure Asterisk in a high(er) availability scenario such that calls can be received on both the host assigned IP and on the floating IP address?
For example, host A has IP address x.x.x.a, host b has x.x.x.b, and x.x.x.c is the floating address.
How can I receive calls on x.x.x.a, x.x.x.b, and x.x.x.c simultaneously?
I don’t know if the hosts are using SIP or PJSIP if that affects the solution.
Please explain what is going wrong. Both chan_sip and chan_pjsip will accept calls arriving on any address allocated to the machine, as long as you bind to 0.0.0.0, which is the default.
Making the machine accept multiple addresses is a question of defining virtual interfaces for each, but that is an OS question, not an Asterisk one.
That depends on how the address is floating. If the floating address is handled by the network, I assume both Asterisk machines has the address configured on their network interface, and in that case, you just make Asterisk listen there, and you’re set.
If the address is added and removed as needed on the host, you might have to restart Asterisk after adding the address, for Asterisk to actually listen to it. Most software I’ve worked with, does not automatically listen to IP addresses added after startup. (Technically after they bind the listening socket, but whatever)
The real question is, what do you try to solve? In your scenario, if server A is handling the calls, and the network fails over to server B, all calls are dropped, and state (Eg. members in a queue) is forgotten. You would need to keep the state in sync as well.
Many SIP phones support simultaneously registering to multiple addresses, and/or primary/secondary registrations.