0 概述
向指定被叫号码发送指定内容的语音通知 ,通知内容包括事先录制好的语音内容(录音文件) ,以及日期时间、货币金额、数字、数字串等限定类型的文本内容。
1 发送接口( REST API)
HTTP标准包头字段
Accept: application/json
Content-Type: application/json;charset=utf-8
Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
鉴权说明 鉴权采用Basic Authorization。在请求包头携带Authorization信息。计算方法:
“Basic “ + Base64({AccountSid}+”:”+{AccountToken})
1.1 单条发送接口
每次发送请求发送一条语音通知。常用于语音验证码、快递通知、监控报警等。
在线路拥塞的情况下单条发送请求会失败 ,平台不会进行重发 ,应用需要重新调用发送接口重试。对于实时性要求不高的语音通知 ,建议使用 批量发送接口。
请求
请求URL
/Accounts/{AccountSid}/SingleVoiceNotice
请求消息示例
POST /Accounts/abcdefghijklmnopqrstuvwxyz012345/SingleVoiceNotice HTTP/1.1
Host: xxx.xxx.xxx.xxx:xxxx
Content-Length: 100
Accept: application/json
Content-Type: application/json;charset=utf-8
Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
{“appid”:
“11111111111111111111111111111111”,”from”:”01080001001”,”to”:”13800100001”,”contents”: [{“type”:”voice”,”content”:”prompt1.wav”},{“type”:”digits”,”content”:”123”},
{“type”:”voice”,”content”:”prompt1.wav”}],”inputvoice”:”prompt3.wav”,”inputrange”:”any”,” repeatkey”:”#”,”inrangevoice”:”prompt4.wav”}
JSON包体易读版
{
“appid”: “11111111111111111111111111111111”,
“from”:”01080001001”,
“to”:”13800100001”,
“contents”:[
{
“type”:”voice”,
“content”:”prompt1.wav”
},
{
“type”:”digits”,
“content”:”123”
},
{
“type”:”voice”,
“content”:”prompt2.wav”
}
],
“inputvoice”:”prompt3.wav”,
“inputrange”:”any”,
“repeatkey”:”#”,
“inrangevoice”:”prompt4.wav” }
请求参数说明
| 名称 | 约 束 | 描述 |
|---|---|---|
| appid | 必 须 | 应用唯一标识。用户可以在一个帐号下创建多个应用 ,以区分不同的应用类型或所分配的资源 ,比如外显号 ,接入号等。 |
| to | 必 须 | 目的电话号码。可以是手机或直线固话 ,固话前要加区号 |
| from | 可选 | 指示发送语音通知所用的平台号码。通常用于区分同一客户的不同的业务类型所使用的不同的线路码号资源。 |
| conte nts | 必 须 | JSON格式, 由type,content属性值对构成的数组。详见type属性值说明。 |
| userda ta | 可选 | 用户自定义数据 ,在话单中返回。不超过100个字符。 |
| times | 可选 | 播放次数 ,默认1次 ,最多3次 |
| inputrange | 可选 | 用户输入按键的范围 ,多个按键之间用英文逗号分隔。 “any” 表示任意键。例 “1,2,3,4,5,6,7,8,9”, “0,1,2,3,4,5,6,7,8,9,#,*”。*若inputrange参数有效 ,系统会准备接收用户按键输入 |
| inputvoice | 可选 | 提示用户按键输入的语音。 |
| inputtimeout | 可选 | 用户输入(按键)超时时间 |
| repeatkey | 可选 | 重播键 |
| inrangevoice | 可选 | 用户按键在输入范围(inputrange)之内时播放的语音 |
| outrangevoice | 可选 | 用户按键在范围外(或未按要求按键)之后播放的语音 |
contents:type属性取值说明
| type取值 | 对应内容 | 举例 |
|---|---|---|
| “voice” | 语音文件名 | “hello.wav” |
| “time” | 日期时间 ,格式YYYY-MM-DD | “2013-07-30” |
| money | 货币金额 | “2.14” |
| “number” | 数 | “112” |
| “digits” | 字串 | “112” |
| “text” | 文本 | “测试” |
响应
响应消息示例
正常响应
HTTP/1.1 200 OK
Content-Length: 100
{ “statuscode”:”0”,”statusmsg”:”succ”,”callid”:”CA10000201901010101010100000000001”}
异常响应
HTTP/1.1 200 OK
Content-Length: 100
{“statuscode”:”-4”,”statusmsg”:”missing contents”}
响应参数说明
| 名称 | 约束 | 说明 |
|---|---|---|
| statuscode | 必选 | 发送结果状态码 |
| statusmsg | 可选 | 发送结果状态描述 |
| callid | 可选 | 呼叫唯一标识( statuscode =0时有效)示例CA10000201901010101010100000000001 |
statuscode说明
| statuscode取值 | 说明 |
|---|---|
| 0 | 请求成功 |
| -1 | 鉴权失败 |
| -2 | JSON解析失败 |
| -3 | appid错误 |
| -4 | 参数错误 |
| -5 | 发起呼叫失败 |
| -6 | 发起呼叫失败 |
1.2 批量发送接口
批量发送相同内容的语音通知 ,每次发送请求可以发送多条到多个手机用户。
在线路拥塞的情况下会平台会对批量发送请求进行缓存 ,因此可能会有发送时延。
对于实时性要求较高的语音通知 ,建议使用 单条发送接口。
请求
请求URL
/Accounts/{AccountSid}/BatchVoiceNotices
请求消息示例
POST /Accounts/abcdefghijklmnopqrstuvwxyz012345/BatchVoiceNotices HTTP/1.1
Host: xxx.xxx.xxx.xxx:xxxx
Content-Length: 100
Accept: application/json
Content-Type: application/json;charset=utf-8
Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
{“appid”:
“11111111111111111111111111111111”,”from”:”01080001001”,”to”:”13800100001,13910930023,134 00982345”,”contents”:[{“type”:”voice”,”content”:”prompt1.wav”},
{“type”:”digits”,”content”:”123”},
{“type”:”voice”,”content”:”prompt1.wav”}],”inputvoice”:”prompt3.wav”,”inputrange”:”any”,” repeatkey”:”#”,”inrangevoice”:”prompt4.wav”}
JSON包体易读版
{
“appid”: “11111111111111111111111111111111”,
“from”:”01080001001”,
“to”:”13800100001,13910930023,13400982345”,
“contents”:[
{
“type”:”voice”,
“content”:”prompt1.wav”
},
{
“type”:”digits”,
“content”:”123”
},
{
“type”:”voice”,
“content”:”prompt2.wav” }
],
“inputvoice”:”prompt3.wav”, “inputrange”:”any”,
“repeatkey”:”#”,
“inrangevoice”:”prompt4.wav” }
请求参数说明
| 名称 | 约 束 | 描述 |
|---|---|---|
| appid | 必 须 | 应用唯一标识。 用户可以在一个帐号下创建多个应用 ,以区分不同的应用类型或所分配的资源 ,比如外显号 ,接入号等。 |
| to | 必 须 | 目的电话号码 ,可以有多个 ,以英文逗号分隔 ,一次不要超过1000个 |
| from | 可选 | 指示发送语音通知所用的平台号码。通常用于区分同一客户的不同的业务类型所使用的不同的线路码号资源。 |
| conte nts | 必 须 | JSON格式, 由type,content属性值对构成的数组。详见type属性值说明。 |
| userda ta | 可选 | 用户自定义数据 ,在话单中返回。不超过100个字符。 |
| times | 可选 | 播放次数 ,默认1次 ,最多3次 |
| inputrange | 可选 | 用户输入按键的范围 ,多个按键之间用英文逗号分隔。 “any” 表示任意键。例 “1,2,3,4,5,6,7,8,9”, “0,1,2,3,4,5,6,7,8,9,#,*”。若inputrange参数有效 ,系统会准备接收用户按键输入 |
| inputvoice | 可选 | 提示用户按键输入的语音。 |
| inputtimeout | 可选 | 用户输入(按键)超时时间 |
| repeatkey | 可选 | 重播键 |
| inrangevoice | 可选 | 用户按键在输入范围(inputrange)之内时播放的语音 |
| outrangevoice | 可选 | 用户按键在范围外(或未按要求按键)之后播放的语音 |
使用样例
调用:
url:
http://xtapi.uincall.com/api/call/queryDestnums.action
post数据:
appver=1&user=4006090002_dev&account=4006090002×tamp=20160907100100&secret=b553c1d4430d2825ac93d1f51d6c658c
响应:
{
"data":
{
"destnums": "13910459531,13910454701,01085325742,01085325784,01085325734,01085325483"
},
"errmsg": "成功",
"errcode": 0
}