This document discusses using Asterisk Gateway Interface (AGI), Asterisk Manager Interface (AMI), and Asterisk REST Interface (ARI) to build telephony features. It proposes using AGI for generic call setup/teardown and feature determination, and ARI apps running on an ARI proxy to control individual features during calls. This decouples features from Asterisk and isolates them, improving testability, replaceability, and avoiding direct developer interaction with Asterisk dialplan. The approach moves routing logic away from Asterisk and enables any feature via a low-level ARI API and high-level feature control.