On Tuesday 17 August 2010, Nicolas Rüger wrote: > thanks for the help. Your idea kept me trying as the C-code shows that it > should return the result from the PERL subroutine as you already mentioned > in your answer. > > Two points I want to name here: > > 1) > > I'm still confused that the methods in perl/perlfunc.c are called > "perl_exec1()" and "perl_exec2()" instead of "perl_exec" because that's > the one for use in kamailio.cfg.
Hey Nicolas, this is not defined in the C, but in the module interface. Take a look to the perl.c:static cmd_export_t cmds[] variable. > 2) More Important... > > > I finally solved my issue by using a variable in kamailio.cfg: > > > if (is_method("INVITE")) { > $var(a) = perl_exec("my_perl_subroutine"); > if ($var(a) == -1){ > xlog("PERL returns -1 \n"); > } > } > > That works! > > So is this behavior of kamailio.cfg a bug? > It should at least be listed in the documentation cause it's really tricky. > > > PLEASE NOTE: > > perl_exec("my_perl_subroutine") == -1 --> returns FALSE > > BUT > > $var(a) = perl_exec("my_perl_subroutine"); > $var(a) == -1 --> returns TRUE This is indeed strange. I'd say that evaluating the return value of a function is nothing that new, its has been a pretty long time there. Maybe the comparison went somehow mad because of some typing issue? Another idea, have you tried using the $rc PV, which also return the result of the last called function? Regards, Henning _______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users