• 沒有找到結果。

接口功能

用户通话结束后,语音通话平台通过此接口向SP推送通话的话单信息。短时间内有多 个通话结束时语音通话平台会将话单合并推送,每条消息最多携带50个话单。

请求方向

语音通话平台(客户端) → 客户服务器(服务端)

使用说明

● 前提条件

– SP在开发应用时,若需订阅话单通知,必须要提供话单接收URL(feeUrl),

并且确保URL能够正常处理语音通话平台发送的通知信息。

– 提供话单接收URL有以下两种方式:

提前通过应用管理向语音通话平台提交话单接收URL。

SP应用调用场景API时,填写feeUrl参数。

● 注意事项

– 若平台给SP推送话单后未收到成功响应,视为推送失败,会重新推送话单,

直至客户返回成功响应。平台最多重推6次,每次时间间隔1小时。若6次重推 后仍然推送失败,后台会生成话单文件,请联系华为云客服手动推送。

– 单个用户(一路呼叫)的话单通知是根据呼叫状态顺序推送的,一通通话会 推送一条话单。但同一个应用下,如果多个用户(多路呼叫)的通话结束时 间(callEndTime)相同,话单会合并在一起发送,最多不超过50条。

● 使用限制

语音通话平台推送话单信息给开发者应用,仅支持POST方式。

接口类型

2-21 接口类型说明 请求方法 POST

访问URI 开发者应用接收话单通知的URL 通信协议 HTTPS/HTTP

语音回呼场景请求参数

2-22 请求 Headers 参数说明 参数名称 是否

必选

参数类型 说明

Content-Type 是 String 固定填写为application/json;charset=UTF-8。

Authoriza

tion 是 String 固定填写为AKSK

realm="SDP",profile="UsernameToken",type="

Appkey"。

参数名称 是否 必选

参数类型 说明

X-AKSK 是 String 取值为UsernameToken Username="APP_Key的 值", PasswordDigest="PasswordDigest的值", Nonce="随机数", Created="随机数生成时间"。

● PasswordDigest:根据PasswordDigest = Base64(HMAC(appSecret, url+安全随机数 +时间戳))生成。其中,url使用客户设置的话 单推送URL,随机数需使用安全随机数。

● Nonce:客户发送请求时生成的一个随机数,

长度为1~128位,可包含数字和大小写字母。

例如:66C92B11FF8A425FB8D4CCFE0ED9ED1F。

● Created:随机数生成时间。采用标准UTC格 式,例如:2018-02-12T15:30:20Z。不同编程 语言中将UTC时间戳转换为普通时间时使用的 格式不同,部分语言可参考表2-23。

2-23 不同编程语言的时间格式

编程语言 时间格式

Java yyyy-MM-dd'T'HH:mm:ss'Z' PHP Y-m-d\TH:i:s\Z

Python %Y-%m-%dT%H:%M:%SZ C# yyyy-MM-ddTHH:mm:ssZ

Node.js toISOString().replace(/.[0-9]+\Z/, 'Z')

注:Node.js中,使用toISOString()转换后的时间格式去除毫秒后即 为本接口要求的时间格式。

2-24 请求 Body 参数说明

参数名称 是否必选 参数类型 说明

eventType 是 String(枚举) 该参数标识API事件通知的类型。取值范围如 下:

fee:话单事件

feeLst 否 FeeInfo[1-50

] 呼叫话单事件的信息,参数取值为列表,最大

50条。

当eventType参数为fee时携带。

FeeInfo

2-25 fee:话单事件

参数名称 是否必须 参数类型 描述

direction 是 Integer

(0-1) 通话的呼叫方向,以语音通话平台为 基准。

0表示呼出(外呼)

spId 是 String(1-3

2) 客户的云服务账号。

appKey 是 String(1-3

2) 应用的app_key。

icid 否 String(1-6

4) 呼叫记录的唯一标识。

bindNum 是 String(1-3

2) 发起此次呼叫的固话号码。

号码仅支持全局号码格式(包含国家 码),比如+8675528****02。

sessionId 是 String(1-2

56) 通话链路的唯一标识。

callerNum 是 String(1-3

2) 主叫号码,号码为全局号码格式(包

含国家码),比如+86138****0021。

当呼叫场景经过转接时,此参数对应 第一路呼叫的号显号码。

注:

● 语音回呼业务:

第一路呼叫是语音通话平台呼叫A,

callerNum为SP设置的主叫端来电显 示号码(displayNbr)。

calleeNum 是 String(1-3

2) 被叫号码,号码为全局号码格式(包

含国家码),比如+86138****0021。

当呼叫场景经过转接时,此参数对应 第一路呼叫的被叫号码。

注:语音回呼场景,第一路呼叫是语 音通话平台呼叫A,calleeNum为A号 码。

fwdDisplayNum 否 String(1-3

2) 转接呼叫时的显示号码,号码为全局

号码格式(包含国家码),比如 +86138****0021。

当呼叫场景经过转接时,此参数对应 第二路呼叫的固话号码。

注:

● 语音回呼业务:

第二路呼叫是语音通话平台呼叫B,

fwdDisplayNum为SP设置的被叫端来

参数名称 是否必须 参数类型 描述 fwdDstNum 否 String(1-3

2) 转接呼叫时的转接号码。号码仅支持

全局号码格式(包含国家码),比如 +86138****0021。

当呼叫场景经过转接时,此参数对应 第二路呼叫的被叫号码。

注:语音回呼场景,第二路呼叫是语 音通话平台呼叫B,fwdDstNum为B 号码。

fwdStartTime 否 String(1-1

28) 转接呼叫操作的开始时间。

该参数为UTC时间(+8小时为北京时 间),时间格式为“yyyy-MM-dd HH:mm:ss”。

fwdAlertingTim

e 否 String(1-1

28) 转接呼叫操作后的振铃时间。

该参数为UTC时间(+8小时为北京时 间),时间格式为“yyyy-MM-dd HH:mm:ss”。

fwdAnswerTime 否 String(1-1

28) 转接呼叫操作后的应答时间。

该参数为UTC时间(+8小时为北京时 间),时间格式为“yyyy-MM-dd HH:mm:ss”。

callEndTime 否 String(1-1

28) 呼叫结束时间。

该参数为UTC时间(+8小时为北京时 间),时间格式为“yyyy-MM-dd HH:mm:ss”。

fwdUnaswRsn 否 Integer 转接呼叫操作失败的Q850原因值。

详细说明参见附录1-Q850原因值说 明。

failTime 否 String(1-1

28) 呼入、呼出的失败时间。

该参数为UTC时间(+8小时为北京时 间),时间格式为“yyyy-MM-dd HH:mm:ss”。

ulFailReason 否 Integer 通话失败的拆线点。详细说明参见附 录2-呼叫拆线点说明。

sipStatusCode 否 Integer 呼入、呼出的失败SIP状态码。

callOutStartTim

e 否 String(1-1

28) Initcall的呼出开始时间

该参数为UTC时间(+8小时为北京时 间),时间格式为“yyyy-MM-dd HH:mm:ss”。

参数名称 是否必须 参数类型 描述 callOutAlerting

Time 否 String(1-1

28) Initcall的呼出振铃时间

该参数为UTC时间(+8小时为北京时 间),时间格式为“yyyy-MM-dd HH:mm:ss”。

callOutAnswerTi

me 否 String(1-1

28) Initcall的呼出应答时间

该参数为UTC时间(+8小时为北京时 间),时间格式为“yyyy-MM-dd HH:mm:ss”。

callOutUnaswRs

n 否 Integer Initcall的呼出失败的Q850原因值。

详细说明参见附录1-Q850原因值说 明。

recordFlag 否 Integer

(0-1) 该字段用于录音标识,参数值范围 如:

● 0:表示未录音

● 1:表示有录音 recordStartTime 否 String(1-1

28) 录音开始时间,时间格式为“yyyy-MM-dd HH:mm:ss”。

recordObjectNa

me 否 String(1-1

28) 录音文件名。

说明

参数值为空时,请访问

“recordFileDownloadUrl”参数携带的 录音文件下载地址下载录音文件。

recordBucketNa

me 否 String(1-1

28) 录音文件名所在的目录名。

说明

参数值为空时,请访问

“recordFileDownloadUrl”参数携带的 录音文件下载地址下载录音文件。

recordDomain 否 String(1-2

56) 存放录音文件的域名。

说明

参数值为空时,请访问

“recordFileDownloadUrl”参数携带的 录音文件下载地址下载录音文件。

recordFileDownl

oadUrl 否 String(1-2

56) 录音文件下载地址,可通过该URL在 浏览器中下载录音文件。

说明

使用该参数的场景请联系华为云客服获 取。

ttsPlayTimes 否 integer 应用TTS功能时,使用TTS的总次数。

预留参数,无需关注。

ttsTransDuratio

n 否 integer 应用TTS功能时,TTS Server进行TTS 转换的总时长。单位为秒。

参数名称 是否必须 参数类型 描述 serviceType 否 String(1-3

2) 携带呼叫的业务类型信息,取值范

围:

002:语音回呼 hostName 否 String(1-1

28) 该参数用于标识话单生成的服务器设 备对应的主机名。

userData 否 String(1-2

56) 用户附属信息,此参数的值与“语音 回呼场景API”中的"userData"参数 值一致。

接口样例

POST /status HTTP/1.1 Content-Length: xx

{"eventType":"fee","feeLst":[{"direction":

0,"spId":"CaaS_Test_01","appKey":"ka4kESI5s3YyurL1wpx63s9YnEm2","icid":"CAE-20190124110424-1201977 5","bindNum":"+86755****5678","sessionId":"[email protected] eicaas.com","callerNum":"+86138****0022","calleeNum":"+86138****0021","fwdDisplayNum":"+86138****002 2","fwdDstNum":"+86138****7021","fwdStartTime":"2019-01-24 03:04:31","fwdAlertingTime":"2019-01-24 03:04:36","fwdAnswerTime":"2019-01-24 03:04:38","callEndTime":"2019-01-24 03:04:49","fwdUnaswRsn":

0,"ulFailReason":0,"sipStatusCode":0,"callOutStartTime":"2019-01-24

03:04:24","callOutAlertingTime":"2019-01-24 03:04:27","callOutAnswerTime":"2019-01-24 03:04:31","callOutUnaswRsn":0,"recordFlag":0,"ttsPlayTimes":0,"ttsTransDuration":

0,"serviceType":"002","hostName":"callenabler245.huaweicaas.com"}]}

响应参数

接收到话单通知时,第三方服务器返回200响应,同时若携带表2-26中的响应参数,

系统则会根据resultcode参数值判断是否推送成功。

2-26 响应消息参数说明

参数名称 是否必选 参数类型 说明

resultcode 否 String(0-3

2) 请求返回的结果码。

● 0为成功

● 其他均为失败 resultdesc 否 String(0-1

28) 请求返回的结果描述。

响应示例HTTP/1.1 200 OK

Content-Type: application/json;charset=UTF-8 {"resultcode":"0","resultdesc":"Success"}

代码样例

前往代码样例查看。

常见问题

● 如何配置和接收呼叫状态和话单通知?地址是否支持http?

● 呼叫状态和话单通知什么时候推送?

● 呼叫状态和话单通知多个用户如何推送?

● 接收呼叫状态和话单通知后需要返回响应消息吗?

● 接收呼叫状态和话单通知,参数区分大小写吗?

● 语音通话的呼叫状态通知和话单通知支持重推吗?

● 语音通话的通话记录如何获取?

● 为什么没有收到呼叫状态通知和话单通知?