1. 概述
除了CTI接口(支持从坐席客户端发起和控制呼叫)之外,CC PaaS还支持后端开放接口(OSA)。
通过OSA,业务系统可以在后台实时处理呼入,发起外呼,根据业务需求控制呼叫转接流程,可把CC功能无缝嵌入企业的业务流程中。
基于OSA,可以实现网页回呼、预测式外呼、定制化转接服务等业务场景。
2 REST接口
客户应用系统主动向CC PaaS平台发送REST请求,命令CC PaaS平台执行指定命令,比如发起外呼等等。
2.1 makeCall - 发起外呼
客户应用提交用户号码命令CC PaaS平台发起外呼。外呼用户成功后,可以直接转队列或坐席。
如果需要后继控制,比如IVR交互等可以通过回调接口完成。
CC PaaS平台收到makecall请求后会立即发起呼叫,但在应用调用超限时会返回失败且不执行呼叫。
应用自身须根据排队状态以及超限情况调整调用后台外呼接口的频率
REST URL
/Accounts/{accountSid}/Applications/{applicationSid}/ccpaas/osa/makeCall
请求参数
名称 | R | 描述 |
---|---|---|
userNumber | M | 用户号码 |
userCli | O | 用户侧显示号码 |
userData | O | 自定义数据,长度不超过256 |
greetPrompt | O | 接通用户后,向用户播放的提示音。 |
maxDuration | O | 通话的最大时长,单位为秒 |
agentNo | O | 坐席工号 |
queueId | O | 队列id |
callback | O | 回调地址 |
请求示例
POST /Accounts/ac111111/Applications/ap111111/ccpaas/osa/makeCall HTTP/1.1Content-Type: application/json{ "userNumber":"13000000001", "queueId":"11"}
返回参数
名称 | R | 描述 |
---|---|---|
statusCode | M | 外呼返回状态码,"00000"表示成功 |
statusMsg | M | 外呼返回状态描述 |
conversationSid | O | 唯一会话标识 |
返回示例{ "statusCode":"00000", "statusMsg":"success", "conversationSid":"19100110000010000000000000000001"}
3 回调接口
当呼叫执行到设定触发点触发相应的呼叫事件时,CC PaaS平台向应用侧发送回调请求,提交相应的呼叫信息,并请求应用返回相应命令对呼叫进行后继处理。
3.1 回调请求
请求参数(包体JSON参数)
参数 | R | 说明 |
---|---|---|
eventType | M | 呼叫事件类型。"callin","callout","dtmf","queued" |
appSid | M | 应用id |
conversationId | M | 唯一会话标识 |
userNumber | M | 用户的号码 |
userData | O | 自定义数据 |
eventType="callin" 呼入 | ||
direction | M | 0:用户呼入,1:外呼用户 |
accessNumber | C | 平台接入号(线路号码) |
eventType="dtmf" 收号 | ||
digits | O | 收号结果(不含结束符) |
eventType="queued" 排队结果回调 | ||
queueResult | M | 最终排队结果(接续坐席/挂机/退出/队列满/...) |
queueId | O | 队列id,仅在呼叫实际排队后有效 |
queueTime | O | 当前呼叫排队时间,仅在呼叫实际排队后有效 |
currentWaitCalls | O | 当前队列中排队的呼叫数目 |
callin 呼入
用户呼入后,CC PaaS 平台向应用侧发送回调请求,请求应用返回响应命令对呼叫进行后继处理。
应用可返回的回调响应命令包括IVR命令,排队命令等。
请求参数(包体JSON参数)
参数 | R | 说明 |
---|---|---|
eventType | M | 呼叫事件类型。"callin" |
appSid | M | 应用id |
conversationId | M | 唯一会话标识 |
userNumber | M | 用户的号码 |
direction | M | 0:用户呼入,1:外呼用户 |
accessNumber | O | 平台接入号(线路号码) |
userData | O | 自定义数据 |
请求示例
POST /ivrreport HTTP/1.1Content-Type: application/json{ "appSid":"a1111111111111111111111111111111", "conversationSid":"CV10000201909011020300000000000000", "userNumber":"13000000001", }
callout 外呼
通过OSA REST makeCall外呼用户成功后(如果未设转接队列/坐席),CC PaaS 平台向应用侧发送回调请求,请求应用返回响应命令对呼叫进行后继处理。
应用可返回的响应命令包括IVR命令,排队命令。
请求参数(包体JSON参数)
参数 | R | 说明 |
---|---|---|
eventType | M | 呼叫事件类型。"callout" |
appSid | M | 应用id |
conversationId | M | 唯一会话标识 |
userNumber | M | 用户的号码 |
userData | O | 自定义数据 |
请求示例
POST /ivrreport HTTP/1.1Content-Type: application/json{ "appSid":"a1111111111111111111111111111111", "conversationSid":"CV10000201909011020300000000000000", "userNumber":"13000000001", }
dtmf 收号结果
参数说明
参数 | R | 说明 |
---|---|---|
eventType | M | 呼叫事件类型。"dtmf" |
appSid | M | 应用id |
conversationId | M | 唯一会话标识 |
userNumber | M | 用户的号码 |
userData | O | 自定义数据 |
digits | O | 收号结果(不含结束符) |
回调消息:
POST /gather HTTP/1.1Content-Type: application/json{ "appSid":"a1111111111111111111111111111111", "conversationSid":"CV10000201909011020300000000000000", "userNumber":"13000000001", "digits":"1"}
queued 排队结束
请求参数
参数 | R | 说明 |
---|---|---|
eventType | M | 呼叫事件类型。"queued" |
appSid | M | 应用id |
conversionSid | M | 唯一呼叫标识 |
userNumber | M | 用户号码 |
queueResult | M | 最终排队结果(接续坐席/挂机/退出/队列满/...) |
queueId | O | 队列id,仅在呼叫实际排队后有效 |
queueTime | O | 当前呼叫排队时间,仅在呼叫实际排队后有效 |
currentWaitCalls | O | 当前队列中排队的呼叫数目 |
userData | O | 自定义数据 |
queueResult取值说明
取值 | 说明 |
---|---|
bridging | 接续坐席 |
hangup | 用户挂机 |
leave | 退出 |
queue-full | 队列满 |
error | 错误 |
POST /action HTTP/1.1Content-Type: application/json{ "appSid":"a1111111111111111111111111111111", "conversationSid":"CV10000201909011020300000000000000", "userNumber":"13000000001", "queueResult":"bridging", "queueId":"11", "queueTime":"10", "currentWaitCalls":"2"}
3.2 回调响应
收到平台的回调请求后,应用可以通过回调响应指示平台后继要执行的命令,例如放音、收号、转队列等。
gather - IVR收号命令
参数 | R | 说明 |
---|---|---|
action | M | 命令 "gather" |
prompt | O | 提示音 |
loop | O | 提示音播放次数 |
numDigits | O | 收号长度 |
timeout | O | 收号码间超时,单位秒,默认5秒 |
finishKey | O | 收号结束符,默认# |
callback | O | 回调地址(收号) |
示例:
{ "action":"gather", "promptvoice":"continue.wav", "loop": "2", "numDigits": "1", "callback": "http://test.com/gather"}
play - 放音
参数 | R | 说明 |
---|---|---|
action | M | 命令 "play" |
prompt | O | 提示音 |
示例:
{ "action":"play", "content":"bye.wav"}
注:放音命令结束后,系统挂断呼叫。
enqueue - 排队
参数 | R | 说明 |
---|---|---|
action | M | 命令 "enqueue" |
queueId | M | 队列id |
waitPrompt | O | 排队等候时向客户播放的提示音。默认不播放 |
callback | O | 回调地址(排队结束) |
示例:
{ "action":"enqueue", "queueId":"11", "waitPrompt":"wait.wav"}