Hi,
I think your setup might not work as you think it should. See my comments inline.
On Sun, Aug 27, 2017 at 11:37 AM, Donat Zenichev donat.zenichev@gmail.com wrote:
According to my actual question, I've moved further and now think following scheme will work fine:
- NAPTR records for every transport protocol (e.g. "
_sip._udp.domain.org").
Did you mean SRV records? UACs query for SRV records, not NAPTR (as far as I know).
- SRV records for every NAPTR record (e.g. kamailio1.domain.org,
kamailio2.domain.org) with same priority/weight for both of them, to balance half invites to first one and half invites to second one.
That's part of the SRV lookup in step 1.
- A records for every domain name (e.g. kamailio1.domain.org - 10.0.0.1,
10.0.0.2, where actually second one is kamailio2; and the same for fqdn kamailio2.domain.org - 10.0.0.2, 10.0.0.1).
Typically DNS servers shuffle the results for a host. This means you will probably get 10.0.0.2 as the primary IP for your Kamailio1 for half of the queries. This might not be a problem, but you I don't know a way of setting up a primary/secondary setup with two A records.
So the sequence of dialog actions will be
- Invite from uac is balanced to kamailio1;
- Dialog is established and media stream is up;
While there is a DB mode parameter for the dialog module, from documentation I expect the dialog entries only to be written to database when set to mode 1. I think Kamailio actually operates with what's in memory. So you can probably write the information to a shared database, but Kamailio2 will know nothing about the data written by Kamailio1 (unless Kamailio2 is restarted).
- Then kamailio1 goes down;
- Bye message tries to achieve host that was set in rr hf (kamailio1), but
kamailio1 (10.0.0.1) is down, so bye message will be sent to 10.0.0.2 (kamailio2) and a cause of the behaviour is 10.0.0.2 ip assigned to kamailio1 fqdn as second ip.
How should the "down" get detected by the UAC? I would expect the UAC to just retransmit the BYE 6 times and then time out.
- The message will be processed by kamailio2, because of common
dialog/usrloc db.
My guess would be that neither one of your assumptions will happen.
Best Regards, Sebastian
P.S.:
I will make an effort to set up it next week. In case of success, I will write a short report here.
Of course, if I'm totally wrong, I'd be happy to hear that, too.