<div dir="ltr">Agreeing with Dan, and as I mentioned in the DevCon, app_audiosocket is the _wrong_ solution; it was simply an expedient solution.  A channel interface seems to me to be the best approach, especially for interop with ARI.  Maybe something as simple as chan_websocket would be sufficient (building on audiosocket, if there isn't already a better way).  Websocket, being bidirectional and connection-oriented, falls well within the general needs which audiosocket was designed for.  It's a bit more work to serve a websocket than a plain old TCP socket, but not _that_ much more.  <div><br></div><div>One of the flexibility features that the current app_audiosocket maintains is a run-time-selectable endpoint, which would be contrary to the existing channel drivers' designs.  However, since this would always be an internally-initiated connection (not for receiving connections from the outside), I don't see this as the security risk that it may otherwise be.<div><br></div><div>It could be argued, of course, that you could just use the existing WebRTC for this.  The problem is that it is needlessly complicated and requires much adaptation to just simply pipe audio in and out for arbitrary (non-voIP) use.  For the stuff I'm interested in, I _just_ want the bidirectional audio stream, a tag/label, and nothing else.  The simpler the Asterisk-side interface, the better.</div></div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Oct 16, 2018 at 10:53 AM Dan Jenkins <<a href="mailto:dan@nimblea.pe">dan@nimblea.pe</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr">Thanks for the reminder Matt.<div><br></div><div>The minutes from devcon can be found here if anyone is interested - <a href="https://wiki.asterisk.org/wiki/display/AST/astridevcon+2018+minutes" target="_blank">https://wiki.asterisk.org/wiki/display/AST/astridevcon+2018+minutes</a></div><div><br></div><div>At devcon we talked about the growing need to be able to read audio from a channel and be able to pump audio back into a channel too from third party applications. Historically we'd use app_jack or file descriptors in AGI etc etc, but none of this really works very well for how a lot of us now build applications - using ARI we build applications which run outside of Asterisk's host OS and we don't have access to files/file descriptors etc etc so we now want to be able to get access to this audio data via other means (as well as not using Dialplan applications)</div><div><br></div><div>Sean mentioned he'd made something that did a lot of what we wanted in his "audiosocket" application - however its only a dialplan application which isnt much use when it comes to apps built with ARI.</div><div><br></div><div>We proposed a combination of a few ideas and this is where we should probably have a discussion. My first idea was to be able to stream a channel's audio via a http endpoint in the ARI which is great for taking audio and piping it off to another provider to do speech recognition for example.... but its no good for sending generated audio back into a channel - at which point the conversation about audiosocket was brought up - other than it being a tiny bit harder to get set up and get started, this is a much better all round solution. I'd love to be able to pass into the ARI, send audio to this IP at this port number, or doing a GET request to get the IP and port for our app to go and connect to.</div><div><br></div><div>All of us at devcon would love to hear more about what other real world scenarios and what would really work for everyone. But for me, I'd plus 1 either of those ARI slutions where I either tell asterisk where to send the audio on a tcp socket, or i get told via the ARI where to connect to.</div></div></div><div dir="ltr"><div dir="ltr"><div><br></div><div>Dan</div></div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Oct 16, 2018 at 2:16 PM Matt Fredrickson <<a href="mailto:creslin@digium.com" target="_blank">creslin@digium.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Tue, Oct 9, 2018 at 12:09 PM Seán C. McCord <<a href="mailto:ulexus@gmail.com" target="_blank">ulexus@gmail.com</a>> wrote:<br>
><br>
> Because several people raised the issue at DevCon, I figured it may be worth mentioning this:  app_audiosocket.  I haven't submitted it mainly due to the thought that no one else would fine it interesting.  There exist other, similar ways to get audio out:  app_jack, app_unimrcp, etc.  I built this because of some special needs, and it is very convenient due to its extremely light weight.<br>
><br>
> Regardless, should anyone be interested, here it is:<br>
><br>
> <a href="https://github.com/CyCoreSystems/audiosocket" rel="noreferrer" target="_blank">https://github.com/CyCoreSystems/audiosocket</a><br>
><br>
> The idea is to create a TCP socket to somewhere, pass some extremely simple metadata (a UUID), and broker audio between the channel and the socket.  It is as simple as possible.<br>
<br>
For those who aren't aware, getting this pushed out to the -dev list<br>
was an AstriDevCon 2018 takeaway action item with regards to interop<br>
with web-based speech recognition APIs.  I'd love to see more<br>
discussion and work on this topic, as I think that there stands much<br>
to be improved in Asterisk to better interoperate with some of the<br>
major speech recognition vendors.<br>
<br>
-- <br>
Matthew Fredrickson<br>
Digium - A Sangoma Company | Asterisk Project Lead<br>
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA<br>
<br>
-- <br>
_____________________________________________________________________<br>
-- Bandwidth and Colocation Provided by <a href="http://www.api-digital.com" rel="noreferrer" target="_blank">http://www.api-digital.com</a> --<br>
<br>
Astricon is coming up October 9-11!  Signup is available at: <a href="https://www.asterisk.org/community/astricon-user-conference" rel="noreferrer" target="_blank">https://www.asterisk.org/community/astricon-user-conference</a><br>
<br>
asterisk-dev mailing list<br>
To UNSUBSCRIBE or update options visit:<br>
   <a href="http://lists.digium.com/mailman/listinfo/asterisk-dev" rel="noreferrer" target="_blank">http://lists.digium.com/mailman/listinfo/asterisk-dev</a></blockquote></div>
-- <br>
_____________________________________________________________________<br>
-- Bandwidth and Colocation Provided by <a href="http://www.api-digital.com" rel="noreferrer" target="_blank">http://www.api-digital.com</a> --<br>
<br>
Astricon is coming up October 9-11!  Signup is available at: <a href="https://www.asterisk.org/community/astricon-user-conference" rel="noreferrer" target="_blank">https://www.asterisk.org/community/astricon-user-conference</a><br>
<br>
asterisk-dev mailing list<br>
To UNSUBSCRIBE or update options visit:<br>
   <a href="http://lists.digium.com/mailman/listinfo/asterisk-dev" rel="noreferrer" target="_blank">http://lists.digium.com/mailman/listinfo/asterisk-dev</a></blockquote></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Seán C McCord<div>CyCore Systems, Inc</div><div>+1 888 240 0308</div><div>PGP/GPG: <a href="http://cycoresys.com/scm.asc">http://cycoresys.com/scm.asc</a></div></div></div>