Files
training-system/cc-center/企业呼叫中心系统需求规格说明书.txt
2026-05-12 12:24:11 +08:00

871 lines
41 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

**文档版本**V1.0
**编制日期**2024年1月
**文档状态**:初稿
---
## 第一章 项目概述
### 1.1 项目背景
本企业主营道路救援、家政服务、代驾服务三大业务板块面向个人消费者ToC提供服务。随着业务规模扩大现需建设一套专业的呼叫中心系统
以提升客户服务体验、提高服务响应效率、降低人工成本。
### 1.2 项目目标
| 目标维度 | 具体目标 |
|---------|---------|
| **服务能力** | 支持150坐席同时在线日处理呼叫量50,000通 |
| **响应效率** | 道路救援等紧急服务实现快速响应7×24小时不间断服务 |
| **人工效率** | 通过预测式外呼提升坐席利用率,减少空闲等待时间 |
| **自动化水平** | 通过智能IVR和机器人实现常见问题自助解答、批量通知自动化 |
| **系统稳定性** | 主备高可用架构,确保核心业务(道路救援)不中断 |
### 1.3 项目范围
**纳入范围:**
- 基础呼叫能力(呼入/呼出)
- 智能IVR与语音导航
- 呼入/呼出机器人
- 预测式外呼
- 无人化批量通知
- CRM系统集成API对接
- 软电话条组件
- 实时监控大屏
- 班长监控功能
- 全程录音
- 主备高可用部署
**不纳入本期范围:**
- 统计报表系统(二期规划)
- 智能质检系统(二期规划)
- 短信功能(由第三方平台提供)
### 1.4 术语定义
| 术语 | 定义 |
|------|------|
| **ACD** | 自动呼叫分配Automatic Call Distribution |
| **IVR** | 交互式语音应答Interactive Voice Response |
| **ASR** | 自动语音识别Automatic Speech Recognition |
| **TTS** | 语音合成Text To Speech |
| **NLU** | 自然语言理解Natural Language Understanding |
| **CTI** | 计算机电话集成Computer Telephony Integration |
| **SIP** | 会话发起协议Session Initiation Protocol |
---
## 第二章 业务需求
### 2.1 业务架构
```
┌─────────────────────────────────────────────────────────────────┐
│ 客户触点 │
│ 道路救援热线 家政服务热线 代驾服务热线 │
│ (400-XXX-XXXX) (400-XXX-XXXX) (固话/400) │
└───────────────┬─────────────────┬─────────────────┬─────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────────────────────────────┐
│ 呼叫中心系统 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 智能IVR │ │ 呼入机器人│ │ ACD分配 │ │ 外呼系统 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 坐席管理 │ │ 录音系统 │ │ 实时监控 │ │ API网关 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└───────────────────────────┬─────────────────────────────────────┘
│ API
┌─────────────────────────────────────────────────────────────────┐
│ CRM/业务系统 │
│ 客户管理 │ 工单管理 │ 派单系统 │
└─────────────────────────────────────────────────────────────────┘
```
### 2.2 呼入业务场景
#### 2.2.1 道路救援来电场景
**业务流程:**
```
客户来电
→ 智能IVR语音识别"道路救援"
→ 机器人收集初步信息(可选)
→ 转救援技能组
→ ACD分配历史服务优先 > 最长空闲 > 轮询)
→ 技能组全忙时溢出到备用组
→ 坐席接听 + CRM弹屏
→ 坐席在CRM创建工单/派单
→ 通话结束 → 录音保存
```
**业务要求:**
- 响应时效要求高,需优先保障接通率
- 支持7×24小时服务
- 来电需快速识别客户身份,展示历史服务记录
#### 2.2.2 家政服务来电场景
**业务流程:**
```
客户来电
→ 智能IVR按键或语音选择"家政服务"
→ 常见问题解答(服务项目、价格咨询等)
→ 客户需要人工服务 → 转家政技能组
→ 坐席接听 + CRM弹屏
→ 预约服务/创建工单
→ 通话结束 → 录音保存
```
#### 2.2.3 代驾服务来电场景
**业务流程:**
```
客户来电
→ 智能IVR语音识别"叫代驾"
→ 转代驾技能组
→ 坐席接听 + CRM弹屏
→ 创建代驾订单/派单
→ 通话结束 → 录音保存
```
#### 2.2.4 投诉来电场景
**业务流程:**
```
客户来电
→ 智能IVR识别"投诉"意图)
→ 直接转人工(投诉不经机器人处理)
→ 分配至对应业务技能组或投诉专席
→ CRM弹屏 + 标记投诉标签
→ 坐席记录投诉内容
```
### 2.3 呼出业务场景
#### 2.3.1 预测式外呼(营销/回访)
**业务流程:**
```
业务系统推送外呼任务(客户名单)
→ 呼叫中心批量拨打
→ 客户接听 → 自动转接空闲坐席
→ CRM弹屏展示客户信息
→ 坐席进行营销/回访
→ 通话结束 → 录音保存 → 话单回传业务系统
```
**业务要求:**
- 系统自动拨打,接通后才转坐席,减少坐席等待时间
- 支持接通率、坐席利用率统计
- 外呼任务支持暂停、恢复、停止
#### 2.3.2 机器人自动外呼(通知类)
**场景一:服务人员派出/即将到达通知**
```
业务系统触发通知API调用
→ 呼叫中心自动拨打客户电话
→ 播放TTS语音"您好您预约的道路救援服务师傅已出发预计10分钟到达..."
→ 通话结束 → 结果回传业务系统
```
**场景二:账单催缴提醒**
```
业务系统推送催缴名单
→ 批量自动拨打
→ 播放TTS语音"您好,您有一笔待支付账单..."
→ 纯语音播报,无需交互
→ 拨打结果回传(接通/未接通/关机等)
```
#### 2.3.3 机器人自动外呼(回访/满意度调查)
**业务流程:**
```
业务系统推送回访任务
→ 呼叫中心自动拨打
→ 播放TTS语音"您好请问您对本次服务满意吗满意请按1不满意请按2"
→ 采集客户按键
→ 按键结果回传业务系统
→ 不满意客户可选择转人工跟进
```
### 2.4 机器人客服场景
#### 2.4.1 呼入机器人功能定位
| 功能 | 说明 |
|------|------|
| **语音导航** | 支持客户语音说出需求,自动识别并转接对应技能组 |
| **常见问题解答** | 支持50个以上FAQ自动语音解答 |
| **转人工预处理** | 收集客户初步信息后转人工,提高坐席效率 |
#### 2.4.2 转人工触发条件
| 触发条件 | 说明 |
|---------|------|
| 客户主动要求 | 客户说"转人工"或按键选择转人工 |
| 识别失败 | 机器人连续2-3次无法识别客户意图 |
| 特定问题类型 | 投诉类问题直接转人工,不经机器人处理 |
---
## 第三章 功能需求
### 3.1 智能IVR模块
#### 3.1.1 功能清单
| 功能编号 | 功能名称 | 功能描述 | 优先级 |
|---------|---------|---------|--------|
| IVR-001 | 多级语音菜单 | 支持配置多级IVR语音菜单按键导航 | P0 |
| IVR-002 | 语音识别导航 | 集成阿里云ASR支持客户语音说出需求自动识别 | P0 |
| IVR-003 | 多业务线路由 | 根据来电号码400/固话自动进入对应业务IVR流程 | P0 |
| IVR-004 | 时间条件路由 | 支持按工作时间/节假日配置不同IVR流程 | P1 |
| IVR-005 | 黑名单拦截 | 来电号码在黑名单中自动播放提示后挂断 | P1 |
| IVR-006 | VIP客户识别 | VIP客户来电自动优先排队或转专属坐席 | P2 |
| IVR-007 | IVR流程可视化配置 | 提供可视化拖拽界面配置IVR流程 | P1 |
#### 3.1.2 语音识别要求
- **ASR供应商**:阿里云语音识别
- **识别准确率**≥90%
- **响应时间**≤500ms
- **支持方言**:普通话为主,可选支持粤语、四川话等
### 3.2 ACD自动分配模块
#### 3.2.1 功能清单
| 功能编号 | 功能名称 | 功能描述 | 优先级 |
|---------|---------|---------|--------|
| ACD-001 | 技能组管理 | 支持创建多个技能组(救援组、家政组、代驾组) | P0 |
| ACD-002 | 坐席技能配置 | 坐席可属于一个或多个技能组,配置技能等级 | P0 |
| ACD-003 | 历史服务优先 | 来电客户优先分配给上次服务的坐席 | P0 |
| ACD-004 | 最长空闲优先 | 同技能组内优先分配给空闲时间最长的坐席 | P0 |
| ACD-005 | 轮询分配 | 同技能组内按顺序轮流分配 | P0 |
| ACD-006 | 分配策略优先级 | 支持配置分配策略优先级:历史服务 > 最长空闲 > 轮询 | P0 |
| ACD-007 | 技能组溢出 | 技能组全忙时,来电溢出到配置的备用技能组 | P0 |
| ACD-008 | 排队等待 | 所有坐席忙时,来电进入排队,播放等待音乐 | P0 |
| ACD-009 | 排队超时处理 | 排队超时可配置:继续等待/溢出/留言/回拨 | P1 |
| ACD-010 | 排队位置播报 | 向等待客户播报当前排队位置 | P2 |
### 3.3 坐席管理模块
#### 3.3.1 功能清单
| 功能编号 | 功能名称 | 功能描述 | 优先级 |
|---------|---------|---------|--------|
| AGT-001 | 坐席签入/签出 | 坐席上下班签入签出系统 | P0 |
| AGT-002 | 坐席状态管理 | 支持状态:空闲、通话中、振铃中、后处理、小休、忙碌 | P0 |
| AGT-003 | 小休原因 | 小休时需选择原因(用餐、洗手间、培训等) | P1 |
| AGT-004 | 状态自动切换 | 通话结束自动进入后处理状态,超时自动转空闲 | P0 |
| AGT-005 | 后处理时长配置 | 可配置后处理时长如30秒 | P1 |
| AGT-006 | 强制签出 | 班长可强制签出坐席 | P1 |
#### 3.3.2 坐席工作台要求
- 坐席不使用呼叫中心独立工作台
- 坐席在CRM系统中操作业务
- 呼叫中心提供**软电话条组件**嵌入CRM页面
- 软电话条通过WebSocket与呼叫中心通信
- 同时支持IP话机SIP协议注册
### 3.4 软电话条组件
#### 3.4.1 功能清单
| 功能编号 | 功能名称 | 功能描述 | 优先级 |
|---------|---------|---------|--------|
| SFT-001 | 签入/签出 | 坐席登录CRM后通过软电话条签入呼叫中心 | P0 |
| SFT-002 | 状态切换 | 置忙/置闲/小休状态切换按钮 | P0 |
| SFT-003 | 来电弹屏触发 | 来电时向CRM发送弹屏事件携带来电号码、客户ID等 | P0 |
| SFT-004 | 接听/挂断 | 点击接听/挂断按钮控制通话 | P0 |
| SFT-005 | 保持/取回 | 通话保持(播放等待音乐)和取回 | P0 |
| SFT-006 | 静音 | 坐席侧静音 | P1 |
| SFT-007 | 转接 | 转接至其他坐席/技能组/外线号码 | P0 |
| SFT-008 | 咨询转 | 先与第三方通话咨询,再决定是否转接 | P1 |
| SFT-009 | 三方通话 | 坐席、客户、第三方三方通话 | P1 |
| SFT-010 | 点击拨号 | 在CRM中点击号码呼出 | P0 |
| SFT-011 | 手动拨号 | 手动输入号码拨打 | P0 |
| SFT-012 | 通话计时 | 显示当前通话时长 | P0 |
| SFT-013 | 来电信息展示 | 显示来电号码、归属地、技能组等 | P0 |
#### 3.4.2 软电话条技术要求
| 要求项 | 说明 |
|-------|------|
| **前端技术** | Web组件支持iframe嵌入或JS SDK集成 |
| **通信协议** | WebSocket长连接实时接收呼叫事件 |
| **语音方案** | WebRTC浏览器软电话或SIP话机硬件话机 |
| **浏览器支持** | Chrome 70+、Firefox 65+、Edge 79+ |
### 3.5 呼入通话控制
#### 3.5.1 功能清单
| 功能编号 | 功能名称 | 功能描述 | 优先级 |
|---------|---------|---------|--------|
| IBC-001 | 来电接入 | 支持SIP中继接入来电 | P0 |
| IBC-002 | 来电排队 | 坐席全忙时来电进入队列等待 | P0 |
| IBC-003 | 等待音乐 | 排队等待时播放等待音乐 | P0 |
| IBC-004 | 来电转接 | 支持盲转、咨询转、转技能组、转外线 | P0 |
| IBC-005 | 三方通话 | 支持三方会议通话 | P1 |
| IBC-006 | 通话保持 | 通话保持并播放等待音乐 | P0 |
| IBC-007 | 通话录音 | 全程录音,支持双声道(坐席/客户分轨)| P0 |
### 3.6 呼出通话控制
#### 3.6.1 功能清单
| 功能编号 | 功能名称 | 功能描述 | 优先级 |
|---------|---------|---------|--------|
| OBC-001 | 点击外呼 | 坐席点击号码发起外呼 | P0 |
| OBC-002 | 外显号码设置 | 支持配置外呼显示的主叫号码 | P0 |
| OBC-003 | 外呼转接 | 外呼通话中支持转接 | P0 |
| OBC-004 | 通话录音 | 外呼通话全程录音 | P0 |
### 3.7 预测式外呼模块
#### 3.7.1 功能清单
| 功能编号 | 功能名称 | 功能描述 | 优先级 |
|---------|---------|---------|--------|
| PDL-001 | 外呼任务创建 | 通过API创建外呼任务导入号码名单 | P0 |
| PDL-002 | 任务状态控制 | 支持任务启动、暂停、恢复、停止 | P0 |
| PDL-003 | 预测式拨号算法 | 根据坐席空闲情况自动计算拨打频率 | P0 |
| PDL-004 | 接通转坐席 | 客户接听后自动转接空闲坐席 | P0 |
| PDL-005 | 无人接听处理 | 无人接听/忙音/关机等自动标记状态 | P0 |
| PDL-006 | 外呼时段限制 | 可配置允许外呼的时间段如9:00-21:00 | P1 |
| PDL-007 | 号码去重 | 同一任务内号码自动去重 | P1 |
| PDL-008 | 重试策略 | 未接通号码可配置自动重试次数和间隔 | P1 |
| PDL-009 | 坐席利用率统计 | 统计坐席有效通话时长占比 | P0 |
| PDL-010 | 接通率统计 | 统计任务接通率 | P0 |
### 3.8 机器人外呼模块
#### 3.8.1 功能清单
| 功能编号 | 功能名称 | 功能描述 | 优先级 |
|---------|---------|---------|--------|
| RBT-001 | 批量通知任务 | 通过API创建批量语音通知任务 | P0 |
| RBT-002 | TTS语音播放 | 集成阿里云TTS文本转语音播放 | P0 |
| RBT-003 | 变量替换 | 支持语音内容中插入变量(姓名、时间、金额等) | P0 |
| RBT-004 | 纯播报模式 | 播放语音后直接挂断 | P0 |
| RBT-005 | 按键采集模式 | 播放语音后等待客户按键,采集结果 | P0 |
| RBT-006 | 按键结果回传 | 按键结果通过回调接口推送至业务系统 | P0 |
| RBT-007 | 无应答处理 | 客户无应答/超时可配置重试或标记 | P1 |
| RBT-008 | 并发控制 | 可配置任务最大并发拨打数 | P1 |
| RBT-009 | 任务进度查询 | API查询任务进度和结果 | P0 |
### 3.9 呼入机器人模块
#### 3.9.1 功能清单
| 功能编号 | 功能名称 | 功能描述 | 优先级 |
|---------|---------|---------|--------|
| IRB-001 | 语音识别 | 集成阿里云ASR识别客户语音 | P0 |
| IRB-002 | 意图识别 | 对接NLU平台识别客户意图 | P0 |
| IRB-003 | FAQ问答 | 支持配置50+常见问题及答案 | P0 |
| IRB-004 | 语音合成应答 | 集成阿里云TTS合成语音应答 | P0 |
| IRB-005 | 多轮对话 | 支持多轮对话收集信息 | P1 |
| IRB-006 | 转人工-主动请求 | 客户说"转人工"触发转接 | P0 |
| IRB-007 | 转人工-识别失败 | 连续N次识别失败自动转人工 | P0 |
| IRB-008 | 转人工-特定意图 | 识别到投诉等意图直接转人工 | P0 |
| IRB-009 | 转接携带信息 | 转人工时携带已收集的信息至坐席 | P1 |
| IRB-010 | 话术配置 | 支持配置机器人话术和回复内容 | P0 |
### 3.10 录音管理模块
#### 3.10.1 功能清单
| 功能编号 | 功能名称 | 功能描述 | 优先级 |
|---------|---------|---------|--------|
| REC-001 | 全程录音 | 所有呼入呼出通话全程录音 | P0 |
| REC-002 | 双声道录音 | 坐席和客户分轨录音(便于质检) | P1 |
| REC-003 | 录音存储 | 录音文件存储至NAS/分布式存储 | P0 |
| REC-004 | 长期保存 | 支持录音长期保存,定期归档 | P0 |
| REC-005 | 录音检索 | 按通话ID、时间、号码等检索录音 | P0 |
| REC-006 | 录音下载 | 通过API获取录音文件下载地址 | P0 |
| REC-007 | 录音权限 | 录音访问权限控制 | P1 |
### 3.11 班长监控模块
#### 3.11.1 功能清单
| 功能编号 | 功能名称 | 功能描述 | 优先级 |
|---------|---------|---------|--------|
| SUP-001 | 坐席状态监控 | 实时查看所有坐席当前状态 | P0 |
| SUP-002 | 实时监听 | 监听坐席与客户通话,双方不知情 | P0 |
| SUP-003 | 强插通话 | 加入通话,三方均可听到 | P0 |
| SUP-004 | 强拆通话 | 强制结束坐席通话 | P0 |
| SUP-005 | 密语(可选) | 对坐席单向说话,客户听不到(二期) | P2 |
| SUP-006 | 强制签出 | 强制将坐席签出系统 | P1 |
| SUP-007 | 强制置忙 | 强制将坐席状态设为忙碌 | P1 |
### 3.12 实时监控大屏
#### 3.12.1 功能清单
| 功能编号 | 功能名称 | 功能描述 | 优先级 |
|---------|---------|---------|--------|
| DSP-001 | 整体概览 | 展示当前呼入量、呼出量、接通率等 | P0 |
| DSP-002 | 坐席状态分布 | 展示各状态坐席数量(空闲、通话、小休等) | P0 |
| DSP-003 | 技能组监控 | 各技能组排队数、等待时长、可用坐席数 | P0 |
| DSP-004 | 实时告警 | 排队超阈值、坐席空闲过少等告警提示 | P1 |
| DSP-005 | 趋势图表 | 当日话务量趋势图(按小时) | P1 |
| DSP-006 | 大屏适配 | 支持大屏显示器展示 | P0 |
---
## 第四章 接口需求
### 4.1 接口概述
呼叫中心系统作为通信能力中台通过API方式为CRM/业务系统提供呼叫能力。接口采用RESTful API + WebSocket事件推送模式。
### 4.2 接口清单
#### 4.2.1 呼入控制接口
| 接口编号 | 接口名称 | 请求方式 | 说明 |
|---------|---------|---------|------|
| API-IN-001 | 接听来电 | POST | 坐席接听当前来电 |
| API-IN-002 | 挂断通话 | POST | 挂断当前通话 |
| API-IN-003 | 保持通话 | POST | 将通话置于保持状态 |
| API-IN-004 | 取回通话 | POST | 取回保持的通话 |
| API-IN-005 | 转接通话 | POST | 转接至指定坐席/技能组/外线 |
| API-IN-006 | 咨询通话 | POST | 发起咨询通话 |
| API-IN-007 | 咨询转移 | POST | 咨询后转移 |
| API-IN-008 | 三方通话 | POST | 建立三方通话 |
#### 4.2.2 呼出控制接口
| 接口编号 | 接口名称 | 请求方式 | 说明 |
|---------|---------|---------|------|
| API-OUT-001 | 点击外呼 | POST | 坐席发起外呼 |
| API-OUT-002 | 取消外呼 | POST | 取消正在拨打的外呼 |
| API-OUT-003 | 预览式外呼确认 | POST | 坐席确认拨打预览号码 |
#### 4.2.3 坐席状态接口
| 接口编号 | 接口名称 | 请求方式 | 说明 |
|---------|---------|---------|------|
| API-AGT-001 | 坐席签入 | POST | 坐席签入系统 |
| API-AGT-002 | 坐席签出 | POST | 坐席签出系统 |
| API-AGT-003 | 置忙 | POST | 坐席设置为忙碌状态 |
| API-AGT-004 | 置闲 | POST | 坐席设置为空闲状态 |
| API-AGT-005 | 小休 | POST | 坐席进入小休状态 |
| API-AGT-006 | 查询坐席状态 | GET | 查询指定坐席当前状态 |
| API-AGT-007 | 批量查询坐席状态 | GET | 批量查询坐席状态 |
#### 4.2.4 外呼任务接口
| 接口编号 | 接口名称 | 请求方式 | 说明 |
|---------|---------|---------|------|
| API-TASK-001 | 创建外呼任务 | POST | 创建预测式/机器人外呼任务 |
| API-TASK-002 | 导入号码 | POST | 向任务导入外呼号码 |
| API-TASK-003 | 启动任务 | POST | 启动外呼任务 |
| API-TASK-004 | 暂停任务 | POST | 暂停外呼任务 |
| API-TASK-005 | 恢复任务 | POST | 恢复暂停的任务 |
| API-TASK-006 | 停止任务 | POST | 停止外呼任务 |
| API-TASK-007 | 查询任务进度 | GET | 查询任务执行进度 |
| API-TASK-008 | 查询任务结果 | GET | 查询任务拨打结果明细 |
#### 4.2.5 单条外呼接口(通知类)
| 接口编号 | 接口名称 | 请求方式 | 说明 |
|---------|---------|---------|------|
| API-NOTIFY-001 | 发起语音通知 | POST | 触发单条语音通知外呼 |
| API-NOTIFY-002 | 查询通知结果 | GET | 查询通知拨打结果 |
#### 4.2.6 录音接口
| 接口编号 | 接口名称 | 请求方式 | 说明 |
|---------|---------|---------|------|
| API-REC-001 | 查询录音列表 | GET | 按条件查询录音记录 |
| API-REC-002 | 获取录音下载地址 | GET | 获取录音文件下载URL |
#### 4.2.7 监控接口
| 接口编号 | 接口名称 | 请求方式 | 说明 |
|---------|---------|---------|------|
| API-MON-001 | 监听通话 | POST | 班长监听指定坐席通话 |
| API-MON-002 | 强插通话 | POST | 班长强插指定坐席通话 |
| API-MON-003 | 强拆通话 | POST | 班长强制挂断指定坐席通话 |
| API-MON-004 | 实时统计数据 | GET | 获取实时监控统计数据 |
| API-MON-005 | 技能组排队信息 | GET | 获取各技能组排队情况 |
### 4.3 事件推送WebSocket
#### 4.3.1 通话事件
| 事件编号 | 事件名称 | 触发时机 | 推送内容 |
|---------|---------|---------|---------|
| EVT-001 | 来电振铃 | 来电分配到坐席时 | 来电号码、客户ID、技能组、IVR收集信息等 |
| EVT-002 | 通话接通 | 坐席接听后 | 通话ID、接通时间 |
| EVT-003 | 通话挂断 | 通话结束后 | 通话ID、挂断方、通话时长 |
| EVT-004 | 转接振铃 | 转接到新坐席振铃时 | 转接来源、来电信息 |
| EVT-005 | 外呼振铃 | 外呼拨打中 | 外呼号码、坐席ID |
| EVT-006 | 外呼接通 | 客户接听 | 通话ID |
| EVT-007 | 外呼失败 | 外呼未接通 | 失败原因(无人接听/忙/关机等) |
#### 4.3.2 坐席状态事件
| 事件编号 | 事件名称 | 触发时机 | 推送内容 |
|---------|---------|---------|---------|
| EVT-101 | 状态变更 | 坐席状态变化时 | 坐席ID、新状态、旧状态、时间 |
| EVT-102 | 签入成功 | 坐席签入成功 | 坐席ID、技能组 |
| EVT-103 | 签出成功 | 坐席签出成功 | 坐席ID |
#### 4.3.3 话单推送
| 事件编号 | 事件名称 | 触发时机 | 推送内容 |
|---------|---------|---------|---------|
| EVT-201 | 话单推送 | 通话结束后 | 通话ID、主被叫、开始时间、结束时间、时长、录音地址、坐席ID、技能组、呼叫类型等 |
#### 4.3.4 机器人交互结果推送
| 事件编号 | 事件名称 | 触发时机 | 推送内容 |
|---------|---------|---------|---------|
| EVT-301 | 按键结果 | 客户按键后 | 任务ID、号码、按键值、时间 |
| EVT-302 | 机器人通话结果 | 机器人外呼结束 | 任务ID、号码、接通状态、通话时长、按键结果 |
---
## 第五章 非功能需求
### 5.1 性能需求
| 指标项 | 要求 |
|-------|------|
| **并发坐席数** | 支持150坐席同时在线 |
| **并发通话数** | 支持120路并发通话含呼入+呼出) |
| **日处理量** | 支持日均50,000通呼叫 |
| **呼叫建立时延** | 来电从接入到振铃坐席 ≤ 1秒 |
| **API响应时间** | 95%请求响应 ≤ 200ms |
| **事件推送时延** | 事件产生到推送至CRM ≤ 500ms |
| **ASR识别延迟** | 语音识别延迟 ≤ 500ms |
| **系统可用性** | ≥ 99.9%全年停机不超过8.76小时) |
### 5.2 高可用需求
| 要求项 | 说明 |
|-------|------|
| **主备部署** | FreeSWITCH主备双机部署主机故障自动切换至备机 |
| **切换时间** | 故障切换时间 ≤ 30秒 |
| **数据同步** | 主备配置实时同步 |
| **心跳检测** | 主备心跳检测间隔 ≤ 5秒 |
| **数据库高可用** | 数据库采用主从复制或集群部署 |
| **录音存储** | 录音存储采用RAID或分布式存储防止数据丢失 |
### 5.3 安全需求
| 要求项 | 说明 |
|-------|------|
| **网络安全** | SIP通信支持TLS加密API支持HTTPS |
| **API认证** | API调用需Token认证支持IP白名单 |
| **权限控制** | 支持角色权限管理(管理员、班长、坐席) |
| **录音安全** | 录音文件访问需权限验证 |
| **操作审计** | 关键操作记录审计日志 |
### 5.4 兼容性需求
| 要求项 | 说明 |
|-------|------|
| **SIP话机** | 兼容主流SIP话机品牌Yealink、Grandstream、Fanvil等 |
| **SIP协议** | 符合RFC 3261标准 |
| **浏览器** | 软电话条支持Chrome 70+、Firefox 65+、Edge 79+ |
| **编解码** | 语音编解码支持G.711a、G.711u、G.729(可选) |
### 5.5 可扩展性需求
| 要求项 | 说明 |
|-------|------|
| **坐席扩展** | 架构支持水平扩展至300+坐席 |
| **业务线扩展** | 支持新增业务线/技能组,无需改动核心架构 |
| **线路扩展** | 支持新增SIP中继线路 |
---
## 第六章 系统架构设计建议
### 6.1 整体架构图
```
┌──────────────────┐
│ 运营商网络 │
│ (SIP Trunk/400) │
└────────┬─────────┘
┌────────▼─────────┐
│ SBC/边界网关 │
│ (可选,安全防护) │
└────────┬─────────┘
┌───────────────────────────┼───────────────────────────┐
│ │ │
│ ┌──────────────────────▼─────────────────────┐ │
│ │ FreeSWITCH │ │
│ │ (主备双机部署) │ │
│ │ ┌─────────┬─────────┬─────────┬─────────┐ │ │
│ │ │ IVR │ ACD │ 录音模块 │ 外呼引擎│ │ │
│ │ └─────────┴─────────┴─────────┴─────────┘ │ │
│ └───────────────────────┬────────────────────┘ │
│ │ │
│ ┌───────────────────────┼───────────────────────┐ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌──────────┐ ┌──────────────┐ ┌────────┐│
│ │ CTI中间件 │ │ API Gateway │ │ WS推送 ││
│ │(ESL连接) │ │ (REST API) │ │ 服务 ││
│ └────┬─────┘ └──────┬───────┘ └───┬────┘│
│ │ │ │ │
│ └────────────────────┼────────────────────┘ │
│ │ │
│ ┌────────────────┼────────────────┐ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌──────────┐ ┌──────────┐ ┌───────────┐ │
│ │ MySQL │ │ Redis │ │ 文件存储 │ │
│ │ (话单/配置)│ │ (缓存/状态)│ │ (录音) │ │
│ └──────────┘ └──────────┘ └───────────┘ │
│ │
│ 呼叫中心系统边界 │
└───────────────────────────┬──────────────────────────┘
┌───────────────────────┼───────────────────────┐
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌────────────┐
│ CRM系统 │ │ 业务系统 │ │ 阿里云语音 │
│(弹屏/工单) │ │(派单/订单)│ │(ASR/TTS) │
└──────────┘ └──────────┘ └────────────┘
```
### 6.2 核心组件说明
| 组件 | 技术选型 | 说明 |
|------|---------|------|
| **媒体服务器** | FreeSWITCH | 核心呼叫控制、媒体处理、IVR、录音 |
| **CTI中间件** | 自研基于ESL | 封装FreeSWITCH ESL接口提供业务逻辑 |
| **API网关** | Nginx/Kong/自研 | RESTful API统一入口 |
| **WebSocket服务** | Node.js/Golang | 实时事件推送 |
| **数据库** | MySQL 8.0 | 话单、配置、坐席信息存储 |
| **缓存** | Redis | 坐席状态、会话信息缓存 |
| **录音存储** | NAS/MinIO/对象存储 | 录音文件长期存储 |
| **ASR/TTS** | 阿里云智能语音 | 语音识别与合成 |
| **NLU** | 外部指定平台 | 意图识别与对话管理 |
### 6.3 部署架构(主备高可用)
```
┌─────────────────────────────────────┐
│ VIP虚拟IP
└──────────────────┬──────────────────┘
┌──────────────────────────┼──────────────────────────┐
│ │ │
▼ │ ▼
┌─────────────────┐ │ ┌─────────────────┐
│ FreeSWITCH │◄─────Keepalived心跳──────────────►│ FreeSWITCH │
│ (主机) │ │ │ (备机) │
│ CTI中间件 │ │ │ CTI中间件 │
│ API服务 │ │ │ API服务 │
└─────────────────┘ │ └─────────────────┘
│ │ │
└──────────────────────────┼──────────────────────────┘
┌────────────┴────────────┐
│ │
▼ ▼
┌──────────────┐ ┌───────────────┐
│ MySQL主从集群 │ │ Redis Sentinel│
└──────────────┘ └───────────────┘
┌───────────────┐
│ NAS/分布式存储 │
│ (录音文件) │
└───────────────┘
```
---
## 第七章 硬件与软件清单
### 7.1 硬件清单
| 序号 | 设备类型 | 规格配置 | 数量 | 用途 | 参考单价(万元) | 合计(万元) |
|-----|---------|---------|------|------|---------------|-------------|
| 1 | 应用服务器(主) | 32核CPU/64GB内存/500GB SSD+2TB HDD | 1 | FreeSWITCH+CTI+API | 5-8 | 5-8 |
| 2 | 应用服务器(备) | 32核CPU/64GB内存/500GB SSD+2TB HDD | 1 | FreeSWITCH备机 | 5-8 | 5-8 |
| 3 | 数据库服务器 | 16核CPU/64GB内存/1TB SSD | 2 | MySQL主从 | 4-6 | 8-12 |
| 4 | Redis服务器 | 8核CPU/32GB内存/500GB SSD | 3 | Redis Sentinel集群 | 2-3 | 6-9 |
| 5 | NAS存储 | 96TB可用空间RAID | 1 | 录音长期存储 | 8-15 | 8-15 |
| 6 | 网络交换机 | 千兆三层交换机 | 2 | 网络通信 | 1-2 | 2-4 |
| 7 | 防火墙 | 企业级防火墙 | 1 | 安全防护 | 2-5 | 2-5 |
| 8 | IP话机 | SIP话机如Yealink T46U | 150 | 坐席通话终端 | 0.05-0.08 | 7.5-12 |
| 9 | 坐席耳麦 | 专业话务耳麦 | 150 | 坐席配件 | 0.02-0.05 | 3-7.5 |
| **硬件合计** | | | | | | **47-80.5** |
### 7.2 软件清单
| 序号 | 软件/平台 | 说明 | 授权方式 | 预估费用(万元) |
|-----|---------|------|---------|----------------|
| 1 | FreeSWITCH | 开源软交换平台 | 开源免费 | 0 |
| 2 | Linux操作系统 | CentOS/Rocky Linux | 开源免费 | 0 |
| 3 | MySQL数据库 | 社区版 | 开源免费 | 0 |
| 4 | Redis | 缓存 | 开源免费 | 0 |
| 5 | Nginx | 反向代理/负载均衡 | 开源免费 | 0 |
| 6 | 阿里云ASR | 语音识别 | 按量付费 | 详见运营费用 |
| 7 | 阿里云TTS | 语音合成 | 按量付费 | 详见运营费用 |
| 8 | NLU对话平台 | 意图识别 | 按需对接 | 视平台定价 |
| 9 | 监控软件Zabbix/Prometheus | 系统监控 | 开源免费 | 0 |
| **软件合计** | | | | **0开源为主** |
### 7.3 开发成本估算
| 模块 | 预估人天 | 说明 |
|------|---------|------|
| FreeSWITCH环境搭建与配置 | 15 | 主备部署、线路对接、编解码配置 |
| IVR流程开发 | 20 | 多业务线IVR、语音导航 |
| ACD分配模块 | 25 | 多种分配策略、溢出逻辑 |
| CTI中间件开发 | 40 | ESL封装、业务逻辑 |
| 坐席状态管理 | 15 | 状态机、持久化 |
| API服务开发 | 30 | 全部API接口 |
| WebSocket推送服务 | 15 | 事件推送 |
| 软电话条组件 | 25 | 前端组件、WebRTC集成 |
| 预测式外呼引擎 | 30 | 外呼算法、任务管理 |
| 机器人外呼模块 | 20 | TTS集成、按键采集 |
| 呼入机器人模块 | 25 | ASR/NLU集成、对话流程 |
| 录音管理模块 | 10 | 录音存储、检索 |
| 班长监控模块 | 15 | 监听、强插、强拆 |
| 实时监控大屏 | 20 | 前端大屏、实时数据 |
| 高可用部署 | 15 | 主备切换、Keepalived |
| 联调测试 | 30 | 全流程测试 |
| **合计** | **350人天** | |
**按人天单价1500-2500元估算开发成本约52.5-87.5万元**
---
## 第八章 预算汇总
### 8.1 一次性投入
| 项目 | 费用(万元) |
|------|-------------|
| 硬件采购 | 47-80.5 |
| 软件(开源为主) | 0 |
| 开发成本 | 52.5-87.5 |
| 实施部署 | 5-10 |
| **一次性投入合计** | **104.5-178** |
### 8.2 年度运营费用
| 项目 | 月费用(万元) | 年费用(万元) | 备注 |
|------|--------------|---------------|------|
| **线路月租** | | | |
| 400号码3个 | 0.3-1.5 | 3.6-18 | 3条业务线独立号码 |
| SIP中继并发费120路 | 0.6-1.2 | 7.2-14.4 | 按50-100元/路/月 |
| **通信费** | | | |
| 呼入通话费 | 5-9 | 60-108 | 180万分钟/月×0.03-0.05元 |
| 呼出通话费 | 21.6-40.5 | 259-486 | 270万分钟/月×0.08-0.15元 |
| **云服务费** | | | |
| 阿里云ASR | 2-5 | 24-60 | 按使用量 |
| 阿里云TTS | 1-3 | 12-36 | 按使用量 |
| **其他** | | | |
| 机房/带宽 | 1-2 | 12-24 | 如自有机房可降低 |
| 系统维护 | 1-2 | 12-24 | 人员/备件 |
| **年度运营合计** | | **390-770** | |
### 8.3 总预算汇总
| 项目 | 费用(万元) |
|------|-------------|
| **首年投入** | 494.5-948一次性+首年运营) |
| **后续每年** | 390-770运营费用 |
> ⚠️ **说明:**
> - 通信费用是大头约占年度成本的80%以上
> - 具体费用取决于运营商议价、实际话务量
> - 可通过接通率优化、IVR分流等降低通信成本
---
## 第九章 项目里程碑建议
按照3-4个月上线周期规划
| 阶段 | 周期 | 主要工作 | 交付物 |
|------|------|---------|--------|
| **一、需求确认与设计** | 第1-2周 | 需求评审、技术方案设计、架构设计 | 技术方案文档、接口设计文档 |
| **二、环境搭建** | 第3-4周 | 硬件采购到货、FreeSWITCH环境部署、线路对接 | 基础环境就绪 |
| **三、核心功能开发** | 第5-10周 | CTI中间件、API服务、坐席管理、呼入呼出基础功能 | 核心功能可用 |
| **四、高级功能开发** | 第11-14周 | 预测式外呼、机器人模块、IVR、监控大屏 | 全功能开发完成 |
| **五、集成联调** | 第15-16周 | CRM对接、全流程联调、高可用测试 | 联调通过 |
| **六、测试与优化** | 第17-18周 | 功能测试、性能测试、Bug修复 | 测试报告 |
| **七、试运行** | 第19-20周 | 小范围上线、问题收集、优化调整 | 试运行报告 |
| **八、正式上线** | 第21周 | 全面上线、监控保障 | 系统上线 |
```
第1月 第2月 第3月 第4月 第5月
|----|----|----|----|----|----|----|----|----|----|
[需求设计][环境搭建][====核心功能开发====][==高级功能==]
[集成联调][测试]
[试运行][上线]
```
---
## 第十章 风险与建议
### 10.1 项目风险
| 风险项 | 风险等级 | 影响 | 应对措施 |
|-------|---------|------|---------|
| FreeSWITCH技术门槛高 | 高 | 开发进度延迟 | 建议团队提前学习ESL开发或引入有经验顾问 |
| 线路对接周期不可控 | 中 | 影响联调测试 | 提前与运营商沟通,预留缓冲时间 |
| ASR识别效果不及预期 | 中 | 影响机器人体验 | 提前做语料测试,必要时做热词优化 |
| 高可用切换影响业务 | 高 | 道路救援中断 | 充分测试切换机制,演练故障场景 |
| 录音存储空间不足 | 低 | 录音丢失 | 监控存储空间,提前扩容 |
### 10.2 建议事项
1. **团队能力准备**建议团队提前熟悉FreeSWITCH、ESL、SIP协议相关知识
2. **分阶段上线**:可先上线基础呼入呼出功能,机器人功能迭代上线
3. **压力测试**上线前务必进行150坐席并发的压力测试
4. **灰度发布**:建议先在一条业务线(如家政)试运行,再推广到道路救援
5. **监控告警**:完善监控体系,特别是对道路救援线路的可用性监控
---
## 附录
### 附录A术语表
见第一章1.4节)
### 附录B接口详细设计
(需在技术设计阶段细化)
### 附录CIVR流程图
(需在需求确认阶段补充)
### 附录D机器人话术模板
(需在需求确认阶段补充)
---
**文档结束**