[SR-Users] Unquoted values from #!defenv

Daniel-Constantin Mierla miconda at gmail.com
Wed Dec 8 19:07:57 CET 2021


I expected the quoted mode parameter does the work -- I will check and
push the update.

Regarding support for undefined env values, maybe add something like
#!trydefenv, because I find #!defenv useful at is it, to be used when
the env variable must be set for proper working of kamailio (e.g., DB
url) and fail to start if not set.

Cheers,
Daniel

On 08.12.21 17:17, Ben Kaufman wrote:
>
> Daniel,
>
>  
>
> Is the #!defenvs feature still a work in progress? I wrote a change to
> add #!defenvn and #!defenvns to allow for undefined environmental
> variables, and noticed that the string quoting on #!defenvs doesn’t do
> anything except log the quoting mode in /src/core/ pp_define_set().
>
> *Ben Kaufman*
>
> /Sr. VoIP Engineer/
>
>
> P:
>
> E: bkaufman at bcmone.com
>
> 24 hour client support: 855.639.6300 <tel:+18556396300>
>
>
>  
>
> *From:* sr-users <sr-users-bounces at lists.kamailio.org> *On Behalf Of
> *Ben Kaufman
> *Sent:* Tuesday, December 7, 2021 9:12 AM
> *To:* Kamailio (SER) - Users Mailing List <sr-users at lists.kamailio.org>
> *Subject:* Re: [SR-Users] Unquoted values from #!defenv
>
>  
>
> Thank you.  I’ve been using -A to set values thus far as CMD arguments
> to the container’s ENTRYPOINT.  If submitting a pull request, would it
> be preferrable to allow #!defenv/#!defenvs to accept undefined values,
> or to add new keywords like #!ifdefenv/#!ifdefenvs ?
>
>  
>
> *Ben Kaufman*
>
>
>  
>
> *From:* Daniel-Constantin Mierla <miconda at gmail.com>
> *Sent:* Tuesday, December 7, 2021 2:22 AM
> *To:* Ben Kaufman <bkaufman at bcmone.com>; Kamailio (SER) - Users
> Mailing List <sr-users at lists.kamailio.org>
> *Subject:* Re: [SR-Users] Unquoted values from #!defenv
>
>  
>
> The current behaviour targets the use of existing values from the
> environment variables. If you need other kind of features, you can
> propose pull requests. Or you can eventually have a start script that
> sets defines with -A cli parameter based on env variables.
>
> Cheers,
> Daniel
>
> On 06.12.21 21:56, Ben Kaufman wrote:
>
>     Thank you :)
>
>      
>
>     A follow up question would be on the usability of the #!defenv
>     (and probably #!defenvs) usability with #!ifdef.  In the scenario
>     below, if the environmental variable WITH_DEBUGGER is not defined,
>     then Kamailio will fail to start, thus the #!ifdef is somewhat
>     limited.  It makes sense for scenarios where someone might toggle
>     the setting editing the config file, but it would be very
>     convenient to toggle the environmental variable instead,
>     particularly in containerized environments.   Any thoughts on how
>     best to control this?
>
>      
>
>     #!defenv WITH_DEBUGGER
>
>      
>
>     #!ifdef WITH_DEBUGGER
>
>     loadmodule "debugger"
>
>     . . .
>
>     #!endif
>
>      
>
>      
>
>      
>
>      
>
>     *Ben Kaufman*
>
>
>      
>
>     *From:* Daniel-Constantin Mierla <miconda at gmail.com>
>     <mailto:miconda at gmail.com>
>     *Sent:* Monday, December 6, 2021 3:55 AM
>     *To:* Kamailio (SER) - Users Mailing List
>     <sr-users at lists.kamailio.org>
>     <mailto:sr-users at lists.kamailio.org>; Ben Kaufman
>     <bkaufman at nexvortex.com> <mailto:bkaufman at nexvortex.com>
>     *Subject:* Re: [SR-Users] Unquoted values from #!defenv
>
>      
>
>     Hello,
>
>     #!substdef does not set the value inside quoted string, it
>     replaces inside a string value, so it does not put quotes around
>     replacement part. So it does it it is written in the docs. There
>     is #!substdefs witch can create a define with quoted value.
>
>     Note that defines are standalone-token replacement, you can define
>     an ID to a number, to a keyword (e.g., src_ip), to a quoted string
>     or even a multi-line script snippet, like:
>
>     #!define IDLOOP $var(i) = 0; \
>                     while($var(i)<5) { \
>                         xlog("++++ $var(i)\n"); \
>                         $var(i) = $var(i) + 1; \
>                     }
>
>     See the core cookbook for more details.
>
>     Anyhow, as using env variable values as quoted string is useful
>     and setting them with quotes might look odd, I added #!defenvs:
>
>       * https://www.kamailio.org/wiki/cookbooks/devel/core#defenvs
>     <https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.kamailio.org%2Fwiki%2Fcookbooks%2Fdevel%2Fcore%23defenvs&data=04%7C01%7Cbkaufman%40bcmone.com%7C1aca7b0156bf4d96bc9508d9b9941bbd%7Cafc1818e7b6848568913201b9396c4fc%7C1%7C0%7C637744868075326626%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=nIrsUUO%2Bn8zUzUxCfm9T%2BqLC6HzHPIxDTS80bKGq95w%3D&reserved=0>
>
>     Cheers,
>     Daniel
>
>     On 30.11.21 22:40, Ben Kaufman wrote:
>
>         Hello all,
>
>          
>
>         Looking for some clarification regarding quoting and !#defenv
>         .  I understand that the example below fails because the
>         environmental variable HOME is not quoted, thus when used in
>         the xlog() call it fails.  How is it possible to evaluate
>         and/or use the value of the environmental variable if defined
>         as a preprocessor variable?  Looking at the documentation the
>         reason for this directive is “It is a simplified alternative
>         of using *#!substdef* with *$env(NAME)* in the replacement
>         part.” But #!substdef would allow setting the value inside of
>         a quoted string, so does it really meet that requirement?
>
>          
>
>         I’m aware that I could use $env(HOME) rather than a
>         preprocessor directive of HOME.  I’m just trying to understand
>         the usage of the #!defenv feature.
>
>          
>
>          
>
>         #!KAMAILIO
>
>         ## Tested in 5.5.2
>
>         loadmodule "xlog"
>
>         loadmodule "pv"
>
>         loadmodule "evrexec"
>
>          
>
>         modparam("evrexec", "exec",
>         "name=evrexec:timer;wait=1000;workers=1;")
>
>          
>
>         #!defenv HOME
>
>          
>
>         request_route{
>
>             forward();
>
>         }
>
>          
>
>         event_route[evrexec:timer] {
>
>             xlog("L_N", "HOME: " + HOME + "\n");
>
>         }
>
>          
>
>          
>
>         *Ben Kaufman*
>
>
>          
>
>          
>
>
>
>         __________________________________________________________
>
>         Kamailio - Users Mailing List - Non Commercial Discussions
>
>           * sr-users at lists.kamailio.org
>
>         Important: keep the mailing list in the recipients, do not reply only to the sender!
>
>         Edit mailing list options or unsubscribe:
>
>           * https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users <https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.kamailio.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fsr-users&data=04%7C01%7Cbkaufman%40bcmone.com%7C1aca7b0156bf4d96bc9508d9b9941bbd%7Cafc1818e7b6848568913201b9396c4fc%7C1%7C0%7C637744868075336581%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=tl%2Fk0oCQduWOvBdvH0C2qrxw6I7yXIedBiS8Hf7%2B1f0%3D&reserved=0>
>
>     -- 
>
>     Daniel-Constantin Mierla -- www.asipto.com <https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.asipto.com%2F&data=04%7C01%7Cbkaufman%40bcmone.com%7C1aca7b0156bf4d96bc9508d9b9941bbd%7Cafc1818e7b6848568913201b9396c4fc%7C1%7C0%7C637744868075336581%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=CFCz9vV5ZCrh1S%2FY7sKBCQnQThMy1H0IdTutAz8Hpxo%3D&reserved=0>
>
>     www.twitter.com/miconda <https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.twitter.com%2Fmiconda&data=04%7C01%7Cbkaufman%40bcmone.com%7C1aca7b0156bf4d96bc9508d9b9941bbd%7Cafc1818e7b6848568913201b9396c4fc%7C1%7C0%7C637744868075336581%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=QdFDXyCLTvKg9Us3eTMPknGYNfEnmDsvu4%2FGuSbb0aE%3D&reserved=0> -- www.linkedin.com/in/miconda <https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.linkedin.com%2Fin%2Fmiconda&data=04%7C01%7Cbkaufman%40bcmone.com%7C1aca7b0156bf4d96bc9508d9b9941bbd%7Cafc1818e7b6848568913201b9396c4fc%7C1%7C0%7C637744868075346539%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=y70uIREpgVVhHUbroEgWJDt1wLSvEhcOVEamALZQZ%2FY%3D&reserved=0>
>
>     Kamailio Advanced Training - Online
>
>       Feb 21-24, 2022 (America Timezone)
>
>       * https://www.asipto.com/sw/kamailio-advanced-training-online/ <https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.asipto.com%2Fsw%2Fkamailio-advanced-training-online%2F&data=04%7C01%7Cbkaufman%40bcmone.com%7C1aca7b0156bf4d96bc9508d9b9941bbd%7Cafc1818e7b6848568913201b9396c4fc%7C1%7C0%7C637744868075346539%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=djC3bOEHvHDsIhlYvTQclAF8UmvMmoChVQebVESpRyE%3D&reserved=0>
>
> -- 
> Daniel-Constantin Mierla -- www.asipto.com <https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.asipto.com%2F&data=04%7C01%7Cbkaufman%40bcmone.com%7C1aca7b0156bf4d96bc9508d9b9941bbd%7Cafc1818e7b6848568913201b9396c4fc%7C1%7C0%7C637744868075356493%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=uV38pnwyW4qvqgBhUvb2MMBQCgFSOpR4Kvf7jtunJJc%3D&reserved=0>
> www.twitter.com/miconda <https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.twitter.com%2Fmiconda&data=04%7C01%7Cbkaufman%40bcmone.com%7C1aca7b0156bf4d96bc9508d9b9941bbd%7Cafc1818e7b6848568913201b9396c4fc%7C1%7C0%7C637744868075356493%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=kPowGpbkXXlkChx6hkjBnLgOWOlFYUQe4%2Fyx7l7mfrk%3D&reserved=0> -- www.linkedin.com/in/miconda <https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.linkedin.com%2Fin%2Fmiconda&data=04%7C01%7Cbkaufman%40bcmone.com%7C1aca7b0156bf4d96bc9508d9b9941bbd%7Cafc1818e7b6848568913201b9396c4fc%7C1%7C0%7C637744868075366462%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=kpktAHVWC7m6pVL9tXQMA2D4DaomCkja7%2FDrzS4xX8s%3D&reserved=0>
> Kamailio Advanced Training - Online
>   Feb 21-24, 2022 (America Timezone)
>   * https://www.asipto.com/sw/kamailio-advanced-training-online/ <https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.asipto.com%2Fsw%2Fkamailio-advanced-training-online%2F&data=04%7C01%7Cbkaufman%40bcmone.com%7C1aca7b0156bf4d96bc9508d9b9941bbd%7Cafc1818e7b6848568913201b9396c4fc%7C1%7C0%7C637744868075366462%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=ji3uac4U67Gsdj4%2BOpYPWR762fo1qlPNVtrADJDBCMY%3D&reserved=0>
>
> __________________________________________________________
> Kamailio - Users Mailing List - Non Commercial Discussions
>   * sr-users at lists.kamailio.org
> Important: keep the mailing list in the recipients, do not reply only to the sender!
> Edit mailing list options or unsubscribe:
>   * https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users

-- 
Daniel-Constantin Mierla -- www.asipto.com
www.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio Advanced Training - Online
  Feb 21-24, 2022 (America Timezone)
  * https://www.asipto.com/sw/kamailio-advanced-training-online/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20211208/39093e21/attachment.htm>


More information about the sr-users mailing list