鉴权原理

呼叫中心鉴权主要用三种方式:

  1. 无鉴权,关闭接口鉴权功能,适用于本地部署方式。
  2. appkey+secret 方式防参数篡改,用于后端程序进行调用,用于云端、本地方式。
  3. JWT 鉴权方式,主要使用 web 前端调用。用于云端、本地方式。

本文主要介绍第二种鉴权方式,原理图如下:

鉴权规则:

  1. 获取所有的需要传递的参数,作为一个数组

  2. 排除数组中键为 sign、a、c 和值为空的数据,即 sign 的值、a的值、c的值和空数据不参与加密

  3. 对数组进行排序,按照 key (键名)的名称升序排列

  4. 遍历参数数组,将值拼接成一串字符串 str1 ,str1 拼接 secret (私钥) 生成新 str1

  5. 对 secret (私钥) 进行 sha1 加密, 生成一串字符串 str2

  6. 将两串字符串进行拼接, 即 str1 + str2 生成 str3

  7. 对 str3 进行 sha1 加密, 即是 sign 的值

  8. 将生成的 sign 转换为小写

提醒: 
    # c#  sha1 hash生成的的值 默认为大 需要手动转小写

事件订阅接口

事件订阅接口: 客户端通过 websocket 方式实时订阅呼叫中心事件数据,例如:来电弹屏、分机状态、示忙示闲等状态数据。 具体原理如下图:

事件订阅说明:

  1. .客户端通过 websocket 订阅所需要事件,例如:来电弹屏。
  2. .呼叫中心服务产生数据事件推送到消息服务。
  3. .消息服务根据订阅通道事件推送到客户端。
  4. .客户端接收到服务端推送过来消息,触发相对动作。例如:来电弹屏弹出客户信息等。
  5. .消息服务主要是管理消息通道及 websocket 的服务端。

演示代码:

<!--  需要先引入下面两个js,主要需要填接口地址,这里我的接口地址是http://sz666.mixcaller.com -->
<script src="https://[服务器地址]/statics/js/centrifuge/centrifuge.min.js"></script>
<script type="text/javascript"
        src="https://[服务器地址]/admin/?m=interface&c=api&a=event_subscriptions"></script>
<script type="text/javascript">
  //订阅弹屏
  var popscreen_subscription = undefined;
  function start_popscreen() {
    var popscreen_params = {
      "extension": "5001", //要订阅哪个分机的弹屏。必填
      "pop_out": 'all', //弹屏类型,呼入(dialin)、呼出(dialout)或全部(all)弹屏。必填
      "pop_type": "RING", //弹屏时机,振铃(RING)或接通(LINK)。必填
      "open_type": "2", //弹屏方式,1为弹出新窗口,2为指定js回调。必填
      "callback": "popscreenCallback", //回调方法名,只有当open_type为2时才有效。选填
      "trim_prefix": "", //号码前缀。选填
      "phone_number_length": "4", //限制对方电话号码的长度。选填
      "bullet_screen_extension": "" //排除分机。选填
    }
    popscreen_subscription = subscribe_popscreen(popscreen_params);
  }
  //取消订阅弹屏
  function end_popscreen() {
    popscreen_subscription.unsubscribe();
  }
</script>

呼叫操作接口

  • 客服使用操作类的接口,例如:示忙示闲、转接、点击外呼等操作接口。
  • 操作接口是发送一个 post 的 http 请求到呼叫中心服务器,呼叫中心接到请求会触发相应的电话操作。例如:示忙示闲、电话转接、点击外呼等
  • 支持后端服程序调用 appkey+secret 方式鉴权及前端调用使用 jwt 鉴权两种方案。

代码调用请参考:代码样例

数据推送接口

  • 数据推送接口是主要是将通话记录数据推送到第三方系统。
  • 推送方式是基于 http 的 post 请求。
  • 推送失败机制:默认推送间隔是 60,180,600 秒, 重推 3 次,三次推送失败写入到 redis,定时任务推送成功为止。
  • 推送成功返回格式:{“code”:200}
  • 配置推送到第三方系统方法 接口配置使用
    通话记录字段说明:
文档更新时间: 2022-05-17 06:21   作者:admin