Asterisk AMI
约 2 分钟阅读
- AMI - Asterisk Manager Interface
- 配置文件
manager.conf - 默认端口 5038
- 服务端会主动发送头
Asterisk Call Manager/3.2.0 - 响应均为异步事件
- 包类型分为: 事件, 响应, 和发送的操作
- 格式类似于 HTTP 头
- Action,Response,Event 必须在第一行
- 请求通过 ActionID, 服务端返回 ActionID 来识别响应
- 一次请求除了会返回一个响应以外, 可能还会范围一列数据, 此时列数据是通过事件发送的, 没有 ActionID
- 例如: 以
EndpointDetail开始, 以EndpointDetailComplete结束
- 例如: 以
- Action
- CLIENT -> Asterisk
- Response
- CLIENT -> Asterisk -Response-> CLIENT
- Event
- Asterisk -> CLIENT
- 参考
- AMI v2 Specification
- asterisk 12+
- 版本号为 2.0.0 - asterisk 1.8 是 1.1
- AMI v2 Specification
- AMI v1 可能内容包含换行
- UTF8 包含 BOM - EF BB BF
# 命令文档
asterisk -rx 'manager show commands'
# 事件文档
asterisk -rx 'manager show events'manager.conf
AMI 协议
- 初始服务端会发送一条信息包含版本
Asterisk Call Manager/1.1
- 客户端会接收到 FullyBooted 表示启动完成
- 新版本会返回 SuccessfulAuth - 包含账号权限、链接等信息
- 服务退出或重启会发送 Shutdown
- Newchannel - 通道建立
- 包含 Uniqueid 可用于持续跟踪通道
- 然后会有很多 VarSet - SIPURI
一次呼叫过程产生的事件
Event: Newchannel
Privilege: call,all
ChannelState: 0
CallerIDNum: 6003
AccountCode:
Channel: SIP/6003-000000de
ChannelStateDesc: Down
CallerIDName:
Exten: 10085
Context: sipinbound
Uniqueid: 1621433208.393- SIPURI=sip@192.168.1.2
- SIPDOMAIN=192.168.1.2
- SIPCALLID=NKEVsn22tE
- SIPROUTE=sip-6003 - 应用自定义
- Newstate - Ring
- Newexten - 执行的 extension 序列
- Macro 包含的变量
- MACRO_EXTEN
- MACRO_CONTEXT
- MACRO_PRIORITY
- MACRO_DEPTH
- Newchannel - EXTRA/7-1 对方通道
- DIALEDPEERNUMBER=7/10086
- NewCallerid EXTRA/7-1
- Newstate - Dialing
- Dial
- RTCPReceived
- RTCPSent
- Newstate - Up
- DIALSTATUS=ANSWER
- DIALEDPEERNAME=EXTRA/7-1
- BRIDGEPEER=EXTRA/7-1 - 两个通达设置对方为 peer
- BRIDGEPEER=SIP/6003-000000de
- Bridge
- BRIDGEPVTCALLID=NKEVsn22tE
- Unlink - 断开 bridge
- ANSWEREDTIME=16
- ExtraUp - 板卡 Board=1
- Hangup - EXTRA/7-1
- RTPAUDIOQOS=ssrc=1662980482;themssrc=2301022491;lp=0;rxjitter=0.014852;rxcount=1238;txjitter=0.000000;txcount=1238;rlp=0;rtt=0.005000
- RTP QOS 信息
- Hangup - SIP/6003-000000de
- CallerIDNum: 6003
- Uniqueid: 1621433208.393
关联信息
反向链接、本文链接的其他页面和外部资料。
参考资料
GitHub1 条
- asterisk/asterisk/configs/manager.conf.samplegithub.com/asterisk/asterisk/blob/1.8/configs/manager.conf.sample
其他外链1 条
- wiki.asterisk.org/wiki/display/AST/AMI+v2+Specificationwiki.asterisk.org/wiki/display/AST/AMI+v2+Specification