Asterisk 自 1999 年发展到现在,已经成为业界标准的 PBX 实现底层,但这 20 多年的发展也让 Asterisk 实现非常多的接口。
接口简介
API | Protocol | Async | Block | Access Dialplan |
---|---|---|---|---|
AGI | Shell/Socket | ⛔️ | ✅ | ✅ |
AMI | TCP/5038/Event | ✅ | ⛔️ | ⛔️ |
ARI | HTTP/REST/WebSocket | ✅ | ✅ | ✅ |
AGI, AMI 功能完全不同,但 ARI 和 AGI,AMI 都有所重叠。
- AGI - Asterisk Gateway Interface
- 简单
- 作为 Dialplan 函数
- AMI - Asterisk Manager Interface
- 修改或创建 Channel
- ARI - Asterisk RESTful Interface
- Asterisk 12+
- HTTP Websocket - 事件, Stasis 应用
- RESTful 接口 - 控制底层资源
接口使用场景
AMI - ARI - AGI
呼叫控制
自定义通信应用
Dialplan 执行
- AGI - 扩展 Dialplan 处理
- 建议实现 通用 - 独立 - 特性无关 的 Dialplan 函数
- 例如 呼叫建立、拆除;外线控制;CDR
- AMI - 适用于通话时通道管控
- ARI
- ARI 包含 AMI 和 AGI 主要功能
- 自定义 Dialplan 应用