简介
AMI接口实际上是一个TCP服务器,它由Asterisk服务器自动运行并直接连至Asterisk核心。当有呼叫进过Asterisk核心时,AMI接口将产生事件信息并分发到所有连至AMI TCP服务器上的客户端。
注:
- 默认情况AMI是被禁止的,需要修改manager.conf配置文件的enabled属性
- 早期的Asterisk1.0和1.2版本中,AMI接口是Asterisk的一个主要陷阱(缺陷)。主要原因是服务器是单线程模式的。因此,多用户连接到AMI接口将造成严重的死锁,特别是同时进行读和写的操作。
- Asterisk1.4和1.6版本进行了大部分的重写,允许了多线程操作。但是死锁的情况仍然存在,只是发生的概率比较低
The Manager API
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
注意事项:
- 注意参数跟参数值之间的空格必须要加
- 最后一个参数输入完成后再输入一个回车,AMI接口认为一个空行是输入的结束
分享到:
相关推荐
### Asterisk Manager Interface (AMI) 中文文档概览 #### 一、引言 Asterisk Manager Interface (AMI) 是一款强大的工具,它允许开发者通过TCP/IP协议与Asterisk PBX系统进行交互,实现远程管理和监控功能。本文档...
### Asterisk Manager Interface (AMI) 详解 #### 一、概览 Asterisk Manager Interface (简称 AMI),是Asterisk系统中的一个重要组件,它为开发者提供了远程管理和监控Asterisk实例的能力。通过AMI,我们可以实现...
这个库使得开发者可以利用Java语言来控制和编程Asterisk PBX(Private Branch eXchange),执行诸如创建、管理通话、处理AMI(Asterisk Manager Interface)事件等功能。在本篇文章中,我们将深入探讨如何使用...
Asterisk AMI(Asterisk Manager Interface)接口是Asterisk PBX系统提供的一种用于远程管理和监控的强大工具。这个接口允许开发者通过编程方式与Asterisk进行交互,执行诸如控制呼叫、获取状态、监听通话等多种操作...
Asterisk Manager Interface客户端C库 libamievent是用C编写的Asterisk Manager Interface的异步事件驱动的客户端库。它使用作为事件循环后端。 使用libamievent,您可以发送AMI命令,还可以订阅对该命令的响应。 ...
DAMI支持发送每个动作,并能够处理[AMI API]( https://www.voip-info.org/asterisk-manager-api/中概述的每个事件)。 DAMI将返回给您的数据与Asterisk完全相同,但是对象由数组中的键/值对组成。 例如,采取“ ...
The Asterisk Manager Interface (AMI) allows a client program to connect to an Asterisk instance and issue commands or read events over a TCP/IP stream. Integrators will find this particularly useful ...
Asterisk Management Interface(AMI)是Asterisk的核心组件之一,允许外部程序与Asterisk服务器进行通信,进行各种管理和控制操作。 【描述】:“通过socket连接asterisk并分析asterisk的Event事件。主要支持...
标题中的"20120618_扩展Asterisk1.8.7的AMI接口1"指的是一项关于扩展Asterisk 1.8.7版本的AMI(Asterisk Management Interface)接口的工作。描述中提到的"函数注册"和"功能实现"是扩展接口的关键步骤,包括在源码中...
这个库是基于Asterisk Manager Interface (AMI) 和 FastAGI 协议,这两个协议是Asterisk系统与外部应用程序交互的主要通道。 Asterisk是一款开源的IP电话系统,广泛应用于VoIP(Voice over Internet Protocol)环境...
Asterisk是一个开源的IP电话系统,而Asterisk Manager Interface (AMI) 是它提供的一种API,用于远程管理和控制Asterisk服务器。Asterisk Java是针对Asterisk AMI的Java库,允许开发者通过Java代码与Asterisk服务器...
录音代码核心功能是使用AMI(Asterisk Manager Interface)接口,通过发送Command命令来启动录音。AMI接口提供了一种基于文本的接口来控制Asterisk的行为。录音代码核心功能可以分为三部分:登录、监控事件和启动...
PHP Asterisk Manager Interface ( AMI ) 支持同步命令、回应和异步事件,使用模式观察者侦听器。支持多时间的命令回应,特别适合开发业务控制台和 asterisk 频道监控等。 标签:PAMI
这个gem为Asterisk Manager Interface的Ruby或RubyOnRails项目添加了支持 有一个同名的项目,但似乎已停产,所以我决定开始一个新项目 安装 轨道3 添加到您的Gemfile并运行bundle命令进行安装。 gem "ruby-...
这个库主要支持Asterisk的几个关键接口,包括ARI(Asterisk REST Interface)、AMI(Asterisk Manager Interface)以及各种类型的AGI(Asterisk Gateway Interface)。 1. **Asterisk PBX**:PBX(Private Branch ...
在使用Asterisk Manager Interface (AMI)时,此命令用于查看已配置的AMI用户,AMl是Asterisk的API,允许远程程序控制Asterisk。 8. **cdr show** 显示呼叫详细记录(Call Detail Records),用于追踪和分析通话...
6. **API接口**:Asterisk提供了AMI(Asterisk Manager Interface)和AGI(Asterisk Gateway Interface),允许开发人员通过编程来控制和扩展Asterisk的功能。 在安装Asterisk 1.8.32.3时,遵循以下步骤: 1. **...
7. **API与集成**:Asterisk提供了AMI(Asterisk Manager Interface)和AGI(Asterisk Gateway Interface),允许开发人员通过编程语言控制和扩展Asterisk的功能。 8. **升级与维护**:“certified”分支的使用者...
7. **开发Asterisk应用**:Asterisk提供了一系列API和语言绑定,如AGI(Asterisk Gateway Interface)和AMI(Asterisk Manager Interface),开发者可以利用这些接口构建自定义的电话应用,如CRM集成、电话会议系统...