Skip to main content

Java ESL 客户端

关于

本页面记录了在freeswitch-contrib git存储库中维护的org.freeswitch.esl.client库。请参见Java ESL页面,了解使用Java与FreeSWITCH Event Socket的其他选项。

点击此处展开目录

功能

获取Java ESL库

二进制jar文件

当前发布版本

  • org.freeswitch.esl.client-0.9.2.jar
  • org.freeswitch.esl.client-0.9.2-sources.jar
  • org.freeswitch.esl.client-0.9.2-javadoc.jar

这些构件都使用GPG密钥1024D/74B7C72A (david.varnes [at] gmail [dot] com)签名,可以验证您下载的二进制文件与最初上传的文件是否相同。

手动下载

可直接从以下地址下载构件:

https://oss.sonatype.org/content/repositories/releases/org/freeswitch/esl/client/org.freeswitch.esl.client/

现在它在Github上可用并更新了,欢迎您加入我们。^_^

https://github.com/esl-client/

这是由Sonatype维护的托管存储库,用于OSS项目。文件会自动从那里同步到Maven中央存储库。

从Maven中央存储库获取

假设您使用的构建工具可以从Maven 2中央存储库解析依赖项,请将以下内容添加到您的项目pom.xml中:

<dependencies>
...
<dependency>
<groupId>org.freeswitch.esl.client</groupId>
<artifactId>org.freeswitch.esl.client</artifactId>
<version>0.9.2</version>
</dependency>
...
</dependencies>

注意:netty依赖项在Maven 2中央存储库中不可用。您可以选择:

  • 遵循netty网站上的说明,或者

  • 在您的Maven构建中启用'jboss-public-repository'配置文件,该配置文件包含在org.freeswitch.esl.client pom中,并将合适的jboss存储库添加到您的构建中。 例如:运行

    mvn install -Pjboss-public-repository

运行时依赖项

如果您手动下载并安装了jar文件,则还必须在Java类路径上提供以下jar文件

从contrib git源代码构建

当然,可以使用以下步骤从最新的git HEAD(或TAG)构建上述的二进制文件。

在构建工具上依赖maven工具

一个类似于“autotools”和“make”的Java构建工具,用于主要的FreeSWITCH代码,该库使用maven构建工具构建。

在本页面的范围之外安装maven,只需使用链接中提供的最新版本即可,maven也已为一些主要的Linux发行版打包。

Maven会为您下载两个编译依赖项(netty和slf4j-api)和测试依赖项(logback),以及编译Java类,运行单元测试并组装“jar”归档文件。

从git中检出

必须首先安装git。代码可以从freeswitch-contrib git存储库获取。以下命令获取该存储库(您还可以获取freeswitch-contrib中的其他好东西)。

$ git clone git://git.freeswitch.org/freeswitch-contrib.git

编译、运行测试和生成jar

假设'mvn'在路径上。

$ cd freeswitch-contrib/dvarnes/java/esl-client $ mvn install

如果这是您首次运行maven工具,由于它要从中央maven存储库下载一组看似无穷无尽的jar,所以需要一些时间。首次下载之后,后续构建将会快得多。

注意:某些测试将尝试连接到默认端口8021和密码上正在运行的FreeSWITCH安装。请参阅Event_Socket的配置部分。这些测试将不会在正常的maven构建中运行,您需要以通常的方式运行它们,如调用junit测试用例(IDE等)。

这些测试试图连接到一个名为'freeswitch-test'的主机,因此请将一个条目添加到您的主机文件中,将'freeswitch-test'指向一个具有监听ESL套接字的主机,可以是本地主机。

用法

有关ESL的通用用法,请浏览维基页面,下面是一些链接。各种语言绑定和客户端的维基页面都提供了有用的代码段和线索。

FreeSWITCH技术手册的第9章还介绍了事件和ESL。

入站客户端用法

源代码的src/test/java目录中包括一个简单的单元测试:

 org.freeswitch.esl.client.inbound.ClientTest

此测试假定它可以连接到一个名为'freeswitch-test'的主机上的默认套接字端口和密码的FreeSWITCH。

请注意,测试源代码不包含在打包的JAR文件中,它可以从Git存储库中获取。

出站套接字客户端用法

一个非常简单的示例在主客户端jar中作为示例实现:请参考以下类

 org.freeswitch.esl.client.outbound.example.SimpleHangupOutboundHandler

其中提供了如何在src/test/java源代码目录中的出站'unit'测试(实际上是一个应用示例)中运行它的示例。

为了使测试工作正常,请配置一个与运行中的FreeSWITCH类似的扩展,如下所示:

 <extension>
<condition field="destination_number" expression="444">
<action application="socket" data="192.168.100.88:8084 async full"/>
</condition>
</extension>

在测试运行期间,IP地址需要是FreeSWITCH将连接你正在运行的测试的地址。然后运行测试,它将给你45秒的时间来拨打分机444并观察信息是否记录到控制台,之后呼叫将被挂断,然后测试将结束(关闭出站套接字客户端)。

注意上述描述的单元测试源代码未包含在打包的jar文件中,它可以从git仓库获取。

出站应用程序

应用程序开发者需要扩展(最重要的是)org.freeswitch.esl.client.outbound.AbstractOutboundClientHandler和(非常简单)org.freeswitch.esl.client.outbound.AbstractOutboundPipelineFactory类并根据自己的逻辑来调用org.freeswitch.esl.client.outbound.SocketClient

已知问题

待办事项 - 在FreeSWITCH Jira下设置模块。

对于反馈、问题、bug修复,可以直接发送到下面的电子邮件地址,或通过freeswitch-users邮件列表提出。作者通常在IRC上使用昵称'dvarnes'。

路线图

截至2010年8月30日

  • 在Jira中添加本节内容
  • 填写本文档页中的待办事项
  • 完成更多示例
  • 完成项目源代码根目录中的TODO.txt项目

捐赠

这个Java库是作者利用空闲时间创建和维护的。

你可以通过Paypal向作者捐赠,捐赠地址为david.varnes [at] gmail [dot] com。

参见