Hello,
just to add another common method, you could also just use a cfg file variable that you
can modify later with kamcmd, kamcli etc.. There is a prepared variable (pstn..) in the
default cfg.
Cheers,
Henning
--
Henning Westerholt -
-----Original Message-----
From: Daniel-Constantin Mierla via sr-users <sr-users(a)lists.kamailio.org>
Sent: Montag, 13. November 2023 11:46
To: Kamailio (SER) - Users Mailing List <sr-users(a)lists.kamailio.org>
Cc: Daniel-Constantin Mierla <miconda(a)gmail.com>
Subject: [SR-Users] Re: How to check for presence of a file from a route? (Or
any other way to tell kamailio not to accept new calls)
On 13.11.23 11:17, Benoit Panizzon via sr-users wrote:
Hi
I'm still looking for a better way to tell Kamailio that we want to
enter 'maintenance' and STAY in maintenance after a restart.
Maintenance is: Reject all messages without totag with 503 to prevent
creating new dialogues.
I could use a shared pv and the use kamcmd pv.shvSet to toggle it.
But when kamailio is restarted, that pv is also reset to it's initial
state. Not good, if I want to make sure the node stays in maintenance
mode after a restart as for example after pushing a config change via
ansible.
So what comes to my mind is to check for the presence of a file.
something like:
route[CHECK_MAINTENANCE]
{
if (!has_totag() && is_method("INVITE")) {
if (file_exist("/etc/kamailio/maintenance.flag")) {
xlog("L_ERR", "Maintenance flag present! Rejecting
INVITE\n");
t_send_reply("503",
"Maintenance mode - no new
calls accepted");
exit;
}
}
}
I would really avoid checking/reading a file for every new sip call, especially on
production system with decent volume of calls. But if suits your needs and
system, look at corex module, there is a function to read the content of a file.
I would rather find a solution where the state is kept in memory, like still using
$shv(...) and change kamailio.cfg to init in maintenance mode via pv
parameter which can set $shv(...) at startup, or using htable with database
backend that loads at startup.
Cheers,
Daniel
--
Daniel-Constantin Mierla (@
asipto.com)
twitter.com/miconda --
linkedin.com/in/miconda Kamailio Consultancy and
Development Services
__________________________________________________________
Kamailio - Users Mailing List - Non Commercial Discussions To unsubscribe
send an email to sr-users-leave(a)lists.kamailio.org
Important: keep the mailing list in the recipients, do not reply only to the
sender!
Edit mailing list options or unsubscribe: