Package com.bytedesk.call.esl


@NonNullApi package com.bytedesk.call.esl
FreeSWITCH ESL(Event Socket Library)客户端实现的内嵌版本。 背景与动机:
  • 上游 org.freeswitch.esl.client 长期未更新,存在兼容性与维护风险;
  • 为降低外部依赖带来的不确定性,将相关实现收拢至本仓库便于按需修复与扩展;
  • 实现参考并吸收了社区方案(如 esl-client、thingscloud/freeswitch-esl 等)的设计思路, 具体出处与差异请参见各源文件头部注释。
主要能力:
  • Inbound/Outbound 连接管理(见 client.inboundoutbound 包);
  • ESL 消息编解码与命令发送(见 transport.messagetransport.SendMsg 等);
  • 事件解析与分发(见 transport.event.EslEventclient.inbound.IEslEventListener);
  • 基于 Apache MINA 的网络与协议处理(依赖 org.apache.mina:mina-core)。
使用提示:
  • 建议通过 client.inbound.Client 发起到 FreeSWITCH 的 ESL 连接,并注册 client.inbound.IEslEventListener 监听事件;
  • Outbound 模式可通过 outbound.IClientHandler(及其工厂)处理 FS 回拨到应用侧的会话;
  • 若遇到协议字段差异,优先在本包内做兼容与适配,避免直接新增外部实现作为依赖;
  • 注意资源释放:在应用关闭时优雅关闭连接与线程池,避免潜在的资源泄露。
许可与版权:
  • 本目录中的实现遵循上游项目的开源许可条款;如与本仓库 LICENSE 存在差异,以各源文件声明为准;
  • 原作者与相关社区项目保留其各自版权;如有侵权或许可疑义,请联系维护者处理。
兼容性:
  • 已在 JDK 17 环境下编译与运行;
  • 与 FreeSWITCH 1.10+ 的 ESL 协议字段保持兼容,若上游变更请在本包内同步适配。
包级约定:
  • 通过 NonNullApi 约定:除非另有标注,参数与返回值默认非空。