[asterisk-app-dev] AMI or ARI?

Phil Mickelson phil at cbasoftware.com
Sun Jul 26 12:40:30 CDT 2015


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 at gmail.com> 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 at cbasoftware.com>
> 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 at gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I like to develop a predictive dialer system (Web base) to allow Admin
>>> to create outbound or inbound campaigns
>>>
>>> I'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+ agents
>>>
>>> On 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 at lists.digium.com
>>> http://lists.digium.com/cgi-bin/mailman/listinfo/asterisk-app-dev
>>>
>>>
>> _______________________________________________
>> asterisk-app-dev mailing list
>> asterisk-app-dev at lists.digium.com
>> http://lists.digium.com/cgi-bin/mailman/listinfo/asterisk-app-dev
>>
>>
>
> _______________________________________________
> asterisk-app-dev mailing list
> asterisk-app-dev at lists.digium.com
> http://lists.digium.com/cgi-bin/mailman/listinfo/asterisk-app-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-app-dev/attachments/20150726/b9d1f274/attachment.html>


More information about the asterisk-app-dev mailing list