坐席话务台与客户端
坐席通过三种客户端之一接听电话。三者共享同一套 ACD 核心、坐席状态机和弹屏/话后处理流程——按部署形态选择即可。
| 客户端 | 是什么 | 适合场景 |
|---|---|---|
| CC Desk(网页版) | CC 插件自带的浏览器坐席工作台(/console/cc → Agent Desk) | 免安装部署,CRM 在浏览器里的工作流 |
| RustPhone Desk(PC 客户端) | 独立跨平台桌面客户端(restsend-call 项目)——完整话务台窗口 + 置顶 minibar | 高话务量呼叫中心、CRM 独立应用、耳麦坐席 |
| SIP 软终端 | 任意标准 SIP 端点(Linphone、硬件话机) | 简单场景;弹屏由 CRM 通过 SIP 头自行处理 |
1. CC Desk(网页工作台)
CC Desk 随呼叫中心插件发布。打开 控制台 → Contact Center → Agent Desk,选择认证模式登录:
- JWT(默认)——控制台会话签发短期 JWT;已登录控制台的坐席一键进入。
- Phone Token——通过
/cc/phone/config签发的话机风格令牌。 - SIP + Password——坐席的 SIP 分机凭证,适合直接管理分机的部署。
登录表单里的 SIP WebSocket 地址(PBX 上的 /ws)和 API 前缀(/api)可以指向任意集群节点或负载均衡。
1.1 坐席状态
签入后,话务台驱动标准坐席状态机(见坐席管理):空闲 → 振铃 → 通话 → 话后整理(ACW) → 空闲,侧面还有小休状态(离开/培训/午休/自定义)。话务台实时显示当前状态与持续时长。
1.2 配置面板
话务台配置面板提供坐席级偏好:
- CRM 弹屏 URL 模板——如
https://crm.example.com/customer/${customerId}?phone=${phone};振铃时话务台以新标签页打开该 URL,并替换调用者数据。 - 功能开关(自动应答、通知)、振铃音与设备选择。
- 快捷转接联系人列表,与技能组配置共享。
2. 弹屏(来电)
排队呼叫派单后,话务台在振铃时刻就弹出客户档案——不用等应答:
- ACD 在坐席 INVITE 上加盖
Call-Info与User-to-User(RFC 7433) 头,内容来自入队追踪——主叫号码、IVR 业务类型、会话 id,以及路由层附加的任意X-<key>用户数据。 - 这些头在重振与溢出后依然保留(动态拨号列表重拨时重新解析),呼叫在坐席间流转时弹屏不会断。
- 话务台匹配弹屏 URL 模板并打开——
phone、customerId、会话值自动替换。 - CRM 查询客户并展示档案;坐席带着上下文应答。
对于“监听接收“型的 CRM,同样的数据以 SIP 头形式出现在振铃腿上——每个 key 一条 X-<key>: value 头(聚合的 X-User-Data 形态已废止)。
3. 话后处理(ACW)
任意一方挂断后:
- 坐席自动进入整理状态;话务台显示倒计时(默认 120 秒,按坐席或技能组可配——见坐席管理 → 话后整理)。
- 备注弹窗走同一 UUI 通道,备注与通话记录保持关联。
- 坐席可提前完成(回到空闲)或等倒计时结束;ACW 期间不分配新通话。
- 被转接的通话默认跳过 CSAT 调查(技能组可 opt-in)——见 CSAT。
4. 通话中工具
- 保持/恢复,带等待音乐(生效
queue_hold_music)。 - 盲转到分机,或到类型化快捷联系人——联系人可指向坐席、技能组或 IVR,功能码自动拨打且在界面中隐藏。
- 咨询转——先呼叫目标,再完成转接或切换通话方;未应答的咨询转以 409 干净失败,不会悬挂两条腿。
- 会议——把咨询并成三方(会议工厂 URI 可按部署配置)。
- DTMF 键盘、静音、外呼线路选择器(坐席级外呼策略决定可用线路/Trunk/外显号码——见坐席管理)。
5. RustPhone 桌面客户端(PC)
对于“CRM 放浏览器、电话要独立常驻“的团队,restsend-call 项目提供 RustPhone——Rust 编写的 Windows/macOS 桌面客户端:
- 两种形态:完整话务台窗口(联系人、转接、通话历史、诊断)+ 置顶 minibar——70px 高的横条钉在屏幕最上方,CRM 全屏时坐席也不丢失状态按钮。
- SSO / OTC 登录——原生客户端通过一次性码交换认证,无需内嵌凭证;登录窗绑定
--app进程,回调后即关闭。 - 弹屏到任意浏览器——RustPhone 与浏览器解耦:在默认浏览器中打开弹屏 URL,避免了内嵌 iframe 式 CRM 集成的性能天花板。
- 带原因的 ACW 与分类型小休计时,直接写入坐席统计表。
- 通话中控制——保持/恢复、咨询与快捷转接(类型化技能组/IVR 联系人)、合并气泡、DTMF、本地录音指示。
- 诊断面板——网络、逐目标 STUN/TURN 探测、声卡设备、当前通话媒体段(ICE pair、RTP 计数、编解码);报告上传到
CTI /cc/agents/{id}/logs,支持人员可直接查看。 - 运维友好——bootstrap 文件下发
sipWsUrl/apiPrefix/iceserverUrl,媒体策略跟随坐席配置的 ICE 服务器;自动更新时段(默认 12:10–13:20,支持跨零点)让终端机群无需用户操作即可保持最新。
客户端指向 PBX 的 bootstrap URL 即可发现其余配置;坐席用 SSO 账号或坐席 ID 登录,客户端一步完成 SIP 注册 + CC 签入。
6. 弹屏方案怎么选?
| 需求 | 推荐 |
|---|---|
| CRM 是 Web 应用 | CC Desk 或 RustPhone——都以替换后的值打开弹屏 URL |
| CRM 需要在振铃时刻接收数据 | 皆可——在振铃腿上消费 Call-Info / X-<key> 头 |
| 坐席全天全屏使用 CRM | RustPhone minibar |
| 禁止安装软件 | CC Desk |