AMI接口实际上是一个TCP服务器,它由Asterisk服务器自动运行并直接连至Asterisk核心。当有呼叫进过Asterisk核心时,AMI接口将产生事件信息并分发到所有连至AMI TCP服务器上的客户端。
注:
Manager API 是另一种远程与Asterisk服务器交互的方式。相对于FastAGI Asterisk Manager API并没有将控制交给您的应用程序,但允许您查询和随时更改其状态。
Manager API是由三个概念组成:动作(Actions)、(Responses)和事件响应(Events)。Actions可以被发送到Asterisk执行某项操作。例如,你可以在你的应用程序里发送一个指令让Asterisk呼出一个号码,并将它连接到你的电话上。每发送一个Actions Asterisk都将返回一个包含执行结果的Responses。
事件由Asterisk发出,它并没有直接关连到应用程序的Actions上。事件在Asterisk状态发生改变时发生。例如有电话呼入、有人加入或退出会议室。
Manager API通过TCP/IP协议连接到Asterisk 服务器的端口默认为5038。
要启用Asterisk Manager API,您必须编辑manager.conf配置文件并重新启动Asterisk。该manager.conf配置文件设置了允许连接的IP地址范围和用户名/密码进行身份验证。配置文件内容可能如下:
[general] enabled = yes port = 5038 bindaddr = 0.0.0.0 [manager] secret=pa55w0rd permit=0.0.0.0/0.0.0.0 read=system,call,log,verbose,agent,command,user write=system,call,log,verbose,agent,command,user
它将允许使用Manager AP从任意的 IP 地址使用用户名 "manager" 密码 "pa55w0rd"登录Asterisk服务器。配置完成后,可以通过telnet命令连接到AMI接口进行测试。
[root@localhost ~]# telnet 127.0.0.1 5038 Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. Asterisk Call Manager/1.1
连接成功后,可以按照接口规范定义发送命令了,以下为登录的命令演示:
Action: login Username: admin Secret: 000000 Response: Success Message: Authentication accepted
注意事项: