鉴权原理
呼叫中心鉴权主要用三种方式:
- 无鉴权,关闭接口鉴权功能,适用于本地部署方式。
- appkey+secret 方式防参数篡改,用于后端程序进行调用,用于云端、本地方式。
- JWT 鉴权方式,主要使用 web 前端调用。用于云端、本地方式。
本文主要介绍第二种鉴权方式,原理图如下:
鉴权规则:
获取所有的需要传递的参数,作为一个数组
排除数组中键为 sign、a、c 和值为空的数据,即 sign 的值、a的值、c的值和空数据不参与加密
对数组进行排序,按照 key (键名)的名称升序排列
遍历参数数组,将值拼接成一串字符串 str1 ,str1 拼接 secret (私钥) 生成新 str1
对 secret (私钥) 进行 sha1 加密, 生成一串字符串 str2
将两串字符串进行拼接, 即 str1 + str2 生成 str3
对 str3 进行 sha1 加密, 即是 sign 的值
将生成的 sign 转换为小写
提醒:
# c# sha1 hash生成的的值 默认为大 需要手动转小写
事件订阅接口
事件订阅接口: 客户端通过 websocket 方式实时订阅呼叫中心事件数据,例如:来电弹屏、分机状态、示忙示闲等状态数据。 具体原理如下图:
事件订阅说明:
- .客户端通过 websocket 订阅所需要事件,例如:来电弹屏。
- .呼叫中心服务产生数据事件推送到消息服务。
- .消息服务根据订阅通道事件推送到客户端。
- .客户端接收到服务端推送过来消息,触发相对动作。例如:来电弹屏弹出客户信息等。
- .消息服务主要是管理消息通道及 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