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
