[SR-Users] Unquoted values from #!defenv

Daniel-Constantin Mierla miconda at gmail.com
Thu Dec 9 10:54:58 CET 2021


I pushed the code to enclose the value in between quotes. Can you test
and see if works now?

Cheers,
Daniel

On 08.12.21 19:07, Daniel-Constantin Mierla wrote:
>
> 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/

-- 
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/20211209/74c9f75a/attachment.htm>


More information about the sr-users mailing list