Callcenter API

WebSocket 接口说明

说明: 这是 Websocket 底层的接口。不推荐直接使用,推荐使用上一节的 JS SDK。仅供参考。

约定

  • WebSocket 接口主要用于通话控制接口及订阅事件
  • WebSocket 地址:ws://IP:端口/ws,如 ws://192.168.1.141:8081/ws
  • 必选参数一般以黑体字标出
  • 接口功能动作名称及参数采用驼峰式
  • 请求及返回数据都是 JSON 格式
  • 返回值中的 code 200为正常,其它为错误

请求及返回值格式

请求消息

请求消息如下面格式,使用 JSON-RPC 编码:

socket.send('[{
    "jsonrpc":  "2.0",                                       --  固定参数
    "method":   "jsapi",                                     --  jsapi/login/verto.subscribe/verto.unsubscribe
    "id":   1,                                               --  客户端消息ID
    "params":   {                                            --  固定参数
        "command":  "lua",                                   --  除认证及事件订阅外,该参数固定为lua
        "data": {                                            --  除认证及事件订阅外,该参数固定
            "method":  "ccc",                                --  除认证及事件订阅外,该参数固定ccc
            "func" :  "ccGoBreak"                            --  具体调用的接口功能
            "data": {
                "queue": "100000",                           --  队列
                "agent": "1001",                             --  坐席
                "reason": "lunch"                            --  示忙的原因
            }
        },
        "sessid":   "156f46c4-2cfd-b568-92f3-9f4e5b4385fd"   --  代表客户端的唯一ID
    }
}]');

以上格式是 XSwitch 最终所收到的数据格式,实际使用过程中,需要再封装一层,以签入举例如下:

function ccLogin(agent, queue, extn)

对于基于浏览器的坐席客户端,Verto 已经封装好,文档参见:http://evoluxbr.github.io/verto-docs/

由于坐席客户端基于 Windows,文档中将展示 XSwitch 的原始数据格式,开发人员需要基于该数据格式,进行集成和封装,可以参考 Verto 的集成方式。

返回值

返回值中的result是我们需要的数据。

  • code: 整数,状态码。200表示成功,500及其它均表示出错(参考 HTTP 协议状态码)。
  • message: 文本。成功时返回的数据。
  • reason: 失败时,返回的失败原因。
JS SDK