差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
cs:500cloudcccintegration:05workbench [2020/02/14 02:43] candywang [初始化SDK] |
cs:500cloudcccintegration:05workbench [2021/08/20 09:36] (当前版本) candywang [获取历史通话] |
||
---|---|---|---|
行 47: | 行 47: | ||
password: "psd", //密码 | password: "psd", //密码 | ||
origin: "//kefu.easemob.com", //域名 默认为"//kefu.easemob.com" | origin: "//kefu.easemob.com", //域名 默认为"//kefu.easemob.com" | ||
- | defaultVisible: true // 默认是否展示工具条,参数类型:Boolean,默认为true | + | defaultVisible: true, // 默认是否展示工具条,参数类型:Boolean,默认为true |
+ | phoneProtection: false //隐藏客户号码中间4位,座机号隐藏后4位,以*代替, 默认为false | ||
+ | afterCallRule: 20, // 默认话后处理时间 | ||
+ | loginText: '环信电话签入', //签入按钮文案,可自定义 | ||
+ | monitor: false, //是否使用监听功能,默认不使用 | ||
}) | }) | ||
</code> | </code> | ||
行 60: | 行 64: | ||
<code>HxCccSdk.logIn()</code> | <code>HxCccSdk.logIn()</code> | ||
签入(处于签出状态可调用),调用该方法实现上线操作 | 签入(处于签出状态可调用),调用该方法实现上线操作 | ||
+ | |||
+ | ⚠️注:签入之前需要先加入呼叫技能组。 | ||
3.签出 | 3.签出 | ||
行 88: | 行 94: | ||
<code>HxCccSdk.ready()</code> | <code>HxCccSdk.ready()</code> | ||
置空闲,通过该方法可将坐席置为空闲状态,空闲状态可接听、拨打电话。 | 置空闲,通过该方法可将坐席置为空闲状态,空闲状态可接听、拨打电话。 | ||
+ | |||
+ | 10.监听 | ||
+ | <code>hx.onMonitor(monitordn)</code> | ||
+ | 监听功能,monitordn为被监听者的分机号 | ||
+ | |||
+ | 11.结束监听 | ||
+ | <code>hx.stopMonitor()</code> | ||
+ | 结束监听功能,恢复空闲 | ||
+ | |||
+ | 12.二次拨号 | ||
+ | <code>hx.sendDtmf(number)</code> | ||
+ | 外呼通话,需要按键时使用。number可为0~9,*或# | ||
===== 监听当前工具条状态===== | ===== 监听当前工具条状态===== | ||
<code> | <code> | ||
window.addEventListener("message", function(msg){ | window.addEventListener("message", function(msg){ | ||
- | if(msg.data.easemob){ | + | if(msg.data.easemob){ |
- | var message = msg.data.easemob.kefu; | + | var message = msg.data.easemob.kefu; |
- | for(var key in message){ | + | for(var key in message){ |
- | var type = key.toUpperCase(); | + | var type = key.toUpperCase(); |
- | var value = message[key]; | + | var value = message[key]; |
- | switch (type) { | + | switch (type) { |
- | case "ONSTATUSCHANGE": //任何状态改变都会触发该函数,用户可在该函数内监听当前状态值的变化过程,状态code的含义请参考本文档状态对照表。 | + | case "ONINIT": |
- | var code = value.code; | + | console.log("工具条初始化") |
- | console.log("当前状态:"+code) | + | break; |
+ | case "ONLOGIN": | ||
+ | console.log("签入") | ||
break; | break; | ||
- | case "ONERRORNOTIFY": //当有一些错误信息的时候触发,可以获取error信息 | + | case "ONREDAY": |
- | var error = value.error; | + | console.log("空闲") |
- | var errorMsgTip = error.errorMsgTip; | + | |
- | console.log(error.errorCode +"--"+errorMsgTip); | + | |
break; | break; | ||
- | case "ONCALLCOMING": //来电时触发,用户可以在该函数内获取参数信息, caller: 主叫号码, callee:被叫号码 | + | case "ONBREAK": |
- | var calee = value.calee; | + | console.log("小休") |
+ | break; | ||
+ | case "ONLOGOUT": | ||
+ | console.log("签出") | ||
+ | break; | ||
+ | case "ONHANGUP": | ||
+ | console.log("挂机") | ||
+ | break; | ||
+ | case "SENDDTMF": | ||
+ | var number = value.number; | ||
+ | console.log("二次拨号", number) | ||
+ | break; | ||
+ | case "ONCALLCOMING": //来电时触发,用户可以在该函数内获取参数信息 | ||
+ | var calee = value.calee; //被叫 | ||
+ | var caller = value.caller; //主叫 | ||
+ | var contactId = value.contactId; // 通话ID, | ||
+ | console.log(calee,caller) | ||
+ | break; | ||
+ | case "ONCALLDIALING": // 去电、拨号振铃时触发,用户可以在该函数内获取参数信息 | ||
+ | var calee = value.calee; //被叫 | ||
+ | var caller = value.caller;//主叫 | ||
+ | var contactId = value.contactId; // 通话ID, | ||
+ | break; | ||
+ | case "ONCALLESTABLISH": // 通话建立连接时触发 | ||
var caller = value.caller; | var caller = value.caller; | ||
- | console.log(calee,caller) | + | console.log(caller) |
- | break; | + | break; |
- | default: | + | case "ONCALLRELEASE": // 通话结束时触发, |
- | + | var caller = value.caller; | |
- | } | + | console.log(caller) |
- | } | + | break; |
- | } | + | case "ONSTATUSCHANGE": //任何状态改变都会触发该函数,用户可在该函数内监听当前状态值的变化过程,状态code的含义请参考本文档状态对照表。 |
+ | var code = value.code; | ||
+ | var lastCode = value.lastCode; | ||
+ | console.log("当前状态:"+code) | ||
+ | console.log("上一个状态:"+lastCode) | ||
+ | break; | ||
+ | case "ONERRORNOTIFY": //当有一些错误信息的时候触发,可以获取error信息 | ||
+ | var error = value.error; | ||
+ | var errorMsgTip = error.errorMsgTip; | ||
+ | console.log(error.errorCode +"--"+errorMsgTip); | ||
+ | break; | ||
+ | |||
+ | } | ||
+ | } | ||
+ | } | ||
} | } | ||
</code> | </code> | ||
行 129: | 行 184: | ||
|3|空闲|ready|可执行拨号、签出(即下线)等操作,注:只有该状态下可收到外部打过来的电话(即振铃)| | |3|空闲|ready|可执行拨号、签出(即下线)等操作,注:只有该状态下可收到外部打过来的电话(即振铃)| | ||
|4|小休|break|可执行结束小休、签出(即下线)、拨号(操作)| | |4|小休|break|可执行结束小休、签出(即下线)、拨号(操作)| | ||
- | |5|话后处理|other|可执行签出(即下线)、继续工作(即开始接听)、拨号等操作| | + | |5|话后处理|other|可执行签出(即下线)、继续工作(即开始接听)、再次拨打等操作| |
|6|振铃|callComing|只可执行接听操作| | |6|振铃|callComing|只可执行接听操作| | ||
|8|拨号|dialingCall|只可执行挂机操作| | |8|拨号|dialingCall|只可执行挂机操作| | ||
行 136: | 行 191: | ||
|11|内部通话|inCall|可执行挂机、保持(即通话保持)操作| | |11|内部通话|inCall|可执行挂机、保持(即通话保持)操作| | ||
|12|通话保持|inCall|只可执行通话取回(通话取回)操作| | |12|通话保持|inCall|只可执行通话取回(通话取回)操作| | ||
+ | |21|监听中|monitoring|只可执行结束监听操作| | ||
- | ===== 操作逻辑错误===== | + | ===== 操作逻辑错误 ===== |
以下参数格式为:errorCode:errorMsg/errorMsgTip | 以下参数格式为:errorCode:errorMsg/errorMsgTip | ||
行 145: | 行 201: | ||
{ | { | ||
// as返回的错误码 | // as返回的错误码 | ||
- | KEFU_003: '账号名/密码不正确', | + | KEFU_003: '账号名/密码不正确', |
- | KEFU_122: '您的账号已被禁用,请联系您的管理员', | + | KEFU_122: '您的账号已被禁用,请联系您的管理员', |
- | 101: '请使用chrome浏览器!', | + | 101: '请使用chrome浏览器!', |
- | 102: '请使用58版本以上chrome浏览器', | + | 102: '请使用58版本以上chrome浏览器', |
- | 103: '请切换为https协议!', | + | 103: '请切换为https协议!', |
- | 104: '您当前未属于任何技能组,请联系管理员为您添加', | + | 104: '您当前未属于任何技能组,请联系管理员为您添加', |
- | 105: '您所在的技能组没有外呼号码', | + | 105: '您所在的技能组没有外呼号码', |
- | 106: '您不在任何技能组中,请联系管理员进行添加', | + | 106: '您不在任何技能组中,请联系管理员进行添加', |
- | 107: '工具条已经初始化了,禁止再次调用', | + | 107: '工具条已经初始化了,禁止再次调用', |
- | 108: '请设置挂载元素', | + | 108: '请设置挂载元素', |
- | 109: '云呼资质待审核', | + | 109: '云呼资质待审核', |
- | 110: '查询租户呼叫中心信息失败', | + | 110: '查询租户呼叫中心信息失败', |
- | 111: '请输入正确的电话号码', | + | 111: '请输入正确的电话号码', |
- | 112: '当前坐席状态未处于空闲或小休中,请空闲或小休时再回呼', | + | 112: '当前坐席状态未处于空闲或小休中,请空闲或小休时再回呼', |
- | 114: '没有可外呼的号码,请确定技能组是否绑定了外呼号码!', | + | 114: '没有可外呼的号码,请确定技能组是否绑定了外呼号码!', |
- | 115: '只有呼叫中心客服和全渠道客服可以使用云呼叫中心', | + | 115: '只有呼叫中心客服和全渠道客服可以使用云呼叫中心', |
- | 116: '话费余额小于50元(含)不允许外呼,请充值', | + | 116: '话费余额小于50元(含)不允许外呼,请充值', |
- | + | 200: "注册中,请等待!" | |
+ | 201: "当前坐席已签出,请签入!" | ||
6001: '管理员不存在', | 6001: '管理员不存在', | ||
6002: '管理员未登录', | 6002: '管理员未登录', | ||
行 178: | 行 236: | ||
8001: '请检查声卡权限', // 提示设备异常的界面 | 8001: '请检查声卡权限', // 提示设备异常的界面 | ||
8002: '请检查声卡权限', // 提示设备异常的界面 | 8002: '请检查声卡权限', // 提示设备异常的界面 | ||
- | | + | |
`以下为迁出的event事件:` | `以下为迁出的event事件:` | ||
AB_normal: '软电话正常签出', | AB_normal: '软电话正常签出', | ||
行 189: | 行 247: | ||
WSConnectSlowly: '当前WebScoket连接缓慢,请等待或刷新后重新上线', | WSConnectSlowly: '当前WebScoket连接缓慢,请等待或刷新后重新上线', | ||
// 坐席没有配置技能组 | // 坐席没有配置技能组 | ||
- | systemErrorNotInAnySkillGroup: '您尚未被加入到技能组中,暂时无法使用,请联系呼叫中心管理员添加' | + | systemErrorNotInAnySkillGroup: '您尚未被加入到技能组中,暂时无法使用,请联系呼叫中心管理员添加', |
} | } | ||
</code> | </code> | ||
+ | ===== 后续工作 ===== | ||
+ | |||
+ | ==== 获取通话记录 ==== | ||
+ | |||
+ | 如果您要在您的自有业务系统查看历史通话,就需要将环信客服云的历史通话记录同步到您的自有业务系统。 | ||
+ | |||
+ | 同步方式: | ||
+ | - 调用api平台【获取历史通话列表】接口,详情请参考[[cs:400systemintegration:api-open-platform#获取历史通话列表|API开放平台]]。 | ||
+ | - 通过自定义事件推送,将通话详单及录音推送至您的服务器。具体请参考 [[cs:400systemintegration:20webhook|自定义事件推送]]-呼叫事件推送。 | ||
+ | |||
+ | 注:api开放平台和自定义事件推送为旗舰版标准功能,标准版和企业版增值功能。 | ||
+ | |||
+ | ===== 常见问题 ===== | ||
+ | - 自有业务系统集成软电话条后,同一个客服账号可以既在环信客服云登录,又在自有业务系统使用云呼吗? | ||
+ | 不可以。同一个账号只能同时登录一个系统,在自有业务系统已签入云呼的前提下,再登录环信客服云,自有业务系统客服账号会下线,云呼会签出。 | ||
+ | - 同一个浏览器,可以用一个账号登录环信客服云,用另一个环信客服账号登录自有业务系统,签入云呼吗? | ||
+ | 不可以。同一个浏览器只能同时登录1个环信客服云账号。使用浏览器隐身窗口可以登录2个账号。 | ||