Also, I' found this post by Daniel in 2014:
https://lists.kamailio.org/pipermail/sr-users/2014-May/083155.html
To quote:
Indeed, the db connection is not initialized at the time of executing event_route[htable:mod-init]. This is executed after all modules are initialized, but the sqlops connections are initialized in child init.
So maybe this is the case for 5.0.3 as well? sqlops functions can't be used in event_route[htable:mod-init] yet?
On 28 September 2017 at 20:18, George Diamantopoulos georgediam@gmail.com wrote:
Hello,
I've tested again, this time including a single sql_pvquery function in the event-route. Kamailio will also exit with "daemonize(): Main process exited before writing to pipe" in this simpler case.
In the documentation, it is stated that: The event route is executed only once, after core and module initialization, <emphasis>but before Kamailio forks any child processes</emphasis>.
Does this mean that I don't have (perhaps) access to pseudovariables during execution of this route? Is this the reason why kamailio exits prematurely?
Thanks,
George
On 26 September 2017 at 15:37, George Diamantopoulos <georgediam@gmail.com
wrote:
I forgot to mention, I'm using Kamailio 5.0.3 on debian "stretch".
On 26 September 2017 at 14:40, George Diamantopoulos < georgediam@gmail.com> wrote:
Hello all,
I've been trying to utilise event_route[htable:mod-init] in order to load information from the database into an htable on startup. However, Kamailio exits with an error for no obvious (to me) reason. Here's the log output:
DEBUG: htable [htable.c:226]: child_init(): rank is (-127) DEBUG: htable [htable.c:259]: child_init(): executing event_route[htable:mod-init] (2) DEBUG: <core> [core/parser/msg_parser.c:600]: parse_msg(): SIP Request: DEBUG: <core> [core/parser/msg_parser.c:602]: parse_msg(): method:
<OPTIONS> DEBUG: <core> [core/parser/msg_parser.c:604]: parse_msg(): uri: < sip:you@kamailio.org> DEBUG: <core> [core/parser/msg_parser.c:606]: parse_msg(): version: <SIP/2.0> DEBUG: <core> [core/parser/parse_via.c:2639]: parse_via(): end of header reached, state=2 DEBUG: <core> [core/parser/msg_parser.c:491]: parse_headers(): Via found, flags=2 DEBUG: <core> [core/parser/msg_parser.c:493]: parse_headers(): this is the first via ERROR: <core> [core/daemonize.c:303]: daemonize(): Main process exited before writing to pipe
And here's the routing block in kamailio.cfg. What I need to do is get the username for all non-expired contacts in the "location" table, perform a query on another database for each one of them and store the result in an htable:
event_route[htable:mod-init] {
sql_pvquery("ck", "select username from location where now() <=
expires", "$avp(registered_ng)");
$var(i) = 0; while ( $(avp(registered_ng)[$var(i)]) != $null ) { sql_pvquery("ca", "select property from tablename where username
= $(avp(registered_ng)[$var(i)])", "$var(ng_property)"); $sht(isnguser=>$var(ng_property)) = 1; $var(i) = $var(i) + 1; pv_unset("$var(ng_property)"); }
pv_unset("$var(i)");
}
Any hints as to what I might be doing wrong? Thanks!
Best regards, George