# eslclient-spring-boot-starter **Repository Path**: Tangwego/eslclient-spring-boot-starter ## Basic Information - **Project Name**: eslclient-spring-boot-starter - **Description**: FreeSWITCH Spring Boot starter - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 4 - **Created**: 2021-08-17 - **Last Updated**: 2024-05-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # eslclient-springboot-starter #### 介绍 FreeSWITCH ESL springboot starter #### 软件架构 基于FreeSWITCH事件库Event Socket Library的一个springboot starter实现 #### 安装教程 1. pom.xml中添加依赖 ``` top.wdcc eslclient-spring-boot-starter 1.0.1-RELEASE ``` #### 使用说明 - 配置FreeSWITCH ESL连接相关信息 ``` freeswitch: eslclient: host: freeswitch # event socket 主机地址 port: 8021 # event socket 主机端口 password: ClueCon # event socket 主机认证密码 timeout-sec: 30000 # event socket 连接超时 pool-size: 1 # event socket 连接池大小 ``` - 添加异步调用结果监听器 ``` /** * 监听BACKGROUND_JOB事件 (eventName可选,只要继承了EslBackgroundJobListener并添加了EslListener注解即可) */ @EslListener public class DemoBackgroundJobListener implements EslBackgroundJobListener { private static final Logger logger = LoggerFactory.getLogger(DemoBackgroundJobListener.class); @Override public void onBackgroundResult(String jobUuid, boolean hasBody, List bodyLines) { logger.info("job uuid: {}, 是否有收到BGAPI结果: {}", jobUuid , hasBody); logger.info("收到的BGAPI结果: \n{}", bodyLines); } } ``` - 添加事件监听器 ``` /** * 监听事件 * eventName填写需要关心的事件, subClassName填写事件子类(可选) */ @EslListener(eventName = "API") public class DemoApiListener implements EslEventListener { private static final Logger logger = LoggerFactory.getLogger(DemoApiListener.class); @Override public void onEslEvent(String eventName, Map eventMap) { logger.info("执行了一个API:{}, 参数:{}", eventMap.get("API-Command"), eventMap.get("API-Command-Argument")); } } ``` - 使用EslClient发送命令 ``` @Autowired private EslClient eslClient; public void test(){ eslClient.api("sofia", "status"); } ``` #### 参与贡献 1. Fork 本仓库 2. 新建 dev 分支 3. 提交代码 4. 新建 Pull Request