[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)

2023-11-13 Thread David Villasmil via sr-users
Or better yet use an htable

On Mon, 13 Nov 2023 at 13:31, Henning Westerholt via sr-users <
sr-users@lists.kamailio.org> wrote:

> 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 - https://skalatan.de/blog/
> Kamailio services - https://gilawa.com
>
>
>
> > -Original Message-
> > From: Daniel-Constantin Mierla via sr-users  >
> > Sent: Montag, 13. November 2023 11:46
> > To: Kamailio (SER) - Users Mailing List 
> > Cc: Daniel-Constantin Mierla 
> > 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-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:
> __
> 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:
>
__
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:


[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)

2023-11-13 Thread Henning Westerholt via sr-users
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 - https://skalatan.de/blog/
Kamailio services - https://gilawa.com



> -Original Message-
> From: Daniel-Constantin Mierla via sr-users 
> Sent: Montag, 13. November 2023 11:46
> To: Kamailio (SER) - Users Mailing List 
> Cc: Daniel-Constantin Mierla 
> 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-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:
__
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:


[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)

2023-11-13 Thread Daniel-Constantin Mierla via sr-users
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: