Hello Duarte,
I wonder if this is down to differences in JS vs. config script in how truthiness is
evaluated in `if` statements.
In JavaScript, if(...) evaluates to true if the returned value is a non-zero number
(positive or negative). In Kamailio config script[1], in contrast, a value less than 0 is
false, while only a positive value > 0 is evaluated as true.
I'm not sure offhand what t_exists() actually returns. According to the documentation,
it is a boolean, but it may be that the boolean isn't being propagated properly in the
KEMI environment and is being turned into a negative value, which still evaluates as true,
in JS.
-- Alex
On Jul 17, 2024, at 1:37 PM, Duarte Rocha via sr-users
<sr-users(a)lists.kamailio.org> wrote:
Hello all,
I'm using Kamailio with native script and KEMI in Javascript.
I noticed that functions from the TM module can have different results if I call them on
KEMI or Native script. Is this intended behaviour? Don't they share the state?
In order to test this i made the following code :
KEMI Code :
function ksr_request_route() {
try{
if ( KSR.is_method("BYE") ) {
print.error("BYE Request KEMI BYE")
KSR.route("exists_test")
if(KSR.tm.t_exists()) {
print.error("KEMI : Transaction exists")
}
else {
print.error("KEMI : Transaction does not exist")
}
Native Code :
route[exists_test] {
if( t_exists()) {
xerr("Native Script : Transaction exists \n");
}
else {
xerr("Native Script : Transaction does not exist \n");
}
}
I've also tried to change function call order but every time I get "Transaction
does not exist" on native and "Transaction Exists" on KEMI.
Is this intended behaviour? Should I only call tm functions in native or Kemi in order to
have consistency ?
Thanks in advance,
Best Regards,
__________________________________________________________
Kamailio - Users Mailing List - Non Commercial Discussions
To unsubscribe send an email to sr-users-leave(a)lists.kamailio.org
Important: keep the mailing list in the recipients, do not reply only to the sender!
Edit mailing list options or unsubscribe:
[1]
https://www.kamailio.org/wikidocs/tutorials/faq/main/#how-is-the-function-r…
--
Alex Balashov
Principal Consultant
Evariste Systems LLC
Web:
https://evaristesys.com
Tel: +1-706-510-6800