没有合适的资源?快使用搜索试试~ 我知道了~
首页Asterisk Manager API(AMI) 中文文档
资源详情
资源评论
资源推荐
Asterisk manager API(AMI)文档(中文版) 收藏
Asterisk 控制接口(AMI)允 管理客 端程序 接到一个许 户 连 asterisk 实例并且可以通过 TCP/IP
流发送命令或读取事件。这在试图跟踪 asterisk 的状态或其中的电话客户端状态时很有用,
AMI 说明了客户端基于的一般(可能是动态的)规则。
一种简单的"key: value"协议用于已连接的管理客户端和 asterisk PBX之间的信息传递。每
行都用回 车换行()来 束。结
协议特点:
在发送命令前,你必须建立一个连接。
在认证后,数据包任何时间都可以在两个方向上互相传输。
数据包第一行为"Action"时表明是由管理客户端发送到 asterisk,第一行
为"Event"或"Response"表明有 asterisk 发送到管理客户端。数据包内各行顺序可以变化,对
数据包没有影响。
回车换行由于区分每一行,空行(两个连续回车换行)用于表明命令结束,Asterisk 开始处
理命令。
数据包类型:
数据包的类型通过一下几种关键字来划分
Action:一个由管理客户端发送到 Asterisk 的数据包,请求执行特定的动作。只有有限的几种
动作供客户端使用,每个动作是由 Asterisk 服务器上的模块所决定的。一次只能执行一个动
作,该动作数据包包含了动作名称以及执行所必需的参数。
Response:Asterisk 对管理客户端动作的响应。
Event: 有关 Asterisk 核心或扩展模块发生事件的信息。
建立管理连接和用户身份验证:
为了与 Asterisk 进行管理通话,管理客户端必须建立到 Asterisk 服务器侦听端口(一般是
5038)的 TCP/IP 连接,并使用登陆动作进行身份验证。这就要求在 Asterisk 服务器上创建用
户账户,用户账户在/etc/asterisk/manager.conf 中配置。 由允 登 的主机,登 密 以账户 许 陆 录 码
及被授予的权限列表组成。
登录和身份验证的经理,你必须发送一个" 登录 "行动,用您的用户名和秘密(密码作为参
数)。 Here is an example:下面是一个例子:
Action: login
Username: admin
Secret: secret
你还可以通过"Events: off"阻止事件数据包发送到你的连接。例如:
Action: login
Username: admin
Secret: secret
Events: off
动作数据包:
向 Asterisk 发送动作时,额外的关键字可以提供进一步的动作信息。例如,你可能希望指定
号码或通道的断开。此外,如果您的操作会导致 Asterisk 来执行拨号规则中的条目,你可以
传递变量给拨号规则。这与你传递关键字的方式是一样的。
向 Asterisk 发送动作数据包时,按照以下格式:
Action: <action type><CRLF>
<Key 1>: <Value 1><CRLF>
<Key 2>: <Value 2><CRLF>
...
Variable: <Variable 1>=<Value 1><CRLF>
Variable: <Variable 2>=<Value 2><CRLF>
...
<CRLF>
管理动作( Action ):
通过 CLI 命令 show manager commands 的输出结果就是管理动作列表。
具体如下:
AbsoluteTimeout :这个命令将要求 Asterisk 在指定秒数后挂断特定的通道,从而有效地结束
通话。
参数:
Channel :哪些渠道挂断,如 SIP/123-1c20
Timeout :到通道应挂断的秒数
例子:
请求信息
Action: AbsoluteTimeout
Channel: SIP/123-1c20
Timeout: 20
返回成功信息
Response: Success
Message: Timeout Set
返回失 信息败
Response: Error
Message: No such channel
ChangeMonitor :更改记录某通道信息文件名。
参数:
Channel:通道名称
File:文件名
例子:
发送请求
ACTION: ChangeMonitor
Channel: SIP/x7065558529-1c20
File: 20050103-140105_cc51
返回失 信息败
Response: Error
Message: No such channel
返回成功信息
Response: Success
Message: Stopped monitoring channel
Command :发送 Asterisk CLI 命令。
参数:
Command:Asterisk CLI 命令。
例子:
发送请求
ACTION: COMMAND
command: Show Channels
返回信息
Response: Follows
Channel (Context Extension Pri ) State Appl. Data
0 active channel(s)
--END COMMAND-
注意:返回的事件响 应结果并不是 发送一个回 车换行(\r\n),而只 发送回 车( \n),如果你在
中断 理程序中只等待回 行,那 条信息将会被被抛弃。处 车换 么这
例如 command 返回信息如下:
Response: Follows\r\n
Channel Location State Application(Data)\n
SIP/x7065551212b-1af (None) Ringing AppDial((Outgoing Line))\n
SIP/x7065551212c-2aa 29@default:2 Ring Dial(SIP/x7065551212b)\n
2 active channels\n
1 active call\r\n
--END COMMAND--\r\n
\r\n
Events :事件控制流,用于启用/禁用发送给管理客户端的事件。
参数:
EventMask: 'on'表示所有事件均会被 送到管理客 端。发 户
'off'表示所有 都不会被 送。时间 发
'system,call,log'用于选择被发送的事件。
提示:有些事件是启用或禁已经在.conf 文件中配置了, They might be disabled by default.他
们可能是默认为禁用。
例子:
注意在此例子中 EventMask 事件没有立即返回的响应信息,只有在设备注销时才返回相关信
息。
发送请求:
ACTION: EVENTS
EVENTMASK: ON
返回信息:
Event: PeerStatus
Peer: SIP/ChannelName
PeerStatus: Unregistered
Cause: Expired
当 EventMask 参数为'off'时会立即返回响应信息,如下:
发送:
ACTION: EVENTS
EVENTMASK: OFF
返回:
Response: Events Off
ExtensionState :检查分机的状态。
参数:Exten,Context,ActionID
例子:
发送:
ACTION: ExtensionState
Context: default
Exten: 2001
ActionID: 1
接收:
Response: Success
ActionID: 1
Message: Extension Status
Exten: 2001
Context: default
Hint: SIP/2001
Status: 0
Status 状态代码:
-1 =扩展找不到
0 =空闲
1 =在使用
2 =忙
4 =不可用
8 =振铃
16 =正等待
GetVar:获取一个通道变量。
参数:Channel,Variable,actionID
ActionID 是一个可选的参数匹配信息。
例子:
发送:
ACTION: GetVar
Channel: SIP/5060-44d225d0
Variable: extension
成功返回:
Response: Success
Value: 17065551419
失败返回:
Response: Error
Message: No such channel
或
Response: Success
varname: (null)
Hangup:挂断指定通道。
参数:Channel
例子:
发送:
ACTION: Hangup
Channel: SIP/x7065558529-99a0
接收:
Event: Unlink
Channel1: SIP/127.180.254.109-44df88e8
Channel2: SIP/x7065558529-99a0
Uniqueid1: 1124989110.20473
Uniqueid2: 1124989110.20474
Event: Hangup
Channel: SIP/x7065558529-99a0
Uniqueid: 1124989110.20474
Cause: 16
Event: Hangup
Channel: SIP/127.180.254.109-44df88e8
Uniqueid: 1124989110.20473
Cause: 16
Response: Success
Message: Channel Hungup
IAXpeers :显示 iax 信息列表。
例子:
发送:
Action: IAXPeers
接收:
Name/Username Host Mask Port Status
8002 (Unspecified) (D) 255.255.255.255 0 UNKNOWN
8001 192.168.0.91 (D) 255.255.255.255 4569 OK (5 ms)
2 iax2 peers [1 online, 1 offline, 0 unmonitored]
ListCommands :显示命令列表。
参数:ActionID
例子:
发送:
Action:ListCommands
接收:Response: Success
AbsoluteTimeout: Set Absolute Timeout (Priv: call,all)
AgentCallbackLogin: Sets an agent as logged in by callback (Priv: agent,all)
AgentLogoff: Sets an agent as no longer logged in (Priv: agent,all)
Agents: Lists agents and their status (Priv: agent,all)
ChangeMonitor: Change monitoring filename of a channel (Priv: call,all)
Command: Execute Asterisk CLI Command (Priv: command,all)
DBGet: Get DB Entry (Priv: system,all)
DBPut: Put DB Entry (Priv: system,all)
Events: Control Event Flow (Priv: )
ExtensionState: Check Extension Status (Priv: call,all)
Getvar: Gets a Channel Variable (Priv: call,all)
Hangup: Hangup Channel (Priv: call,all)
IAXnetstats: Show IAX Netstats (Priv: )
IAXpeers: List IAX Peers (Priv: )
ListCommands: List available manager commands (Priv: )
Logoff: Logoff Manager (Priv: )
MailboxCount: Check Mailbox Message Count (Priv: call,all)
MailboxStatus: Check Mailbox (Priv: call,all)
MeetmeMute: Mute a Meetme user (Priv: call,all)
MeetmeUnmute: Unmute a Meetme user (Priv: call,all)
Monitor: Monitor a channel (Priv: call,all)
Originate: Originate Call (Priv: call,all)
Park: Park a channel (Priv: call,all)
ParkedCalls: List parked calls (Priv: )
PauseMonitor: Pause monitoring of a channel (Priv: call,all)
Ping: Keepalive command (Priv: )
PlayDTMF: Play DTMF signal on a specific channel. (Priv: call,all)
QueueAdd: Add interface to queue. (Priv: agent,all)
QueuePause: Makes a queue member temporarily unavailable (Priv: agent,all)
QueueRemove: Remove interface from queue. (Priv: agent,all)
Queues: Queues (Priv: )
QueueStatus: Queue Status (Priv: )
Redirect: Redirect (transfer) a call (Priv: call,all)
SetCDRUserField: Set the CDR UserField (Priv: call,all)
Setvar: Set Channel Variable (Priv: call,all)
SIPpeers: List SIP peers (text format) (Priv: system,all)
SIPshowpeer: Show SIP peer (text format) (Priv: system,all)
Status: Lists channel status (Priv: call,all)
StopMonitor: Stop monitoring a channel (Priv: call,all)
UnpauseMonitor: Unpause monitoring of a channel (Priv: call,all)
UserEvent: Send an arbitrary event (Priv: user,all)
WaitEvent: Wait for an event to occur (Priv: )
ZapDialOffHook: Dial over channel while offhook (Priv: )
ZapDNDoff: Toggle channel Do Not Disturb status OFF (Priv: )
剩余27页未读,继续阅读
vontall
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
- MW全能培训汽轮机调节保安系统PPT教学课件.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论5