[SR-Users] Missing exit function on KEMI?

Daniel-Constantin Mierla miconda at gmail.com
Thu Mar 29 10:37:46 CEST 2018


Hello,

then you do not use the KEMI framework as config interpreter, but native
configuration interpreter with inline execution of Python code via
python_exec(). KSR module is exported for both cases, KEMI or inline
execution, but KSR.x.exit() (or python exit) stops the KEMI execution,
not the native config execution.

A way to signal that you want to exit native config execution after
python_exec() is to use some local variable, like:

$var(exit) = 0;

python_exec(...);

if($var(exit) == 1) exit;

And inside the python script you execute with python_exec() set
$var(exit) to 1 via KSR.pv_seti(...) whenever you want to do an exit.

Otherwise, I haven't developed python_exec() to see what exactly it does
and if it propagates return 0 from python script to kamailio native
interpreter -- return code 0 is used to signal a stop of config
execution, done from a sub-route or a c function:

  * https://www.kamailio.org/wiki/cookbooks/devel/core#return

Cheers,
Daniel

On 29.03.18 10:13, Enrico Bandiera wrote:
> Hi Daniel,
>
> it seems that your suggestion is not working, we are not using python
> for the whole script, we have some functions written in python to
> manipulate jsons and to do API queries which we keep in python but the
> core of the routing logic is still written in Kamailio scripting language.
>
> We call the python functions with python_exec()
>
> I tried to use both exit() and os.exit() but it looks like they are
> ignored and the route execution continues, the only thing that seems
> to work is to return 0 from the function
>
> Can you tell me please if it is safe to use the return value to exit?
>
> Thanks,
> Enrico.
>
>
> 2018-03-28 16:35 GMT+02:00 Daniel-Constantin Mierla <miconda at gmail.com
> <mailto:miconda at gmail.com>>:
>
>     Hello,
>
>     in Python you can call exit() or os.exit(), this throws an
>     exception which is caught by Kamailio and interpreted as the usual
>     exit from kamailio.cfg.
>
>     Probably we should add the KSR.x.exit() there as well, it was not
>     added because python exit gave what was needed in this case
>
>     Cheers,
>     Daniel
>
>
>     On 27.03.18 16:49, Enrico Bandiera wrote:
>>     Hello, I'm trying to use the KSR.x.exit() function in a KEMI
>>     python script but at runtime i get this error:
>>
>>     KSR.x.exit()
>>     AttributeError: 'module' object has no attribute 'exit'
>>
>>     It seems that the exit function is missing even though it is
>>     documented.
>>
>>     My kamailio version is: kamailio 5.2.0-dev4 (x86_64/linux)  (it's
>>     a nightly)
>>
>>     Any idea on what I can do?
>>
>>     Thanks,
>>     Enrico.
>>
>>
>>     _______________________________________________
>>     Kamailio (SER) - Users Mailing List
>>     sr-users at lists.kamailio.org <mailto:sr-users at lists.kamailio.org>
>>     https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>     <https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
>
>     -- 
>     Daniel-Constantin Mierla
>     www.twitter.com/miconda <http://www.twitter.com/miconda> -- www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda>
>     Kamailio Advanced Training - April 16-18, 2018, Berlin - www.asipto.com <http://www.asipto.com>
>     Kamailio World Conference - May 14-16, 2018 - www.kamailioworld.com <http://www.kamailioworld.com>
>
>

-- 
Daniel-Constantin Mierla
www.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio Advanced Training - April 16-18, 2018, Berlin - www.asipto.com
Kamailio World Conference - May 14-16, 2018 - www.kamailioworld.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20180329/511130cc/attachment.html>


More information about the sr-users mailing list