1.转ivr

1.1.操作

客户咨询完问题之后,坐席经常需要客户做一个满意度评价;此时坐席在软电话条上操作转ivr,填写相应的rootactid(根节点流程id)和actid(子节点流程id)

操作如下:
image.png

1.2 常见问题

转ivr时候,在软电话条传递参数到acdgate后端,然后acdgate后端去调用平台acd模块时候,出现以下问题:

image.png

从上面可以看到gotoFlow时候,ivr的流程节点号转到100节点,然后查找不到对应的rootactid就返回了res=-1。

1.3 解决

我们查看acd的配置,查找acd转ivr时候的节点为:
acdcallinflowno=100

查看ivr的节点配置,发现是:
image.png

此时转ivr时候,肯定找不到对应的流程。
我们将acdcallinflowno=200,再次测试:
image.png

2、呼叫状态不对问题排查.

2.1前端

前端主要js:
SV-callbanner-common-wscomm-1.0.0.js-->软电话条接续:通过websocket传递信息.
SV-callbanner-common-engine-4.6.2.js-->状态变更页面交互核心组建。

状态变更逻辑:
后端通过websocket传递数据,然后SV-callbanner-common-wscomm-1.0.0.js里面的FlashAgentX.doMessage接受消息:FlashAgentX.doMessage = function(msgbuf)-->
然后调用SV-callbanner-common-engine-4.6.2.js的onCallState0 & onCallState0(_data.body.state)内部调用本文件的showCStateMsg(_state)方法进行展示坐席状态。

2.2 后端

后端主要是:hs.man.AcdStatusThread的线程run方法来定时调度hs.man.AcdStatusEventScaner的doGetStateEvent扫描同步状态给前端的方法。

public void run() {
    int cnt = 0;
    while (!(this._terminated)) {
    try {
          int res = 0;
          long run_ms = 0L;
          if (this._acdOp != null)
          {
            long start = System.currentTimeMillis();
            res = this._acdOp.doGetStateEvent();
            run_ms = System.currentTimeMillis() - start;
            logger.info("_acdOp.doGetStateEvent");
          } else {
            logger.error(" new AcdStatusEventScaner error");
          }
            if (res < 0)
            {
              Thread.sleep(3000L);
            }else{
                Thread.sleep(1000L);
            }
      }catch (InterruptedException ie) {
        logger.error("get agc state error " + ie.getMessage());
      }
    }
  }

2.3问题排查实例

当8003坐席组长登录系统并且签入软电话来监听8006坐席(签入软电话)的时候,选择监听时候8003软电话摘机,然后起对应的状态变成了三方,而不是真实的坐席组长状态。如下:

问题排查:8006登入系统配置软电话打电话,8003登录系统配置软电话然后点击监听,弹出列表,然后选择坐席,点击监听,然后摘机,看状态。

ws转变成wss

websocket所在的web服务器使用的是tomcat服务器,开通的端口是8004,但是需要wss协议,所以使用nginx进行wss配置。

server {
         listen  80;
         listen  443 ssl;
         server_name  miniprogram.com;
        # ssl on;
         ssl_certificate   /cc/nginx/build/ssl/7979091_miniprogram.com.pem;
         ssl_certificate_key  /cc/nginx/build/ssl/7979091_miniprogram.com.key;
         ssl_session_cache    shared:SSL:1m;
         ssl_session_timeout  5m;
         ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
         ssl_prefer_server_ciphers  on;
         ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2;
         
        location /AcdGate  {
          proxy_pass http://127.0.0.1:8004/AcdGate;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "Upgrade";
          proxy_set_header X-real-ip $remote_addr;
          proxy_set_header X-Forwarded-For $remote_addr;
        }
}

之前使用:

ws://192.168.1.1:8004/AcdGate/softPhone/

现在使用:

wss://miniprogram.com/AcdGate/softPhone/

startshineye
91 声望26 粉丝

我在规定的时间内,做到了我计划的事情;我自己也变得自信了,对于外界的人跟困难也更加从容了,我已经很强大了。可是如果我在规定时间内,我只有3分钟热度,哎,我不行,我就放弃了,那么这个就是我自己的问题,因为你自己...


引用和评论

0 条评论