我准备整理一套从零搭建智能呼叫平台的免费课程
这套课程会从一台刚准备好的服务器开始,逐步完成 FreeSWITCH 安装、分机互拨、接口外呼、呼入接管、实时事件、双向音频、语音 AI、企业知识库、通话记录和生产部署。
最后交付的不是一堆零散概念,而是一个真正能够呼入、外呼、与 AI 实时对话,并在需要时转接人工的基础呼叫平台。
我为什么想整理这套课程
FreeSWITCH 是一个功能很强的开源通信平台,但第一次接触它时,很容易卡在 ESL、Dialplan、SIP、通道变量和各种事件上。
ESL(Event Socket Library)可以理解为 FreeSWITCH 对外提供的一套事件和控制机制。它能力很强,但开发者不仅要处理连接、事件订阅和命令,还要理解不少 FreeSWITCH 内部细节。
很多程序员并不是不会开发业务系统,而是不熟悉通信领域。他可能会 Java、Python、Go、Node.js 或 Vue,也熟悉 HTTP、WebSocket 和 JSON,但面对 FreeSWITCH 时,不知道第一步应该做什么。
我开发 FCC,就是想把这部分门槛降下来。
FCC 是一个 FreeSWITCH 原生呼叫控制模块。业务系统可以通过普通的 HTTP 和 WebSocket 接口完成呼入、外呼、接听、挂断、保持、转接、桥接、播放文件、发送 DTMF 和状态监听,不需要直接连接 ESL。
FCC 模块会在近日开源,上传到我的GitHub
我希望开发者不用先花很长时间去研究FreeSWITCH内部机制,就能从自己熟悉的领域(接口)开始,先完成第一个可运行的呼叫平台,再根据项目需要继续深入。
当然,降低门槛不等于完全没有门槛。真正用于生产的呼叫中心平台仍然需要处理 SIP 线路、网络、安全、并发和合规问题。课程会把这些问题讲清楚,不是说能跑通就是一个商业项目,但是最起码能先解决从“有没有”,再到“好不好”的问题。
这套课程适合谁
第一类是有一定的开发基础,但不熟悉FreeSWITCH的群体。
你只需要对接接口(这肯定是你的强项),如果愿意借助 AI 编程工具完成代码就更好了,就可以跟着课程逐步实践。
第二类是准备建设智能呼叫平台的企业负责人、产品经理和业务人员。
你不一定要亲自写完所有代码,但可以通过这套课程了解一个智能呼叫平台由哪些部分组成、项目难点在哪里、怎样评估方案,以及从演示走向生产还缺少什么。
暂定课程大纲
我不会讲抽象理论,那没啥意思。我每一部分都会围绕一个具体任务展开。
第一部分:在 FreeSWITCH 上打通第一通电话
- 在 Debian 12 安装 FreeSWITCH,确认服务启动,并通过
fs_cli执行第一条命令。 - 创建 1001 和 1002 两个测试分机,使用软电话完成注册和互拨。
- 从 FreeSWITCH 日志中找到一次呼叫的主叫、被叫、UUID 和挂断原因。
- 配置最小 Dialplan,让指定号码播放语音、进入分机或执行兜底流程。
- 接入一条测试 SIP 线路,完成真实号码的呼入或外呼验证。
完成这一部分后,大家手里会有一套可以正常打电话的FreeSWITCH环境,而不是只能看懂安装命令。
第二部分:用FCC接口完成呼叫控制
- 安装 FCC,设置 Bearer Token,并通过存活、就绪和指标接口检查模块状态。
- 调用
POST /api/v1/calls发起第一通外呼,并使用request_id避免重复创建电话。 - 查询单通电话状态,获取 dialing、ringing、answered 和 hangup 等生命周期信息。
- 通过接口完成接听、挂断、保持、恢复、发送 DTMF 和播放语音文件。
- 建立控制 WebSocket,完成
client.hello,实时接收并确认电话事件。 - 模拟 WebSocket 断线,使用 sequence 恢复未处理事件,避免后台漏掉关键状态。
- 在 Dialplan 中调用
fcc_inbound,让业务后台接管一通真实呼入电话。 - 完成拒接、超时继续 Dialplan、转接分机、桥接号码和 AI 转人工流程。
- 制造重复请求、错误号码、超出 CPS 和超出并发等异常,观察接口返回并做好业务兜底。
完成这一部分后,即使大家暂时不接入AI,也已经可以通过熟悉的接口开发普通呼叫业务。
第三部分:做出一个最小呼叫管理平台
- 使用 Vue 3 制作登录页、当前通话列表和呼叫操作面板,所有前端依赖全部本地化。
- 编写后端接口代理 FCC,避免把控制 Token 暴露在浏览器中。
- 将 FCC WebSocket 事件推送到页面,实时更新呼叫状态和通话时长。
- 在页面中完成外呼、接听、挂断、保持、转接和发送按键。
- 使用 PostgreSQL 保存客户、呼叫任务、通话记录、事件和操作日志。
- 使用 call_id、request_id 和 FreeSWITCH UUID 串起一次完整呼叫,做到问题可追踪。
完成这一部分后,大家会得到一个可以实际操作的呼叫管理后台。
第四部分:打通电话与 AI 之间的实时双向音频
- 用实际音频对比 8k、16k、单声道、双声道和 PCM,听懂采样率错误造成的变速与杂音。
- 启动一路实时音频流,在本地 WebSocket 服务中接收电话音频并保存为可播放文件。
- 将一段 PCM 或语音文件发送回电话,验证从后端到 FreeSWITCH 的下行音频。
- 使用 UUID 隔离多通电话,避免不同会话的音频和业务信息串线。
- 将 FCC 的 call_id、request_id 和业务元数据带入音频会话,实现控制流与媒体流关联。
- 处理 ready 握手、暂停、恢复、停止、断线重连和异常释放。
完成这一部分后,大家会真正拿到电话里的声音,也能把后端生成的声音送回电话。
第五部分:完成 ASR、LLM、TTS 的实时语音闭环
- 把电话 PCM 分帧送给 ASR,在后台实时显示用户说出的文字。
- 区分临时识别结果和最终识别结果,避免一句话被重复发送给大模型。
- 设计客服系统提示词,限制回答长度、业务范围和禁止承诺的内容。
- 将大模型回答送给 TTS,统一音频格式后分块回传到电话。
- 记录 ASR、大模型、TTS 和首包播放的时间,定位整条链路的延迟来源。
- 用户开口时停止当前 TTS 播放,清理未播放音频,实现基础打断能力。
- 给 AI 增加查询客户资料、播放固定提示、发送 DTMF 和转人工等工具。
- 为 ASR、LLM 和 TTS 增加超时与异常兜底,避免某个外部服务故障导致通话中断。
完成这一部分后,大家会得到一个能够在真实电话里与用户实时对话的基础语音机器人。
第六部分:给呼叫平台增加企业知识库
- 整理企业 FAQ、产品说明和售后政策,清洗无法直接用于检索的文档内容。
- 将文档切分、向量化并写入知识库,保留标题、版本、来源和更新时间。
- 根据用户问题检索相关内容,把有效上下文交给大模型生成回答。
- 为回答保留知识来源,无法检索到可靠资料时明确告知并转人工。
- 更新一条企业政策,验证知识库能及时生效,而不需要重新训练大模型。
- 在通话结束后整理识别文本,生成摘要、客户意向、投诉点和待办事项。
- 说明提示词、RAG 和模型微调分别解决什么问题,以及什么情况下才值得微调。
完成这一部分后,语音机器人不再只是聊天,而是能够基于企业资料回答实际业务问题。
第七部分:从一路演示走向商业部署
- 分别测试通话并发、推流并发和 CPS,找出 FreeSWITCH 与 AI 服务的容量瓶颈。
- 根据 ASR、LLM、TTS、线路和服务器费用,计算一通电话的分钟成本。
- 使用日志、FCC 指标和推流状态追踪一通异常电话,形成固定排查顺序。
- 配置防火墙、访问白名单、WSS、接口鉴权和 SIP 防盗打,避免控制接口直接暴露公网。
- 设计线路故障、AI 服务超时、WebSocket 断开和服务重启时的降级方案。
- 完成部署脚本、配置备份、日志轮转、监控告警和版本升级方案。
- 梳理录音、隐私、外呼时间、用户授权和敏感信息处理等上线前合规问题。
- 最终完成一个支持呼入、外呼、实时 AI、知识库、转人工和通话摘要的结课项目。
完成这一部分后,大家能够清楚区分“功能已经跑通”和“系统可以上线”,并知道下一步应该补齐哪些能力。
关于实时音频模块
课程前半部分的呼叫控制会使用准备开源的 FCC。
进入实时语音 AI 阶段后,还需要解决电话音频与 ASR、TTS 之间的双向传输。届时会使用我开发的另一个 FreeSWITCH 实时音频模块。
这个音频模块在学习和功能验证阶段可以使用一路并发,足以完成整套课程。只有正式用于多路生产业务时,才需要购买商业授权。
我会把开源范围、学习试用范围和商业授权范围提前讲清楚。大家可以先完整跑通、确认适合自己的项目,再决定是否用于生产。
我想先听听你的真实需求
课程的基础路线已经整理出来了,但具体先更新哪一部分,我想参考大家准备落地的项目。
如果你对这套课程感兴趣,可以点个关注,并在评论区告诉我你的情况:
- 如果你是开发者、技术负责人或系统集成商,可以留言:
开发。 - 如果你是公司负责人、产品经理或业务人员,可以留言:
企业。
如果方便,也欢迎加上一句你想做的场景,例如 AI 智能客服、电话通知、售后回访、预约确认、语音机器人、AI 外呼、人工坐席辅助,或者已有呼叫中心的 AI 改造。
我会根据这些真实反馈,决定课程的更新顺序,也会把大家反复遇到的问题整理成后续实战内容。
如果你身边有正在研究 FreeSWITCH、AI 客服或语音机器人的朋友,也欢迎把这篇文章转给他。
我希望这套课程最终能做到一件事:让更多不熟悉FS的开发者朋友真正具备搭建呼叫平台的能力,如果你后面对FS有兴趣可以去找一些资料继续学习,也可以看看我的呼叫中心的专栏是否对你有用。
关注公众号,及时获取课程更新
这套课程会在公众号持续更新。感兴趣的朋友可以扫码关注,新课程发布后即可收到推送提醒,避免错过后续实战内容。
