System API AMI
Beschreibung Leistungsmerkmal
Das Asterisk Manager Interface (AMI) ist eine standardisierte Applikationsschnittstelle zum Management und Monitoring des LocaPhone-Vermittlungskerns.
APP AMI ist ein Client-/Server-Modell, welches über IP/TCP für entsprechende Clients die Möglichkeit bereit stellt, Kommandos abzusetzen und Events/Zustände des Vermittlungskerns abzufragen. Mittels APP AMI kann der Vermittlungskern angesteuert werden z.B. zum Aufbau von Verbindungen, zum Monitoring von Benutzern/Nebenstellen u.v.m.
Benutzung Leistungsmerkmal
Für einige Systemdienste sind bereits Konfigurationen hinterlegt, welche aktiviert werden und vor Benutzung von LocaPhone angepasst werden müssen.
Für einen eigenen Zugriff auf das APP AMI kann ein neuer Benutzer angelegt und mit den passenden Berechtigungen ausgestattet werden.
Voraussetzungen
Die einzelnen AMI-Benutzer müssen im Webinterface von LocaPhone unter 'Administration - Asterisk Manager'
aktiviert werden.
Installation
Bei der Installation von LocaPhone werden für die notwendigen Systemdienste Symlinks angelegt.
root@voip:~#
cd ../manager.conf.d-enabled
ln -s ../manager.conf.d-available/xy.conf
Konfiguration
Für den Betrieb von LocaPhone müssen mehrere AMI-Benutzer im Webinterface von LocaPhone aktiviert werden. Templates dafür befinden sich bereits in /etc/locaphone/asterisk/manager.conf.d-available/
.
AMI-Benutzer astbuttond
Für die Funktionalität des System-Dienstes astbuttond
muss dieser AMI-Benutzer aktiviert werden.
/etc/locaphone/asterisk/manager.conf.d-available/astbuttond.conf
[astbuttond] ; System Dienst astbuttond
secret = <password> ; siehe locaphone.php und astbuttond.conf
deny = 0.0.0.0/0.0.0.0 ; alle verbieten
permit = 127.0.0.1/255.255.255.0 ; von localhost erlauben
;permit = 192.168.1.0/255.255.255.0 ; von IP-Adresse TK-System UND Subnetz Endgeräte erlauben
writetimeout = 1000 ; AMI -> Client
read = system,call,log,command,agent,user,config,reporting,originate,message
write = system,call,log,command,agent,user,config,reporting,originate,message
AMI-Benutzer gscc
Für das Leistungsmerkmal Rückruf
(call completion) muss dieser AMI-Benutzer aktiviert werden.
/etc/locaphone/asterisk/manager.conf.d-available/gscc.conf
[gscc] ; Call Completion
secret = <password> ; vorhandenes PW nicht ändern
deny = 0.0.0.0/0.0.0.0 ; alle verbieten
permit = 127.0.0.1/255.255.255.0 ; von localhost erlauben
;permit = 192.168.1.140/255.255.255.255 ; vom Web-Server
writetimeout = 1000 ; AMI -> Client
read = call
write = call
AMI-Benutzer uevg
Um User Events aus dem Webinterface von LocaPhone auszulösen muss dieser AMI-Benutzer aktiviert werden.
/etc/locaphone/asterisk/manager.conf.d-available/uevg.conf
[uevg] ; User Event Generatoin
secret = <password> ; vorhandenes PW nicht ändern
deny = 0.0.0.0/0.0.0.0 ; alle verbieten
permit = 127.0.0.1/255.255.255.0 ; von localhost erlauben
;permit = 192.168.1.0/255.255.255.0 ; von IP-Adresse TK-System UND Subnetz Endgeräte erlauben
writetimeout = 1000
read = user,agent,command,call,reporting
write = system,user,agent,command,call,reporting,message
AMI-Benutzer phonesuite
Benutzer für den Zugriff des PhoneSuite CTI-Client/Servers auf LocaPhone.
/etc/locaphone/asterisk/manager.conf.d-available/phonesuite.conf
[phonesuite] ; username (without brackets) for PhoneSuite
secret = <password> ; bitte PW setzen/ändern
deny = 0.0.0.0/0 ; deny access from all IP addresses
permit = 192.168.0.0/16 ; allow private subnets
permit = 10.0.0.0/8 ; "
permit = 172.16.0.0/12 ; "
read = call,command,originate
write = call,command,originate
Formate AMI-Benutzer
Das Format und die Parameter der AMI-Benutzer (xxxx.conf-Dateien) entsprechen denen der Datei manager.conf
(siehe Doku). Für einen eigenen AMI-Benutzer kann eine vorhandene .conf-Datei als Template genutzt werden.
Optionen AMI-Benutzer
Parameter | Beschreibung | Wert | Default |
---|---|---|---|
[Ami-Benutzer] | AMI username (ohne Klammern) | z.B. [astbuttond] | verschiedene |
secret | AMI password (muss gesetzt sein!) | z.B. <password> | verschiedene |
deny1 | sets an IP address ACL for addresses that should be denied the ability to authenticate as this user | IP-Netz/Netzmaske | 0.0.0.0/0 |
permit1 | sets an IP address ACL for addresses that should be allowed the ability to authenticate as this user | IP-Netz/Netzmaske | 192.168.0.0/16 |
writetimeout | timeout used by Asterisk when writing data to the AMI connection for this user. | milliseconds | 1000 |
read | defines which manager events this AMI user will receive | Parameter | verschiedene |
write | defines which manager actions this AMI user is allowed to execute | Parameter | verschiedene |
Berechtigungen read/write AMI-Benutzer
Berechtigung | read | write |
---|---|---|
system | Allows user to receive general system information, such as notifications of configuration reloads. | Allows user to perform system management commands such as Restart, Reload, or Shutdown. |
call | Allows user to receive events about channels on the system. | Allows user to set information on channels. |
log | Gives user access to logging information. | read-only |
command | write-only | Allows user to execute Asterisk CLI commands over the AMI. |
agent | Gives user access to events regarding the status of agents from the app_queue and chan_agent modules. | Enables user to perform actions for managing and retrieving the status of queues and agents. |
user | Grants access to user-defined events, as well as events about Jabber/XMPP users. | Lets user perform the UserEvent manager action, which provides the ability to request that Asterisk generate a user-defined event. The UserEvent action is a useful mechanism for having messages delivered to other AMI clients. |
config | write-only | Allows user to retrieve, update, and reload configuration files. |
reporting | Gives user access to call-quality events, such as jitterbuffer statistics or RTCP reports. | Enables user to execute a range of actions to retrieve statistics and status information from across the system. |
originate | write-only | Allows user to execute the Originate action, which allows an AMI client to request that Asterisk create a new call. |
message | Send an out of call message to an endpoint. |
Commands AMI-Benutzer
Eine Übersicht im System aktiver AMI-Befehle ist auch im Vermittlungskern (mit Beschreibung) abrufbar.
ast-locaphone*CLI>
ast-locaphone*CLI> manager show commands
Action Synopsis
------ --------
AbsoluteTimeout Set absolute timeout.
AGI Add an AGI command to execute by
AOCMessage Generate an Advice of Charge mess
Atxfer Attended transfer.
BlindTransfer Blind transfer channel(s) to the
Bridge Bridge two channels already in th[...]
[...] [...]
ast-locaphone*CLI>
ast-locaphone*CLI> manager show command ping
[Syntax]
Action: Ping
[ActionID:] <value>
[Synopsis]
Keepalive command.
[Description]
A 'Ping' action will ellicit a 'Pong' response. Used to keep the manager
connection open.
[Arguments]
ActionID
ActionID for this transaction. Will be returned.
[See Also]
Not available
[Privilege]
<none>
[List Responses]
None
[Final Response]
None
Abhängigkeiten
Keine.
Zusätzliche Informationen
- Asterisk Manager Interface - https://wiki.asterisk.org/wiki/pages/viewpage.action?pageId=4817239
- Format und Parameter manager.conf - http://www.asteriskdocs.org/en/3rd_Edition/asterisk-book-html-chunk/AMI-configuration.html
- PhoneSuite CTI-Client/Server Asterisk-Manager - https://www.phonesuite.de/hlp/de/ast/ast/asterisk_manager.htm
- Asterisk 13 AMI Events - https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+AMI+Events
- Asterisk 13 AMI Actions - https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+AMI+Actions