Hello Kamailio-3 users,
I have two questions regarding usage of variables within the config file (as
published in the NEW FEATURES of Kamailio 3.0.0).
The reason why I want to use variables instead of standard configuration
lines is the maintainability of my SIP servers. I have a group of about 20
sip servers distributed over a wide area. Especially routing rules might
change during operation of the servers and must be adapted on all servers.
Therefore I want to use variables, defined at the beginning of each config
file. Within the config file / the different routing blocks I want to
reference to these variables. That would be much easier for automatic config
script adaptation with a linux script (e.g.) than parsing the whole config file
for special text phrases.
QUESTION 1:
==========
Is it impossible using a variable for requesting a SRC_IP address? With my
current configuration I always see an entry in the SYSLOG that looks as
follows: "<core> [route.c:1531]: BUG: comp_ip: invalid type for src_ip or
dst_ip (20)"
The configuration lines look like:
$var(lst_gwIpRange) = "10.16.48.6[0-2]";
[...]
if (src_ip=~$var(lst_gwIpRange)) {
[...]
}
Is maybe a transformation missing/necessary to avoid the error message (which
causes a malfunction)? Can anybody give me a hint?
QUESTION 2:
==========
The second problem I found is, that the config variables can be configured
within a route block only and not - as expected - e.g. at the top of the
config file (in the same way as the custom variables). I can't use the custom
variables as they are, because I will use more complex variables, which are a
mixture of up to three custom variables. These "complex" variables will be used
in more than one routing block. Therefore I have to define these variables in
every routing block...... Is an alternative (easier) solution with a single
definition available, too?
An example of my problem is as follows:
# custom variables defined on top of the kamailio.cfg file
tst.loc_ipaddr = "10.10.1.1" desc "IP addr of the local SIP Server"
tst.loc_prefix = "11" desc "prefix of this SRV"
tst.distRu1 = "51[0-9].*" desc "variable representing ID1"
# the final variable should look like "sip:1151[[email protected]"
# and is used in 3 routing blocks
route[]
$var(test) = "sip:" + $sel(cfg_get.tst.loc_prefix) +
$sel(cfg_get.tst.distRu1) + "@" + $sel(cfg_get.tst.loc_ipaddr);
[...]
route[TEST1]
$var(test) = "sip:" + $sel(cfg_get.tst.loc_prefix) +
$sel(cfg_get.tst.distRu1) + "@" + $sel(cfg_get.tst.loc_ipaddr);
[...]
route[TEST2]
$var(test) = "sip:" + $sel(cfg_get.tst.loc_prefix) +
$sel(cfg_get.tst.distRu1) + "@" + $sel(cfg_get.tst.loc_ipaddr);
[...]
Thanks in advance for any hints!
Regards,
Klaus Feichtinger
--
Sicherer, schneller und einfacher. Die aktuellen Internet-Browser -
jetzt kostenlos herunterladen! http://portal.gmx.net/de/go/atbrowser
_______________________________________________
Kamailio (OpenSER) - Users mailing list
[email protected]
http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
http://lists.openser-project.org/cgi-bin/mailman/listinfo/users