Sure. I forgot to add that I was also using Node.js. Basically, the operators are using X-Lite to communicate with Asterisk. They also use websockets to communicate with Node.js. Node.js obviously being asynchronous is not, IMHO, setup well for doing complex business type operations. I know many (if not everyone) would disagree with me. But, I've been creating business apps for about 40 years now and like the synchronous approach much more.
So, I have the command go through Node.js to ZeroMQ which acts as a Req/Reply queuing system. It allows me to have as many PHP processes running as I wish. Auto fail overs, etc. And, I can be sure the request is going to get replied to as expected.
As things get busier I just add more PHP repliers. And, then of course, Node also interfaces with Asterisk to do all the ARI stuff.
That's why I think ARI is so fantastic. I can write code the way I'm used to and with the process I use I can actually make changes at any time and not disrupt the operators.
Hope this is helpful.
Phil M
On Sun, Jul 26, 2015 at 1:02 PM, Shahid H <shahidh@xxxxxxxxx> wrote:
May I ask, why did you use ZeroMQ and what purpose in your design?On Sat, Jul 25, 2015 at 1:24 PM, Phil Mickelson <phil@xxxxxxxxxxxxxxx> wrote:IMHO the ARI approach is the right one. I've done something similar with ARI, ZeroMQ and PHP for an answering service. Works very well.
Phil M
On Jul 25, 2015 6:04 AM, "Shahid H" <shahidh@xxxxxxxxx> wrote:_______________________________________________Hi,I like to develop a predictive dialer system (Web base) to allow Admin to create outbound or inbound campaignsI'm doing some technical research and I am trying to figure out shall I use AMI or ARI?- Creating many outbound calls and monitor live calls on the web (Ringing, Talking, Hang up their call)- Originate many calls and put in specific queue (other word: campaign)- Agent should be able to transfer a call - external or internal.- Ability to set max ring time for each campaign- Approx 300+ agentsOn the browser, I would like to use websocket to get real time information about the call and actions.I am considering going with this approach: create a daemon with Node.js - A daemon will connect to Asterisk via ARI and a daemon use websocket to listen the events and such. A browser will also use websocket to communicate with a Node.js daemon.Something like that: <browser (websocket)> --- <Node.js daemon & ARI (websocket)> --- <Asterisk>Is this good approach?Thanks
asterisk-app-dev mailing list
asterisk-app-dev@xxxxxxxxxxxxxxxx
http://lists.digium.com/cgi-bin/mailman/listinfo/asterisk-app-dev
_______________________________________________
asterisk-app-dev mailing list
asterisk-app-dev@xxxxxxxxxxxxxxxx
http://lists.digium.com/cgi-bin/mailman/listinfo/asterisk-app-dev
_______________________________________________
asterisk-app-dev mailing list
asterisk-app-dev@xxxxxxxxxxxxxxxx
http://lists.digium.com/cgi-bin/mailman/listinfo/asterisk-app-dev
_______________________________________________ asterisk-app-dev mailing list asterisk-app-dev@xxxxxxxxxxxxxxxx http://lists.digium.com/cgi-bin/mailman/listinfo/asterisk-app-dev