差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
|
cs:500cloudcccintegration:05workbench [2019/11/18 10:15] candywang |
cs:500cloudcccintegration:05workbench [2021/08/20 09:36] (当前版本) candywang [获取历史通话] |
||
|---|---|---|---|
| 行 6: | 行 6: | ||
| 通过以下文档,您可以实现上述目的,下面的工作需要您公司的前端工程师来实施。 | 通过以下文档,您可以实现上述目的,下面的工作需要您公司的前端工程师来实施。 | ||
| - | |||
| - | 软电话工具条集成为增值功能,如有需要,请提供租户id并联系商务。 | ||
| 行 18: | 行 16: | ||
| 使用方法:引入js文件。 | 使用方法:引入js文件。 | ||
| - | 软电话工具条集成为增值功能,请联系商务获取源码包。 | + | 如需获取源码包,请提供租户id并联系商务。 |
| ===== 服务器端准备工作===== | ===== 服务器端准备工作===== | ||
| 行 32: | 行 30: | ||
| ==== 初始化必备工作 ==== | ==== 初始化必备工作 ==== | ||
| - | ---- | ||
| - 必须使用chrome浏览器,版本号为58以上。原因是云呼叫中心的通话是通过webRTC技术实现的,目前chrome浏览器对于webRTC技术的支持是最好的。为了保证您的通话质量及安全性,所以我们做出了这样的要求。 | - 必须使用chrome浏览器,版本号为58以上。原因是云呼叫中心的通话是通过webRTC技术实现的,目前chrome浏览器对于webRTC技术的支持是最好的。为了保证您的通话质量及安全性,所以我们做出了这样的要求。 | ||
| 行 40: | 行 37: | ||
| ==== 初始化SDK ==== | ==== 初始化SDK ==== | ||
| - | ---- | ||
| 在页面添加id为“id_name”的容器 | 在页面添加id为“id_name”的容器 | ||
| <code><div id="id_name"></div></code> | <code><div id="id_name"></div></code> | ||
| 行 51: | 行 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> | ||
| 行 64: | 行 64: | ||
| <code>HxCccSdk.logIn()</code> | <code>HxCccSdk.logIn()</code> | ||
| 签入(处于签出状态可调用),调用该方法实现上线操作 | 签入(处于签出状态可调用),调用该方法实现上线操作 | ||
| + | |||
| + | ⚠️注:签入之前需要先加入呼叫技能组。 | ||
| 3.签出 | 3.签出 | ||
| 行 92: | 行 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> | ||
| 行 133: | 行 184: | ||
| |3|空闲|ready|可执行拨号、签出(即下线)等操作,注:只有该状态下可收到外部打过来的电话(即振铃)| | |3|空闲|ready|可执行拨号、签出(即下线)等操作,注:只有该状态下可收到外部打过来的电话(即振铃)| | ||
| |4|小休|break|可执行结束小休、签出(即下线)、拨号(操作)| | |4|小休|break|可执行结束小休、签出(即下线)、拨号(操作)| | ||
| - | |5|话后处理|other|可执行签出(即下线)、继续工作(即开始接听)、拨号等操作| | + | |5|话后处理|other|可执行签出(即下线)、继续工作(即开始接听)、再次拨打等操作| |
| |6|振铃|callComing|只可执行接听操作| | |6|振铃|callComing|只可执行接听操作| | ||
| |8|拨号|dialingCall|只可执行挂机操作| | |8|拨号|dialingCall|只可执行挂机操作| | ||
| 行 140: | 行 191: | ||
| |11|内部通话|inCall|可执行挂机、保持(即通话保持)操作| | |11|内部通话|inCall|可执行挂机、保持(即通话保持)操作| | ||
| |12|通话保持|inCall|只可执行通话取回(通话取回)操作| | |12|通话保持|inCall|只可执行通话取回(通话取回)操作| | ||
| + | |21|监听中|monitoring|只可执行结束监听操作| | ||
| - | ===== 操作逻辑错误===== | + | ===== 操作逻辑错误 ===== |
| 以下参数格式为:errorCode:errorMsg/errorMsgTip | 以下参数格式为:errorCode:errorMsg/errorMsgTip | ||
| 行 149: | 行 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: '管理员未登录', | ||
| 行 182: | 行 236: | ||
| 8001: '请检查声卡权限', // 提示设备异常的界面 | 8001: '请检查声卡权限', // 提示设备异常的界面 | ||
| 8002: '请检查声卡权限', // 提示设备异常的界面 | 8002: '请检查声卡权限', // 提示设备异常的界面 | ||
| - | | + | |
| `以下为迁出的event事件:` | `以下为迁出的event事件:` | ||
| AB_normal: '软电话正常签出', | AB_normal: '软电话正常签出', | ||
| 行 193: | 行 247: | ||
| WSConnectSlowly: '当前WebScoket连接缓慢,请等待或刷新后重新上线', | WSConnectSlowly: '当前WebScoket连接缓慢,请等待或刷新后重新上线', | ||
| // 坐席没有配置技能组 | // 坐席没有配置技能组 | ||
| - | systemErrorNotInAnySkillGroup: '您尚未被加入到技能组中,暂时无法使用,请联系呼叫中心管理员添加' | + | systemErrorNotInAnySkillGroup: '您尚未被加入到技能组中,暂时无法使用,请联系呼叫中心管理员添加', |
| } | } | ||
| </code> | </code> | ||
| + | ===== 后续工作 ===== | ||
| + | |||
| + | ==== 获取通话记录 ==== | ||
| + | |||
| + | 如果您要在您的自有业务系统查看历史通话,就需要将环信客服云的历史通话记录同步到您的自有业务系统。 | ||
| + | |||
| + | 同步方式: | ||
| + | - 调用api平台【获取历史通话列表】接口,详情请参考[[cs:400systemintegration:api-open-platform#获取历史通话列表|API开放平台]]。 | ||
| + | - 通过自定义事件推送,将通话详单及录音推送至您的服务器。具体请参考 [[cs:400systemintegration:20webhook|自定义事件推送]]-呼叫事件推送。 | ||
| + | |||
| + | 注:api开放平台和自定义事件推送为旗舰版标准功能,标准版和企业版增值功能。 | ||
| + | |||
| + | ===== 常见问题 ===== | ||
| + | - 自有业务系统集成软电话条后,同一个客服账号可以既在环信客服云登录,又在自有业务系统使用云呼吗? | ||
| + | 不可以。同一个账号只能同时登录一个系统,在自有业务系统已签入云呼的前提下,再登录环信客服云,自有业务系统客服账号会下线,云呼会签出。 | ||
| + | - 同一个浏览器,可以用一个账号登录环信客服云,用另一个环信客服账号登录自有业务系统,签入云呼吗? | ||
| + | 不可以。同一个浏览器只能同时登录1个环信客服云账号。使用浏览器隐身窗口可以登录2个账号。 | ||