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-le...@lists.kamailio.org
Important: keep the mailing list in the recipients, do not reply only to the 
sender!
Edit mailing list options or unsubscribe:

Reply via email to