[OpenSIPS-Users] Problem using xlog with variables
Jan Blom
jan.blom at peopleinteractive.se
Mon Dec 5 10:45:33 CET 2016
Hi Bogdan,
Perhaps variables should be evaluated when passed as arguments to a route? Then it would be possible to replace a function call like this:
xlog("L_INFO", "$rm received on $var(hostname)");
with a call to a sub-route:
route(LOG, "$rm received on $var(hostname)");
route[LOG] {
# do some common stuff here
xlog("L_INFO", $param(1));
}
Best regards,
Jan
From: Bogdan-Andrei Iancu [mailto:bogdan at opensips.org]
Sent: den 5 december 2016 09:59
To: Jan Blom <jan.blom at peopleinteractive.se>; OpenSIPS users mailling list <users at lists.opensips.org>
Subject: Re: [OpenSIPS-Users] Problem using xlog with variables
Hi Jan,
Of course you can, but you need to evaluate the variables before passing it to the route (as param)
$var(msg) = rm + "received on " + $var(hostname);
route(logger, $var(msg));
Regards,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
On 04.12.2016 21:29, Jan Blom wrote:
Hi Bogdan,
Thank you for the clarification. I was suspecting that.
That means I cannot simply drop-in replace calls to xlog with calls to a route and passing the log message as an argument.
What do you think about adding a core function eval() that evaluates a string (possibly recursively)?
Best regards,
Jan
From: Bogdan-Andrei Iancu [mailto:bogdan at opensips.org]
Sent: den 2 december 2016 09:57
To: OpenSIPS users mailling list <users at lists.opensips.org><mailto:users at lists.opensips.org>; Jan Blom <jan.blom at peopleinteractive.se><mailto:jan.blom at peopleinteractive.se>
Subject: Re: [OpenSIPS-Users] Problem using xlog with variables
Hi Jan,
You can print via variables strings containing again references to other variables - there is only one level of variable evaluation.
You should do it:
$var(msg) = $rm + "received on " + $var(hostname);
xlog("L_INFO", "$var(msg)");
Regards,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
On 01.12.2016 23:36, Jan Blom wrote:
Hello all,
I was going to centralized logging functions to a route block that would be called from various place in script, using $param(n) to access the log message. I got stuck on what I guess is variable evaluation. Simplified this is the problem:
The normal (working) way:
xlog("L_INFO", "$rm received on $var(hostname)");
Output: INVITE received on proxy-stage-01
What I was trying:
$var(msg) = "$rm received on $var(hostname)";
xlog("L_INFO", "$var(msg)");
Output: $rm received on $var(hostname)
In the latter case the variables are not evaluated the way I was expecting.
Is there a better way to achieve the output of the first example by using a variable containing the message to xlog?
I am testing this on OpenSIPS 2.1.
Best regards,
Jan Blom
_______________________________________________
Users mailing list
Users at lists.opensips.org<mailto:Users at lists.opensips.org>
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20161205/4d6e7adb/attachment-0001.htm>
More information about the Users
mailing list