<div dir="ltr">Hi All,<div><br></div><div>  I'm not sure if the dev list is the proper list of this, however, due to the fact that the issue at hand<br>revolves around documentation and proper usage, I think bringing it up here is a good place.</div><div><br></div><div>  So, during the past few days, I've been trying to implement the Dial application using ARI. So, <br>I'm aware I'm not the only one, but I'm the one trying to do it using PHPARI - naturally. </div><div><br></div><div>  In any case, I managed to write the functionality - reaching an issue where if I disconnect the <br>first bridge handled by the stasis app, it will kill all the other bridges as well. I was wondering why<br>that happens. I then realized that part of the my stasis loop implementation is just wrong, and it's<br>not because PHPARI is wrong, or ARI is wrong - it's wrong because it is a WebSocket client.</div><div><br></div><div>  A stasis application, at least as I understand it - is a websocket client - or consumer in that <br>respect. However, our consumer application is required to be able to handle multiple sessions,<br>so, it now needs to be stateful on one hand, and 'multi-threaded' on the other. The result is that<br>our 'client' application is actually a server in disguise. </div><div><br></div><div>  This is something that the ARI documentation and general usage concepts is missing - I think <br>that we need to make ARI more accessible by explaining the basic concepts better.</div><div><br></div><div>  Another thing, yesterday Scott and I were going through Matt's example of the "bridge_dial" ARI<br>application. The fact that the ari-py is autogenerated makes it really hard for a none-python (yours<br>truly) guy to follow along. Even Scott, who is fluent in Python had a bit of trouble looking through the <br>logic of the app, specifically when seeing that a certain event overloads an existing one - and some <br>other stuff that ari-py does. </div><div><br></div><div>  In other words, if we want to deprecate AGI/AMI at some point - or for a better term, get people to <br>use ARI extensively - we need better examples. I'm working on adding additional examples to PHPARI<br>for this, but we need simple, to the point, usage examples for ARI. For example, examples that don't<br>go about and do something funky in the background, so that people can truly learn from it. </div><div><br></div><div>  When I started with AGI and AMI, the one thing I liked was that I could use BASH. ARI isn't such a thing,<br>and a WebSocket library is mandatory. But giving some basic concepts using only that, would be <br>awesome.</div><div><br></div><div>  What do you think?</div><div><br></div><div>Nir </div></div>