Hi Henning,
Yes, it would be for the HA setup.
So for example, say we have (I'm making it up):
modparam("uac", "reg_start_disabled", 1) ## This tells uac module to start with all records in `uacreg` table disabled.
1- Start kamailio on both nodes (no registrations are sent by any node).
2- Start keepalived on both nodes, some tests are done, the VIP is enabled on one of the nodes (MASTER). Keepalived would then run a script that would effectively enable all registrations (looping through all the records in the uacreg table doing a `kamctl rpc uac.reg_enable ...` or a future possible `kamctl rpc uac.reg_enable_all` :P).
That way, only the active node would be proactively sending the outbound registrations.
I don't see any of this a problem, as right now both are sending registrations using the same "Contact:", so any incoming requests will be directed to the active kamailio. This is just to keep things tidy and not have 2 servers sending outbound registrations when it isn't strictly necessary.
What do you think?
Thanks, Joel.
On Mon, Aug 13, 2018 at 11:50 AM, Henning Westerholt hw@kamailio.org wrote:
Am Montag, 13. August 2018, 07:23:10 CEST schrieb Joel Serrano:
Thanks for your suggestions. For now I'll give a try your approach #1.
Couple extra doubts:
1- do you think an expiry of say 60s is too low? or is it reasonable? (I know it will depend a lot on the number of records in database, but in
this
case it's very little, like ~50 or so). 2- can I set uac module to initialize without sending any REGISTER
requests
("start with all records in database disabled")? If answer is no, then my idea would be to set uacreg colum reg_delay to say 10s or so to give time to kamailio to startup, and than have an external script manually disable them before the delay expires. What do you think? [..]
Hello Joel,
60s is indeed low. I saw some reports of people use something like this in NAT settings, but I'd suggest for something between 2-3 minutes. This gives you a bit more room for eventual errors during a restart or something like this.
About the second question - I just did a quick check in the code. It seems that the uac module is reading during child_init the DB records, and there is currently no setting to disable this. But I did not fully understand the rationale behind this question, is this for your high-availability setup or something like this?
Best regards,
Henning
-- Henning Westerholt https://skalatan.de/blog/