[asterisk-users] Asterisk 12.0.0-alpha1 Now Available!

Matthew Jordan mjordan at digium.com
Tue Sep 3 07:08:06 CDT 2013


On Fri, Aug 30, 2013 at 7:18 PM, Matt Behrens <matt at zigg.com> wrote:

> On Aug 30, 2012, at 5:15 PM, Asterisk Development Team <
> asteriskteam at digium.com> wrote:
>
> > * The Asterisk RESTful Interface (ARI) has been added. This interface
> lets
> >  external systems harness the telephony primitives within Asterisk to
> develop
> >  their own communications applications. Communication with Asterisk is
> done
> >  through a REST interface, while asynchronous events from Asterisk are
> >  encoded in JSON and sent via a WebSocket. More information on ARI can
> be found
> >  at https://wiki.asterisk.org/wiki/x/lYBbAQ
> >
> > * Major standardization of the Asterisk Manager Interface and its events
> have
> >  occurred within this version. In particular, the names of Asterisk
> channels
> >  no longer change and are stable throughout the lifetime of the channel.
> >  More information on the changes in AMI can be seen in the AMI 1.4
> >  Specification at https://wiki.asterisk.org/wiki/x/dAFRAQ
>
> I've been looking occasionally at how 12 work was going and I'm curious
> about how AMI and ARI relate.  Do they effectively expose the same
> functionality, just offering a different style of communication?  Or is
> there be a reason to prefer one over the other beyond the protocols used?
>

The general use cases for each protocol are a bit different, although I
think some people will find areas of overlap as well.

The goal of ARI is to allow for externally controlled communications
applications. Unlike AGI or AMI, you wouldn't use ARI to execute dialplan
logic or Asterisk applications; you would use ARI to replace a default
Asterisk dialplan application with one that performs your own business
logic and rules. That's why ARI exposes a lot more of Asterisk's
communication primitives and lets you control them in a fine grained
fashion - if you want to write your own complex IVR or Queue, you need
access to asynchronous media operations, various types of bridges, and
control over multiple channels at the same time.

AMI, at its heart, is a call control protocol. While you can do some of
what AMI does using only ARI, ARI requires handing all of the channels over
to the external application through the Stasis dialplan application. If all
you used was ARI, you'd lose some of the power of the dialplan. Likewise,
while you can do some of what ARI does via a combination of AMI/some AGI
variant, the result can be somewhat klunky and difficult to manage -
particularly for complex bridging scenarios.

Hope that helps!

Matt

-- 
Matthew Jordan
Digium, Inc. | Engineering Manager
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
Check us out at: http://digium.com & http://asterisk.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20130903/1650a17f/attachment.htm>


More information about the asterisk-users mailing list