Hi Stafan,
Thank you for the patch.
I will re-test the IVR plugin.
Regards,
Balint
Stefan Sayer wrote:
Hi,
Andreas Granig wrote:
Hi Stefan,
Stefan Sayer wrote:
Does py_sems work stable and without leaks for you?
I'm just about to start with it, so I can't say anything about
stability yet. I gonna check it under high load as soon as I have
something useful to test with. Are there any known issues I should be
aware of?
I have not done any stress testing with py_sems, but I reproduced the
crash that Balint reported with ivr module, which occured only under
high load and after a while (though not after reproducable call count
- sometimes after some million calls, sometimes after a few hundreds
thousands). In that crashes, I never managed to get a meaningful
backtrace, but it is quite probable to me that this is caused by some
concurrent access to python structures. I am now stress-testing with
r1632 - so far it looks good. In py_sems the python c++-class wrappers
are auto-generated, but apart from that it is quite similar to ivr
module, so the same problems might be present.
Another issue I had which I am now unsure whether its fully resolved
is pythons memory allocator and leaks - I find it quite difficult to
find out where a leak is.
OTOH, I think python for app development in sems is mostly used
because it is so simple, e.g. so many libraries are easily accessible
and all. But usually you would not want to use SEMS from python in
that kind of framework-like way (using functionality on various
abstraction levels, which would among other things involve calling
python functions very often in call processing), but rather build on
some sort of more clearly defined SEMS-API. In DSM we did create just
that: DSMSession is that interface that the session/call object
provides (DSMCall is the implementation). That API is exposed through
'native' DSM actions/conditions/events, but also (already most of it)
through the mod_py python wrapper. With the DSMDisposable mechanism,
other audio devices can also also be added to that API in modules
(without bloating the base call API). You could possibly even add a
function to mod_py that makes it possible to call DSM actions or
evaluate conditions, if you wanted to do that. So I think that
DSM+mod_py might possibly be the better way to go with python in SEMS.
BR
Stefan
Andreas
--
Balint Kovacs
Software Engineer
Gamma Telecom
Mobile +36 (06) 70 244 6677
Phone +44 (0) 207 078 8213
Email [email protected] <mailto:[email protected]>
Web www.gammatelecom.com <http://www.gammatelecom.com>
_______________________________________________
Semsdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/semsdev