官网公开API文档
公共信息
通用规范
请求格式
Base URL
https://{host}/{Type}/{version}/{api}?Timestamp={Timestamp}&AppId={AppId}
- host:api 域名
- Type:
ccapi
- version:api版本,当前为
v2
- api:具体见 api uri
- Timestamp: UTC时间戳,精确到毫秒
- AppId:用于指明操作哪个APP,UUID字符串, 除创建APP外都应包含
HTTP Header
- Accept:
"application/json"
- Content-Type:
"application/json;charset=utf-8"
HTTP METHOD
- GET(SELECT):从服务器取出资源(一项或多项)。
- POST(CREATE):在服务器新建一个资源。
- PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
- PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
- DELETE(DELETE):从服务器删除资源。
HTTP Status Code
- 200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)。
- 201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。
- 202 Accepted - []:表示一个请求已经进入后台排队(异步任务)
- 204 NO CONTENT - [DELETE]:用户删除数据成功。
- 400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。
- 401 Unauthorized - []:表示用户没有权限(令牌、用户名、密码错误)。
- 403 Forbidden - [] 表示用户得到授权(与401错误相对),但是访问是被禁止的。
- 404 NOT FOUND - []:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。
- 406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。
- 410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。
- 422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。
- 500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。
返回格式
通用
- 返回为采用 UTF-8 编码的 JSON 格式
- 响应码参见 响应码
正确返回格式
{
"ErrCode": "000000", // 响应码(必须)
"ErrDesc": "OK", // 响应描述(必须)
"Result": {
// 数据...
}
}
错误返回格式
{
"ErrCode": "000001", // 响应码(必须)
"ErrDesc": "参数错误", // 响应描述(必须)
"Result": {
// 数据...
}
}
数据格式约定
PSTN号码
- 固定电话格式:
0{区号}{本地号码}
- 手机格式:
{11位手机号码}
- 国际号码:
00{国际区号}{国内区号}{本地号码}
- 坐席SIP号码:
{企业号码前缀}{坐席分机号}
- 企业号码前缀:
9{9位数字}
- 坐席分机号:
{4位数字}
示例
"01067654637" # 座机号
"13676546374" # 手机号
分机号码(Extension)
- 非0数字开头的四位数字:
[1-9]\d{3}
示例
"8001" # 分机号码
队列ID(QueueId)
- 9开头的4位数字:
9\d{3}
坐席ID(AgentId)
- 数字:
\d+
- 最长32位
坐席工号(WorkId)
- 数字或字符:
\w+
- 最长32位
时间戳(Timestamp)
- 使用UTC时间
- 格式:Unix Time,即从“1970-01-01 00:00:00.000”至今的毫秒数。
鉴权方式
服务端接口鉴权
- 所有接口使用 HTTPS 加密
- Sign:
SHA1(Sid + AuthToken + Timestamp)
- Sid: 账号
- AuthToken: 鉴权token
- Timestamp: 时间戳,10分钟内有效
- 参数(URL Query String)
- Timestamp
- Sid
- Sign
示例
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平台外呼时也需要一个外显号码,并且,会按以下顺序选号:
- 优先使用外呼时指定的中继号;
- 使用座席的默认外显号码;
- 使用应用的默认外显号码;
- 以上都不满足的情况下,系统随机选号。
示例
请求
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 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
ErrCode | string | 非必须 | 响应码 | mock: 000000 | |
ErrDesc | string | 非必须 | 响应描述 | mock: OK | |
Result | object | 非必须 | 响应结果 | ||
├─ SpNumbers | string [] | 非必须 | 中继号列表 | item 类型: string | |
├─ | 非必须 | ||||
├─ DefSpNumber | string | 非必须 | 当前配置的默认中继号 | 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 |
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
DefSpNumber | string | 非必须 | 默认使用第一个中继号,可以是中继号列表中的任何一个号码 | mock: 057126200670 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
ErrCode | string | 非必须 | 响应码 | mock: 000000 | |
ErrDesc | string | 非必须 | 响应描述 | mock: OK | |
Result | string | 非必须 | 响应结果 |
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 |
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
ErrCode | string | 非必须 | 响应码 | mock: 000000 | |
ErrDesc | string | 非必须 | 响应描述 | mock: OK | |
Result | string | 非必须 | 响应结果 | mock: |
04.创建座席
基本信息
Path: /ccapi/v2/agents
Method: POST
接口描述:
概述
创建座席。
Udesk CC-PaaS基础对象关系如下图所示:
- 一个应用可以创建多个座席、队列、分机;
- 一个座席必须至少在一个队列中;
- 一个座席只能绑定一个同类型分机(sip或webrtc);
- 座席只有绑定分机后,才可以接听或外呼;
- 如果应用已开通网页电话功能(webrtc),且'IsCreateExtension'参数置为'true',那么当创建座席时,会同时创建两种类型(webrtc和sip)的分机,并与该座席绑定。
示例
请求
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 |
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
AgentId | string | 必须 | 座席ID | mock: 197 | |
WorkId | string | 必须 | 座席工号 | mock: 191 | |
Name | string | 非必须 | 座席姓名 | mock: Li | |
Mobile | string | 非必须 | 座席手机号 | mock: 18512520714 | |
string | 非必须 | 座席Email | mock: 123@qq.com | ||
Role | string | 非必须 | 可以是agent, leader,默认为agent | mock: agent | |
Enable | boolean | 非必须 | true:启用,默认启用 | mock: false | |
IsCreateExtension | integer | 非必须 | 创建并绑定座席分机 | ||
WrapUpTime | integer | 非必须 | 呼入整理时间 | ||
OutWrapUpTime | integer | 非必须 | 呼出整理时间 | ||
AssistantAccessRight | integer | 非必须 | 助手使用权限 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
ErrCode | string | 非必须 | 响应码 | mock: 000000 | |
ErrDesc | string | 非必须 | 响应描述 | mock: OK | |
Result | object | 非必须 | 如果同时绑定分机 | ||
├─ Extension | string | 非必须 | 分机号码 | mock: 1002 | |
├─ Password | string | 非必须 | 分机密码 | mock: 1002 | |
├─ AgentId | string | 非必须 | 坐席ID | mock: 197 | |
├─ Number | string | 非必须 | 中继号 | mock: 057126200670 | |
├─ ExtenInfos | string [] | 非必须 | 分机号列表 | 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 |
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
AgentId | string | 非必须 | 坐席ID | mock: 724 | |
WorkId | string | 非必须 | 任务ID | mock: 11 | |
Name | string | 非必须 | 坐席姓名 | ||
Mobile | string | 非必须 | 坐席手机号 | mock: 17600364320 | |
string | 非必须 | 坐席邮箱 | |||
Role | string | 非必须 | 备注 | ||
Enable | boolean | 非必须 | 是否开启 | mock: false | |
WrapUpTime | integer | 非必须 | 呼入整理时间 | ||
OutWrapUpTime | integer | 非必须 | 呼出整理时间 | ||
AssistantAccessRight | integer | 非必须 | 助手使用权限 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
ErrCode | string | 非必须 | 响应码 | mock: 000000 | |
ErrDesc | string | 非必须 | 响应描述 | mock: ok | |
Result | string | 非必须 | 响应结果 |
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 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
ErrCode | string | 非必须 | 响应码 | mock: 000000 | |
ErrDesc | string | 非必须 | 响应描述 | mock: OK | |
Result | object | 非必须 | 响应结果 | ||
├─ CurrPage | number | 非必须 | 当前页数 | mock: 1 | |
├─ PageSize | number | 非必须 | 每页显示数量 | mock: 10 | |
├─ Total | number | 非必须 | 总数量 | mock: 100 | |
├─ TotalPage | number | 非必须 | 总页数 | mock: 10 | |
├─ AgentList | object [] | 非必须 | 坐席列表 | item 类型: object | |
├─ AppId | string | 非必须 | 应用ID | mock: 4b8dc715-05e0-4340-6cae-a6e3c39a6012 | |
├─ AgentId | string | 非必须 | 坐席ID | mock: 112 | |
├─ WorkId | string | 非必须 | 任务ID | mock: 111 | |
├─ Name | string | 非必须 | 坐席姓名 | mock: test | |
├─ Mobile | string | 非必须 | 坐席手机号 | mock: 17600364320 | |
string | 非必须 | 坐席邮箱 | mock: test@qq.com | ||
├─ Role | string | 非必须 | 备注 | mock: "" | |
├─ Queues | string [] | 非必须 | 坐席队列列表 | item 类型: string | |
├─ | 非必须 | ||||
├─ QueuesNames | string [] | 非必须 | 队列名称列表 | item 类型: string | |
├─ | 非必须 | ||||
├─ Extensions | string [] | 非必须 | 分机号列表 | item 类型: string | |
├─ | 非必须 | ||||
├─ DefSpNumber | string | 非必须 | 默认中继号 | mock: c39a6012 | |
├─ State | number | 非必须 | 状态 | mock: 1 | |
├─ ExtState | string | 非必须 | 默认分机状态 | mock: 0 | |
├─ WrapUpTime | string | 非必须 | 呼入整理时间 | mock: 0 | |
├─ OutWrapUpTime | string | 非必须 | 呼出整理时间 | mock: 0 | |
├─ Enable | string | 非必须 | 是否开启 | mock: false | |
├─ ExtenInfos | object [] | 非必须 | 分机号列表信息 | item 类型: object | |
├─ Number | string | 非必须 | 中继号 | mock: 94286518751002 | |
├─ Extension | string | 非必须 | 分机号 | mock: 1002 | |
├─ Password | string | 非必须 | 分机密码 | mock: eewz | |
├─ SignalType | string | 非必须 | 信号类型 | 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 |
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
AgentId | string | 必须 | 座席ID | mock: 10031 | |
WorkId | string | 非必须 | 任务ID | ||
Name | string | 非必须 | 坐席姓名 | ||
Mobile | string | 非必须 | 坐席手机号 | ||
string | 非必须 | 坐席邮箱 | |||
Role | string | 非必须 | 备注 | ||
Queues | string [] | 非必须 | 队列 | item 类型: string | |
├─ | 非必须 | ||||
QueuesNames | string [] | 非必须 | 队列名称 | item 类型: string | |
├─ | 非必须 | ||||
Extensions | string [] | 必须 | 分机号码列表 | item 类型: string | |
├─ | 非必须 | ||||
State | integer | 非必须 | 座席状态类型 | ||
ExtState | integer | 非必须 | 绑定的分机状态 | ||
WrapUpTime | integer | 非必须 | 呼入整理时间 | ||
OutWrapUpTime | integer | 非必须 | 呼出整理时间 | ||
Enable | boolean | 非必须 | 是否开启 | ||
AssistantAccessRight | integer | 非必须 | 助手使用权限 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
ErrCode | string | 非必须 | 响应码 | mock: 000000 | |
ErrDesc | string | 非必须 | 相应描述 | mock: OK | |
Result | string | 非必须 | 响应结果 | 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 |
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
Extensions | string [] | 必须 | 分机号码列表 | item 类型: string | |
├─ | 非必须 | ||||
AgentId | string | 必须 | 座席ID | mock: 62 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
ErrCode | string | 非必须 | 响应码 | mock: 000000 | |
ErrDesc | string | 非必须 | 响应描述 | mock: OK | |
Result | string | 非必须 | 响应结果 | 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 |
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
Extension | string | 必须 | 分机号码 | mock: 1002 | |
Password | string | 非必须 | 分机密码 | ||
Number | string | 非必须 | 坐席使用的sip账号 | ||
SignalType | integer | 非必须 | 分机类型 | mock: 0:sip,1:webrtc |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
ErrCode | string | 非必须 | 响应码 | mock: 000000 | |
ErrDesc | string | 非必须 | 响应描述 | mock: OK | |
Result | string | 非必须 | 响应结果 | mock: |
10.创建分机
基本信息
Path: /ccapi/v2/extensions
Method: POST
接口描述:
概述
创建分机。
分机分为两种类型:0(sip,对应sip话机方式),1(webrtc,对应网页电话方式);
注意:
- 分机密码由系统生成,创建时不能指定;
- 分机号:由四个字符(0~9,且首位必须是1)组成的字符串;
- 十位固定前缀加上分机号,组成分机账号,一共14位。
示例
请求
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 |
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
Extension | string | 必须 | 4位数 分机号 | mock: 1032 | |
Password | string | 非必须 | 分机密码 | mock: 802411d4 | |
SignalType | integer | 非必须 | 分机类型:0(sip),1(webrtc) | mock: 0 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
ErrCode | string | 非必须 | 响应码 | mock: 000000 | |
ErrDesc | string | 非必须 | 响应描述 | mock: OK | |
Result | object | 非必须 | 响应结果 | ||
├─ Extension | string | 非必须 | 分机号 | mock: 1002 | |
├─ Password | string | 非必须 | 分机密码 | mock: 802411d4 | |
├─ Number | string | 非必须 | 分机账号 | mock: "93000077121002" | |
├─ SignalType | integer | 非必须 | 分机类型 | 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 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
ErrCode | string | 非必须 | 响应码 | mock: 000000 | |
ErrDesc | string | 非必须 | 响应描述 | mock: OK | |
Result | object | 非必须 | 响应结果 | ||
├─ Queues | object [] | 非必须 | 队列列表 | item 类型: object | |
├─ QueueId | string | 非必须 | 队列ID | mock: 9001 | |
├─ Name | string | 非必须 | 队列名称 | mock: 管理员测试 | |
├─ Strategy | number | 非必须 | 队列分配策略 | mock: 0 | |
├─ Timeout | number | 非必须 | 排队等待超时时间 | mock: 0 | |
├─ WaitMusic | string | 非必须 | 排队等待时播放的音乐 | 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 |
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
QueueId | string | 非必须 | 队列ID | mock: 9008 | |
QueueName | string | 非必须 | 队列名称 | mock: 测试创建队列007 | |
WaitMusic | string | 非必须 | 排队等待时播放的音乐 | mock: |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
ErrCode | string | 非必须 | 响应码 | mock: 000000 | |
ErrDesc | string | 非必须 | 响应描述 | mock: OK | |
Result | string | 非必须 | 响应结果 | 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 |
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
QueueId | string | 必须 | 队列ID | mock: 9009 | |
QueueName | string | 非必须 | 队列名称 | mock: 测试创建队列007 | |
Strategy | integer | 非必须 | 队列分配策略 | ||
Timeout | integer | 非必须 | 排队等待超时时间 | ||
WaitMusic | string | 非必须 | 排队等待时播放的音乐 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
ErrCode | string | 非必须 | 响应码 | mock: 000000 | |
ErrDesc | string | 非必须 | 响应描述 | mock: OK | |
Result | string | 非必须 | 响应结果 | 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 |
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
QueueId | string | 必须 | 队列ID | mock: 9009 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
ErrCode | string | 非必须 | 响应码 | mock: 000000 | |
ErrDesc | string | 非必须 | 响应描述 | mock: OK | |
Result | string | 非必须 | 响应结果 | 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 |
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
QueueId | string | 必须 | 队列ID | mock: 9009 | |
AgentIds | string [] | 必须 | 座席ID列表 | item 类型: string | |
├─ | 非必须 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
ErrCode | string | 非必须 | 响应码 | mock: 000000 | |
ErrDesc | string | 非必须 | 响应描述 | mock: OK | |
Result | string | 非必须 | 响应结果 | 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 |
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
AgentId | string | 必须 | 座席ID | mock: 1443 | |
Queues | string [] | 必须 | 队列ID列表 | item 类型: string | |
├─ | 非必须 | ||||
IsFull | integer | 非必须 | 是否全量更新 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
ErrCode | string | 非必须 | 响应码 | mock: 000000 | |
ErrDesc | string | 非必须 | 响应描述 | mock: OK | |
Result | string | 非必须 | 响应结果 | 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 |
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
AgentId | string | 必须 | 座席ID | mock: 1443 | |
Queues | string [] | 必须 | 队列ID | item 类型: string | |
├─ | 非必须 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
ErrCode | string | 非必须 | 响应码 | mock: 000000 | |
ErrDesc | string | 非必须 | 响应描述 | mock: OK | |
Result | string | 非必须 | 响应结果 | 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 |
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
subscriptions | object | 必须 | |||
├─ callback | string | 必须 | 回调地址 | mock: "http://ip:port" | |
├─ events | string [] | 必须 | 事件名称列表(参考备注) | item 类型: string | |
├─ | 非必须 | ||||
├─ name | string | 必须 | 订阅名称 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
ErrCode | string | 非必须 | 响应码 | mock: 000000 | |
ErrDesc | string | 非必须 | 响应描述 | mock: OK | |
Result | object | 非必须 | 响应结果 | ||
├─ sub_succ | object | 非必须 | 订阅结果 成功 | ||
├─ subid | integer | 非必须 | id | ||
├─ name | string | 非必须 | 订阅名称 | ||
├─ sub_fail | string [] | 非必须 | 订阅结果 失败 | 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 |
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
callback | string | 必须 | 回调地址 | ||
name | string | 必须 | 订阅名称 | ||
events | string [] | 必须 | 事件列表 | item 类型: string | |
├─ | 非必须 | ||||
enable | boolean | 必须 | 订阅标志 true:打开;false:关闭。 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
ErrCode | string | 非必须 | 响应码 | ||
ErrDesc | string | 非必须 | 响应描述 | ||
Result | object | 非必须 | 响应结果 | ||
├─ ymtest111 | number | 非必须 | 订阅名称&事件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 |
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
ErrCode | string | 非必须 | 响应码 | mock: 000000 | |
ErrDesc | string | 非必须 | 响应描述 | mock: OK | |
Result | string [] | 非必须 | 响应结果 | 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 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
ErrCode | string | 非必须 | 响应码 | ||
ErrDesc | string | 非必须 | 响应描述 | ||
Result | object | 非必须 | 响应结果 | ||
├─ callback | string | 非必须 | 回调地址 | mock: http://ip:port | |
├─ enable | string | 非必须 | 订阅状态 | mock: true启用;false禁用 | |
├─ events | string [] | 非必须 | 事件 | item 类型: string | |
├─ | 非必须 | ||||
├─ name | string | 非必须 | 租户的名字 |
22.座席签入
基本信息
Path: /ccapi/v2/agent/login
Method: POST
接口描述:
概述
签入指定座席。
注意:
- 只有签入的座席才能接听或者外呼;
- 没有绑定分机的座席不能签入;
- 前端SDK的‘状态置为空闲、离线’操作附带签入、签出操作。
示例
请求
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_id | string | 必须 | 座席ID | mock: 10032 | |
work_id | string | 非必须 | 座席工号 | mock: 22 | |
queue_ids | string [] | 非必须 | 队列标识数组(专用于向NSQ上报) | item 类型: string | |
├─ | 非必须 | ||||
state | integer | 非必须 | 座席上线后的状态,0: 'Idle', 1: 'Waiting' |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
ErrCode | string | 非必须 | 响应码 | ||
ErrDesc | string | 非必须 | 响应描述 | ||
msg_id | string | 非必须 | 签入时发送过来的MsgId | ||
results | string | 非必须 | 响应结果 | ||
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_id | string | 必须 | 座席ID | mock: 10032 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
ErrCode | string | 非必须 | 响应码 | ||
ErrDesc | string | 非必须 | 响应描述 | ||
msg_id | string | 非必须 | 签出时发送过来的MsgId | ||
results | string | 非必须 | 响应结果 | ||
data | string | 非必须 | 数据 |
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 |
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
caller | string | 必须 | 要回呼的目标客户号码 | ||
called | string | 必须 | 中继号码 | ||
called_display | string | 必须 | 显示号码(通常也为中继号) | ||
variables | string | 非必须 | 随路自定义变量(可在IVR中作为变量配置使用) "[{\"key/": \"extemalNumber\",\"type\":\"string\",\"value\":\" 13800000000\"}]" |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
code | string | 非必须 | 返回码 | ||
message | string | 非必须 | 错误信息 | ||
results | string | 非必须 | 响应结果 |
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 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
ErrCode | string | 必须 | 响应码 | mock: 000000 | |
ErrDesc | string | 必须 | 响应描述 | mock: OK | |
Result | string | 非必须 | 响应结果 | 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 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
---|---|---|---|---|---|
ErrCode | string | 必须 | 响应码 | mock: 000000 | |
ErrDesc | string | 必须 | 响应描述 | mock: OK | |
Result | string | 非必须 | 响应结果 | mock: |