移动端实时通信(RTC)支持
快速阅读
如果您时间有限,建议先看这 5 部分:
- 二、产品总览:移动端 RTC 是什么,解决什么问题。
- 三、核心概念:RTC SDK、AccessToken、AgentToken、userId、座席工号、RTC 客户端分别代表什么。
- 四、主流程与状态链路:移动端从鉴权、初始化、外呼、接听邀请到挂断的完整链路。
- 六、产品功能说明:平台支持、鉴权方式、通话能力、事件监听、监控和异常处理。
- 附录 A~F:平台能力速查、关键字段口径、实施检查清单、常见问题、异常排查和术语表。
阅读地图
| 角色 | 建议重点阅读 |
|---|---|
| 客户 / 业务负责人 | 一、文档说明;二、产品总览;七、典型业务场景;十一、总结 |
| 运营 / 实施 | 四、主流程与状态链路;五、能力地图;六、产品功能说明;八、上线准备与运营建议;附录 C/D |
| 技术 / 对接 | 三、核心概念;四、主流程与状态链路;六、产品功能说明;九、与周边能力的关系;附录 A/B/E/F |
一、文档说明
1.1 文档目的
本文档用于统一说明呼叫中心 移动端实时通信(RTC)支持 的产品定位、支持平台、接入方式、鉴权机制、通话能力、事件回调、监控与排障方法,帮助客户、业务、实施和技术团队理解:
- 移动端 RTC 能解决哪些移动作业和移动外呼场景。
- Android、iOS、微信小程序、H5/小程序跳转各自适合什么场景。
- AccessToken 与 AgentToken 的区别是什么。
- 移动端 RTC 与座席账号、座席工号、工作台、记录、录音、报表之间如何关联。
- 上线前需要准备哪些权限、网络、鉴权、并发和异常排查能力。
1.2 文档范围
- 覆盖:Android SDK、iOS SDK、微信小程序 RTC 外呼、移动端 RTC JS SDK、RTC 鉴权、初始化、外呼、回呼邀请、挂断、DTMF、扬声器、静音、AccessToken 刷新、事件监听、并发监控、客户端销毁、错误码排查。
- 不覆盖:完整 SDK 代码接入教程、客户 App 架构改造方案、移动端 UI 设计稿、底层音视频协议实现、线路供应商侧能力、完整报表字段口径。
1.3 适用对象与使用建议
| 对象 | 建议用法 |
|---|---|
| 客户 / 业务负责人 | 判断移动端 RTC 是否适合移动客服、移动外呼、企微小程序外呼等场景。 |
| 实施 / 运营 | 按权限、网络、鉴权、并发、日志和通话验收清单推进上线。 |
| 技术 / 对接 | 理解 SDK 接入边界、鉴权口径、事件回调、错误码和监控排查链路。 |
内容基于现有 RTC SDK 与接口文档整理,对外表述已做产品化处理;具体 SDK 版本、方法名、参数、错误码和平台差异以实际 SDK 文档为准。
二、产品总览
2.1 移动端 RTC 是什么
移动端 RTC 是呼叫中心面向移动 App、移动 H5、微信小程序、企业微信等场景提供的实时语音通信能力。客户可在自有 App、小程序或移动业务入口中集成 RTC 能力,让用户或座席通过移动设备完成外呼、接听回呼邀请、通话控制和通话状态感知。
人话总结:
移动端 RTC 让手机、App、小程序也能像软电话一样接入呼叫中心,不必完全依赖固定话机或 PC 工作台。
2.2 主要解决什么问题
移动端 RTC 主要解决以下问题:
- 移动办公、外勤、远程座席无法使用固定话机或 PC 工作台。
- 客户希望在自有 App 或小程序中直接发起外呼,不跳转传统坐席工作台。
- 企业微信、微信小程序场景需要快速唤起通话能力。
- 移动端通话需要感知呼叫发起、接听、失败、挂断、网络变化等事件。
- 运营和技术需要查看 RTC 登录并发、通话并发和异常状态,便于排障。
2.3 支持平台
结合现有能力,移动端 RTC 支持以下接入形态:
| 接入形态 | 说明 | 适用场景 |
|---|---|---|
| Android SDK | 原生 Android App 集成 RTC 能力。 | 自有安卓 App、移动客服、移动外呼 |
| iOS SDK | 原生 iOS App 集成 RTC 能力。 | 自有 iOS App、移动客服、移动外呼 |
| 微信小程序 / 企微小程序跳转 | 从微信、企业微信小程序或企微 H5 跳转到 CTI-Cloud 小程序进行外呼。 | 企微作业、轻量外呼、无需深度 App 集成 |
| 移动端 JS SDK | 移动 H5 或小程序场景使用的 RTC JS 能力。 | H5 集成、小程序内嵌能力 |
| Web RTC SDK | PC 浏览器侧 RTC 能力,可作为移动端方案的对照能力。 | PC 软电话、浏览器工作台 |
说明:不同平台的 SDK 能力、版本节奏、事件细节和使用限制可能存在差异,涉及生产上线时必须按目标平台分别完成验证。
2.4 核心价值
| 价值 | 说明 |
|---|---|
| 支撑移动作业 | 座席不依赖固定工位,可通过移动设备完成通话服务。 |
| 降低接入门槛 | 小程序跳转方式适合轻量接入,原生 SDK 适合深度集成。 |
| 保持呼叫中心闭环 | 移动端通话仍可与座席、外呼、记录、录音、报表等能力关联。 |
| 提升排障能力 | 通过事件、错误码、登录并发、通话并发和客户端销毁能力定位问题。 |
| 支持多终端协同 | 与 PC 工作台、分机、软电话等共同组成多终端接入体系。 |
三、核心概念
3.1 RTC SDK
RTC SDK 是移动端或浏览器端接入实时语音通信能力的软件组件。客户 App 或页面集成后,可以完成初始化、鉴权、外呼、接听邀请、挂断、静音、扬声器切换、事件监听等动作。
3.2 RTC 客户端
RTC 客户端是 SDK 初始化后形成的运行实例。它负责维持当前用户与 RTC 服务之间的连接,并承载通话动作和事件回调。
实施时需要注意:
- 调用通话能力前必须先完成客户端初始化。
- 频繁使用 RTC 的 App,可考虑在应用生命周期内复用客户端。
- 不频繁使用 RTC 的 App,可按需初始化,用完后销毁。
- 客户端销毁后,需重新初始化才能再次发起或接听通话。
3.3 AccessToken
AccessToken 是 RTC SDK 使用的临时访问凭证。它通常由客户服务端生成,并与 userId 绑定,用于 SDK 初始化和后续访问。
关键口径:
userId必须保持唯一,同一用户应保持一致。- AccessToken 有有效期限制。
- 有效期过短会导致初始化或通话中刷新失败,建议预留足够有效时间。
- 部分平台支持 AccessToken 即将过期事件,客户侧应在过期前刷新。
3.4 AgentToken
AgentToken 是与座席相关联的鉴权方式,常用于小程序跳转外呼场景。
与 AccessToken 的主要区别:
| 鉴权方式 | 是否关联座席 | 典型特点 |
|---|---|---|
| AccessToken | 不强制关联座席 | 使用 userId 初始化,适合 Android、iOS、Web、移动 H5 等 SDK 接入。 |
| AgentToken | 关联座席工号 | 常用于小程序跳转外呼,会检查企业 RTC 权限、座席在线状态,并可在座席离线时主动上线。 |
两种方式不能混用,应按接入场景选择一种。
3.5 userId
userId 是 RTC SDK 识别用户的标识。它不等同于座席工号,但可以与座席、员工账号或客户侧用户体系建立映射关系。
使用建议:
- 同一用户在同一业务体系中保持稳定。
- 不要频繁变更,避免登录并发、通话归属和排障困难。
- 与 AccessToken 生成逻辑保持一致。
3.6 座席工号
座席工号用于识别呼叫中心内参与通话服务的座席身份。在 AgentToken、小程序跳转、座席上线、记录和报表统计中,座席工号仍是重要业务标识。
3.7 rtcEndpoint
rtcEndpoint 是 RTC 服务的访问地址。移动端 SDK 初始化时需要使用该地址连接对应 RTC 服务。
产品口径上可理解为:移动端 RTC 能力连接呼叫平台的服务入口。
3.8 通话事件
通话事件用于让客户 App 或页面感知通话过程,例如呼叫发起、响铃、通话中、失败、挂断、网络变化、AccessToken 即将过期等。
常见事件包括:
| 事件类型 | 说明 |
|---|---|
| 呼叫发起 | 外呼或会话邀请开始。 |
| 被叫接听 / 通话中 | 对端接听后进入通话。 |
| 呼叫失败 | 外呼未成功建立,需结合错误码排查。 |
| 挂断 | 本端、对端或系统侧结束通话。 |
| 网络变化 | 网络在线、离线或连接异常。 |
| Token 过期 | AccessToken 即将过期或已经过期。 |
3.9 RTC 并发
RTC 并发可分为登录并发和通话并发:
| 类型 | 说明 |
|---|---|
| 登录并发 | 当前已初始化并登录 RTC 的用户数量。 |
| 通话并发 | 当前正在进行中的 RTC 呼入或外呼通话数量。 |
并发能力与企业资源、授权和现场使用规模有关,实施前应确认并发容量和监控方式。
四、主流程与状态链路
4.1 原生 App RTC 外呼流程
客户 App 打开 RTC 能力
↓
客户服务端生成 AccessToken
↓
App 使用 userId、企业标识、rtcEndpoint、AccessToken 初始化 RTC 客户端
↓
设置事件监听
↓
发起外呼
↓
SDK 上报呼叫发起、响铃、接通、失败、挂断等事件
↓
通话结束后形成记录、录音和统计数据4.2 原生 App 接听回呼邀请流程
App 初始化 RTC 客户端
↓
监听远端会话邀请
↓
收到回呼邀请
↓
用户接受或拒绝邀请
↓
接受后进入通话
↓
通话结束后释放会话4.3 小程序跳转外呼流程
客户小程序 / 企微 H5 页面
↓
获取 AgentToken 或 AccessToken
↓
携带企业、座席或用户、被叫号码、外显等参数
↓
跳转至 CTI-Cloud 小程序外呼页
↓
小程序完成鉴权和通话发起
↓
通话结束后形成记录和后续统计说明:
- 使用 AgentToken 时,一般需要传入座席工号。
- 使用 AccessToken 时,一般按
userId识别用户。 - 小程序场景不建议通话中长时间切后台或锁屏,可能影响通话稳定性。
4.4 AccessToken 生命周期
客户服务端生成 AccessToken
↓
SDK 初始化使用 AccessToken
↓
AccessToken 即将过期
↓
SDK 触发即将过期事件
↓
客户服务端生成新 AccessToken
↓
App 调用刷新能力更新 AccessToken
↓
继续保持 RTC 能力可用若 AccessToken 过期后未刷新,SDK 可能不可继续使用,需要重新初始化或按平台能力恢复。
4.5 异常排查主链路
确认平台和 SDK 版本
↓
确认企业 RTC 能力和并发资源
↓
确认 AccessToken / AgentToken 是否有效
↓
确认 userId / 座席工号是否正确
↓
确认麦克风、蓝牙、网络、后台权限
↓
确认事件回调和错误码
↓
查询 RTC 登录并发、通话并发或销毁异常客户端五、能力地图
5.1 平台接入能力
| 能力 | 说明 |
|---|---|
| Android SDK | 支持 Android App 集成 RTC 通话能力。 |
| iOS SDK | 支持 iOS App 集成 RTC 通话能力。 |
| 微信小程序跳转 | 支持小程序或企微 H5 跳转至 CTI-Cloud 小程序外呼。 |
| 移动端 JS SDK | 支持移动 H5 或小程序场景的 RTC 能力。 |
| Web RTC SDK | 支持浏览器端 RTC,可与移动端方案共同对比和联调。 |
5.2 鉴权与初始化能力
| 能力 | 说明 |
|---|---|
| AccessToken 鉴权 | 面向 SDK 接入,通常由客户服务端生成。 |
| AgentToken 鉴权 | 面向座席相关小程序跳转外呼场景。 |
| RTC 客户端初始化 | 创建 SDK 客户端,建立服务连接。 |
| AccessToken 刷新 | Token 即将过期时更新凭证。 |
| 客户端销毁 | 释放当前用户 RTC 客户端资源。 |
5.3 通话控制能力
| 能力 | 说明 |
|---|---|
| 外呼 | 移动端发起到客户号码的呼叫。 |
| 接受会话邀请 | 接收并接听回呼或远端邀请。 |
| 拒绝会话邀请 | 用户拒绝接听邀请。 |
| 挂断 | 本端结束当前通话。 |
| DTMF 按键 | 通话中发送按键信息。 |
| 扬声器控制 | 通话中打开或关闭扬声器。 |
| 静音控制 | 通话中开启或关闭本地音频采集。 |
5.4 事件与状态能力
| 能力 | 说明 |
|---|---|
| 呼叫事件 | 发起、响铃、接通、失败、挂断等过程事件。 |
| Token 事件 | AccessToken 即将过期或已过期事件。 |
| 网络事件 | 网络在线、离线、连接异常等状态变化。 |
| 远端登录事件 | 同一用户在其它端登录导致连接变化。 |
| 错误码 | 标识鉴权、网络、并发、配置、号码、风控等异常。 |
5.5 监控与治理能力
| 能力 | 说明 |
|---|---|
| RTC 通话并发监控 | 查看企业当前 RTC 外呼并发和呼入并发。 |
| RTC 登录并发查询 | 查看当前已登录 RTC 的用户列表和凭证有效期。 |
| RTC 客户端销毁 | 对指定用户的 RTC 客户端进行销毁,处理异常占用。 |
| 错误日志上报 | 部分 SDK 版本支持上报错误或外呼失败日志。 |
| 本地日志辅助 | Android、iOS 可结合本地日志辅助定位崩溃、网络和音频问题。 |
六、产品功能说明
6.1 平台支持
移动端 RTC 当前主要支持 Android、iOS、微信小程序和移动端 JS 场景。
| 平台 | 支持口径 | 主要前置条件 |
|---|---|---|
| Android | 支持 Android 原生 SDK。 | Android 版本满足要求,具备网络、麦克风、蓝牙等权限。 |
| iOS | 支持 iOS 原生 SDK。 | iOS 版本满足要求,具备麦克风权限,按需开启后台音频能力。 |
| 微信小程序 / 企微 | 支持跳转 CTI-Cloud 小程序外呼。 | 完成小程序关联、鉴权和跳转参数准备。 |
| 移动 H5 / JS | 支持移动端 JS SDK 场景。 | 使用稳定 SDK 版本,完成 HTTPS、权限和兼容性验证。 |
风险提示:
- Web 端版本与移动端版本能力存在差异,切换版本或跨端复用前必须验证。
- 移动端通话受系统权限、后台限制、网络切换、蓝牙设备和系统版本影响更明显。
- 小程序通话中切后台或锁屏可能导致无声、断线或其它异常,不建议作为常规使用方式。
6.2 鉴权方式
移动端 RTC 主要存在两类鉴权方式:AccessToken 和 AgentToken。
| 鉴权方式 | 适用场景 | 特点 |
|---|---|---|
| AccessToken | Android、iOS、Web、移动 H5、小程序 AccessToken 模式 | 与 userId 绑定,由客户服务端生成,不强制关联座席工号。 |
| AgentToken | 小程序座席外呼场景 | 与座席相关联,通常传入座席工号,可检查座席在线和企业 RTC 权限。 |
默认建议:
- 原生 App 深度集成优先使用 AccessToken。
- 企微或小程序轻量外呼可根据场景选择 AgentToken 或 AccessToken。
- 若需要与座席状态、座席上线强关联,应优先评估 AgentToken 模式。
- 若客户已有统一用户体系,且不希望强绑定座席工号,可评估 AccessToken 模式。
6.3 初始化与客户端管理
RTC 通话前需要初始化客户端。初始化通常需要:
| 信息 | 说明 |
|---|---|
| RTC 服务地址 | 移动端连接 RTC 服务的入口。 |
| 企业标识 | 当前企业或呼叫中心的业务归属。 |
| userId | RTC 用户标识。 |
| AccessToken | 当前用户的临时访问凭证。 |
| 调试或日志配置 | 用于接入调试和问题排查。 |
| 主叫号码 / 回呼号码 | 部分场景用于回呼或主叫识别。 |
使用建议:
- 高频使用场景:应用初始化后创建客户端,并在应用生命周期内复用。
- 低频使用场景:进入外呼页面时按需初始化,通话结束后按需销毁。
- 切换账号、用户退出、异常占用时,应主动销毁或重建客户端。
6.4 外呼能力
移动端 RTC 支持通过 SDK 或小程序发起外呼。外呼前建议确认:
- 企业 RTC 能力已开通。
- AccessToken 或 AgentToken 有效。
- userId 或座席工号正确。
- 被叫号码格式正确。
- 外显号码、外显区号或号码组符合业务配置。
- 企业或座席具备外呼权限。
- RTC 登录并发和通话并发未超限。
外呼结果应通过事件、错误码、记录和报表共同确认,不建议只依赖前端按钮状态判断。
6.5 回呼邀请与接听能力
移动端 RTC 支持收到远端会话邀请后接受或拒绝。该能力可用于回呼到 SDK、客服场景或移动端接听类场景。
需要关注:
- App 是否保持 RTC 客户端在线。
- 系统是否允许后台保活或音频播放。
- 用户是否授权麦克风。
- 网络切换、锁屏、切后台是否影响接听。
- 未接、拒接、取消、失败事件是否能被业务页面正确处理。
6.6 通话中控制能力
移动端 RTC 通话中可支持以下操作:
| 操作 | 说明 |
|---|---|
| 挂断 | 本端结束当前通话。 |
| 发送 DTMF | 通话中向对端或 IVR 发送按键信息。 |
| 扬声器开关 | 在听筒、耳机、扬声器等输出方式间切换。 |
| 静音 / 取消静音 | 控制本地音频采集。 |
| 获取 SDK 版本 | 用于排查不同版本能力差异。 |
风险提示:
- 部分操作只在通话中或响铃中有效。
- 不同平台的音频路由、蓝牙设备和后台策略存在差异。
- DTMF 是否生效还取决于通话场景和对端业务流程。
6.7 事件监听
事件监听是移动端 RTC 与业务页面协同的关键能力。
建议至少处理:
| 事件 | 业务处理建议 |
|---|---|
| 呼叫发起 | 页面进入呼叫中状态,防止重复点击。 |
| 响铃 / 通话中 | 更新通话状态和操作按钮。 |
| 呼叫失败 | 展示失败原因,引导重试或排查。 |
| 本端挂断 / 对端挂断 | 结束页面通话状态,等待记录生成。 |
| Token 即将过期 | 向客户服务端申请新 Token 并刷新。 |
| Token 已过期 | 提示重新登录或重新初始化。 |
| 网络异常 | 提示网络不稳定,并记录排障信息。 |
| 远端登录 / 同用户多端 | 提示当前 RTC 连接可能被其它端占用。 |
6.8 监控和并发治理
移动端 RTC 支持从企业维度查看 RTC 呼入、外呼并发,以及查询当前 RTC 登录并发列表。
典型用途:
- 判断当前企业 RTC 呼叫是否接近并发上限。
- 排查某个
userId是否已登录或凭证是否仍有效。 - 处理异常占用、重复登录、客户端未释放等问题。
- 对移动端上线后的使用规模进行容量评估。
治理建议:
- 上线前确认 RTC 登录并发和呼叫并发授权。
- 对移动端用户退出、切换账号、异常关闭 App 的场景设计客户端释放策略。
- 遇到重复登录或异常占用时,可结合登录并发查询和客户端销毁能力处理。
6.9 错误码与日志
RTC 错误通常可分为以下几类:
| 类型 | 常见原因 |
|---|---|
| SDK 初始化类 | 未初始化、正在初始化、RTC 地址格式错误、企业标识或 userId 格式错误。 |
| 鉴权类 | AccessToken 过期、有效期过短、版本错误、与 userId 不匹配。 |
| 通话参数类 | 呼叫参数错误、重复呼叫、不支持的呼叫场景。 |
| 音频权限类 | 无麦克风权限、本地音频采集失败。 |
| 网络连接类 | 网络异常、SDK 断线、服务连接异常。 |
| 企业和权限类 | 企业状态异常、无外呼权限、并发超限。 |
| 号码和风控类 | 外呼号码格式错误、无可用外显、黑名单、频次、时间限制。 |
排查时建议同时收集:
- 平台类型和 SDK 版本。
- 企业标识、userId 或座席工号。
- 发生问题的时间点。
- 被叫号码或请求唯一标识。
- 错误码、错误描述、事件顺序。
- App 日志、SDK 日志、截图或录屏。
七、典型业务场景
7.1 自有 App 移动外呼
客户在自有 App 中集成 Android 或 iOS SDK,业务人员在 App 内点击客户号码发起外呼。
推荐流程:
App 登录客户业务系统
↓
客户服务端生成 AccessToken
↓
App 初始化 RTC 客户端
↓
用户点击客户号码
↓
SDK 发起外呼
↓
通话结束后回到业务页面验收重点:
- SDK 初始化成功。
- 麦克风、网络、蓝牙等权限正常。
- 外呼成功并产生记录。
- 失败时能展示可理解的错误提示。
7.2 企微 H5 跳转小程序外呼
客户在企业微信 H5 页面中处理客户资料,通过跳转 CTI-Cloud 小程序发起外呼。
适用特点:
- 接入轻量,不需要在客户 App 中完整集成原生 SDK。
- 适合企微作业、销售跟进、移动回访等场景。
- 需要准备跳转参数、鉴权方式和小程序关联。
7.3 微信小程序内移动外呼
客户小程序跳转到 CTI-Cloud 小程序进行外呼,适合微信生态内的轻量触达场景。
注意事项:
- 通话中不建议切后台或锁屏。
- 被叫号码、自定义参数、外显信息需要按规范编码传递。
- AgentToken 和 AccessToken 模式应二选一。
7.4 移动端回呼到 SDK
企业通过呼叫平台向移动端 SDK 发送会话邀请,移动端用户接受邀请后进入通话。
适用场景:
- 移动客服接听。
- App 内回呼。
- 不希望暴露真实手机号的移动沟通场景。
7.5 移动端异常占用处理
用户切换账号、App 异常退出、网络中断或同一用户多端登录后,可能出现 RTC 客户端占用或通话状态异常。
处理建议:
- 查询 RTC 登录并发,确认用户是否仍在线。
- 必要时销毁指定用户 RTC 客户端。
- 引导用户重新初始化或重新进入通话页面。
- 结合错误码和事件顺序判断是否为网络、Token 或多端登录问题。
八、上线准备与运营建议
8.1 上线前准备
| 准备项 | 说明 |
|---|---|
| 平台选择 | 明确使用 Android、iOS、小程序跳转、移动 JS 还是多端组合。 |
| 企业能力 | 确认企业已开通 RTC 能力和对应并发资源。 |
| 鉴权方案 | 确认使用 AccessToken 还是 AgentToken。 |
| 用户标识 | 明确 userId、员工账号、座席工号之间的映射关系。 |
| SDK 版本 | 确认生产环境使用稳定版本,不使用测试版本。 |
| 权限准备 | 准备麦克风、蓝牙、网络、后台音频等必要权限。 |
| 网络环境 | 验证 Wi-Fi、4G/5G、弱网、切网场景。 |
| 事件处理 | 业务页面处理呼叫、失败、挂断、Token 过期、网络异常等事件。 |
| 监控排障 | 准备 RTC 并发查询、客户端销毁、日志收集和错误码排查流程。 |
8.2 上线验收建议
建议至少验证以下内容:
- SDK 或小程序跳转初始化成功。
- AccessToken 或 AgentToken 鉴权成功。
- 外呼正常发起、响铃、接通和挂断。
- 回呼邀请可接听和拒绝。
- DTMF、扬声器、静音等通话中操作符合预期。
- Token 即将过期时可刷新,过期后有明确提示。
- 网络断开、弱网、切网有可理解的异常提示。
- 记录、录音和报表能关联到正确业务对象。
- RTC 登录并发和通话并发可查询。
- 异常客户端可按流程释放或重新初始化。
8.3 运营建议
- 移动端上线初期建议开启更完整的日志采集和问题反馈渠道。
- 对外呼失败率、并发超限、Token 过期、网络异常进行定期复盘。
- 对小程序场景明确提示“通话中不要切后台或锁屏”。
- 对 App 用户培训麦克风、蓝牙、耳机、系统权限等常见问题处理方式。
- 大规模上线前应按目标机型、系统版本、网络环境做兼容性测试。
九、与周边能力的关系
9.1 与座席管理的关系
座席管理负责座席工号、员工账号、权限、队列、外呼组和数据范围;移动端 RTC 负责移动设备上的实时通话能力。
若移动端 RTC 与座席强关联,需要确认:
- 座席工号存在且启用。
- 座席具备外呼或接听权限。
- 座席与 userId 或 AgentToken 模式映射正确。
- 记录和报表能按座席归属沉淀。
9.2 与登录座席工作台的关系
PC 工作台登录和移动端 RTC 登录是两类入口。移动端 RTC 不等同于完整工作台。
移动端 RTC 主要解决移动语音接入;客户资料、工单、弹屏、坐席状态管理等能力是否在移动端呈现,取决于客户 App 或小程序自身业务设计。
9.3 与发起外呼通话的关系
移动端 RTC 是外呼发起的一种设备和接入形态。外呼能否成功,还要满足企业外呼能力、外显、线路、风控、号码格式、并发和权限等条件。
9.4 与通话记录、录音和报表的关系
移动端 RTC 通话结束后,应进入呼叫中心通话记录、录音和报表链路。
实施时需要确认:
- 通话是否带有请求唯一标识或业务扩展字段。
- 通话是否能关联到正确座席、用户或业务对象。
- 录音是否生成,是否能试听或下载。
- 报表是否按预期归属到座席、任务、外呼组或租户。
9.5 与监控和排障的关系
RTC 监控用于查看企业当前 RTC 呼入、外呼并发,以及当前登录用户情况。它不是完整通话质量分析系统,但能支撑并发、登录、占用、Token 和客户端异常排查。
十、常见问题
10.1 移动端 RTC 和软电话是什么关系?
移动端 RTC 可以理解为移动端的实时语音通信能力,解决手机、App、小程序场景下的软电话接入问题。PC 浏览器软电话更多用于工作台场景,移动端 RTC 更偏 App、小程序和移动 H5 场景。
10.2 AccessToken 和 AgentToken 应该选哪个?
原生 App 或客户自有 H5 深度集成通常选择 AccessToken;小程序跳转且需要与座席强关联时,可评估 AgentToken。两种方式不要混用。
10.3 为什么初始化失败?
常见原因包括:
- RTC 服务地址不正确。
- 企业标识或 userId 格式错误。
- AccessToken 过期、有效期过短或与 userId 不匹配。
- 网络异常。
- 企业未开通 RTC 能力或并发不足。
10.4 为什么能初始化,但外呼失败?
常见原因包括:
- 无外呼权限。
- 外呼号码格式错误。
- 未获取到可用外显号码。
- 命中黑名单、频次或时间限制。
- 呼叫并发超限。
- 当前用户已经处于通话中。
10.5 为什么通话中突然断线?
常见原因包括:
- 网络切换或弱网。
- App 被系统后台限制。
- 同一 userId 在其它端登录。
- AccessToken 过期未刷新。
- SDK 客户端被销毁或异常退出。
10.6 小程序通话能否切后台或锁屏?
不建议。小程序通话中切后台或锁屏可能出现无声、通话中断、下次进入异常等问题。上线前应在客户实际使用场景中充分验证。
10.7 遇到问题需要提供哪些信息?
建议提供:
- 平台类型:Android、iOS、小程序、H5。
- 系统版本、App 版本、SDK 版本。
- 企业标识、userId 或座席工号。
- 问题发生时间点。
- 被叫号码或请求唯一标识。
- 错误码、错误描述、截图或录屏。
- 网络类型和是否切后台、锁屏、切换网络。
十一、总结
移动端实时通信(RTC)支持让呼叫中心从固定工位和 PC 工作台扩展到手机、App、小程序和移动 H5 场景。它适合移动客服、移动外呼、企微作业、微信小程序外呼和 App 内回呼等业务。
建设移动端 RTC 时,建议始终围绕以下原则:
- 先确认接入平台和业务场景。
- 再选择 AccessToken 或 AgentToken 鉴权方式。
- 明确 userId、座席工号、员工账号之间的映射关系。
- 完成麦克风、网络、后台、蓝牙和系统版本兼容性测试。
- 必须处理呼叫、挂断、失败、网络、Token 过期等事件。
- 上线后通过并发监控、错误码和日志形成排障闭环。
只有把 SDK 接入、座席权限、外呼能力、事件处理、并发监控和异常排查一起验收,移动端 RTC 才能稳定支撑真实业务。
附录 A:平台能力速查
| 平台 / 形态 | 主要能力 | 关键注意事项 |
|---|---|---|
| Android SDK | 初始化、外呼、接听邀请、挂断、DTMF、扬声器、静音、Token 刷新、日志。 | 需关注麦克风、蓝牙、网络、前台服务、系统版本。 |
| iOS SDK | 初始化、外呼、接听邀请、挂断、DTMF、扬声器、静音、Token 刷新、事件回调。 | 需关注麦克风权限、后台音频、系统后台策略。 |
| 微信小程序跳转 | 通过微信或企微场景跳转 CTI-Cloud 小程序外呼。 | 需处理跳转参数、鉴权方式、小程序关联和切后台限制。 |
| 移动 JS SDK | 移动 H5 或小程序内嵌 RTC 能力。 | 需使用稳定版本并验证目标容器兼容性。 |
| Web RTC SDK | 浏览器端 RTC 能力。 | 需 HTTPS、浏览器兼容性和麦克风权限。 |
附录 B:关键字段口径
| 字段 / 对象 | 业务含义 | 使用注意 |
|---|---|---|
| userId | RTC 用户标识 | 必须唯一,同一用户保持一致。 |
| cno / 座席工号 | 呼叫中心座席身份 | AgentToken 模式通常需要传入。 |
| enterpriseId | 企业或呼叫中心标识 | 用于确定 RTC 能力归属。 |
| rtcEndpoint | RTC 服务入口 | SDK 初始化时使用。 |
| AccessToken | RTC 临时访问凭证 | 与 userId 绑定,有有效期,需要过期前刷新。 |
| AgentToken | 座席相关临时凭证 | 适合小程序座席外呼类场景。 |
| called_number | 被叫号码 | 外呼目标号码,应按规则编码和校验。 |
| clid | 外显号码 | 是否可用取决于企业外显配置。 |
| requestUniqueId | 请求唯一标识 | 用于关联外部业务、记录和排障。 |
| userField | 自定义业务参数 | 用于传递客户侧扩展信息,需按规范编码。 |
附录 C:实施检查清单
C.1 上线前检查
| 检查项 | 是否完成 |
|---|---|
| 已确认接入平台:Android、iOS、小程序、H5 或组合方案。 | |
| 企业 RTC 能力和并发资源已确认。 | |
| AccessToken 或 AgentToken 鉴权方案已确认。 | |
| userId、座席工号、员工账号映射关系已确认。 | |
| SDK 版本和生产使用版本已确认。 | |
| 麦克风、蓝牙、网络、后台音频等权限已确认。 | |
| 外呼号码、外显、风控、并发规则已验证。 | |
| 事件监听和错误提示已接入业务页面。 | |
| 日志、错误码、并发查询和客户端销毁流程已准备。 |
C.2 上线后验证
| 验证项 | 预期结果 |
|---|---|
| 初始化 | SDK 或小程序跳转能成功完成鉴权和初始化。 |
| 外呼 | 可正常发起、响铃、接通、挂断。 |
| 接听邀请 | 可正常接收、接受、拒绝远端邀请。 |
| 权限 | 无麦克风权限等场景有明确提示。 |
| Token | 即将过期时可刷新,过期时有明确处理。 |
| 网络 | 弱网、断网、切网有可识别异常。 |
| 记录 | 通话结束后可查询记录和录音。 |
| 报表 | 通话数据可进入对应统计口径。 |
| 监控 | 可查询 RTC 登录并发和通话并发。 |
| 释放 | 用户退出或异常后可释放客户端资源。 |
附录 D:常见问题速查
| 现象 | 可能原因 | 建议处理 |
|---|---|---|
| SDK 初始化失败 | Token 过期、userId 不匹配、RTC 地址错误、网络异常 | 检查鉴权、服务地址、网络和错误码。 |
| 外呼失败 | 无权限、号码错误、外显不可用、并发超限、风控拦截 | 检查外呼权限、号码、外显、并发和风控规则。 |
| 通话无声 | 麦克风权限、蓝牙设备、音频路由、切后台或系统限制 | 检查权限、耳机、扬声器、后台策略和设备日志。 |
| 通话中断 | 网络切换、Token 过期、多端登录、客户端销毁 | 检查网络、Token 刷新、登录并发和事件顺序。 |
| 小程序外呼异常 | 跳转参数错误、Token 模式混用、小程序未关联 | 检查跳转参数、鉴权方式和企微 / 微信配置。 |
| 同一用户重复占用 | App 异常退出、客户端未销毁、多端登录 | 查询 RTC 登录并发,必要时销毁指定客户端。 |
| 记录关联不上 | requestUniqueId 缺失、座席或 userId 映射错误 | 检查业务标识、座席工号和通话记录。 |
附录 E:异常排查信息采集
排查移动端 RTC 问题时,建议收集以下信息:
| 信息 | 说明 |
|---|---|
| 平台类型 | Android、iOS、小程序、H5、Web。 |
| 系统版本 | Android / iOS / 微信 / 企业微信版本。 |
| SDK 版本 | 用于判断能力差异和已知问题。 |
| 企业标识 | 确认 RTC 能力和并发归属。 |
| userId / 座席工号 | 确认登录、鉴权和业务归属。 |
| 问题时间 | 精确到分钟,便于查日志。 |
| 被叫号码 | 用于核对外呼链路和记录。 |
| requestUniqueId | 用于关联客户业务和通话记录。 |
| 错误码 / 错误描述 | 用于定位失败阶段。 |
| 网络状态 | Wi-Fi、4G/5G、切网、弱网、VPN 等。 |
| 操作过程 | 是否切后台、锁屏、蓝牙切换、重复点击。 |
| 截图 / 录屏 / 本地日志 | 辅助复现和定位。 |
附录 F:术语表
| 术语 | 说明 |
|---|---|
| RTC | 实时通信能力,本文主要指移动端实时语音通信。 |
| RTC SDK | 客户 App 或页面集成的实时通信组件。 |
| RTC 客户端 | SDK 初始化后的运行实例。 |
| AccessToken | 与 userId 绑定的 RTC 临时访问凭证。 |
| AgentToken | 与座席相关联的小程序外呼鉴权凭证。 |
| userId | RTC 用户标识。 |
| 座席工号 | 呼叫中心内识别座席身份的业务编号。 |
| rtcEndpoint | RTC 服务访问入口。 |
| DTMF | 通话中发送的按键信息。 |
| 登录并发 | 当前已登录 RTC 的用户数量。 |
| 通话并发 | 当前正在进行中的 RTC 通话数量。 |
| 客户端销毁 | 释放指定用户 RTC 客户端资源。 |