腾讯云呼叫中心外呼小程序 SDK
本文主要介绍如何快速地将腾讯云呼叫中心 TCCC CALL SDK(小程序) 集成到您的项目中,只要按照如下步骤进行配置,就可以完成 SDK 的集成工作。可在自有小程序中实现呼叫通话功能。
环境要求
- 请使用企业小程序账号申请相关权限进行开发,因为小程序测试号不具备
<live-pusher>
和<live-player>
的使用权限。 - 需要在真机上进行运行体验,因为微信开发者工具不支持原生组件
<live-pusher>
和<live-player>
。 - 请使用原生小程序开发环境,不支持 uniapp 等开发框架。
- 微信 App iOS 最低版本要求:7.0.9
- 微信 App Android 最低版本要求:7.0.8
- 小程序基础库最低版本要求:2.10.0
前提条件
-
已完成注册微信小程序账号
-
已完成安装微信开发者工具
-
已完成安装Nodejs
-
确保小程序符合微信要求,并开通音视频权限。
- 仅支持企业类小程序
- 仅支持指定类目的小程序,具体见微信小程序 live-push 文档
- 在微信公众平台>开发>开发管理>接口设置 中开启实时播放音视频流、实时录制音视频流 两个权限。
配置服务器域名
- 登录微信公众平台
- 选择开发>开发管理>开发设置>服务器域名,根据下表配置
合法域名类型 | 域名 |
---|---|
request合法域名 | https://api.tccc.qcloud.com |
https://web.sdk.qcloud.com | |
socket合法域名 | wss://api.tccc.qcloud.com |
引入 SDK
- 使用 npm 下载
npm install tccc-agent-call-wx
!
- 安装完之后,需要在微信开发者工具中对 npm 进行构建:工具 - 构建 npm。
- 导入 TCCC CALL SDK 组件
{
"usingComponents": {
"tccc-agent-call-wx": "tccc-agent-call-wx"
}
}
- 在wxml中使用TCCC CALL SDK 组件
<tccc-agent-call-wx id="sdk" bind:accepted="onAccepted" bind:progress="onProgress" bind:ended="onEnded"/>
API 概览
登录相关 API
呼叫通话相关
音频相关接口
事件回调
API 参数 & 示例
登录状态相关
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
sdkAppId | String | 是 | 腾讯云呼叫中心应用SdkAppId |
userId | String | 是 | 坐席账号 |
token | String | 否 | Token 方式登录外呼SDK,[获取Token文档](https://cloud.tencent.com/document/product/679/49227) |
登录&退出示例
try {
// 登录
await this.selectComponent('#sdk').login({
sdkAppId: Test_SdkAppId,
userId: Test_SeatUserId,
token: token,
});
// 登录成功
} catch (error:any) {
// 登录失败
}
// 退出登录
await this.selectComponent('#sdk').logout();
// 判断是否已登录,true表示已登录,false表示未登录
const isOk = await this.selectComponent('#sdk').isLogin();
呼叫通话相关
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
calleePhone | String | 是 | 需要呼叫的电话号码 |
calleeRemark | String | 否 | 该电话的备注文案,可替代号码显示 |
uui | String | 否 | 自定义参数,传入后将通过 [CDR事件推送](https://cloud.tencent.com/document/product/679/67257) 返回 |
skillGroupId | String | 否 | 指定技能组内绑定的外呼号码 |
callerPhoneNumber | String | 否 | 指定外呼号码 |
servingNumberGroupIds | string[] | 否 | 指定号码 ID 列表 |
phoneEncodeType | 'number' | 否 | 目前仅支持'number',在开启 号码映射 时强制使用真实号码 |
发起外呼&结束通话示例
try {
// 发起呼叫
await this.selectComponent('#sdk').call({
calleePhone: this.data.calleePhone,
});
// 外呼成功
} catch (error:any) {
// 外呼失败
}
// 发送分机号
await this.selectComponent('#sdk').sendDigits(this.data._DTMFValue);
// 挂断
await this.selectComponent('#sdk').terminate();
音频相关接口示例
// 静音
this.selectComponent('#sdk').muteMic();
// 取消静音
this.selectComponent('#sdk').unMuteMic();
// 切换为耳麦模式,其中speaker表示扬声器,值ear表示耳麦。默认值为扬声器,只对手机有效
this.selectComponent('#sdk').setSoundMode('ear');
回调推送示例
<tccc-agent-call-wx id="sdk" bind:accepted="onAccepted" bind:progress="onProgress" bind:ended="onEnded"/>
onProgress() {
// 外呼过程中
},
onAccepted() {
// 对端接听
},
onEnded(e:{ detail: { closeBy: string;mainReason?: string }; }) {
const {closeBy,mainReason} = e.detail;
this._addCallBackLog(`onEnded ${closeBy}, mainReason:${mainReason}`);
if (closeBy === 'admin') {
wx.showToast({
icon: 'none', // 自选合适的图标
title: '系统原因挂断'
})
} else if(closeBy === 'seat') {
wx.showToast({
icon: 'none', // 自选合适的图标
title: '通话结束,对方已挂断'
})
} else {
// 挂断成功
}
},