[Freeswitch-dev] lua problems

adam harris admharris at gmx.com
Mon Apr 2 22:07:02 MSD 2012


I want to receive dtmf events

I have problems with the following code.


con = freeswitch.EventConsumer("all")

session:setVariable("playback_terminators", "0123456789")
session:execute("playback", "/usr/local/freeswitch/sounds/SAMPLE.wav")


while (session:ready()) do

   for e in (function() return con:pop(1) end) do

 event_name = e:getHeader("Event-Name") or ""
 if(event_name == "DTMF") then
 print("have DTMF")
 print(e:getHeader("DTMF-Digit"))
 end
   end 
end



I thought con:pop should work like on esl_recv_event however in this case after the first incoming dtmf it freezes? It does not respond on further key presses.

On some instances the console has printed two entries when I am sure I only press the key once.

 have DTMF
 8
 have DTMF
 8

I saw a posting online about the adding optional timeout parameter to pop. Has this been offically implemented because I get an error when using it like con:pop(1, 6000)

2012-04-02 13:42:50.643708 [ERR] mod_lua.cpp:191 Error in pop expected 1..2 args, got 3
stack traceback:
        [C]: in function 'pop'
        /usr/local/freeswitch/scripts/aprompt.lua:11: in function '(for generator)'
        /usr/local/freeswitch/scripts/aprompt.lua:11: in main chunk


I have not found esl_recv_event_timed function in lua.  If it does not exit in lua what is correct the equivilent way?

On a further note is Session.collectInput going to be available in lua?



Join us at ClueCon 2011 Aug 9-11, 2011
More information about the FreeSWITCH-dev mailing list