- 产品介绍
- 价格说明
- 快速入门
- 用户指南
- 开发指南
- API参考
-
常见问题
- 常见问题导航
-
产品咨询类
- 什么是语音通话?
- 语音通话可免费体验吗?
- 语音通话是否支持录音功能?
- 语音通话有通话时间限制吗?怎么设置自动挂机时间?
- 语音通话封禁规则
- 个体工商户和政府类项目能使用语音通话服务吗?
- 语音通话能实现多路通话同时进行吗?并发限制是多少?如何调整?
- 语音通话服务可以给物联网卡打电话吗?
- IAM用户能使用语音通话服务吗?
- 语音通话服务,给子账号添加IAM权限为何不生效?
- 语音通话是否有每天同一被叫呼叫频次限制、呼叫时间段限制、呼叫地区限制等限制?
- 是否支持国际语音通话服务?能否绑定或拨打中国香港、中国澳门、中国台湾及海外号码?
- 语音通话业务是否存在呼叫频次限制?
- 华为云智能话务机器人与 VoiceCall有什么不同?
- 华为云语音通话能否使用储值卡支付?
- 计费相关
-
服务开通相关
- 如何订购并开通语音通话服务?需要审核多久?
- 为什么语音通话开通服务时“立即申请”点击不了?
- 开通服务时,遇到报错该如何处理?
- 语音通话应用是否能修改、删除?
- 如果新建一个应用,需要重新申请该应用的固话号码吗?
- 语音通话最多可添加几个应用?需要添加更多的应用怎么办?
- 语音通话号码资源下发需要多久?
- 华为云语音通话服务中,导致企业审核审核不通过的原因有哪些?如何处理?
- 语音通话的企业管理中,添加了企业信息,多久能审核通过?如何查询审核结果?
- 语音通话添加企业时的“预估日通话次数”有最低限制吗?
- 添加企业后,是否支持修改或删除企业信息?
- 语音通话服务中,创建了多个应用,可以每个应用对应不同的开发者账号和密码吗?
- 添加号码时,遇到报错该如何处理?
- 已通过华为云企业实名认证的用户还需要在控制台添加企业信息吗?
- 为什么添加企业时经办人手持身份证照片不规范?
- 如果修改华为云账号的实名认证信息,是否影响语音通话的业务?
- 不再使用语音通话业务了,是否需要退订?如何退订?
-
号码相关
- 号码格式是什么?怎么填写?
- 语音通话是否支持固话号码及手机号码?如何申请?
- app_key、开发者账号、固话号码和CallEnabler业务号码(bindNbr)有什么特定的数量关系吗?
- 语音通话中来电显示什么号码?是否支持自定义来电显示号码?
- 语音通话的固话号码是否会根据接听号码所属地区而变动?是否可修改?
- 语音通话怎么进行号码标记?
- 语音通话的固话号码(displayNbr、displayCalleeNbr)是什么?如何获取?
- 添加企业中的“是否需要申请固话号码”要选择“是”还是“否”?
- 语音通话如何查看已申请的号码?
- 为什么终端上实际显示的号码和调用接口时携带的固话号码不一致?
- 语音通话一个华为云账号下的固话号码可否转给其它企业的华为云账号使用?
- 固话号码和绑定号码的归属地必须与企业归属地相同吗?
- 语音通话是否支持95号码?
- 语音通话可以申请多个号码吗?都可以申请哪些城市的号码?
- 语音通话如何退订号码?号码退订后还会扣月租吗?
- 语音通话能否提供号码证明?
- 语音通话是否有区域限制?哪些地区不能使用语音通话?
- 号码更换地区需要重新订购吗?
- 放音文件及语音模板配置
- API&代码样例
- 录音&收号&TTS相关问题
- 呼叫状态和话单通知
-
故障排除
- 如何判断华为云服务API接口是否正常?如果不正常如何处理?
- 调用接口时请求不通,没有任何返回信息,怎么处理?
- 返回“1010023 Display number invalid.”错误码如何处理?
- 在什么场景下会返回“1020165 The appkey call port of using exceeds the limited.”错误码?
- 请求时遇到1010002非法请求错误如何处理?
- 在进行语音通话时,被叫号码无法呼起,导致问题的可能原因有哪些?
- 为什么没有收到呼叫状态通知和话单通知?
- 为什么通话时间小于3秒的呼叫无法下载录音文件?
- 语音通话控制台访问异常如何处理?
- API调用失败如何处理?失败后可以一直不停的调用吗?
- 文档下载
- 通用参考
链接复制成功!
语音通知话单通知API
接口功能
用户通话结束后,语音通话平台通过此接口向SP推送通话的话单信息。短时间内有多个通话结束时语音通话平台会将话单合并推送,每条消息最多携带50个话单。
请求方向
语音通话平台(客户端) → 客户服务器(服务端)
使用说明
- 前提条件
- SP在开发应用时,若需订阅话单通知,必须要提供话单接收URL(feeUrl),并且确保URL能够正常处理语音通话平台发送的通知信息。
- 提供话单接收URL有以下两种方式:
- 提前通过应用管理向语音通话平台提交话单接收URL。
- SP应用调用场景API时,填写feeUrl参数。
- 注意事项
- 若平台给SP推送话单后未收到成功响应,视为推送失败,会重新推送话单,直至客户返回成功响应。平台最多重推6次,每次时间间隔1小时。
- 单个用户(一路呼叫)的话单通知是根据呼叫状态顺序推送的,一通通话会推送一条话单。但同一个应用下,如果多个用户(多路呼叫)的通话结束时间(callEndTime)相同,话单会合并在一起发送,最多不超过50条。
接口类型
请求方法 |
POST |
---|---|
访问URI |
开发者应用接收话单通知的URL |
通信协议 |
HTTPS/HTTP |
参数名称 |
是否必选 |
参数类型 |
说明 |
---|---|---|---|
Content-Type |
是 |
String |
固定填写为application/json;charset=UTF-8。 |
Authorization |
是 |
String |
固定填写为AKSK realm="SDP",profile="UsernameToken",type="Appkey"。 |
X-AKSK |
是 |
String |
取值为UsernameToken Username="APP_Key的值", PasswordDigest="PasswordDigest的值", Nonce="随机数", Created="随机数生成时间"。
|
编程语言 |
时间格式 |
---|---|
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()转换后的时间格式去除毫秒后即为本接口要求的时间格式。 |
参数名称 |
是否必选 |
参数类型 |
说明 |
---|---|---|---|
eventType |
是 |
String(枚举) |
该参数标识API事件通知的类型。取值范围如下: |
feeLst |
否 |
FeeInfo[1-50] |
呼叫话单事件的信息,参数取值为列表,最大50条。 当eventType参数为fee时携带。 |
FeeInfo
参数名称 |
是否必须 |
参数类型 |
描述 |
---|---|---|---|
direction |
是 |
Integer (0-1) |
通话的呼叫方向,以语音通话平台为基准。
|
spId |
是 |
String(1-32) |
客户的云服务账号。 |
appKey |
是 |
String(1-32) |
应用的app_key。 |
icid |
否 |
String(1-64) |
呼叫记录的唯一标识。 |
bindNum |
是 |
String(1-32) |
发起此次呼叫的固话号码。 号码仅支持全局号码格式(包含国家码),比如+8675528****02。 |
sessionId |
是 |
String(1-256) |
通话链路的唯一标识。 |
callerNum |
是 |
String(1-32) |
主叫号码,号码为全局号码格式(包含国家码),比如+86138****0021。 注:callerNum为SP设置的来电显示号码(displayNbr)。 |
calleeNum |
是 |
String(1-128) |
被叫号码,号码为全局号码格式(包含国家码),比如+86138****0021。 注:calleeNum为A号码。 |
callEndTime |
否 |
String(1-128) |
呼叫结束时间。 该参数为UTC时间(+8小时为北京时间),时间格式为“yyyy-MM-dd HH:mm:ss”。 |
fwdUnaswRsn |
否 |
Integer |
转接呼叫操作失败的Q850原因值。详细说明参见附录1-Q850原因值说明。 |
failTime |
否 |
String(1-128) |
呼入、呼出的失败时间。 该参数为UTC时间(+8小时为北京时间),时间格式为“yyyy-MM-dd HH:mm:ss”。 |
ulFailReason |
否 |
Integer |
通话失败的拆线点。详细说明参见附录2-呼叫拆线点说明。 |
sipStatusCode |
否 |
Integer |
呼入、呼出的失败SIP状态码。 |
callOutStartTime |
否 |
String(1-128) |
Initcall的呼出开始时间 该参数为UTC时间(+8小时为北京时间),时间格式为“yyyy-MM-dd HH:mm:ss”。 |
callOutAlertingTime |
否 |
String(1-128) |
Initcall的呼出振铃时间 该参数为UTC时间(+8小时为北京时间),时间格式为“yyyy-MM-dd HH:mm:ss”。 |
callOutAnswerTime |
否 |
String(1-128) |
Initcall的呼出应答时间 该参数为UTC时间(+8小时为北京时间),时间格式为“yyyy-MM-dd HH:mm:ss”。 |
callOutUnaswRsn |
否 |
Integer |
Initcall的呼出失败的Q850原因值。 详细说明参见附录1-Q850原因值说明。 |
dynIVRStartTime |
否 |
String(1-128) |
自定义动态IVR开始时间。 该参数为UTC时间(+8小时为北京时间),时间格式为“yyyy-MM-dd HH:mm:ss”。 |
dynIVRPath |
否 |
String(1-256) |
自定义动态IVR按键路径。 用户每次的按键之间使用“-”链接,形式如下: 0-2-3. |
recordFlag |
否 |
Integer (0-1) |
该字段用于录音标识,参数值范围如:
|
ttsPlayTimes |
否 |
integer |
应用TTS功能时,使用TTS的总次数。 |
ttsTransDuration |
否 |
integer |
应用TTS功能时,TTS Server进行TTS转换的总时长。单位为秒。 |
serviceType |
否 |
String(1-32) |
携带呼叫的业务类型信息,取值范围: 001:语音播放 |
hostName |
否 |
String(1-128) |
该参数用于标识话单生成的服务器设备对应的主机名。 |
userData |
否 |
String(0-256) |
用户附属信息,此参数的值与“语音通知API”中的"userData"参数值一致。 |
响应示例
POST /status HTTP/1.1 Content-Length: xx {"eventType":"fee","feeLst":[{"direction":0,"spId":"CaaS_Test_01","appKey":"x0GexpPpyRKhbA7ZC7kXBN8uX8vl","icid":"CAE-20190124104846-12028700","bindNum":"+8675528****02","sessionId":"1202_14260_4294967295_20190124024846@callenabler245.huaweicaas.com","callerNum":"+86138****0022","calleeNum":"+86138****0021","callEndTime":"2019-01-24 02:49:23","fwdUnaswRsn":0,"ulFailReason":0,"sipStatusCode":0,"callOutStartTime":"2019-01-24 02:48:46","callOutAlertingTime":"2019-01-24 02:48:51","callOutAnswerTime":"2019-01-24 02:49:12","callOutUnaswRsn":0,"recordFlag":0,"ttsPlayTimes":1,"ttsTransDuration":1,"serviceType":"001","hostName":"callenabler245.huaweicaas.com"}]}
响应参数
HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 {"resultcode":"0","resultdesc":"Success"}
代码样例
前往代码样例查看。