<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.24.1.1">
</HEAD>
<BODY>
Hi<BR>
I dont know about events so much but I cannot see variable &quot;e&quot; is setting<BR>
<BR>
<B>event_name = e:getHeader(&quot;Event-Name&quot;) or &quot;&quot; </B><BR>
<B>event_subclass = e:getHeader(&quot;Event-Subclass&quot;) or &quot;&quot; </B><BR>
<BR>
regurds<BR>
Eli<BR>
<BR>
On Thu, 2009-08-06 at 12:58 +0300, Seven Du wrote:<BR>
<BLOCKQUOTE TYPE=CITE>
    ALL-
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    <BR>
    <BR>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    I have a few questions when scripting lua. According to wiki, it is possible to run looping forever lua scripts through start-up config or luarun.&nbsp;
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    <BR>
    <BR>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    1) Will the lua script stop when unload mod_lua? I experienced core dump when unload mod_lua while there was a running lua script. Reported on jira.
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    <BR>
    <BR>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    2) How to stop a forever running lua script? &nbsp;I stop it by listening a CUSTOM event fired elsewhere. See code below. Is there any standard way like luastop ?
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    <BR>
    <BR>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    3) Any way to show how many running lua scripts? luashow ?
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    <BR>
    <BR>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    4) It seems cannot get the lua script name in a lua script, I made a patch to jira by assign it to the argv[0].
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    <BR>
    <BR>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    5) Seems that only EventConsumer(&quot;all&quot;) working. EventConsumer(&quot;CHANNEL_HANUP CUSTOM lua::stop&quot;) doesn't seem to work. Any idea to this?
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    <BR>
    <BR>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    Thanks a lot.
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    <BR>
    <BR>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    <BR>
    <BR>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    code example:
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    <BR>
    <BR>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    con = freeswitch.EventConsumer(&quot;all&quot;); &nbsp; &nbsp; &nbsp;
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    <BR>
    <BR>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    argv[0] = &quot;test.lua&quot;
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    freeswitch.consoleLog(&quot;info&quot;, &quot;==== Lua Script [&quot; .. argv[0] .. &quot;] Starting =====\n&quot;);
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    local all_events = 0
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    for e in (function() return con:pop(1) end) do
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    &nbsp;&nbsp;-- freeswitch.consoleLog(&quot;info&quot;, &quot;event\n&quot; .. e:serialize(&quot;xml&quot;));
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    &nbsp;&nbsp; all_events = all_events + 1;
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    freeswitch.consoleLog(&quot;info&quot;, &quot;all_events: &quot; .. all_events .. &quot;\n&quot;)
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    <BR>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    event_name = e:getHeader(&quot;Event-Name&quot;) or &quot;&quot;
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    event_subclass = e:getHeader(&quot;Event-Subclass&quot;) or &quot;&quot;
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    <BR>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    if (event_name == &quot;CUSTOM&quot; and event_subclass == &quot;lua::stop&quot;) then
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    &nbsp;freeswitch.consoleLog(&quot;info&quot;, &quot;-----lua Script [&quot; .. argv[0] .. &quot;]---Exiting------\n&quot;)
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    &nbsp;break
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    end
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    <BR>
    <BR>
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    end&nbsp;
</BLOCKQUOTE>
<BLOCKQUOTE TYPE=CITE>
    <BR>
    <BR>
</BLOCKQUOTE>
</BODY>
</HTML>