I bumped in to a similar Issue where I have a large number of callers listening to a file and in some cases I would like to interrupt everyone listening to a specific file. I tried deleting the file but the file is still being played back, I guess it's either playing from cache or it's buffered, is there a way to not buffer or cache the file? I tried sending an even but the setInputCallback doesn't get triggered from non DTMF on the channel, question is if there is a way to create an event that will trigger the callback function (in lua) or if there is a way to have the callback function listen to custom events, I'm ok if it needs some patching of the code if someone can give me a clue. On Mon, Dec 8, 2014 at 6:00 PM, Andrew Keil <andrew.keil@visytel.com> 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:*
1) 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)?
2) 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 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 http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org