<div dir="ltr">Stanislav,<div><br></div><div>Back when I originally wrote Jester, we did some basic load testing of the Comdian Mail replica profile against Asterisk&#39;s actual Comedian Mail (which is written in C), and the Jester implementation outperformed it.</div><div><br></div><div>I think you may be overestimating strain of loading Jester once per call. Not counting comments, the core module is less than 800 lines of code (hardly &#39;huge&#39;), the other modules are all smaller than that, and they can be loaded conditionally based upon what you want to accomplish. And for those looking to squeeze more performance out, there&#39;s a supplied script to pre-compile core and all modules, which means they wouldn&#39;t have to be re-compiled every time they&#39;re loaded.</div><div><br></div><div>I&#39;m clear that there would be more efficient approaches than writing a Lua toolkit, and, I doubt that most of them would be as easily accessible as something written in Lua. Given that Lua is already blazing fast for a scripting language, I think it&#39;s a fair compromise.</div><div><br></div><div>I will add that I&#39;ve considered rewriting the core functionality in C for a number of reasons, performance being one of them, but at this time have neither the skill nor the time to learn the skill of writing C code at that level. Someday, maybe... :)</div><div><br></div><div>Chad</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jan 24, 2016 at 10:54 PM, Stanislav Sinyagin <span dir="ltr">&lt;<a href="mailto:ssinyagin@gmail.com" target="_blank">ssinyagin@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">Yes, for relatively small scripts that are concentrated on their jobs. But this thing is huge.</p><div class="HOEnZb"><div class="h5">
<div class="gmail_quote">On 25 Jan 2016 3:36 am, &quot;Michael Jerris&quot; &lt;<a href="mailto:mike@jerris.com" target="_blank">mike@jerris.com</a>&gt; wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Lua is likely to be by far the most efficient of any scripting language used in FreeSWITCH, if there is still really a concern about performance, more pieces can be moved to helpers built out in c code.  If you are looking for dynamic but still optimal performance, lua is likely your best bet<span></span><br><br>On Sunday, January 24, 2016, Stanislav Sinyagin &lt;<a href="mailto:ssinyagin@gmail.com" target="_blank">ssinyagin@gmail.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">why not re-implementing it in Golang and ESL?<br>
<br>
What&#39;s happening now with your system, is that FreeSWITCH loads few<br>
thousand lines of Lua code on every call establishment. So, even with<br>
default 30cps limit, you may overload the CPU with unnecessary job.<br>
<br>
if you don&#39;t like Go, it could be some other language, but I like the<br>
built-in threads in it.<br>
<br>
<br>
<br>
On Sun, Jan 24, 2016 at 9:47 PM, Chad Phillips &lt;<a>chad@apartmentlines.com</a>&gt; wrote:<br>
&gt; Hi Bote,<br>
&gt;<br>
&gt; The difference is (supposed to be) that using Jester takes a lot of the<br>
&gt; dirty work out of doing things that you must turn to scripting for. The<br>
&gt; original design was to remove almost all scripting complexity, and instead<br>
&gt; have users use a more template-based approach to writing their advanced<br>
&gt; workflows. You can have a look at<br>
&gt; <a href="http://thehunmonkgroup.github.io/jester/doc/topics/03-Sequences.md.html#Writing_sequences" target="_blank">http://thehunmonkgroup.github.io/jester/doc/topics/03-Sequences.md.html#Writing_sequences</a><br>
&gt; to see the basic template style.<br>
&gt;<br>
&gt; And here&#39;s an example template that does some fairly advanced stuff:<br>
&gt;<br>
&gt; <a href="http://thehunmonkgroup.github.io/jester/doc/examples/phone_to_post_test.lua.html" target="_blank">http://thehunmonkgroup.github.io/jester/doc/examples/phone_to_post_test.lua.html</a><br>
&gt;<br>
&gt; To my eyes, what the template accomplishes is quite easy to deduce from<br>
&gt; simply reading it, and all of the dirty work for taking those actions is<br>
&gt; handled by Jester core and the supporting modules.<br>
&gt;<br>
&gt; The current limitation is that you must use the template structure to gain<br>
&gt; access to Jester&#39;s modules. Looking back, this was a design mistake that I<br>
&gt; intend to rectify -- it would be much more powerful and flexible to use a<br>
&gt; template when it made sense, and still be able to mix pure Lua scripting<br>
&gt; with calls to Jester&#39;s support modules when that makes more sense. And what<br>
&gt; I&#39;m hoping to get help with is correcting that design flaw while preserving<br>
&gt; &#39;the good stuff&#39; in the toolkit.<br>
&gt;<br>
&gt; Chad<br>
&gt;<br>
&gt; On Fri, Jan 22, 2016 at 2:16 PM, Bote Man &lt;<a>bote_radio@botecomm.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hey Chad, long time no chat J  I saw your update to the Help section of<br>
&gt;&gt; the Confluence page concerning this and glanced at some things there.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; I guess I don’t even know enough to understand the difference between<br>
&gt;&gt; using your toolkit and just plain writing a Lua script. Would I, for<br>
&gt;&gt; example, write an abbreviated Lua script that calls tested and proven<br>
&gt;&gt; functions in your toolkit, sort of like a library?<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Anyway it sounds useful, so thanks.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; ---<br>
&gt;&gt;<br>
&gt;&gt; Bote<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; FreeSWITCH Docs Janitor<br>
&gt;&gt;<br>
&gt;&gt; <a href="http://freeswitch.org/confluence" target="_blank">http://freeswitch.org/confluence</a><br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; From: Chad Phillips<br>
&gt;&gt; Sent: Friday, 22 January, 2016 14:41<br>
&gt;&gt; Subject: [Freeswitch-users] Seeking collaborators for FreeSWITCH/Lua<br>
&gt;&gt; scripting toolkit<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Looking for folks in the FreeSWITCH community who would be interested in<br>
&gt;&gt; collaborating on an open source scripting toolkit I&#39;ve written for<br>
&gt;&gt; FreeSWITCH/Lua. The basic idea is to have ready made solutions to common<br>
&gt;&gt; scripting needs, so as not to reinvent the wheel.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; The original project was written in 2010. A lot of it still works great,<br>
&gt;&gt; and there are some design flaws that I&#39;d like to work out in the next<br>
&gt;&gt; release.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Project code is here: <a href="https://github.com/thehunmonkgroup/jester" target="_blank">https://github.com/thehunmonkgroup/jester</a><br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Some background and reasoning for the project here:<br>
&gt;&gt; <a href="http://xylil.com/2016/01/20/jester-freeswitch-lua-and-my-quest-for-an-awesome-scripting-toolkit/" target="_blank">http://xylil.com/2016/01/20/jester-freeswitch-lua-and-my-quest-for-an-awesome-scripting-toolkit/</a><br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; If anyone is interested in helping, please let me know!<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Chad<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; _________________________________________________________________________<br>
&gt;&gt; Professional FreeSWITCH Consulting Services:<br>
&gt;&gt; <a>consulting@freeswitch.org</a><br>
&gt;&gt; <a href="http://www.freeswitchsolutions.com" target="_blank">http://www.freeswitchsolutions.com</a><br>
&gt;&gt;<br>
&gt;&gt; Official FreeSWITCH Sites<br>
&gt;&gt; <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
&gt;&gt; <a href="http://confluence.freeswitch.org" target="_blank">http://confluence.freeswitch.org</a><br>
&gt;&gt; <a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a><br>
&gt;&gt;<br>
&gt;&gt; FreeSWITCH-users mailing list<br>
&gt;&gt; <a>FreeSWITCH-users@lists.freeswitch.org</a><br>
&gt;&gt; <a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
&gt;&gt; UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
&gt;&gt; <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; _________________________________________________________________________<br>
&gt; Professional FreeSWITCH Consulting Services:<br>
&gt; <a>consulting@freeswitch.org</a><br>
&gt; <a href="http://www.freeswitchsolutions.com" target="_blank">http://www.freeswitchsolutions.com</a><br>
&gt;<br>
&gt; Official FreeSWITCH Sites<br>
&gt; <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
&gt; <a href="http://confluence.freeswitch.org" target="_blank">http://confluence.freeswitch.org</a><br>
&gt; <a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a><br>
&gt;<br>
&gt; FreeSWITCH-users mailing list<br>
&gt; <a>FreeSWITCH-users@lists.freeswitch.org</a><br>
&gt; <a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
&gt; UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
&gt; <a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
<br>
_________________________________________________________________________<br>
Professional FreeSWITCH Consulting Services:<br>
<a>consulting@freeswitch.org</a><br>
<a href="http://www.freeswitchsolutions.com" target="_blank">http://www.freeswitchsolutions.com</a><br>
<br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
<a href="http://confluence.freeswitch.org" target="_blank">http://confluence.freeswitch.org</a><br>
<a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a><br>
<br>
FreeSWITCH-users mailing list<br>
<a>FreeSWITCH-users@lists.freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a></blockquote>
<br>_________________________________________________________________________<br>
Professional FreeSWITCH Consulting Services:<br>
<a href="mailto:consulting@freeswitch.org" target="_blank">consulting@freeswitch.org</a><br>
<a href="http://www.freeswitchsolutions.com" rel="noreferrer" target="_blank">http://www.freeswitchsolutions.com</a><br>
<br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" rel="noreferrer" target="_blank">http://www.freeswitch.org</a><br>
<a href="http://confluence.freeswitch.org" rel="noreferrer" target="_blank">http://confluence.freeswitch.org</a><br>
<a href="http://www.cluecon.com" rel="noreferrer" target="_blank">http://www.cluecon.com</a><br>
<br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org" target="_blank">FreeSWITCH-users@lists.freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" rel="noreferrer" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" rel="noreferrer" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
<a href="http://www.freeswitch.org" rel="noreferrer" target="_blank">http://www.freeswitch.org</a><br></blockquote></div>
</div></div><br>_________________________________________________________________________<br>
Professional FreeSWITCH Consulting Services:<br>
<a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><br>
<a href="http://www.freeswitchsolutions.com" rel="noreferrer" target="_blank">http://www.freeswitchsolutions.com</a><br>
<br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" rel="noreferrer" target="_blank">http://www.freeswitch.org</a><br>
<a href="http://confluence.freeswitch.org" rel="noreferrer" target="_blank">http://confluence.freeswitch.org</a><br>
<a href="http://www.cluecon.com" rel="noreferrer" target="_blank">http://www.cluecon.com</a><br>
<br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" rel="noreferrer" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" rel="noreferrer" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
<a href="http://www.freeswitch.org" rel="noreferrer" target="_blank">http://www.freeswitch.org</a><br></blockquote></div><br></div>