Dialplan vs. ARI vs. AGI

I’m curious what the development path looks like in terms of dialplan vs. ARI (RESTFUL interface) vs. AGI (Gateway interface) for call logic and functionality.

If I am remembering correctly, a lot of functionality was moved from AGI into dialplan over the past several versions.

Now ARI looks pretty solid and gives even more fine-grained control with more powerful scripting abilities (bring your own scripting language).

I might be overestimating the possibilities, but it seems like moving routing, logic, and functionality to ARI could open the door to better clustering and multi-tenant.

Except ARI is nothing like dialplan or AGI. With dialplan and/or AGI they are static files/scripts. Any ARI application needs to be a daemon where Asterisk and the daemon can talk back and forth. Something like node.js or even a constantly running php script works. But that’s the issue, now you have yet-another daemon to maintain and manage and keep running.

We have some completed ARI work internally but nothing we are planning to expose to the public at this time because of the nature of a needed centralized monitoring system. We use mainly node.js for our daemons to ARI.

Yep, that’s where I was going with the idea of better clustering or multi-tenant: a control application that drives Asterisk (perhaps on multiple servers) using ARI and provides functionality you don’t have when using static dialplan.

1 Like