注意
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>
CallResponse 描述如下:
参数 | 类型 | 必填 | 备注 | |
response | sessionId | String | 是 | 指定会话 ID |
? | calleeLocation | String | 否 | 被叫号码归属地址 |
? | calleePhoneNumber | String | 是 | 被叫号码 |
? | callerPhoneNumber | String | 是 | 外呼时使用的主叫号码 |
? | serverType | String | 是 | |
? | 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 | 否 | 转接到指定座席 |
呼叫保持
tccc.Call.hold(): 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 | 否 | 需要发送的分机号 |
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: 小休 arrange: 话后整理 notReady: 示忙 stopNotReady: 停止示忙 |
? | restReason | String | 否 | 小休原因 |
获取座席状态
tccc.Agent.getStatus():AgentStatus?
Devices(设备相关接口函数)
检测当前浏览器是否支持
tccc.Devices.isBrowserSupported(): boolean
说明
TCCC Web SDK 支持 Chrome 56、Edge80以上的浏览器。
返回麦克风设备列表
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
Events(事件)
事件监听
tccc.on(event, callback)
取消事件监听
tccc.off(event, callback)
SDK 初始化完成
tccc.events.ready
当 SDK 初始化完成时触发,此时可安全调用API
会话呼入
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 |
? |
会话超时转接事件
tccc.events.autoTransfer
callback 参数 | 类型 | 必填 | 备注 | |
options | sessionId | String | 是 | 指定会话 ID |
? |
会话结束事件
tccc.events.sessionEnded
callback 参数 | 类型 | 必填 | 备注 | |
options | sessionId | String | 是 | 指定会话 ID |
? | closeBy | String | 是 | 表示挂断方: client:用户挂断 seat:座席挂断 admin:系统挂断 timer:定时器挂断 |
? | mainReason | String | 否 | 仅在电话类型,并且挂断方为"admin"时存在,表示挂断原因 |
? | subReason | String | 否 | 仅在电话类型,并且挂断方为"admin"时存在,表示挂断的详细原因 |
外呼成功事件
tccc.events.callOuted
callback 参数 | 类型 | 必填 | 备注 | |
options | sessionId | String | 是 | 指定会话 ID |
? |
外呼对方接听事件
tccc.events.calloutAccepted
callback 参数 | 类型 | 必填 | 备注 | |
options | sessionId | String | 是 | 指定会话 ID |
? |
会话转接事件
tccc.events.transfer
callback 参数 | 类型 | 必填 | 备注 | |
options | sessionId | String | 是 | 指定会话 ID |
? |
座席状态变更事件
tccc.events.statusChanged
callback 参数 | 类型 | 必填 | 备注 | ? | |
options | status | 否 | 详细说明请参见 座席状态 | ? |
语音识别事件
tccc.events.asr
callback 参数 | 类型 | 必填 | 备注 | ? | |
options | sessionId | String | 是 | 指定会话 ID | ? |
? | result | ASR识别结果 | 是 | ? | |
? | flow | 'IN' | 'OUT' | 是 | 识别方向 IN: 用户侧 OUT: 座席侧 | ? |
?