差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
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个账号。