<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">The best way to handle this is probably to write a custom module against the speech interface that sends the streams like you are describing, and supports multiple providers. &nbsp;How exactly do you go about sending to multiple at the same time and combining the results, as this might actually be the trickiest part as youll need to integrate that into a module that uses the speech interface to be able to at all sanely handle that in freeswitch<div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Apr 5, 2016, at 1:24 PM, Vincent Gire &lt;<a href="mailto:vincent.gire@gmail.com" class="">vincent.gire@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">We use multiple ones to compare confidence.<div class="">They all support chunk transfer and provide a HTTP transaction similar to :</div><div class=""><a href="http://developer.att.com/apis/speech/docs/v3" class="">http://developer.att.com/apis/speech/docs/v3</a><br class=""></div><div class="">Look at 3/ Make API Calls</div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Tue, Apr 5, 2016 at 7:14 PM, Michael Jerris <span dir="ltr" class="">&lt;<a href="mailto:mike@jerris.com" target="_blank" class="">mike@jerris.com</a>&gt;</span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Unimrcp isn't going to provide the interface he's talking about.&nbsp; Can I ask which engine this is?<div class="HOEnZb"><div class="h5"><br class=""><br class="">On Tuesday, April 5, 2016, Sergey Safarov &lt;<a href="mailto:s.safarov@gmail.com" target="_blank" class="">s.safarov@gmail.com</a>&gt; wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr" class="">Look at <a href="http://www.unimrcp.org/" target="_blank" class="">http://www.unimrcp.org/</a> and <a href="https://wiki.freeswitch.org/wiki/Mod_unimrcp" target="_blank" class="">https://wiki.freeswitch.org/wiki/Mod_unimrcp</a></p>
<br class=""><div class="gmail_quote"><div dir="ltr" class="">On Tue, Apr 5, 2016, 19:38 Vincent Gire &lt;<a class="">vincent.gire@gmail.com</a>&gt; wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class=""><div class="">We are building an IVR completely driven by ASR.</div><div class="">ASR is performed in a distant location by a HTTP service (supporting chunked transfer) and adds an incompressible latency. We would like to stream the record to the ASR service as soon as it starts to reduce the overall latency before response.</div><div class="">Does it make sense ?</div><div class=""><br class=""></div></div><div class="gmail_extra"></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Tue, Apr 5, 2016 at 5:39 PM, Michael Jerris <span dir="ltr" class="">&lt;<a class="">mike@jerris.com</a>&gt;</span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class="">I would stay away from mod_vlc.&nbsp; Its audio portions with recording have known issues.&nbsp; We do use the rtmp streaming in mod_av heavily but thats obviously not wav.&nbsp; Can you explain a bit more why you have this requirement?<div class=""><div class=""><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Apr 5, 2016, at 5:36 AM, Vincent Gire &lt;<a class="">vincent.gire@gmail.com</a>&gt; wrote:</div><br class=""><div class=""><div dir="ltr" class="">Ok thanks.<br class="">It looks promising !<div class="">I'll dig into mod_vlc.</div><div class=""><br class=""></div><div class="">Best&nbsp;</div><div class=""><br class=""></div><div class="">Vincent</div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Tue, Apr 5, 2016 at 10:04 AM, Sergey Safarov <span dir="ltr" class="">&lt;<a class="">s.safarov@gmail.com</a>&gt;</span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="">Think is requred streaming feature of freeswitch.<div class="">Look at <a href="https://freeswitch.org/confluence/display/FREESWITCH/mod_esf" target="_blank" class="">mod_esf</a> and <a href="https://wiki.freeswitch.org/wiki/Mod_vlc" target="_blank" class="">mod_vlc</a></div><div class="">Instruction to compile mod_vlc on provided link is to old but helpfull to undestand how to stream media to http server.</div><div class=""><br class=""></div><div class="">For compiling mod_vlc please use <a href="https://freeswitch.org/stash/projects/SD/repos/vlc/browse" target="_blank" class="">vlc repo</a> and <a href="https://freeswitch.org/confluence/display/FREESWITCH/Creating+RPM+repositary" target="_blank" class="">centos instruction</a>.</div><div class="">After you intall vlc, then you can enable mod_vlc module in freeswitch sources(SPEC file) and compile freeswitch.</div><div class=""><br class=""></div><div class="">Sergey</div><div class=""><br class=""></div></div><br class=""><div class="gmail_quote"><div dir="ltr" class="">вт, 5 апр. 2016 г. в 10:31, Vincent Gire &lt;<a class="">vincent.gire@gmail.com</a>&gt;:<br class=""></div><div class=""><div class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="">webdav, mod_http_cache or mod_httapi all results in sending the recording only&nbsp;<b class="">after</b>&nbsp;it is complete.<div class="">They all write the&nbsp;<span style="font-family:sans-serif;font-size:12.8px;line-height:19.2px" class="">recording to a file, wait for the recording to complete and the file to close and then send it over HTTP.</span></div><div class=""><font face="sans-serif" class=""><span style="font-size:12.8px;line-height:19.2px" class=""><br class=""></span></font><div class="">I would like to start sending the recording to the remove server as soon as it starts (max 1 sec latency).</div><div class="">mod_http_cache or mod_httapi would be perfect if they were streaming the recording like mod_shout.</div><div class=""><br class=""></div></div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Mon, Apr 4, 2016 at 8:50 PM, Sergey Safarov <span dir="ltr" class="">&lt;<a class="">s.safarov@gmail.com</a>&gt;</span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr" class="">Input/output latency is not problem.&nbsp; I use Kazoo on my servers and call recording is stored to database during 5 seconds after hangup.<br class="">
What is broken in your case if save file using webdav or http_cache?</p><div class=""><div class="">
<br class=""><div class="gmail_quote"><div dir="ltr" class="">On Mon, Apr 4, 2016, 21:10 Vincent Gire &lt;<a class="">vincent.gire@gmail.com</a>&gt; wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="">Hello Sergey,<div class=""><br class=""></div><div class="">Thank you for your answer.</div><div class="">I've looked into webdav mounted filesystem.</div><div class=""><br class=""></div><div class="">Unfortunately, most WebDav clients (especially davfs2 on debian) do a lot of buffering, caching and even lock-null requests (lock a non existent resource before writing to it). I also suspect that they wait for the end of the write operation.</div><div class="">The result is a latency of a few seconds witch is not much better than what I achieve with mod_shout if I transcode the MP3.</div><div class=""><br class=""></div><div class="">Any other idea ?</div><div class=""><br class=""></div><div class="">Thank you !</div><div class=""><br class=""></div><div class="">Best regards</div><div class=""><br class=""></div><div class="">Vincent</div><div class=""><div class="gmail_extra"></div></div></div><div dir="ltr" class=""><div class=""><div class="gmail_extra"><br class=""><div class="gmail_quote">On Sun, Apr 3, 2016 at 7:30 PM, Sergey Safarov <span dir="ltr" class="">&lt;<a class="">s.safarov@gmail.com</a>&gt;</span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><p dir="ltr" class="">Please look at webdav mounted filesystem.</p>
<br class=""><div class="gmail_quote"><div class=""><div class=""><div dir="ltr" class="">On Sun, Apr 3, 2016, 19:17 Vincent Gire &lt;<a class="">vincent.gire@gmail.com</a>&gt; wrote:<br class=""></div></div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class=""><div class=""><div dir="ltr" class=""><div class=""><div class=""><span style="white-space:pre-wrap" class="">Hi all,</span></div><div class=""><span style="white-space:pre-wrap" class=""><br class=""></span></div><div class=""><span style="white-space:pre-wrap" class="">Thank you to all contributing to FreeSWITCH !</span></div><div class=""><span style="white-space:pre-wrap" class=""><br class=""></span></div><div class=""><span style="white-space:pre-wrap" class="">I'm working on a IVR project where logic is implemented on a HTTP server.</span></div><div class=""><span style="white-space:pre-wrap" class="">We are leaving Twilio because we now need to record and live stream the session to the HTTP server in WAV format (chunked transfer encoding).</span></div><div class=""><span style="white-space:pre-wrap" class=""><br class=""></span></div><div class=""><span style="white-space:pre-wrap" class=""><b class="">mod_httapi</b> looks great (HT TAPI very similar to Twilio's) but it seems that the records are first saved to disk before there are sent to the server as chunked data.&nbsp;</span></div><div class=""><span style="white-space:pre-wrap" class="">We need the transfer to start as soon as the recording starts.</span></div><div class=""><span style="white-space:pre-wrap" class=""><br class=""></span></div><div class=""><span style="white-space:pre-wrap" class=""><b class="">mod_shout</b> does start the request almost as the records starts but it does not support WAV file and shout:// is not exactly a HTTP request (SOURCE method instead of PUT).</span></div><div class=""><span style="white-space:pre-wrap" class=""><br class=""></span></div><div class=""><span style="white-space:pre-wrap" class="">Is there a way to use these modules to achieve our goal ?</span></div><div class=""><span style="white-space:pre-wrap" class=""><br class=""></span></div><div class=""><span style="white-space:pre-wrap" class="">If not, we are willing to author a specific module or rather contribute to the existing ones.</span></div><div class=""><span style="white-space:pre-wrap" class=""><br class=""></span></div><div class=""><span style="white-space:pre-wrap" class="">We've identified two approaches:</span></div><div class=""><ol class=""><li class=""><span style="white-space:pre-wrap" class="">From <b class="">mod_httapi</b>
</span>Modify mod_httapi to directly stream the record instead of completely saving it to disk before the HTTP chunked transfer starts.<br class="">This seems the most logical but with more than 3000 lines, mod_httapi does not seem to be the easiest module to build upon for newcomers!<br class=""><span style="white-space:pre-wrap" class=""><br class=""></span></li><li class="">From <b class="">mod_shout</b></li><ol class=""><li class="">Modify libshoot to replace the custom SOURCE method with standard HTTP PUT method</li><li class="">Modify mod_shout to support wav files</li><li class="">Implement our IVR in script (javascript/lua)</li></ol></ol></div><div class=""><span style="white-space:pre-wrap" class="">What do you think ?</span></div><div class=""><span style="white-space:pre-wrap" class=""><br class=""></span></div><div class=""><span style="white-space:pre-wrap" class="">Thank you for your help.</span></div><div class=""><span style="white-space:pre-wrap" class=""><br class=""></span></div><div class=""><span style="white-space:pre-wrap" class="">Cheers,</span></div></div></div></div></div></blockquote></div></blockquote></div></div></div></div></blockquote></div></div></div></blockquote></div></div></blockquote></div></div></div></blockquote></div></div></div></blockquote></div></div></div></div></div><br class="">_________________________________________________________________________<br class="">
Professional FreeSWITCH Consulting Services:<br class="">
<a class="">consulting@freeswitch.org</a><br class="">
<a href="http://www.freeswitchsolutions.com/" rel="noreferrer" target="_blank" class="">http://www.freeswitchsolutions.com</a><br class="">
<br class="">
Official FreeSWITCH Sites<br class="">
<a href="http://www.freeswitch.org/" rel="noreferrer" target="_blank" class="">http://www.freeswitch.org</a><br class="">
<a href="http://confluence.freeswitch.org/" rel="noreferrer" target="_blank" class="">http://confluence.freeswitch.org</a><br class="">
<a href="http://www.cluecon.com/" rel="noreferrer" target="_blank" class="">http://www.cluecon.com</a><br class="">
<br class="">
FreeSWITCH-users mailing list<br class="">
<a class="">FreeSWITCH-users@lists.freeswitch.org</a><br class="">
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" rel="noreferrer" target="_blank" class="">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br class="">
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" rel="noreferrer" target="_blank" class="">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br class="">
<a href="http://www.freeswitch.org/" rel="noreferrer" target="_blank" class="">http://www.freeswitch.org</a><br class=""></blockquote></div><br class=""><br clear="all" class=""><div class=""><br class=""></div></div><div class="gmail_extra">-- <br class=""><div class=""><div dir="ltr" class="">Vincent Gire<br class=""></div></div>
</div>
_________________________________________________________________________<br class="">
Professional FreeSWITCH Consulting Services:<br class="">
<a class="">consulting@freeswitch.org</a><br class="">
<a href="http://www.freeswitchsolutions.com/" rel="noreferrer" target="_blank" class="">http://www.freeswitchsolutions.com</a><br class="">
<br class="">
Official FreeSWITCH Sites<br class="">
<a href="http://www.freeswitch.org/" rel="noreferrer" target="_blank" class="">http://www.freeswitch.org</a><br class="">
<a href="http://confluence.freeswitch.org/" rel="noreferrer" target="_blank" class="">http://confluence.freeswitch.org</a><br class="">
<a href="http://www.cluecon.com/" rel="noreferrer" target="_blank" class="">http://www.cluecon.com</a><br class="">
<br class="">
FreeSWITCH-users mailing list<br class="">
<a class="">FreeSWITCH-users@lists.freeswitch.org</a><br class="">
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" rel="noreferrer" target="_blank" class="">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br class="">
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" rel="noreferrer" target="_blank" class="">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br class="">
<a href="http://www.freeswitch.org/" rel="noreferrer" target="_blank" class="">http://www.freeswitch.org</a></blockquote></div>
</blockquote>
</div></div><br class="">_________________________________________________________________________<br class="">
Professional FreeSWITCH Consulting Services:<br class="">
<a href="mailto:consulting@freeswitch.org" class="">consulting@freeswitch.org</a><br class="">
<a href="http://www.freeswitchsolutions.com/" rel="noreferrer" target="_blank" class="">http://www.freeswitchsolutions.com</a><br class="">
<br class="">
Official FreeSWITCH Sites<br class="">
<a href="http://www.freeswitch.org/" rel="noreferrer" target="_blank" class="">http://www.freeswitch.org</a><br class="">
<a href="http://confluence.freeswitch.org/" rel="noreferrer" target="_blank" class="">http://confluence.freeswitch.org</a><br class="">
<a href="http://www.cluecon.com/" rel="noreferrer" target="_blank" class="">http://www.cluecon.com</a><br class="">
<br class="">
FreeSWITCH-users mailing list<br class="">
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org" class="">FreeSWITCH-users@lists.freeswitch.org</a><br class="">
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" rel="noreferrer" target="_blank" class="">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br class="">
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" rel="noreferrer" target="_blank" class="">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br class="">
<a href="http://www.freeswitch.org/" rel="noreferrer" target="_blank" class="">http://www.freeswitch.org</a><br class=""></blockquote></div><br class=""><br clear="all" class=""><div class=""><br class=""></div>-- <br class=""><div class="gmail_signature"><div dir="ltr" class="">Vincent Gire<br class=""></div></div>
</div>
_________________________________________________________________________<br class="">Professional FreeSWITCH Consulting Services: <br class=""><a href="mailto:consulting@freeswitch.org" class="">consulting@freeswitch.org</a><br class="">http://www.freeswitchsolutions.com<br class=""><br class="">Official FreeSWITCH Sites<br class="">http://www.freeswitch.org<br class="">http://confluence.freeswitch.org<br class="">http://www.cluecon.com<br class=""><br class="">FreeSWITCH-users mailing list<br class="">FreeSWITCH-users@lists.freeswitch.org<br class="">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users<br class="">UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users<br class="">http://www.freeswitch.org</div></blockquote></div><br class=""></div></body></html>