呼叫中心系统


这是一套自主研发的呼叫中心系统,涵盖 Node.jsPHP 两个版本,分别面向不同业务场景。系统基于 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