# freeswitch-manager
**Repository Path**: ythyty/freeswitch-manager
## Basic Information
- **Project Name**: freeswitch-manager
- **Description**: A manager library for FreeSWITCH
- **Primary Language**: Unknown
- **License**: GPL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2022-11-24
- **Last Updated**: 2022-11-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Custom FreeSWITCH Event Socket Library
## 自定义FreeSWITCH ESL 库
## 架构说明
- 定义一个通用抽象客户端, 用户可以进行自定义实现客户端
- 实现一个EventClient专门进行事件监听
- 实现一个EslClient专门处理命令发送
- EslEvent更加方便的获取一些常用字段和取自定义字段
- 解码器自动释放缓存
- 简化外联服务端监听器
- 将CommandResponse集成到EslMessage
- 增加XML/JSON等事件的解析
- 将事件头字段定义改成枚举
- 命令客户端EslClient发送命令等方法增强
## 安装教程
1. pom.xml中添加依赖
```
top.wdcc
freeswitch-esl
1.0.0
```
## 使用说明
- EslClient用法
```
EslClient eslClient = new EslClient();
eslClient.connect(host, port, "ClueCon", 30);
EslMessage message = eslClient.sendSyncCommand("sofia", "status");
System.out.println(message.getReplyText());
Thread.sleep(5000);
eslClient.close();
```
- EventClient用法
```
EventClient eventClient = new EventClient(new EslListener() {
@Override
public void onAuthedResult(boolean successful, String failureText) {
// TODO on authencated
}
@Override
public void onEslEvent(EslEvent eslEvent) {
// TODO on esl event received
}
@Override
public void onAsyncResult(String jobUuid, List result) {
// TODO on background job result received
}
@Override
public void onDisconnected() {
// TODO on client disconnected
}
});
eventClient.connect("192.168.0.100", 8021, "ClueCon", 30);
Thread.sleep(5000);
eventClient.close();
```
- OutboundServer用法
```
OutboundServer ob = new OutboundServer(new OutboundListener() {
@Override
public void onOuboundEslEvent(EslEvent eslEvent) {
// TODO on outbound event received
}
@Override
public void handleDisconnected() {
// TODO on client disconnected
}
});
// custom port
ob.start(8080);
ob.stop();
```
## 该库参考https://github.com/esl-client/esl-client.git
## 参与贡献
1. Fork 本仓库
2. 新建 dev 分支
3. 提交代码
4. 新建 Pull Request
## 欢迎使用并贡献您宝贵的代码