Web

最近更新时间:2025-06-30 21:49:02

我的收藏
注意:
TCCC 是加载 SDK 后的全局变量,可直接访问。

通用结构

AgentStatus

座席状态。
字段
描述
free
空闲
busy
忙碌
arrange
话后整理
notReady
示忙
rest
小休

ServerType

端服务类型,描述电话类型会话时使用的端类型。
字段
描述
staffSeat
Web 座席类型
staffPhoneSeat
座席手机类型
miniProgramSeat
小程序类型
staffExtensionSeat
话机类型

CommonSDKResponse

参数
类型
必填
备注
options
status
'success' |'error'
SDK API 调用结果,成功时返回 success,失败返回 error
errorMsg
string
错误信息,当 status 为 error 时返回

Call(电话客服和音频客服相关接口函数)

电话呼出

tccc.Call.startOutboundCall(options): Promise<CallResponse>

参数
类型
必填
备注
options
phoneNumber
String
被叫号码
phoneDesc
String
号码备注,在通话条中会替代号码显示
uui
String
用户自定义数据,传入后可通过 电话 CDR 事件 推送返回
skillGroupId
String
指定技能组内绑定的外呼号码
callerPhoneNumber
String
指定外呼号码
servingNumberGroupIds
String[]
指定号码 ID 列表
phoneEncodeType
'number'
目前仅支持 'number',在开启 号码映射 时强制使用真实号码
CallResponse 描述如下:
参数
类型
必填
备注
response
sessionId
String
指定会话 ID
calleeLocation
String
被叫号码归属地址
calleePhoneNumber
String
被叫号码
callerPhoneNumber
String
外呼时使用的主叫号码
serverType
String
表示外呼时使用的端类型,可选值有:staffSeat,staffPhoneSeat,staffExtensionSeat。详细说明参见 会话服务类型
remark
String
被叫号码备注

接待会话

tccc.Call.accept(options): Promise<CommonSDKResponse>

参数
类型
必填
备注
options
sessionId
String
指定会话 ID,从 tccc.events.callIn 事件中获取

挂断会话

tccc.Call.hungUp(options): Promise<CommonSDKResponse>

参数
类型
必填
备注
options
sessionId
String
指定会话 ID

删除会话

tccc.Call.deleteCall(options)

参数
类型
必填
备注
options
sessionId
String
指定会话 ID

静音

tccc.Call.muteMic(options): Promise<CommonSDKResponse>

参数
类型
必填
备注
options
sessionId
String
指定会话 ID

取消静音

tccc.Call.unmuteMic(options): Promise<CommonSDKResponse>

参数
类型
必填
备注
options
sessionId
String
指定会话 ID

当前是否静音

tccc.Call.isMicMuted(options): Promise<CommonSDKResponse>

参数
类型
必填
备注
options
sessionId
String
指定会话 ID

发起内部通话

tccc.Call.startInternalCall(): Promise<CommonSDKResponse>

参数
类型
必填
备注
options
calleeUserId
String
被叫座席账号
useMobile
Boolean
是否呼叫对方手机

转接会话

tccc.Call.transfer(): Promise<CommonSDKResponse>

参数
类型
必填
备注
options
sessionId
String
指定会话 ID
skillGroupId
String
转接到指定技能组
userId
String
转接到指定座席
phone
String
转接到指定号码

呼叫保持

tccc.Call.hold(): Promise<CommonSDKResponse>

参数
类型
必填
备注
options
sessionId
String
指定会话 ID

通话监听

tccc.Call.monitor(options): Promise<CommonSDKResponse>

发起通话监听,默认是语音监听,只能同时发起一个。当指定 textOnly: true 时,可同时发起多个文字监听,该参数需开启 实时语音转文字 功能
注意该 API 需管理员或质检员角色才能调用。
参数
类型
必填
备注
options
sessionId
String
被监听的会话 ID,可从 会话信息列表 中获取
textOnly
Boolean
默认为 false,表示发起语音监听,指定为 true 表示发起文字监听

强拆

tccc.Call.intercept(options): Promise<CommonSDKResponse>

发起通话强拆,被强拆的会话必须处于被监听状态。
参数
类型
必填
备注
options
sessionId
String
被强拆的会话ID


取消通话保持

tccc.Call.unHold(): Promise<CommonSDKResponse>

参数
类型
必填
备注
options
sessionId
String
指定会话 ID

发送分机号

tccc.Call.sendDigits(): Promise<CommonSDKResponse>

参数
类型
必填
备注
options
sessionId
String
指定会话 ID
dtmfText
String
需要发送的分机号

开启ASR(语音识别功能)

tccc.Call.startASR(options): Promise<CommonSDKResponse>

使用该方法需要购买语音识别套餐包
参数
类型
必填
备注
options
sessionId
String
指定会话 ID

关闭ASR(语音识别功能)

tccc.Call.stopASR(): Promise<CommonSDKResponse>

参数
类型
必填
备注
options
sessionId
String
指定会话 ID

Chat(在线客服相关接口函数)

接听会话

tccc.Chat.accept(options): Promise<CommonSDKResponse>

参数
类型
必填
备注
options
sessionId
String
指定会话 ID

结束会话

tccc.Chat.end(options): Promise<CommonSDKResponse>

参数
类型
必填
备注
options
sessionId
String
指定会话 ID

转接会话

tccc.Chat.transfer(): Promise<CommonSDKResponse>

参数
类型
必填
备注
options
sessionId
String
指定会话 ID
skillGroupId
String
转接到指定技能组
userId
String
转接到指定座席



Video(视频客服相关接口函数)

接听会话

tccc.Video.accept(options): Promise<CommonSDKResponse>

参数
类型
必填
备注
options
sessionId
String
指定会话 ID

挂断会话

tccc.Video.end(options): Promise<CommonSDKResponse>

参数
类型
必填
备注
options
sessionId
String
指定会话 ID

静音

tccc.Video.muteMic(options): Promise<CommonSDKResponse>

参数
类型
必填
备注
options
sessionId
String
指定会话 ID

取消静音

tccc.Video.unmuteMic(options): Promise<CommonSDKResponse>

参数
类型
必填
备注
options
sessionId
String
指定会话 ID

关闭摄像头

tccc.Video.muteVideo(options): Promise<CommonSDKResponse>

参数
类型
必填
备注
options
sessionId
String
指定会话 ID

开启摄像头

tccc.Video.unmuteVideo(options): Promise<CommonSDKResponse>

参数
类型
必填
备注
options
sessionId
String
指定会话 ID

转接会话

tccc.Video.transfer(): Promise<CommonSDKResponse>

参数
类型
必填
备注
options
sessionId
String
指定会话 ID
skillGroupId
String
转接到指定技能组
userId
String
转接到指定座席

Agent(座席状态相关接口函数)

更多座席状态枚举类型请参见 座席状态

上线

tccc.Agent.online(): void

下线

tccc.Agent.offline(): void

设置座席状态

tccc.Agent.setStatus(optoins): Promise<CommonSDKResponse>

参数
类型
必填
备注
options
status
String
座席状态,可选值:
free:空闲
rest:小休
notReady:示忙
stopNotReady:停止示忙
restReason
String
小休原因

获取座席状态

tccc.Agent.getStatus():AgentStatus

Devices(设备相关接口函数)

检测当前浏览器是否支持

tccc.Devices.isBrowserSupported(): boolean

说明:
TCCC Web SDK 支持 Chrome 56、Edge 80以上的浏览器。

返回麦克风设备列表

tccc.Devices.getMicrophones(): Promise<MediaDeviceInfo []>

返回扬声器设备列表

tccc.Devices.getSpeakers(): Promise<MediaDeviceInfo []>

UI(座席界面相关接口函数)

隐藏 SDK 所有 UI

tccc.UI.hide(): void

显示 SDK 所有 UI

tccc.UI.show(): void

显示浮动按钮

tccc.UI.showfloatButton(): void

隐藏浮动按钮

tccc.UI.hidefloatButton(): void

显示工作台

tccc.UI.showWorkbench(): void

隐藏工作台

tccc.UI.hideWorkbench(): void

显示通话条

tccc.UI.showNotificationBar(): void

隐藏通话条

tccc.UI.hideNotificationBar(): void

修改SDK本地设置

支持关闭SDK铃声和系统通知

tccc.UI.updateUserCustomSettings(settings): void

settings内参数都是可选项,支持增量更新。
参数
类型
必填
备注
settings
disableRingtone
Boolean
true 表示禁用 SDK 的铃声,包括来电铃声、接听铃声
disableNotification
Boolean
true 表示禁用 SDK 的系统通知

Events(事件)

事件监听

tccc.on(event, callback)

取消事件监听

tccc.off(event, callback)

SDK 初始化完成

tccc.events.ready

当 SDK 初始化完成时触发,此时可安全调用 API。
callback 参数
类型
必填
备注
options
tabUUID
String
表示当前页面的唯一 ID,刷新后会变,用于多 Tab 集成 SDK

会话呼入

tccc.events.callIn

会话呼入类型包括:
phone:电话会话
im:在线会话
voip:音频会话
video:视频会话
internal:内线会话

电话会话呼入

callback 参数
类型
必填
备注
options
sessionId
String
会话 ID
type
'phone'
电话会话类型
timeout
Number
会话接入超时时长,0代表不超时
calleePhoneNumber
String
被叫号码
callerPhoneNumber
String
主叫号码
callerLocation
String
主叫号码归属地
remark
String
备注
ivrPath
{key: String, label: String}[]
-
用户的 IVR 按键路径,key 表示对应按键,label 表示对应的按键标签
protectedCallee
String
在开启号码映射时存在,表示被叫
protectedCaller
String
在开启号码映射时存在,表示主叫
serverType
'staffSeat' | 'staffPhoneSeat' | 'staffExtensionSeat'
表示呼入到座席哪一端,staffSeat 为默认值,表示 Web 座席;StaffPhoneSeat 表示呼入到座席手机,MiniProgramSeat 表示小程序座席,staffExtensionSeat 表示呼入到座席绑定的话机

在线会话呼入

callback 参数
类型
必填
备注
options
sessionId
String
会话 ID
type
'phone'
电话会话类型
timeout
Number
会话接入超时时长,0代表不超时
nickname
String
用户昵称
avatar
String
用户头像
remark
String
备注
peerSource
String
渠道来源
channelName
String
自定义参数
clientData
String
用户自定义参数

音频会话呼入

callback 参数
类型
必填
备注
options
sessionId
String
会话 ID
type
'voip'
音频会话类型
timeout
Number
会话接入超时时长,0代表不超时
callee
String
渠道入口
calleeRemark
String
渠道入口备注
userId
String
用户的 openId
nickname
String
用户授权后可获得微信昵称
avatar
String
用户授权后可获得微信头像
remark
String
备注
peerSource
String
主叫号码归属地
ivrPath
{key: String, label: String}[]
用户的 IVR 按键路径,key 表示对应按键,label 表示对应的按键标签
clientData
String
用户自定义参数

视频会话呼入

callback 参数
类型
必填
备注
options
sessionId
String
会话 ID
type
'video'
视频会话类型
timeout
String
会话接入超时时长,0代表不超时
userId
String
用户的 openId
nickname
String
用户授权后可获得微信昵称
avatar
String
用户授权后可获得微信头像
remark
String
备注

内部会话呼入

callback 参数
类型
必填
备注
options
sessionId
String
会话 ID
type
'internal'
内部会话类型
timeout
Number
会话接入超时时长,0代表不超时
peerUserId
String
主叫座席的账号

座席接入会话

tccc.events.userAccessed

callback 参数
类型
必填
备注
options
sessionId
String
指定会话 ID
tabUUID
String
开启多 Tab 集成时存在,表示哪个 Tab 接听的会话

会话超时转接事件

tccc.events.autoTransfer

callback 参数
类型
必填
备注
options
sessionId
String
指定会话 ID

会话结束事件

tccc.events.sessionEnded

callback 参数
类型
必填
备注
options
sessionId
String
指定会话 ID
closeBy
String
表示挂断方:
user:用户挂断
seat:座席挂断
admin:系统挂断
timer:定时器挂断
mainReason
String
仅在电话类型,并且挂断方为"admin"时存在,表示挂断原因
subReason
String
仅在电话类型,并且挂断方为"admin"时存在,表示挂断的详细原因

外呼成功事件

tccc.events.callOuted

callback 参数
类型
必填
备注
options
sessionId
String
指定会话 ID
callerPhoneNumber
String
外呼使用的主叫号码
calleePhoneNumber
String
被叫号码
serverType
'staffSeat' | 'staffPhoneSeat' | 'staffExtensionSeat' |
'MiniProgramSeat'
表示座席外呼类型:
staffSeat 为默认值,表示 Web 座席
StaffPhoneSeat 表示使用手机外呼
MiniProgramSeat 表示使用小程序外
staffExtensionSeat 表示使用话机外呼
tabUUID
String
开启多Tab集成时存在,表示哪个 Tab 发起的外呼

外呼对方接听事件

tccc.events.calloutAccepted

callback 参数
类型
必填
备注
options
sessionId
String
指定会话 ID

会话转接事件

tccc.events.transfer

callback 参数
类型
必填
备注
options
sessionId
String
指定会话 ID

座席状态变更事件

tccc.events.statusChanged

callback 参数
类型
必填
备注

options
status
详细说明请参见 座席状态


座席被踢下线事件

tccc.events.kickedOut

座席多端登录时触发。

语音识别事件

tccc.events.asr

callback 参数
类型
必填
备注

options
sessionId
String
指定会话 ID

result
ASR 识别结果
语音识别结果,结构体请参见 文档

flow
'IN' | 'OUT'
识别方向。
IN:用户侧
OUT:座席侧



初始化参数

TCC Web SDK允许在初始化时,新增dataset参数用于开启功能特性
使用方法如下:
function injectTcccWebSDK(SdkURL) {
if (window.tccc) {
console.warn('已经初始化SDK了,请确认是否重复执行初始化');
return;
}
return new Promise((resolve, reject) => {
const script = document.createElement('script');
script.setAttribute('crossorigin', 'anonymous');
script.src = SdkURL;
/*
* 增加dataset参数,表示开启/关闭功能特性
*/
script.dataset.xxx = 'true'
document.body.appendChild(script);
})
}
相关 dataset 如下表:
dataset 参数
备注
enableShared
表示启用 多 Tab 功能
disableNotification
关闭浏览器通知。
disableRingtone
关闭 SDK 所有铃声。
disableCDR
关闭 SDK 工作台服务记录展示。
disableUI
不初始化 SDK 所有 UI,包括工作台和通话条。
disablePreloadMic
登录后不启动麦克风,并且每次通话完成后释放麦克风。

多 Tab 集成 SDK

默认情况下,TCCC Web SDK 只允许在一个地方登录,多处登录会触发 kickedOut 事件。开启多 Tab 功能后,任意一个页面发起的通话,都会在其他页面显示,开发者可根据业务逻辑自行隐藏 UI,或者监听对应事件处理。

限制条件

1. 同一个浏览器的多个窗口,注意不能开启无痕模式。
2. SDK 集成在业务系统处于同一个域名下。
3. 不支持移动端浏览器。

集成步骤

1. 初始化 SDK,参考 Web
2. 增加 enableShared 参数,表示启用多 Tab 功能。
function injectTcccWebSDK(SdkURL) {
if (window.tccc) {
console.warn('已经初始化SDK了,请确认是否重复执行初始化');
return;
}
return new Promise((resolve, reject) => {
const script = document.createElement('script');
script.setAttribute('crossorigin', 'anonymous');
script.src = SdkURL;
/*
* 增加enableShared,表示启用多Tab功能
*/
script.dataset.enableShared = 'true'
document.body.appendChild(script);
script.addEventListener('load', () => {
window.tccc.on(window.tccc.events.ready, ({ tabUUID }) => {
resolve('初始化成功,当前tabUUID为' + tabUUID)
});
window.tccc.on(window.tccc.events.tokenExpired, ({message}) => {
console.error('初始化失败', message)
reject(message)
})
})
})
}
3. 处理多 Tab 逻辑。
触发 callOuted (外呼成功)和 userAccessed (座席接听成功)事件时,会增加 tabUUID 字段,表示哪个页面发起的外呼/接听。
let curTabUUID = '';

window.tccc.on(window.tccc.events.ready, ({ tabUUID }) => {
console.log('初始化成功,当前tabUUID为' + tabUUID)
curTabUUID = tabUUID;
});

window.tccc.on(window.tccc.events.callOuted, ({ sessionId, tabUUID }) => {
if (tabUUID && tabUUID !== curTabUUID) {
// 接收到其他页面的外呼成功事件,业务可自行处理
}
})

window.tccc.on(window.tccc.events.userAccessed, ({ sessionId, tabUUID }) => {
if (tabUUID && tabUUID !== curTabUUID) {
// 接收到其他页面的接听成功事件,业务可自行处理
// 此处为示例代码,会忽略该事件
return;
}
})