Asterisk-Java技术文档
概述
Asterisk-Java 是一个专为Java开发者设计的库,它简化了与Asterisk PBX服务器交互的过程。本库支持FastAGI协议和Manager API两种主要接口,允许你在Java应用中灵活地控制电话呼叫和管理Asterisk服务器状态。
本文档将引导你了解安装过程、基础使用方法、API详情以及如何从源代码进行构建。
安装指南
Maven依赖(推荐)
如果你的项目是基于Maven的,只需在pom.xml
文件中添加以下依赖:
<dependency>
<groupId>org.asteriskjava</groupId>
<artifactId>asterisk-java</artifactId>
<version>3.39.0</version>
</dependency>
Gradle依赖
对于使用Gradle的项目,可以在build.gradle
中加入:
implementation 'org.asteriskjava:asterisk-java:3.39.0'
源码编译安装
- 使用Git克隆仓库到本地:
git clone https://github.com/asterisk-java/asterisk-java.git
- 进入项目目录并使用Maven安装:
cd asterisk-java mvn install
完成上述步骤后,会在项目的target
目录下生成所需的.jar
文件。
项目的使用说明
FastAGI示例
FastAGI让你能够像处理HTTP请求一样管理电话通话。下面的代码片段展示了如何创建一个简单的FastAGI脚本来接听并播放音频文件。
import org.asteriskjava.fastagi.AgiChannel;
import org.asteriskjava.fastagi.AgiException;
import org.asteriskjava.fastagi.AgiRequest;
import org.asteriskjava.fastagi.BaseAgiScript;
public class ExampleCallIn extends BaseAgiScript {
@Override
public void service(AgiRequest request, AgiChannel channel) throws AgiException {
answer(); // 接听电话
execute("Playback", "tt-monkeys"); // 播放 tt-monkeys 音频文件
hangup(); // 挂断电话
}
}
Manager API简介
Manager API提供了更广泛的控制功能,包括接收事件(如通话进度)和发送操作指令(如发起呼叫)。通过Javadocs可以找到所有可操作的列表和事件类型。
项目API使用文档
详细的API使用说明可在项目发布的JavaDoc中查找,访问地址:JavaDoc。这里涵盖了FastAGI和Manager API的所有类和方法说明,是深入学习Asterisk-Java的强大资源。
活动(Activities)
从Asterisk-Java 2.0起引入的新特性,旨在提供一种高级且一致的方法来与Asterisk交互,无需深入了解底层细节。Activities简化了连接管理和复杂的Asterisk动作与事件处理。
系统需求
- Java环境:至少需要Java 8。
- 开发时需要:Maven(如果从源码构建)。
遵循以上指南,你将能够轻松地集成Asterisk-Java至你的Java应用程序中,无论是通过FastAGI快速响应电话事件,还是利用Manager API进行深度管理,都能得心应手。记得查看官方GitHub页面的Wiki部分,获取更多教程和实例以深化理解。