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 <[email protected]>
> *Sent:* Monday, December 6, 2021 3:55 AM
> *To:* Kamailio (SER) - Users Mailing List
> <[email protected]>; Ben Kaufman <[email protected]>
> *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%40nexvortex.com%7C6028b5b0b93344af8d0308d9b89e8a04%7Cafc1818e7b6848568913201b9396c4fc%7C1%7C0%7C637743813349298668%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=Q2j9FAXfUTB2uNwKhu5OeEmQanN7xmMGDYb9JBJw6JY%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
>
>       * [email protected]
>
>     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%40nexvortex.com%7C6028b5b0b93344af8d0308d9b89e8a04%7Cafc1818e7b6848568913201b9396c4fc%7C1%7C0%7C637743813349298668%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=sg%2Bvyol603800duARWt2cyAY2zyk8b7RwtDdqxQvkVI%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%40nexvortex.com%7C6028b5b0b93344af8d0308d9b89e8a04%7Cafc1818e7b6848568913201b9396c4fc%7C1%7C0%7C637743813349298668%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=TSsHgbu0R21zntLh04F9ygSsdMhf2IFMu0gsQH0QdLE%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%40nexvortex.com%7C6028b5b0b93344af8d0308d9b89e8a04%7Cafc1818e7b6848568913201b9396c4fc%7C1%7C0%7C637743813349298668%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=fC7l4GXE37%2FlnU3VEEFYtDfh3Paz7qngOegogfTYPfo%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%40nexvortex.com%7C6028b5b0b93344af8d0308d9b89e8a04%7Cafc1818e7b6848568913201b9396c4fc%7C1%7C0%7C637743813349298668%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=YwgDc3er7OybfRCfku6xVEz9d3JF%2BVI9fm9obQc5JyY%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%40nexvortex.com%7C6028b5b0b93344af8d0308d9b89e8a04%7Cafc1818e7b6848568913201b9396c4fc%7C1%7C0%7C637743813349298668%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&sdata=%2FEHm83D99ywCJaMbJfzBqFRFMbbIyLd5etfUpLWmTF4%3D&reserved=0>

-- 
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/
__________________________________________________________
Kamailio - Users Mailing List - Non Commercial Discussions
  * [email protected]
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

Reply via email to