Seven Du, Thanks for your response. I eventually found a way by sending via the Event Socket Layer: sendmsg <channel uuid> call-command: execute execute-app-name: break Then sending the CUSTOM message and using the con:pop(1,5000) approach to pop the CUSTOM message of the event queue. This approach solves the problem, although I wish I could send an event via ESL that will trigger the setInputCallback(…) function. However I have not found a way to do that as yet. Andrew From: freeswitch-users-bounces@lists.freeswitch.org [mailto:freeswitch-users-bounces@lists.freeswitch.org] On Behalf Of Seven Du Sent: Tuesday, 9 December 2014 10:16 AM To: FreeSWITCH Users Help Subject: Re: [Freeswitch-users] Re - FreeSWITCH Lua CUSTOM events interrupting session:streamFile playback - is this possible? I believe the playback_terminitors chan var works, or you could try set an input callback and return “break” when dtmf detected. -- Seven Du http://about.me/dujinfang http://www.dujinfang.com http://www.freeswitch.org.cn Sent with Sparrow<http://www.sparrowmailapp.com/?sig> On Tuesday, December 9, 2014 at 7:00 AM, Andrew Keil wrote: To FreeSWITCH users, After progressing with Lua inside FreeSWITCH I have a question that I cannot source an answer for within the current FreeSWITCH documentation. I have a requirement for an external application to process an event (via the event socket layer) then return the results back to the application while an audio file is played back in a loop to the caller. From the current documentation this method allows for the event to be sent then the return event is “consumed” using a polling approach. However the caller is listening to silence. function poll() -- create event and listener local event = freeswitch.Event("CUSTOM", "ping::running?") local con = freeswitch.EventConsumer("CUSTOM", "ping::running!") -- add text ad libitum event:addHeader("hi", "there") -- fire event event:fire() -- and wait for reply but not very long local retevent = con:pop(1, 5000) if retevent then print("reply received") freeswitch.consoleLog("DEBUG", string.format("reply received: %s\n",retevent:getHeader("Result"))) return true end print("no reply") freeswitch.consoleLog("DEBUG", "no reply\n") return false end Some questions: Is there a way to playback audio (eg. session:streamFile(…)) while this takes place, since currently session:streamFile(…) seems to be a blocking function (ie. Finishes when the audio file is played back completely)? Is there a way to use session:setInputCallback(…) to handle an external CUSTOM event being returned (since this would then be able to interrupt the session:streamFile(…) just like it does for DTMF or speech recognition)? If you have a preferred approach to solving this then I am open to your suggestions. I appreciate any assistance that you can give. Kind Regards, Andrew Keil _________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org<mailto:consulting@freeswitch.org> http://www.freeswitchsolutions.com Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org<mailto:FreeSWITCH-users@lists.freeswitch.org> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org