官网公开API文档

公共信息

通用规范

请求格式

Base URL

https://{host}/{Type}/{version}/{api}?Timestamp={Timestamp}&AppId={AppId}

HTTP Header

HTTP METHOD

HTTP Status Code

返回格式

通用

正确返回格式

{
  "ErrCode": "000000", // 响应码(必须)
  "ErrDesc": "OK",   // 响应描述(必须)
  "Result": {
    // 数据...
  }
}

错误返回格式

{
  "ErrCode": "000001",     // 响应码(必须)
  "ErrDesc": "参数错误", // 响应描述(必须)
  "Result": {
    // 数据...
  }
}

数据格式约定

PSTN号码

示例

"01067654637" # 座机号
"13676546374" # 手机号

分机号码(Extension)

示例

"8001"      # 分机号码

队列ID(QueueId)

坐席ID(AgentId)

坐席工号(WorkId)

时间戳(Timestamp)

鉴权方式

服务端接口鉴权

示例

https://xxx.udesk.cn/ccapi/v2/agents?AppId={{appid}}&Timestamp={{mytime}}&Sign={{Sign}}&Sid={{Sid}}

返回码说明

返回码 说明
000000 成功
000001 参数无效
000035 请求超时
000036 错误的请求
000060 内部错误
100001 参数为空
100002 app无效或禁止
100003 找不到账号
100004 错误的消息
100005 找不到中继号
100006 名称已经存在
100007 找不到语音
100008 无效的wav文件
100009 wav文件转换失败
100010 创建默认的声音文件失败
100011 新存储桶失败
100012 下载文件失败
100013 数据库初始失败
100014 md5校验失败
100015 号码存在
100016 语音绑定代理
100017 应用ID为空
100018 未发现记录
100019 解析失败
100020 找不到ivr
100021 无效的坐席状态
100022 所有权错误
200001 不存在此app
200002 参数错误
200003 服务解析出错
200004 没有找到相关记录
200005 开始结点错误
200006 条件结点错误
200007 播放节点错误
200008 语音收集结点错误
200009 入队结点错误
200010 webhook结点错误
200011 收号结点错误
200018 挂断节点错误
200019 已存在此名字
200020 鉴权出错
200021 内部服务错误
200022 路由格式错误
200023 数据库错误
200024 缺少开始或结束结点

开放接口

01.获取中继号列表

基本信息

Path: /ccapi/v2/spnumbers

Method: GET

接口描述:

概述

返回所有绑定在应用内的中继号列表,以及应用的默认外显号码。

名词解释

中继号:绑定到应用内号码的统称(一般分为数字中继号码和模拟固话号码两种,最主要的区别是前者支持多路并发),可能是Udesk提供,也可能是用户自建号码。
外显号码:当你用个人手机拨打其他人的电话时,对方手机上会显示一个主叫号码(如果对方手机开通来电显示功能的话),这个就是外显号码;同样,用Udesk CCPaaS平台外呼时也需要一个外显号码,并且,会按以下顺序选号:

  1. 优先使用外呼时指定的中继号;
  2. 使用座席的默认外显号码;
  3. 使用应用的默认外显号码;
  4. 以上都不满足的情况下,系统随机选号。

示例

请求

URL: http://ip:port/ccapi/v2/spnumbers?AppId={{appid}}&Timestamp={{mytime}}&Sign={{Sign}}&Sid={{Sid}}

响应

{
  "ErrCode": "000000",
  "ErrDesc": "OK",
  "Result": {
    "SpNumbers": [
      "057126200671",
      "057126200672",
      "057126200673",
      "057126200674"
    ],
    "DefSpNumber": "057126200670"
  }
}

请求参数

Query

参数名称 是否必须 示例 备注
AppId 3c31d817-4d37-46d8-6c09-1be54dda3c03 应用ID

返回数据

名称类型是否必须默认值备注其他信息
ErrCodestring非必须响应码

mock: 000000

ErrDescstring非必须响应描述

mock: OK

Resultobject非必须响应结果
├─ SpNumbersstring []非必须中继号列表

item 类型: string

├─ 非必须
├─ DefSpNumberstring非必须当前配置的默认中继号

mock: 057126200670

02.修改默认中继号

基本信息

Path: /ccapi/v2/spnumbers/default

Method: PUT

接口描述:

概述

编辑应用默认的外显号码。

示例

请求

URL: http://ip:port/ccapi/v2/spnumbers/default?AppId={{appid}}&Timestamp={{mytime}}&Sign={{Sign}}&Sid={{Sid}}
BODY:
{
    "DefSpNumber":"057126200670"
}

响应

{
    "ErrCode": "000000",
    "ErrDesc": "OK",
    "Result": null
}

请求参数

Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json
Query
参数名称 是否必须 示例 备注
AppId 4b8dc715-05e0-4340-6cae-a6e3c39a6012 应用ID
Body
名称类型是否必须默认值备注其他信息
DefSpNumberstring非必须默认使用第一个中继号,可以是中继号列表中的任何一个号码

mock: 057126200670

返回数据

名称类型是否必须默认值备注其他信息
ErrCodestring非必须响应码

mock: 000000

ErrDescstring非必须响应描述

mock: OK

Resultstring非必须响应结果

03.删除默认中继号

基本信息

Path: /ccapi/v2/spnumbers/default

Method: DELETE

接口描述:

概述

清除应用的默认外显号码。

示例

请求

URL: http://ip:port/ccapi/v2/spnumbers?AppId={{appid}}&Timestamp={{mytime}}&Sign={{Sign}}&Sid={{Sid}}

响应

{
"ErrCode":"000000",
"ErrDesc":"OK",
"Result":""
}

请求参数

Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json
Query
参数名称 是否必须 示例 备注
AppId 4b8dc715-05e0-4340-6cae-a6e3c39a6012 应用ID
Body
名称类型是否必须默认值备注其他信息

返回数据

名称类型是否必须默认值备注其他信息
ErrCodestring非必须响应码

mock: 000000

ErrDescstring非必须响应描述

mock: OK

Resultstring非必须响应结果

mock:

04.创建座席

基本信息

Path: /ccapi/v2/agents

Method: POST

接口描述:

概述

创建座席。
Udesk CC-PaaS基础对象关系如下图所示:
图片.png

示例

请求

URL: http://ip:port/ccapi/v2/agents?AppId={{appid}}&Timestamp={{mytime}}&Sign={{Sign}}&Sid={{Sid}}
BODY:
{
"AgentId":"9415",
"WorkId":"199"
}

响应

{
    "ErrCode": "000000",
    "ErrDesc": "OK",
    "Result": {
        "AgentId": "9415",
        "Extension": "",
        "Password": "",
        "Number": "",
        "ExtenInfos": null
    }
}

请求参数

Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json
Query
参数名称 是否必须 示例 备注
AppId 4b8dc715-05e0-4340-6cae-a6e3c39a6012 应用ID
Body
名称类型是否必须默认值备注其他信息
AgentIdstring必须座席ID

mock: 197

WorkIdstring必须座席工号

mock: 191

Namestring非必须座席姓名

mock: Li

Mobilestring非必须座席手机号

mock: 18512520714

Emailstring非必须座席Email

mock: 123@qq.com

Rolestring非必须可以是agent, leader,默认为agent

mock: agent

Enableboolean非必须true:启用,默认启用

mock: false

IsCreateExtensioninteger非必须创建并绑定座席分机
WrapUpTimeinteger非必须呼入整理时间
OutWrapUpTimeinteger非必须呼出整理时间
AssistantAccessRightinteger非必须助手使用权限

返回数据

名称类型是否必须默认值备注其他信息
ErrCodestring非必须响应码

mock: 000000

ErrDescstring非必须响应描述

mock: OK

Resultobject非必须如果同时绑定分机
├─ Extensionstring非必须分机号码

mock: 1002

├─ Passwordstring非必须分机密码

mock: 1002

├─ AgentIdstring非必须坐席ID

mock: 197

├─ Numberstring非必须中继号

mock: 057126200670

├─ ExtenInfosstring []非必须分机号列表

item 类型: string

├─ 非必须

05.修改坐席

基本信息

Path: /ccapi/v2/agents/{id}

Method: PUT

接口描述:

概述

修改座席信息
禁用坐席:坐席在离线状态才可以禁用

说明:AgentId不支持修改。

示例

请求

URL: http://ip:port/ccapi/v2/agents/{id:[0-9]+}?AppId={{appid}}&Timestamp={{mytime}}&Sign={{Sign}}&Sid={{Sid}}
BODY:
{
    "AgentId":"9415",
    "Enable":false
}

响应

{
    "ErrCode": "000000",
    "ErrDesc": "OK",
    "Result": null
}

请求参数

Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json
路径参数
参数名称 示例 备注
id {id:[0-9]+}
Query
参数名称 是否必须 示例 备注
AppId a54a8b77-f12d-4ac9-742d-5b2bef5c4d11
Body
名称类型是否必须默认值备注其他信息
AgentIdstring非必须坐席ID

mock: 724

WorkIdstring非必须任务ID

mock: 11

Namestring非必须坐席姓名
Mobilestring非必须坐席手机号

mock: 17600364320

Emailstring非必须坐席邮箱
Rolestring非必须备注
Enableboolean非必须是否开启

mock: false

WrapUpTimeinteger非必须呼入整理时间
OutWrapUpTimeinteger非必须呼出整理时间
AssistantAccessRightinteger非必须助手使用权限

返回数据

名称类型是否必须默认值备注其他信息
ErrCodestring非必须响应码

mock: 000000

ErrDescstring非必须响应描述

mock: ok

Resultstring非必须响应结果

06.获取座席列表

基本信息

Path: /ccapi/v2/agents

Method: GET

接口描述:

概述

获取座席信息,可根据相关条件查询,未指定条件时返回全部座席列表。
既定查询条件有:角色、可用状态、座席状态;
模糊查询文本匹配范围:座席名称、座席工号、邮箱、手机号码。

示例

请求

URL: http://ip:port/ccapi/v2/agents?AppId={{appid}}&Timestamp={{mytime}}&Sign={{Sign}}&Sid={{Sid}}
URL(既定查询条件): http://ip:port/ccapi/v2/agents?Role={{Role}}&Enable={{Enable}}&State={{State}}&FuzzyQuery={{FuzzyQuery}}AppId={{appid}}&Timestamp={{mytime}}&Sign={{Sign}}&Sid={{Sid}}

响应

{
    "ErrCode":"000000",
    "ErrDesc":"",
    "Result":{
        "CurrPage":1,
        "PageSize":32,
        "Total":32,
        "TotalPage":1,
        "AgentList":[
            {
                "AppId":"4b8dc715-05e0-4340-6cae-a6e3c39a6012",
                "AgentId":"189",
                "WorkId":"",
                "Name":"管理员1",
                "Mobile":"17600364320",
                "Email":"crmdiaoxiao1@test.cn",
                "Role":"agent",
                "Queues":[
                    "9003@4b8dc715-05e0-4340-6cae-a6e3c39a6012"
                ],
                "QueuesNames":null,
                "Extensions":[
                    "1001",
                    "1008"
                ],
                "DefSpNumber":"02863138587",
                "State":1,
                "ExtState":0,
                "WrapUpTime":0,
                "OutWrapUpTime":0,
                "Enable":true,
                "ExtenInfos":null
            }
        ]
    }
}

请求参数

Query

参数名称 是否必须 示例 备注
AppId 4b8dc715-05e0-4340-6cae-a6e3c39a6012 租户ID

返回数据

名称类型是否必须默认值备注其他信息
ErrCodestring非必须响应码

mock: 000000

ErrDescstring非必须响应描述

mock: OK

Resultobject非必须响应结果
├─ CurrPagenumber非必须当前页数

mock: 1

├─ PageSizenumber非必须每页显示数量

mock: 10

├─ Totalnumber非必须总数量

mock: 100

├─ TotalPagenumber非必须总页数

mock: 10

├─ AgentListobject []非必须坐席列表

item 类型: object

├─ AppIdstring非必须应用ID

mock: 4b8dc715-05e0-4340-6cae-a6e3c39a6012

├─ AgentIdstring非必须坐席ID

mock: 112

├─ WorkIdstring非必须任务ID

mock: 111

├─ Namestring非必须坐席姓名

mock: test

├─ Mobilestring非必须坐席手机号

mock: 17600364320

├─ Emailstring非必须坐席邮箱

mock: test@qq.com

├─ Rolestring非必须备注

mock: ""

├─ Queuesstring []非必须坐席队列列表

item 类型: string

├─ 非必须
├─ QueuesNamesstring []非必须队列名称列表

item 类型: string

├─ 非必须
├─ Extensionsstring []非必须分机号列表

item 类型: string

├─ 非必须
├─ DefSpNumberstring非必须默认中继号

mock: c39a6012

├─ Statenumber非必须状态

mock: 1

├─ ExtStatestring非必须默认分机状态

mock: 0

├─ WrapUpTimestring非必须呼入整理时间

mock: 0

├─ OutWrapUpTimestring非必须呼出整理时间

mock: 0

├─ Enablestring非必须是否开启

mock: false

├─ ExtenInfosobject []非必须分机号列表信息

item 类型: object

├─ Numberstring非必须中继号

mock: 94286518751002

├─ Extensionstring非必须分机号

mock: 1002

├─ Passwordstring非必须分机密码

mock: eewz

├─ SignalTypestring非必须信号类型

mock: 1

07.座席分机绑定

基本信息

Path: /ccapi/v2/agents/extensions

Method: POST

接口描述:

概述

为指定的座席绑定分机,可同时绑定两种类型分机。
注意:
座席外呼时需要手动切换到与当前外呼方式匹配的分机类型,例如,如用网页电话方式外呼,需切换到webrtc类型的分机。

示例

请求

URL: http://ip:port/ccapi/v2/agents/extensions?AppId={{appid}}&Timestamp={{mytime}}&Sign={{Sign}}&Sid={{Sid}}
BODY:
{
    "AgentId":"9415",
    "Extensions":["1135"]
}

响应

{
    "ErrCode": "000000",
    "ErrDesc": "OK",
    "Result": null
}

请求参数

Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json
Query
参数名称 是否必须 示例 备注
AppId 4b8dc715-05e0-4340-6cae-a6e3c39a6012 应用ID
Body
名称类型是否必须默认值备注其他信息
AgentIdstring必须座席ID

mock: 10031

WorkIdstring非必须任务ID
Namestring非必须坐席姓名
Mobilestring非必须坐席手机号
Emailstring非必须坐席邮箱
Rolestring非必须备注
Queuesstring []非必须队列

item 类型: string

├─ 非必须
QueuesNamesstring []非必须队列名称

item 类型: string

├─ 非必须
Extensionsstring []必须分机号码列表

item 类型: string

├─ 非必须
Stateinteger非必须座席状态类型
ExtStateinteger非必须绑定的分机状态
WrapUpTimeinteger非必须呼入整理时间
OutWrapUpTimeinteger非必须呼出整理时间
Enableboolean非必须是否开启
AssistantAccessRightinteger非必须助手使用权限

返回数据

名称类型是否必须默认值备注其他信息
ErrCodestring非必须响应码

mock: 000000

ErrDescstring非必须相应描述

mock: OK

Resultstring非必须响应结果

mock:

08.座席分机解绑

基本信息

Path: /ccapi/v2/agents/extensions

Method: DELETE

接口描述:

概述

为指定座席解绑分机,可同时解绑两种类型分机。
注意:
如果要删除座席,须先将该座席绑定的分机全部解绑,同时,将其从所在的全部普通队列中脱离。

示例

请求

URL: http://ip:port/ccapi/v2/agents/extensions?AppId={{appid}}&Timestamp={{mytime}}&Sign={{Sign}}&Sid={{Sid}}
BODY:
{
    "AgentId":"9415",
    "Extensions":["1135"]
}

响应

{
    "ErrCode": "000000",
    "ErrDesc": "OK",
    "Result": null
}

请求参数

Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json
Query
参数名称 是否必须 示例 备注
AppId 4b8dc715-05e0-4340-6cae-a6e3c39a6012 应用ID
Body
名称类型是否必须默认值备注其他信息
Extensionsstring []必须分机号码列表

item 类型: string

├─ 非必须
AgentIdstring必须座席ID

mock: 62

返回数据

名称类型是否必须默认值备注其他信息
ErrCodestring非必须响应码

mock: 000000

ErrDescstring非必须响应描述

mock: OK

Resultstring非必须响应结果

mock:

09.删除分机

基本信息

Path: /ccapi/v2/extensions

Method: DELETE

接口描述:

概述

删除分机。
注意:
被绑定到某个座席的分机不能删除,须先将其解绑。

示例

请求

URL: http://ip:port/ccapi/v2/extensions?AppId={{appid}}&Timestamp={{mytime}}&Sign={{Sign}}&Sid={{Sid}}
BODY:
{
    "Extension":"1002"
}

响应

{
    "ErrCode": "000000",
    "ErrDesc": "OK",
    "Result": null
}

请求参数

Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json
Query
参数名称 是否必须 示例 备注
AppId 4b8dc715-05e0-4340-6cae-a6e3c39a6012 应用ID
Body
名称类型是否必须默认值备注其他信息
Extensionstring必须分机号码

mock: 1002

Passwordstring非必须分机密码
Numberstring非必须坐席使用的sip账号
SignalTypeinteger非必须分机类型

mock: 0:sip,1:webrtc

返回数据

名称类型是否必须默认值备注其他信息
ErrCodestring非必须响应码

mock: 000000

ErrDescstring非必须响应描述

mock: OK

Resultstring非必须响应结果

mock:

10.创建分机

基本信息

Path: /ccapi/v2/extensions

Method: POST

接口描述:

概述

创建分机。
分机分为两种类型:0(sip,对应sip话机方式),1(webrtc,对应网页电话方式);
注意:

示例

请求

URL: http://ip:port/ccapi/v2/extensions?AppId={{appid}}&Timestamp={{mytime}}&Sign={{Sign}}&Sid={{Sid}}
BODY:
{
    "Extension":"1002",
    "Password":"802411d4"
    "SignalType":0
}

响应

{
    "ErrCode": "000000",
    "ErrDesc": "OK",
    "Result": {
        "Extension": "1002",
        "Password": "336cd1655a1d0502",
        "Number": "93000077121002",
        "SignalType": 0
    }
}

请求参数

Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json
Query
参数名称 是否必须 示例 备注
AppId 4b8dc715-05e0-4340-6cae-a6e3c39a6012 应用ID
Body
名称类型是否必须默认值备注其他信息
Extensionstring必须4位数 分机号

mock: 1032

Passwordstring非必须分机密码

mock: 802411d4

SignalTypeinteger非必须分机类型:0(sip),1(webrtc)

mock: 0

返回数据

名称类型是否必须默认值备注其他信息
ErrCodestring非必须响应码

mock: 000000

ErrDescstring非必须响应描述

mock: OK

Resultobject非必须响应结果
├─ Extensionstring非必须分机号

mock: 1002

├─ Passwordstring非必须分机密码

mock: 802411d4

├─ Numberstring非必须分机账号

mock: "93000077121002"

├─ SignalTypeinteger非必须分机类型

mock: 0(sip,对应sip话机方式),1(webrtc,对应网页电话方式)

11.获取队列列表

基本信息

Path: /ccapi/v2/queues

Method: GET

接口描述:

概述

获取队列信息列表。

示例

请求

URL: http://ip:port/ccapi/v2/queues?AppId={{appid}}&Timestamp={{mytime}}&Sign={{Sign}}&Sid={{Sid}}

响应

{
    "ErrCode":"000000",
    "ErrDesc":"OK",
    "Result":{
        "Queues":[
            {
                "QueueId":"9001",
                "Name":"管理员测试",
                "Strategy":0,
                "Timeout":0,
                "WaitMusic":"waitmusic.wav"
            }
        ]
    }
}

请求参数

Query

参数名称 是否必须 示例 备注
AppId ef05710f-1144-4e2a-721c-991bf9df440a 应用ID

返回数据

名称类型是否必须默认值备注其他信息
ErrCodestring非必须响应码

mock: 000000

ErrDescstring非必须响应描述

mock: OK

Resultobject非必须响应结果
├─ Queuesobject []非必须队列列表

item 类型: object

├─ QueueIdstring非必须队列ID

mock: 9001

├─ Namestring非必须队列名称

mock: 管理员测试

├─ Strategynumber非必须队列分配策略

mock: 0

├─ Timeoutnumber非必须排队等待超时时间

mock: 0

├─ WaitMusicstring非必须排队等待时播放的音乐

mock: waitmusic.wav

12.创建队列

基本信息

Path: /ccapi/v2/queues

Method: POST

接口描述:

概述

创建队列

示例

请求

URL: http://ip:port/ccapi/v2/queues?AppId={{appid}}&Timestamp={{mytime}}&Sign={{Sign}}&Sid={{Sid}}
BODY:
{
    "QueueId":"9008",
    "QueueName":"测试创建队列007",
    "WaitMusic":""
}

响应

{
    "ErrCode": "000000",
    "ErrDesc": "OK",
    "Result": {
        "QueueId": "181154"
    }
}

请求参数

Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json
Query
参数名称 是否必须 示例 备注
AppId 4b8dc715-05e0-4340-6cae-a6e3c39a6012 应用ID
Body
名称类型是否必须默认值备注其他信息
QueueIdstring非必须队列ID

mock: 9008

QueueNamestring非必须队列名称

mock: 测试创建队列007

WaitMusicstring非必须排队等待时播放的音乐

mock:

返回数据

名称类型是否必须默认值备注其他信息
ErrCodestring非必须响应码

mock: 000000

ErrDescstring非必须响应描述

mock: OK

Resultstring非必须响应结果

mock:

13.修改队列

基本信息

Path: /ccapi/v2/queues

Method: PUT

接口描述:

概述

修改指定队列。
'Strategy'指定队列的分配策略,可选值为整数0,1,2:
0:按照座席当天上线顺序轮流分配;
1:按照座席当天的最小接听数分配,即接听数越少,优先级越高;
2:按照座席最近一次的空闲时间分配,即空闲时间越长,优先级越高;

示例

请求

URL: http://ip:port/ccapi/v2/queues?AppId={{appid}}&Timestamp={{mytime}}&Sign={{Sign}}&Sid={{Sid}}
BODY:
{
    "QueueId":"9009"
}

响应

{
    "ErrCode": "000000",
    "ErrDesc": "OK",
    "Result": null
}

请求参数

Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json
Query
参数名称 是否必须 示例 备注
AppId 4b8dc715-05e0-4340-6cae-a6e3c39a6012 应用ID
Body
名称类型是否必须默认值备注其他信息
QueueIdstring必须队列ID

mock: 9009

QueueNamestring非必须队列名称

mock: 测试创建队列007

Strategyinteger非必须队列分配策略
Timeoutinteger非必须排队等待超时时间
WaitMusicstring非必须排队等待时播放的音乐

返回数据

名称类型是否必须默认值备注其他信息
ErrCodestring非必须响应码

mock: 000000

ErrDescstring非必须响应描述

mock: OK

Resultstring非必须响应结果

mock:

14.删除队列

基本信息

Path: /ccapi/v2/queues

Method: DELETE

接口描述:

概述

删除指定队列。
注意:
有座席在列的队列不能删除。

示例

请求

URL: http://ip:port/ccapi/v2/queues?AppId={{appid}}&Timestamp={{mytime}}&Sign={{Sign}}&Sid={{Sid}}
BODY:
{
    "QueueId":"9009"
}

响应

{
    "ErrCode": "000000",
    "ErrDesc": "OK",
    "Result": null
}

请求参数

Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json
Query
参数名称 是否必须 示例 备注
AppId 4b8dc715-05e0-4340-6cae-a6e3c39a6012 应用ID
Body
名称类型是否必须默认值备注其他信息
QueueIdstring必须队列ID

mock: 9009

返回数据

名称类型是否必须默认值备注其他信息
ErrCodestring非必须响应码

mock: 000000

ErrDescstring非必须响应描述

mock: OK

Resultstring非必须响应结果

mock:

15.队列批量添加座席

基本信息

Path: /ccapi/v2/queues/agents

Method: POST

接口描述:

概述

为指定队列批量添加座席。
注意:
增量操作,不影响队列中原来在列的座席;

示例

请求

URL: http://ip:port/ccapi/v2/queues/agents?AppId={{appid}}&Timestamp={{mytime}}&Sign={{Sign}}&Sid={{Sid}}
BODY:
{
    "QueueId":"9009",
    "AgentIds":[
        "9009",
        "9008",
        "9007",
        "9006"
    ]
}

响应

{
    "ErrCode": "000000",
    "ErrDesc": "OK",
    "Result": null
}

请求参数

Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json
Query
参数名称 是否必须 示例 备注
AppId 4b8dc715-05e0-4340-6cae-a6e3c39a6012 应用ID
Body
名称类型是否必须默认值备注其他信息
QueueIdstring必须队列ID

mock: 9009

AgentIdsstring []必须座席ID列表

item 类型: string

├─ 非必须

返回数据

名称类型是否必须默认值备注其他信息
ErrCodestring非必须响应码

mock: 000000

ErrDescstring非必须响应描述

mock: OK

Resultstring非必须响应结果

mock:

16.座席批量入队

基本信息

Path: /ccapi/v2/agents/queues

Method: POST

接口描述:

概述

为指定座席批量入队。
注意:
参数'IsFull'默认置0,接口表现为增量操作,不影响座席原来所在的队列列表;
当参数'IsFull'置1时,接口表现为全量操作,可用于同三方系统的队列信息同步。

示例

请求

URL: http://ip:port/ccapi/v2/agents/queues?AppId={{appid}}&Timestamp={{mytime}}&Sign={{Sign}}&Sid={{Sid}}
BODY:
{
    "AgentId":"9415",
    "Queues":[
        "551",
        "114"
    ],
    "IsFull":1
}

响应

{
    "ErrCode": "000000",
    "ErrDesc": "OK",
    "Result": null
}

请求参数

Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json
Query
参数名称 是否必须 示例 备注
AppId 4b8dc715-05e0-4340-6cae-a6e3c39a6012 应用ID
Body
名称类型是否必须默认值备注其他信息
AgentIdstring必须座席ID

mock: 1443

Queuesstring []必须队列ID列表

item 类型: string

├─ 非必须
IsFullinteger非必须是否全量更新

返回数据

名称类型是否必须默认值备注其他信息
ErrCodestring非必须响应码

mock: 000000

ErrDescstring非必须响应描述

mock: OK

Resultstring非必须响应结果

mock:

17.座席批量出队

基本信息

Path: /ccapi/v2/agents/queues

Method: DELETE

接口描述:

概述

为指定座席批量出队。

示例

请求

URL: http://ip:port/ccapi/v2/agents/queues?AppId={{appid}}&Timestamp={{mytime}}&Sign={{Sign}}&Sid={{Sid}}
BODY:
{
    "AgentId":"9415",
    "Queues":[
        "551",
        "114"
    ]
}

响应

{
    "ErrCode": "000000",
    "ErrDesc": "OK",
    "Result": null
}

请求参数

Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json
Query
参数名称 是否必须 示例 备注
AppId 4b8dc715-05e0-4340-6cae-a6e3c39a6012 应用ID
Body
名称类型是否必须默认值备注其他信息
AgentIdstring必须座席ID

mock: 1443

Queuesstring []必须队列ID

item 类型: string

├─ 非必须

返回数据

名称类型是否必须默认值备注其他信息
ErrCodestring非必须响应码

mock: 000000

ErrDescstring非必须响应描述

mock: OK

Resultstring非必须响应结果

mock: null

18.订阅事件

基本信息

Path: /ccapi/v2/subscriptions

Method: POST

接口描述:

概述

订阅事件,当订阅的事件发生时,相关消息会发送到指定的回调地址。
回调地址通过后台设置。
Events参数详情如下:

category all_type 备注
agent_state acd_agent_state 座席状态事件
ext_state extension_state_update 分机状态事件
agent_call_mode agent_call_mode_change 座席使用的分机模式切换事件
call general_hangup 挂断消息
enqueue_succ 入队成功
record_stop 录音结束
hangup_cause 挂机原因事件
dequeue_succ 出队消息
start_dialout 开始外呼
voice_mail_succ 留言成功
play_succ 放音成功
dtmf_gather_succ 按键输入
asr_gather_succ 语音识别成功
consult_succ 咨询成功
end_consult_succ 咨询取消成功
three_way_succ 三方成功
substitute_succ 拦截成功
hold_agent_succ 保持成功
extern_succ 转外线成功
eavesdrop_succ 监听成功

示例

请求

URL: http://ip:port/ccapi/v2/subscriptions?AppId={{appid}}&Timestamp={{mytime}}&Sign={{Sign}}&Sid={{Sid}}
BODY:
{
        "subscriptions":[
                {
                "callback":"http://s-km5.udesk.cn/as/api/v1/dialog/6/c6d4c463-5c60-43ba-a522-c972dd60e058",
                "events":["begin","end"],
                "name":"lymtest"
                }
        ]
}

响应

{
    "ErrCode": "000000",
    "ErrDesc": "OK",
    "Result": {
        "sub_succ": [
            {
                "subid": 168,
                "name": "亚信安全对接质检226"
            }
        ],
        "sub_fail": null
    }
}

请求参数

Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json
Query
参数名称 是否必须 示例 备注
AppId 4b8dc715-05e0-4340-6cae-a6e3c39a6012 应用ID
Timestamp 1566523582 时间戳
Body
名称类型是否必须默认值备注其他信息
subscriptionsobject必须
├─ callbackstring必须回调地址

mock: "http://ip:port"

├─ eventsstring []必须事件名称列表(参考备注)

item 类型: string

├─ 非必须
├─ namestring必须订阅名称

返回数据

名称类型是否必须默认值备注其他信息
ErrCodestring非必须响应码

mock: 000000

ErrDescstring非必须响应描述

mock: OK

Resultobject非必须响应结果
├─ sub_succobject非必须订阅结果 成功
├─ subidinteger非必须id
├─ namestring非必须订阅名称
├─ sub_failstring []非必须订阅结果 失败

item 类型: string

├─ 非必须""

19.更新事件

基本信息

Path: /ccapi/v2/subscriptions/{id}

Method: PUT

接口描述:

概述

更新已订阅的事件。

示例

请求

URL: http://ip:port/ccapi/v2/subscriptions/{id:[0-9]+}?AppId={{appid}}&Timestamp={{mytime}}&Sign={{Sign}}&Sid={{Sid}}
BODY:
{
        "callback":"https://qa.udesk.cn/api/v2/middleware/",
        "name":"ymtest111",
        "events":["acd_agent_state"],
        "enable":false
}

响应

{
    "ErrCode": "000000",
    "ErrDesc": "OK",
    "Result": {
        "ymtest111": 164
    }
}

请求参数

Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json
路径参数
参数名称 示例 备注
id 73 {id:[0-9]+}
Query
参数名称 是否必须 示例 备注
AppId 4b8dc715-05e0-4340-6cae-a6e3c39a6012 应用ID
Timestamp 1566523582 时间戳
Body
名称类型是否必须默认值备注其他信息
callbackstring必须回调地址
namestring必须订阅名称
eventsstring []必须事件列表

item 类型: string

├─ 非必须
enableboolean必须订阅标志 true:打开;false:关闭。

返回数据

名称类型是否必须默认值备注其他信息
ErrCodestring非必须响应码
ErrDescstring非必须响应描述
Resultobject非必须响应结果
├─ ymtest111number非必须订阅名称&事件ID

20.删除事件

基本信息

Path: /ccapi/v2/subscriptions/{id}

Method: DELETE

接口描述:

概述

退订已订阅的事件。

示例

请求

URL: http://ip:port/ccapi/v2/subscriptions/{id:[0-9]+}?AppId={{appid}}&Timestamp={{mytime}}&Sign={{Sign}}&Sid={{Sid}}

响应

{
    "ErrCode":"000000",
    "ErrDesc":"OK",
    "Result":[]
}

请求参数

Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/x-www-form-urlencoded
路径参数
参数名称 示例 备注
id 73 {id:[0-9]+}
Query
参数名称 是否必须 示例 备注
AppId 4b8dc715-05e0-4340-6cae-a6e3c39a6012 应用ID
Timestamp 1566523582 时间戳
Body
名称类型是否必须默认值备注其他信息

返回数据

名称类型是否必须默认值备注其他信息
ErrCodestring非必须响应码

mock: 000000

ErrDescstring非必须响应描述

mock: OK

Resultstring []非必须响应结果

item 类型: string

├─ 非必须

21.获取事件列表

基本信息

Path: /ccapi/v2/subscriptions

Method: GET

接口描述:

概述

获取已订阅的事件列表。

示例

请求

URL: http://ip:port/ccapi/v2/subscriptions?AppId={{appid}}&Timestamp={{mytime}}&Sign={{Sign}}&Sid={{Sid}}

响应

{
    "ErrCode":"000000",
    "ErrDesc":"OK",
    "Result":{
        "callback":"http://ip:port",
        "enable":"false",
        "events":["acd_agent_state"],
        "name":"sub1"
    }
}

请求参数

Query

参数名称 是否必须 示例 备注
AppId 4b8dc715-05e0-4340-6cae-a6e3c39a6012 应用ID

返回数据

名称类型是否必须默认值备注其他信息
ErrCodestring非必须响应码
ErrDescstring非必须响应描述
Resultobject非必须响应结果
├─ callbackstring非必须回调地址

mock: http://ip:port

├─ enablestring非必须订阅状态

mock: true启用;false禁用

├─ eventsstring []非必须事件

item 类型: string

├─ 非必须
├─ namestring非必须租户的名字

22.座席签入

基本信息

Path: /ccapi/v2/agent/login

Method: POST

接口描述:

概述

签入指定座席。
注意:

示例

请求

URL: http://ip:port/ccapi/v2/agent/login?AppId={{appid}}&Timestamp={{mytime}}&Sign={{Sign}}&Sid={{Sid}}
BODY:
{
    "agent_id":"10032"
}

响应

{
    "ErrCode": "000000",
    "ErrDesc": "OK",
    "msg_id": "111",
    "results": "",
    "data": null
}

请求参数

Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json
Query
参数名称 是否必须 示例 备注
MsgId 111 签入时发送过来的MsgId
AppId a54a8b77-f12d-4ac9-742d-5b2bef5c4d11 应用ID
Body
名称类型是否必须默认值备注其他信息
agent_idstring必须座席ID

mock: 10032

work_idstring非必须座席工号

mock: 22

queue_idsstring []非必须队列标识数组(专用于向NSQ上报)

item 类型: string

├─ 非必须
stateinteger非必须座席上线后的状态,0: 'Idle', 1: 'Waiting'

返回数据

名称类型是否必须默认值备注其他信息
ErrCodestring非必须响应码
ErrDescstring非必须响应描述
msg_idstring非必须签入时发送过来的MsgId
resultsstring非必须响应结果
data string非必须数据

23.座席签出

基本信息

Path: /ccapi/v2/agent/logout

Method: POST

接口描述:

概述

签出指定座席。
注意:

示例

请求

URL: http://ip:port/ccapi/v2/agent/logout?app_id={{appid}}&Sign={{Sign}}&Timestamp={{mytime}}&Sid={{Sid}}
BODY:
{
    "agent_id":"1802"
}

响应

{
    "ErrCode": "000000",
    "ErrDesc": "OK",
    "msg_id": "111",
    "results": "",
    "data": null
}

请求参数

Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json
Query
参数名称 是否必须 示例 备注
MsgId 签入时发送过来的MsgId
app_id 应用ID
Body
名称类型是否必须默认值备注其他信息
agent_idstring必须座席ID

mock: 10032

返回数据

名称类型是否必须默认值备注其他信息
ErrCodestring非必须响应码
ErrDescstring非必须响应描述
msg_idstring非必须签出时发送过来的MsgId
resultsstring非必须响应结果
datastring非必须数据

24.回呼用户到IVR

基本信息

Path: /ccapi/v2/callback2ivr

Method: POST

接口描述:

概述
调用此接口可以向用户发起呼叫,呼叫接通后,使用呼入相同的流程,即:通过路由找到IVR。
请求中需要与其它openAPI相同的鉴权方式,参数列表中需要有租户ID和对应生成的签名串。

示例

请求

URL: http://ip:port/ccapi/v2/callback2ivr?app_id={{appid}}&Sign={{Sign}}&Timestamp={{mytime}}&Sid={{Sid}}
{
"caller":"18789998765",
"called":"02863208944",
"called_display":"02863208944"
}

响应

{
    "code": "000000",
    "message": "OK",
    "results": "c9d52506-c41b-431f-5fa0-b701a81a2da6"
}

请求参数

Headers

参数名称 参数值 是否必须 示例 备注
Content-Type application/json
Query
参数名称 是否必须 示例 备注
app_id a54a8b77-f12d-4ac9-742d-5b2bef5c4d11 租户id
Body
名称类型是否必须默认值备注其他信息
callerstring必须要回呼的目标客户号码
calledstring必须中继号码
called_displaystring必须显示号码(通常也为中继号)
variablesstring非必须随路自定义变量(可在IVR中作为变量配置使用) "[{\"key/": \"extemalNumber\",\"type\":\"string\",\"value\":\" 13800000000\"}]"

返回数据

名称类型是否必须默认值备注其他信息
codestring非必须返回码
messagestring非必须错误信息
resultsstring非必须响应结果

25.获取坐席信息

基本信息

Path: /ccapi/v2/agents/{id}

Method: GET

接口描述:

概述
调用此接口可以获取座席当前状态,工号,所属队列,子状态,分机等信息。
请求中需要与其它openAPI相同的鉴权方式,参数列表中需要有租户ID和对应生成的签名串。

示例

请求

URL: http://ip:port/ccapi/v2/agents/355?AppId={{appid}}&Sign={{Sign}}&Timestamp={{mytime}}&Sid={{Sid}}

响应

{
  "ErrCode": "000000",
  "ErrDesc": "OK",
  "Result": {
    "AppId": "xxx",
    "AgentId": "355@7859ff65-0e6a",
    "WorkId": "111",
    "Name": "小A",
    "NickName": "小A",
    "Mobile": "1327766543",
    "Email": ""aaaa@test.cn",
    "Role": "agent",
    "Queues": [
     "2@7859ff65-0e6a"
    ]
    "QueuesNames": [
     "A"
    ]
    "Extensions": [
     "1145","1146"
    ]
    "DefSpNumber": "0107766",
    "State": 4,
    "StateDes": "offline",
    "ReasonCode": 0,
    "ReasonCodeDes": "",
    "ExtState": 0,
    "Enable": true,
    "ExtenInfos": [
     {"Number":"","Extension":"1145","Password":"xxx","SignalType":"voip"}
    ]
  }
}

请求参数

路径参数

参数名称 是否必须 示例 备注
id 355 坐席的ID

Query

参数名称 是否必须 示例 备注
AppId a54a8b77-f12d-4ac9-742d-5b2bef5c4d11 租户id

返回数据

名称类型是否必须默认值备注其他信息
ErrCodestring必须响应码

mock: 000000

ErrDescstring必须响应描述

mock: OK

Resultstring非必须响应结果

mock:

26.获取队列坐席列表

基本信息

Path: /ccapi/v2/queues/agents_list/{queue_id}

Method: GET

接口描述:

概述
调用此接口可以指定队列的座席列表信息。
请求中需要与其它openAPI相同的鉴权方式,参数列表中需要有租户ID和对应生成的签名串。

示例

请求

URL: http://ip:port/ccapi/v2/queues/agents_list/3?AppId={{appid}}&Sign={{Sign}}&Timestamp={{mytime}}&Sid={{Sid}}

响应

{
  "ErrCode": "000000",
  "ErrDesc": "OK",
  "Result": [
   {
    "AppId": "xxx",
    "AgentId": "355@7859ff65-0e6a",
    "WorkId": "111",
    "Name": "小A",
    "NickName": "小A",
    "Mobile": "1327766543",
    "Email": ""aaaa@test.cn",
    "Role": "agent",
    "Queues": [
     "2@7859ff65-0e6a"
    ]
    "QueuesNames": [
     "A"
    ]
    "Extensions": [
     "1145","1146"
    ]
    "DefSpNumber": "0107766",
    "State": 4,
    "StateDes": "offline",
    "ReasonCode": 0,
    "ReasonCodeDes": "",
    "ExtState": 0,
    "Enable": true,
    "ExtenInfos": [
     {"Number":"","Extension":"1145","Password":"xxx","SignalType":"voip"}
    ]
   }
   ]
}

请求参数

路径参数

参数名称 是否必须 示例 备注
id 3 队列的ID

Query

参数名称 是否必须 示例 备注
AppId a54a8b77-f12d-4ac9-742d-5b2bef5c4d11 租户id

返回数据

名称类型是否必须默认值备注其他信息
ErrCodestring必须响应码

mock: 000000

ErrDescstring必须响应描述

mock: OK

Resultstring非必须响应结果

mock: