I’m working on a call routing system (mainely trunks) to test for blocked routes or forward missed calls, so there is a logic to call after recieving the call to have initial tests then route it to a call or a message, then after the call check for retries or call forwarding.
So the AGI and ARI both seems like a solution to my problem, but i cant put my finger on which one is more fit.
The wiki has a page[1] talking about the different interfaces and the overlap. It really depends on what exactly the logic involves. For example if it’s database stuff you could even use func_odbc and just plain dialplan logic.