Asterisk Manager Interface(AMI)
Asterisk Manager Interface (AMI) is a powerful and convenient Asterisk programming interface (API) for managing the system from external programs. Thanks to the AMI, external programs can connect to Asterisk via the TCP protocol, initiate the execution of commands, read the result of their execution, as well as receive notifications about events in real time.
AMI is often used for integration with business processes and systems, CRM software (Customer Relationship Management - customer interaction management). Asterisk is often managed from the CLI console, but using AMI does not require direct access to the server running Asterisk. AMI is the simplest tool, which in the hands of a developer can be a very powerful and flexible tool for integration with other software products. It enables developers to use the information generated by Asterisk in real time.
The first thing to do is to enable the AMI and create a user with which the client program will authenticate. "System" - "Asterisk Manager Interface"
To add a new account, you must specify a Username and Password. In addition, it is necessary to set a Network filter, i.e. from which subnet the connection to the AMI user is allowed. You can allow connections from any addresses, or specify a specific network that you have configured in the Network and Firewall → Network Firewall.
AMI User Options and Rights
AMI user rights set in the [user] section of the configuration file /etc/asterisk/manager.conf
rights ID | reading | writing |
---|---|---|
System | Reading general information about the system, for example, configuration restart notifications | Allows the user to execute Asterisk control system commands such as Restart, Reload, or Shutdown. This permission also gives users the ability to run system commands outside of Asterisk. Granting such permission is equivalent to granting access to the command shell, with the rights of the user/group under which the Asterisk process is running |
Call | Reading an event about channels in the system | Allows the user to set information on channels |
Log | Provides the user with access to reading logs | Read only |
Verbose | Provides the user with access to reading detailed logs | Read only |
Agent | Reading agent status events from app_queue and chan_agent modules | Allows the user to perform actions to manage and retrieve the status of queues and agents |
User | Access to user events as well as Jabber/XMPP user events | Allows the user to execute the UserEvent command to create custom events |
Config | For recording only | Allows the user to receive, update, and overload configuration files |
Command | For recording only | Allows the user to execute Asterisk CLI commands from AMI |
DTMF | Allows the user to receive DTMF events | Read only |
Reporting | Access to call quality events such as jitterbuffer or RTCP | Allows the user to perform a number of actions to obtain statistics and information about the status of the entire system |
Cdr | Reading data write events in CDR | Read only |
Dialplan | Reading events for setting dialplan variables, creating extents | Read only |
Originate | For recording only | Allowing the user to execute the Originate command, which sends a request to create a new call |
Last updated