Hi all!

I am using HTTP_CLIENT module, and have created a http configuration file.
The module's config_file parameter is set as:

modparam("http_client", "config_file", "/etc/kamailio/http_client.cfg")

and it works OK on my DEV environment, because there is a symlink /etc/kamailio pointing to physical folder /usr/local/etc/kamailio/  (using Kamailio 5.7.4)

However in our integration environment  (also using Kamailio 5.7.4), which is identical to production, and due to limitations on access rights, we cannot create a symlink /etc/kamailio pointing  /usr/local/etc/kamailio/, so all cfg files are in the installation folder.
So I thought that the config_file parameter should be a relative path, starting with " ./ " or by just setting the config file name, without path (as per documentation at http_client (kamailio.org) .

The issue is that even though the file http_client.cfg is present in  /usr/local/etc/kamailio/, as well as other cfg files, the cfg_parser fails to load it:

Jul 11 09:32:09 lab-kamailio kamailio[44114]: ERROR: <core> [core/cfg_parser.c:632]: cfg_parser_init(): cfg_parser: Unable to open file './http_client.cfg'
Jul 11 09:32:09 lab-kamailio kamailio[44114]: ERROR: http_client [curlcon.c:782]: http_client_load_config(): Failed to init http_client config file parser
Jul 11 09:32:09 lab-kamailio kamailio[44114]: ERROR: http_client [http_client.c:307]: mod_init(): Failed to load http_client connections from [./http_client.cfg]
Jul 11 09:32:09 lab-kamailio kamailio[44114]: ERROR: <core> [core/sr_module.c:1030]: init_mod(): Error while initializing module http_client (/usr/local/lib64/kam
ailio/modules/http_client.so)

I have set the parameter to 
modparam("http_client", "config_file", "./http_client.cfg")
and also to
modparam("http_client", "config_file", "http_client.cfg")

but it only works if I add it as :
modparam("http_client", "config_file", "/usr/local/etc/kamailio/http_client.cfg")
or by adding 
chroot="/usr/local/etc/kamailio"
in the main cfg script, which was my final solution.

Also checked for permissions, and all is fine. Note that this only seems to happen with http_client config_file parameter. I have other include commands in the main cfg file with relative paths and all works fine.

I have also analysed the cfg_parser.so file, which loads the configuration file for http_client module, but could not find anything wrong with it (at 1st glance....)

What am I doing wrong?
Any clue?


Atenciosamente / Kind Regards / Atentamente / Cordialement,


Sérgio