简介
AMI (Asterisk Manager Interface)。是Asterisk的管理接口。通过此接口,可以实现对Asterisk系统的监控和控制。
访问形式
AMI提供两种方式的访问,TCP形式的和HTTP形式的, 而HTTP形式的又可以分普通连接和TLS连接两种。manager.conf配置文件中有若干AMI的配置,如果使用HTTP形式的接口,还需要配置http.conf文件中的相关配置。
TCP的AMI可以简单使用telnet命令使用,例如
telnet 127.0.0.1 5038
Action: Login
Username: user
Secret: pwd
Response: Success
Message: Authentication accepted
Action: Ping
Response: Success
Ping: Pong
Timestamp: 1282739190.454046
Action: Logoff
Response: Goodbye
Message: Thanks for all the fish.
HTTP的形式如:
$ wget "http://localhost:8088/rawman?action=login&username=hello&secret=world" \
> --save-cookies cookies.txt -O -
$ wget "http://localhost:8088/rawman?action=ping" --load-cookies cookies.txt -O -
HTTP形式的AMI可以选择使用rawman/manager/mxml三种形式之一,他们的区别就是RESPONSE中内容的封装格式。
- rawman使用和CLI同样的格式
- manager使用html格式
- mxml使用XML格式
接口类型分类
AMI提供的的接口分为Event和Action。
- Event为从Asterisk服务单向向AMI CLIENT发送的事件通知。
- Action为AMI CLIENT发送请求,然后Asterisk给予回复。Action也允许先返回若干Event再返回Action Response的情况。
其他
具体提供了哪些AMI命令可在CLI下使用“manager show commands”命令查看。
具体某个命令的使用详情和格式可使用“manager show command <Action>”命令查看。
其中“Command”命令是可以直接调用CLI的命令,CLI的命令可以使用help查看。
AMI的登陆用户允许使用哪些AMI命令,不允许使用哪些AMI命令可以在manager.conf中设置。