呼叫中心系统
这是一套自主研发的呼叫中心系统,涵盖 Node.js 与 PHP 两个版本,分别面向不同业务场景。系统基于 FreeSWITCH + OpenSIPS 构建通信底层,实现电话呼入呼出控制、IVR 语音导航、坐席管理、三方通话等核心功能。
项目背景
企业客服场景需要高效的呼叫处理能力,包括自动分配来电、语音导航、坐席协作等。传统呼叫中心方案成本高、定制化困难。我们基于开源通信框架自研呼叫中心系统,实现灵活配置与成本控制。
系统架构
通信底层
- FreeSWITCH:软交换平台,处理媒体流、呼叫控制、编解码转换
- OpenSIPS:SIP 代理服务器,处理信令路由、负载均衡、注册认证
应用层
- Node.js 版本:面向实时通信场景,处理坐席状态管理、实时事件推送
- PHP 版本:面向业务逻辑场景,处理客服坐席呼出、自动呼出任务、智能接待
核心功能
1. 呼入呼出控制
- 呼入处理:来电自动分配至空闲坐席,支持优先级队列
- 呼出处理:支持预览式呼出(坐席确认后拨打)与预测式呼出(系统自动批量拨打)
2. IVR 语音导航
交互式语音应答系统,支持多级菜单自定义配置:
欢迎致电XX公司 -> 销售请按1 -> 售后请按2 -> 人工服务请按0
支持语音文件录制、菜单层级配置、按键逻辑定制。
3. 坐席状态管理
实时监控坐席状态(空闲、通话中、忙碌、离线),根据状态分配来电。坐席可手动切换状态,支持小休、签退等操作。
4. 呼叫转移
支持多种转移场景:
- 盲转:直接转移至目标坐席,不等待接听
- 咨询转:先与目标坐席通话,确认后再转移
- 转移到手机:坐席不在工位时,来电可转至手机
5. 三方通话
支持客服、客户、专家三方实时通话,适用于复杂问题处理场景。坐席可邀请专家加入通话,协同解决客户问题。
6. 来电定位
基于号码归属地识别来电区域,智能路由至对应区域坐席。支持黑名单拦截、VIP 客户优先接入等策略。
技术实现
Node.js 版本
- 基于 EventEmitter 实现实时事件推送
- 使用 WebSocket 与前端坐席界面通信,实时同步状态
- 集成 Redis 缓存坐席状态与队列信息
PHP 版本
- 基于 Yii2 框架构建 RESTful API
- 使用 ESL(Event Socket Library) 与 FreeSWITCH 通信
- 集成 RabbitMQ 处理异步任务(如批量呼出)
项目成果
- 实现完整呼叫中心功能,覆盖呼入呼出、IVR、坐席管理、三方通话
- 开源方案降低成本,支持灵活定制
- 两个版本分别适配不同业务场景,提升系统适应性
技术栈
FreeSWITCH, OpenSIPS, Node.js, PHP, Yii2, Redis, RabbitMQ, WebSocket