agi
All-in-one (Crystal-lang library that handle all the Asterisk PBX interfaces)
I've created and open-sourced a Crystal-lang shard (library) that handles all Asterisk PBX interfaces (ARI, AMI, and all types of AGI).
Debian installer (Asterisk and Adhearsion AGI framework)
Here is a script that installs Asterisk PBX 11.x: with fax support, MySQL, Ruby, and Adhearsion AGI.
Why you should create AGI?
In the world of Asterisk, the dial-plan is a powerful tool for creating custom voice applications. However, there are situations where using AGI (Asterisk Gateway Interface) is preferred. This article explores the reasons why AGI can be a valuable addition to your Asterisk system.
Time based conditions in voice application
The typical telephony system processes incoming call flows based on different times. Customers want to have control over this and handle time ranges. The platform can also be a multi-tenant server with different virtual PBXes. In my implementation, I use Ruby, ActiveRecord, and polymorphic associations to create routing blocks. By reusing polymorphic database associations, I can create flexible call flow building blocks. These blocks can be linked to any voice-related entity in a PBX, such as an extension, voicemail, conference, etc. This enables customizable and dynamic call handling based on time conditions.
Questionnaire application with Asterisk PBX AGI + Ruby
The Questionnaire application, based on the AsteriskRuby gem, is a production-ready system that was developed a while ago for a small project. Now, I want to share it with the VoIP community. The application provides caller authentication, prompts for a PIN code, and continues from the last unanswered question for returning callers, storing answers and call records in the database.
Asterisk AGI sample in bash
The Asterisk PBX AGI sample in Bash is a great option for creating small yet flexible dial plans for embedded devices and more.