Configuration of the Asterisk manager API(AMI)
Asterisk控制接口(Asterisk manager API)允许管理客户端程序连接到一个asterisk实例,并且可以通过TCP/IP(AMI通过TCP/IP协议连接到Asterisk 服务器的端口默认为5038)流发送命令或读取事件。相对于FastAGI Asterisk,AMI并没有将控制交给您的应用程序,但允许您查询和随时更改其状态。其中,/etc/asterisk/manager.conf用于对这个管理接口进行配置。可以在manager.conf中设定新的用户名、口令和允许连接的网络地址,读写的权限等。
Example
;
; Asterisk Call Management support
;
[general]
enabled = yes
port = 5038
bindaddr = 0.0.0.0
webenabled = no
; Each user has a section labeled with the username
; so this is the section for the user named "mark"
[mark]
secret = mysecret
deny=0.0.0.0/0.0.0.0
permit=209.16.236.73/255.255.255.0
permit=127.0.0.1/255.255.255.0
read = system,call,log,verbose,command,agent,user
write = system,call,log,verbose,command,agent,user
-
[general]中配置的是这个接口通用的配置,要激活AMI,需要设置enabled=yes,这是必须的;
-
使用[]标签添加用户:其中,read/write后面所写的信息是指这个用户所拥有的特权的指令集合(注:是指令集合,不是单一指令).
AMI提供给用户的指令集合如下:
-
system—系统的一般信息。允许执行执行系统管理命令,如Shutdown, Restart, and Reload.
-
call—通道的信息。允许用户设置当前通道的一些信息.
-
log—日志信息(Read-only)
-
verbose—详细信息(Read-only.即指asterisk控制台上的信息)
-
agent—agents和queues的信息。允许增加一个队列member到队列中.
-
user—允许用户发送和收取UserEvent.
-
config—允许用户读取和写配置文件.
-
command—允许发送可执行的控制台命令(Write-only.)
-
dtmf—接收DTMF事件,Read-only.
-
reporting—允许用户取得系统信息.
-
cdr—cdr_manager的输出信息(if loaded. Read-only.)
-
dialplan—接收NewExten and VarSet events(Read-only.)
-
originate—允许产生一个新的call(Write-only.)
在asterisk控制台执行manager show commands命令,即可查看AMI提供给用户的所有指令。其中,Privilege即command所属的指令集合,当Privilege为None时,是指这些指令允许任何用户使用。
参考文章:http://www.voip-info.org/wiki/view/Asterisk+config+manager.conf