接口鉴权基于HTTP Basic Authorization
HTTP头字段
| 字段 | 说明 |
| Authorization | Basic Authorization验证信息 |
Authorization生成方式:
"Basic " + Base64(account + ":" + password)
account是账号,password是token
例:
Authorization: Basic MTExMTE6MTExMTE=
1 坐席状态设置
1.1 概述
接口地址(Base URL)
/Accounts/{accountSid}/Applications/{applicationSid}/ccpaas/AgentStatus
请求头字段
Accept: application/json
Content-Type: application/json;charset=utf-8
Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
鉴权说明
基于账号Basic Authorization鉴权
1.2 坐席登入
请求地址
/Accounts/{accountSid}/Applications/{applicationSid}/ccpaas/AgentStatus/login
请求参数
参数 | 约束 | 说明 |
agentNo | M | 坐席工号 |
workStatus | M | 坐席初始状态。1:就绪;2:未就绪; |
phoneType | M | 话机类型。1:SIP话机;2:PSTN电话 |
请求消息示例
{
"agentNo":"1111",
"workStatus":"1",
"phoneType":"1"
}
响应参数
参数 | 说明 |
statusCode | 状态码 |
statusMsg | 状态描述 |
statusCode取值 | statusMsg | 说明 |
"00000" | "success" | 成功 |
"00001" | "not registered" | 失败,原因是SIP终端未注册 |
响应消息示例
{
"statusCode":"00000",
"statusMsg":
"success"
}
1.3 坐席登出
请求地址
/Accounts/{accountSid}/Applications/{applicationSid}/ccpaas/AgentStatus/logout
请求参数
参数 | 约束 | 说明 |
agentNo | M | 坐席工号 |
phoneType | O | 话机类型。1:SIP话机;2:PSTN电话 |
1.4 坐席就绪(置闲)
请求地址
/Accounts/{accountSid}/Applications/{applicationSid}/ccpaas/AgentStatus/ready
请求参数
1.5 坐席暂停(置忙)
请求地址
/Accounts/{accountSid}/Applications/{applicationSid}/ccpaas/AgentStatus/pause
请求参数
1.6 坐席状态查询
请求地址
/Accounts/{accountSid}/Applications/{applicationSid}/ccpaas/AgentStatus/query
请求参数
参数 | 约束 | 说明 |
agentNo | O | 坐席工号。如果填写,则查询坐席的状态 |
queueId | O | 队列id。如果填写,则查询与此队列关联的所有坐席的状态 |
响应参数
参数 | R | 说明 |
statusCode | M | "00000"成功 |
statusMsg | O | 状态描述 |
data | O | JOSN数组,描述每个坐席状态的列表 |
agentNo | O | 坐席工号 |
workStatus | O | 坐席状态。0:未登录;1:就绪;2:非就绪; |
|
|
|
sipNumber | O | 坐席SIP号码 |
sipStatus | O | 坐席SIP状态:0:话机终端未注册;1:话机终端已注册 |
sipContact | O | 坐席SIP话机联系地址 |
sipUserAgent | O | SIP终端类型 |
registerTime | O | SIP(最近)注册时间 |
validTime | O | SIP注册有效截至时间 |
|
|
|
callState | O | 坐席呼叫状态:idle,ringing,connected |
响应消息示例
{
"statusCode": "00000",
"statusMsg": "succ",
"data": [
{
"agentNo":"3001",
"workStatus":"1",
"sipNumber":"7001000093001",
"sipStatus":"1",
"sipContact":"sip:218.241.227.35:1026",
"sipUserAgent":"MicroSIP/3.19.31",
"registerTime":"2020-06-30 20:20:12",
"validTime":"2020-06-30 20:25:12",
"callState": "idle"
},
{
"agentNo":"3002",
"workStatus":"1",
"sipNumber":"70010000930021",
"sipStatus":"1",
"sipContact":"sip:218.241.227.36:1026",
"sipUserAgent":"MicroSIP/3.19.31",
"registerTime":"2020-06-30 20:20:23",
"validTime":"2020-06-30 20:25:23",
"callState": "idle"
}
]
}
2 事件推送接口
2.1 概述
推送消息示例
{
"messageType": "callEvent",
"eventName": "initiated",
"appSid": "3000000",
"agentNo": "2002",
"data":
{
"conversationSid":"...",
...
}
}
推送消息根据事件类型分为两类
事件类型 | messageType |
呼叫事件 | callEvent |
坐席状态事件 | statusEvent |
2.2 呼叫事件(CallEvent)
参数说明如下:
参数 | 说明 |
eventName | initiated, ringing, answered, completed, failed |
appSid | 应用id |
agentNo | 坐席号 |
agentNumber | 坐席号码 |
conversationSid | 会话id |
callSid | 呼叫id |
failedCause | failed, no-answer, canceled,time-out |
completedCause | time-limit |
callType | 呼叫类型。1:拨号呼入、2:后台外呼、3:拨号外呼、4:点击外呼 |
callSubtype | 呼叫子类型。1-呼叫用户;2-呼叫坐席 |
callState | 呼叫状态:idle,ringing,connected, |
userNumber | 用户号码。来电呼入或外呼的用户号码 |
userArea | 用户号码归属地信息 |
isBridged | callStatus="answered"且isBridged="0"表示应答未桥接 |
coAgentNo | 合作坐席,用于咨询转接等场景 |
userData | 自定义数据 |
timestamp | 时间戳 |
2.2.1 eventName与failedCause说明
eventName值 | 说明 |
"initiated" | 呼叫发起 |
"ringing" | 被叫振铃 |
"answered" | 被叫应答 |
"completed" | 呼叫结束 |
"failed" | 呼叫失败 |
failedCause值 | 说明 |
"failed" | 呼叫失败-呼出失败 |
"no-answer" | 呼叫失败-无应答 |
"canceled" | 呼叫失败-取消 |
"time-out" | 呼叫失败-超时 |
2.2.2 callType与callSubtype组合
callSubtype/callType
cst/ct | 1-拨号呼入 | 2-后台外呼 | 3-拨号外呼 | 4-点击外呼 |
1-呼叫用户 |
|
| M | M |
2-呼叫坐席 | M | M |
| O |
3-转接 | O | O | O | O |
4-咨询 | O | O | O | O |
2.3 坐席状态事件 StatusEvent
参数说明如下:
参数 | 说明 |
eventName | "login","pause","ready","autoReady","completed","unregistered" |
appSid | 应用id |
agentNo | 坐席号 |
|
|
workStatus | 座席工作状态:"ready","pause" |
pauseCause | 暂停原因(workStatus=pause时有效) |
readyCause | 就绪原因(workStatus=ready时有效) |
timestamp | 时间戳 |
事件说明
事件 | eventName值 | workStatus值 |
座席登入 | "login" | 由座席login操作传入的workStatus参数值确定 |
座席暂停 | "pause" | "pause" |
座席就绪 | "ready" | "ready" |
通话结束 | "completed" | "pause"(需要座席手动就绪) |
SIP终端未注册 | "unregistered" | 空(保持当前状态),或"pause"(需要座席手动恢复就绪) |
3 坐席呼叫控制
3.1 概述
接口地址(Base URL)
/Accounts/{accountSid}/Applications/{applicationSid}/ccpaas/agentCall
请求头字段
Accept: application/json
Content-Type: application/json;charset=utf-8
Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
鉴权说明
基于主账号Basic Authorization鉴权
3.2 基本呼叫控制
3.2.1 坐席外呼
调用坐席外呼(makeCall)的前提是坐席已登录,且已确定了坐席接听方式及接听号码。详见"坐席状态管理接口"
/Accounts/{accountSid}/Applications/{applicationSid}/ccpaas/agentCall/makeCall
请求参数
参数 | 约束 | 说明 |
agentNo | 必选 | 坐席工号 |
userNumber | 必选 | 用户号码 |
userCli | 可选 | 用户侧显号标识 |
agentCli | 可选 | 座席侧显号标识 |
userData | 可选 | 自定义数据,支持英文字母和数字,长度不超过256 |
ringback | 可选 | 是否透传被叫侧回铃音:"true" 透传(默认) "false" 不透传 |
请求消息示例
{
"userNumber":"13600000001",
"agentNo":"1111"
}
响应
参数 | 说明 |
statusCode | "00000"成功 |
statusMsg | 状态描述 |
conversationSid | 会话id |
响应示例
{
"statusCode":"00000",
"statusMsg":"success",
"conversationSid":"CV111111111111"
}
3.2.1a 坐席外呼(免登录)
说明:调用坐席外呼(免登录)接口无需坐席登录(甚至无需指定坐席工号)。但需指定坐席接听话机类型,并可以直接指定PSTN接听号码。
/Accounts/{accountSid}/Applications/{applicationSid}/ccpaas/agentCall/makeCallDct
请求参数
参数 | 约束 | 说明 |
agentNo | 条件 | 坐席工号。 |
phoneType | 可选 | 坐席话机类型。0:PSTN电话(默认)1:SIP话机; |
agentNumber | 条件 | 坐席PSTN号码 (话机类型为PSTN电话时有意义),agentNo为空时必填 |
userNumber | 必选 | 用户号码 |
userCli | 可选 | 用户侧显号标识 |
agentCli | 可选 | 座席侧显号标识 |
userData | 可选 | 自定义数据,支持英文字母和数字,长度不超过256 |
ringback | 可选 | 是否透传被叫侧回铃音:"true" 透传(默认) "false" 不透传 |
|
|
|
answerPrompt | 可选 | 应答提示音,接通后播放。 |
maxDuration | 可选 | 通话的最大时长,单位为秒。默认值空,不限制通话时长 |
lastMinPrompt | 可选 | 最后一分钟提示音 |
|
|
|
请求消息示例
{
"userNumber":"13600000001",
"agentNumber":"13810396688"
}
响应
参数 | 说明 |
statusCode | "00000"成功 |
statusMsg | 状态描述 |
conversationSid | 会话id |
响应示例
{
"statusCode":"00000",
"statusMsg":"success",
"conversationSid":"CV111111111111"
}
3.2.2 桥接呼叫
/Accounts/{accountSid}/Applications/{applicationSid}/ccpaas/agentCall/bridge
请求参数
参数 | 说明 |
agentNo | 坐席工号,该坐席话机已应答呼叫,未桥接 |
3.2.3 结束呼叫
/Accounts/{accountSid}/Applications/{applicationSid}/ccpaas/agentCall/releaseCall
请求参数
响应
参数 | 说明 |
statusCode | "00000"成功 |
statusMsg | 状态描述 |
3.3 呼叫保持/恢复
3.3.1 保持呼叫
/Accounts/{accountSid}/Applications/{applicationSid}/ccpaas/agentCall/holdCall
请求参数
参数 | 说明 |
agentNo | 坐席工号,该坐席必须在通话中 |
3.3.2 恢复呼叫
/Accounts/{accountSid}/Applications/{applicationSid}/ccpaas/agentCall/retrieveCall
请求参数
参数 | 说明 |
agentNo | 坐席工号,该坐席在通话中,且通话被保持 |
3.4 转接(盲转)
/Accounts/{accountSid}/Applications/{applicationSid}/ccpaas/agentCall/divertCall
针对正在通话中的呼叫。
请求参数
参数 | 约束 | 说明 |
agentNo | 必选 | 坐席工号,指示发起转移的坐席(该坐席在两方通话中) |
target | 必选 | 转接目标,取值为:座席工号、电话号码、队列号、 具体依赖于targetType |
targetType | 必选 | 目标类型。取值为: 1-座席,2-电话号码;3-队列; |
3.5 咨询
/Accounts/{accountSid}/Applications/{applicationSid}/ccpaas/agentCall/consultationCall
请求参数
参数 | 约束 | 说明 |
agentNo | 必选 | 坐席工号,指示发起咨询的坐席(该坐席在两方通话中) |
target | 必选 | 咨询目标。实际可能是座席工号或电话号码。具体依赖于targetType |
targetType | 必选 | 目标类型。取值为: 1-座席工号,2-电话号码; |
3.5.1 咨询后转接
/Accounts/{accountSid}/Applications/{applicationSid}/ccpaas/agentCall/transferCall
请求参数
参数 | 说明 |
agentNo | 坐席工号,该坐席在咨询通话中,且为咨询方 |
3.5.2 咨询后连回
/Accounts/{accountSid}/Applications/{applicationSid}/ccpaas/agentCall/reconnectCall
请求参数
参数 | 说明 |
agentNo | 坐席工号,该坐席在咨询通话中,且为咨询方 |
3.5.3 咨询后三方
/Accounts/{accountSid}/Applications/{applicationSid}/ccpaas/agentCall/conferenceCall
请求参数
参数 | 说明 |
agentNo | 坐席工号,该坐席在咨询通话中,且为咨询方 |
3.5.4 三方中挂断指定坐席
/Accounts/{accountSid}/Applications/{applicationSid}/ccpaas/agentCall/disconnectAgent
请求参数
参数 | 说明 |
agentNo | 坐席工号,该坐席在三方通话中(若坐席在两方通话中则结束呼叫) |