语音通话 VOICECALL-语音通知API:请求参数

时间:2024-11-04 21:27:20

请求参数

表2 请求URL参数说明

参数名称

是否必选

参数类型

默认值

说明

version

String(枚举)

版本,取值为v2.0。

表3 请求Headers参数说明

参数名称

是否必选

参数类型

说明

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="随机数生成时间"。
  • PasswordDigest:根据PasswordDigest = Base64 (HMAC-SHA256 (Password,Nonce + Created))生成。其中,Password为APP_Secret的值。Nonce、Created、Password直接进行字符串拼接即可,无需包含+号和空格。
  • Nonce:客户发送请求时生成的一个随机数,长度为1~128位,可包含数字和大小写字母。例如:66C92B11FF8A425FB8D4CCFE0ED9ED1F。
  • Created:随机数生成时间。采用标准UTC格式,例如:2018-02-12T15:30:20Z。不同编程语言中将UTC时间戳转换为普通时间时使用的格式不同,部分语言可参考表4
表4 不同编程语言的时间格式

编程语言

时间格式

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()转换后的时间格式去除毫秒后即为本接口要求的时间格式。

表5 请求Body参数说明

参数名称

是否必选

参数类型

默认值

说明

displayNbr

String(4-31)

固话号码,被叫终端上显示的主叫号码,需要提前在订购号码页面申请该号码。

号码格式(固话):国家码+区号+固话,与号码管理页面的“固话号码”保持一致。

若该号码为“暂停”状态,语音通话平台会从该应用下随机选取一个其他可用的固话号码进行外呼。

calleeNbr

String(4-31)

被叫号码。

  • 手机号码格式:+{国家码}{手机号码}。示例:+86134****2222。
  • 固话格式:+{国家码}{区号}{固话号码},其中区号需去掉首位的0。示例:国家码86,区号0755,固话号码28****01,填写为+8675528****01。

playInfoList

PlayContentInfo[1-5]

播放信息列表,最大支持5个,每个播放信息携带的参数都可以不相同。

statusUrl

String(1-128)

此参数请采用BASE64编码进行加密。

此字段用于设置SP接收状态上报的URL。

语音通话平台将业务触发过程中通话的状态信息(包括呼出、振铃、摘机和挂机信息)推送至此服务器,SP根据通话状态信息确定用户状态。

URL可填写为http://IP:Port或 域名 ,推荐使用域名,支持http和https。且该域名对应多个服务器,避免单点故障无法接收通知。

URL只能由大小写字母(a-z、A-Z),数字(0-9),中划线(-),英文冒号(:),英文点号(.),以及英文斜杠(/)组成,不支持其它字符。

feeUrl

String(1-128)

此参数请采用BASE64编码进行加密。

此参数用于设置SP接收话单上报的URL。

语音通话平台将业务产生的话单推送至此服务器。

URL可填写为http://IP:Port或域名,推荐使用域名,支持http和https。且该域名对应多个服务器,避免单点故障无法接收话单。

URL只能由大小写字母(a-z、A-Z),数字(0-9),中划线(-),英文冒号(:),英文点号(.),以及英文斜杠(/)组成,不支持其它字符。

returnIdlePort

String(枚举)

false

指示是否需要返回平台的空闲端口数量。

  • true:需要返回
  • false:不需要返回

如果不携带该参数,系统默认该参数为false。

userData

String(1-256)

用户附属信息,此标识由第三方服务器定义,会在后续的通知消息中携带此信息。

不允许携带以下字符:“{”,“}”(即大括号)。

不允许包含中文字符,如果包含中文字符请采用Base64编码。

表6 PlayContentInfo定义

参数名称

是否必选

参数类型

默认值

说明

notifyVoice

String(1-128)

通知语音的放音文件名。需要先通过放音文件管理页面上传放音文件并通过审核才能使用。

当前系统只支持Wave格式的音频文件,文件如“notifyvoice.wav”。

参数和templateId是二选一的关系即两个参数必须携带其中一个。

templateId

String(1-32)

语音通知模板ID,用于唯一标识语音通知模板。语音通知模板为 TTS 文本的模板,需要先通过语音模板管理页面提交模板并通过审核才能使用,并获取对应的模板ID。

参数和notifyVoice是二选一的关系。需要与templateParas参数配合使用。

templateParas

String(1-32)[1-10]

语音通知模板的变量值列表,用于依次填充templateId参数指定的模板内容中的变量。

该参数需填写为JSONArray格式。具体可参考变量规则

参数内容必须是“UTF-8”编码,不能包含以下3个字符:“$”,“{”,“}”

当接口中携带“templateId”参数时,必须携带此参数,若未携带此参数系统将返回“非法请求”错误。

列表中变量值的个数及长度必须和templateId对应模板内容中定义的变量个数及长度保持一致;例如templateId对应的模板内容有2个变量且变量长度分别为5和6,则此处需要设置2个变量值且内容长度分别小于等于5和6。

如模板内容为“您有${NUM_2}件快递请到${TXT_32}领取”时,该参数可填写为["3","人民公园正门"]。

collectInd

Integer(0-32)

0

是否进行收号。若进行收号,请在语音通知内容播放完毕后的5秒之内进行按键操作,系统会将用户输入的号码通过语音通知呼叫状态通知API发送给SP。

取值范围:

0:不收号

1~32:收号,并且取值表示收号位长,最大支持32位。

若不携带该参数,则默认不收号。

replayAfterCollection

String(枚举)

false

当collectInd字段设置为非0时此参数有效。

此字段用于设置是否在收号后重新播放notifyVoice、ttsContent或templateId指定的放音。

  • true:播放。
  • false:不播放。

默认值:false。

collectContentTriggerReplaying

String(1-32)

当replayAfterCollection字段设置为true时此参数有效。

此字段用于设置触发重新放音的收号内容。只有实际收号内容与该参数值一致时,才重新放音。例如:该参数设置为1,当用户根据收号语音提示按1,两者一致,则重复放音。

support.huaweicloud.com/api-VoiceCall/rtc_05_0013.html