自定义语音接口
1 自定义电话语音验证码接口请求方式
- 个性化语音内容,由您提供语音文件。语音验证码API访问的地址见Base URL。
1.1 Base URL
- 生产环境的Base URL:https://app.cloopen.com:8883
- 注意:为了确保数据隐私,云通讯平台的REST API是通过HTTPS方式请求。
1.2 业务流程说明
1.3 统一请求包头
- URL格式:/2013-12-26/Accounts/{accountSid}/Calls/VoiceVerify?sig={SigParameter}
- 在URL格式中 {}内的内容表示为参数,非{}的内容固定不变。
- 属性说明:
属性 | 类型 | 约束 | 说明 |
accountSid | String | 必选 | 开发者主账户ACCOUNT SID。(登陆官网在管理控制台获取) |
SigParameter | String | 必选 | REST API 验证参数,生成规则如下 1.使用MD5加密(账户Id + 账户授权令牌 + 时间戳)。其中账户Id和账户授权令牌根据url的验证级别对应主账户。 时间戳是当前系统时间,格式"yyyyMMddHHmmss"。时间戳有效时间为24小时,如:20140416142030 2.SigParameter参数需要大写,如不能写成sig=abcdefg而应该写成sig=ABCDEFG |
1.4 HTTP标准包头字段(必填)
- Accept:application/xml;
- Content-Type:application/xml;charset=utf-8;
- Content-Length:256;
- Authorization:
- 属性说明:
属性 | 类型 | 约束 | 说明 |
Accept | String | 必选 | 客户端响应接收数据格式:application/xml、application/json |
Content-Type | String | 必选 | 类型:application/xml;charset=utf-8、application/json;charset=utf-8 |
Content-Length | String | 必选 | Content-Length |
Authorization | String | 必选 | 验证信息,生成规则详见下方说明 1.使用Base64编码(账户Id + 冒号 + 时间戳)其中账户Id根据url的验证级别对应主账户 2.冒号为英文冒号 3.时间戳是当前系统时间,格式"yyyyMMddHHmmss",需与SigParameter中时间戳相同。 |
1.5 请求包体
属性 | 类型 | 约束 | 说明 |
appId | String | 必选 | 应用Id |
verifyCode | String | 可选 | 验证码内容,为数字和英文字母,不区分大小写,长度4-8位 |
to | String | 必选 | 接收号码,被叫为座机时需要添加区号,如:01052823298;被叫为分机时分机号由'-'隔开,如: 01052823298-3627 |
displayNum | String | 可选 | 显示主叫号码,显示权限由服务侧控制。 |
playTimes | String | 可选 | 循环播放次数,1-3次,默认播放1次。 |
respUrl | String | 可选 | 语音验证码状态通知回调地址(必须符合URL规范),云通讯平台将向该Url地址发送呼叫结果通知。 |
lang | String | 可选 | 播放的语言类型(暂不支持设置en,默认zh)。取值en(英文)、zh(中文),默认值zh。 |
userData | String | 可选 | 第三方私有数据,可在语音验证码状态通知中获取此参数。 |
playVerifyCode | String | 必选 | 内容由多个wav格式文件组成,用";"分隔,云通讯会顺序播放文件内容。 语音文件在管理控制台上传,审核通过之后才可以使用。 放音文件的格式样本如下:位速 128kbps,音频采样大小16位,频道 1(单声道), 音频采样级别 8kHz,音频格式PCM,这样能保证放音的清晰度。 |
maxCallTime | String | 可选 | 该通通话最大通话时长,到时间自动挂机 |
1.6 自定义语音模板的XML请求示例
- POST /2013-12-26/Accounts/abcdefghijklmnopqrstuvwxyz012345/Calls/VoiceVerify?sig=C1F20E7A9733CE94F680C70A1DBABCDE
- HTTP/1.1
- Host:192.168.0.1:8883
- content-length: 139
- Accept:application/xml;
- Content-Type:application/xml;charset=utf-8;
- Authorization:ZmY4MDgwODEzYzM3ZGE1MzAxM2M4MDRmODA3MjAwN2M6MjAxMzAyMDExNTABCDE=
- <?xml version='1.0' encoding='utf-8'?>
- <VoiceVerify>
- <appId>abcdefghijklmnopqrstuvwxyz123456</appId>
- <verifyCode>1a8d9u</verifyCode>
- <playTimes>2</playTimes>
- <to>13811234567</to>
- <displayNum>01052821234</displayNum>
- <welcomePrompt>huanying.wav</welcomePrompt>
- <maxCallTime>60</maxCallTime>
- <playVerifyCode>yanzhengma.wav;1.wav;3.wav;5.wav;9.wav</playVerifyCode>
- </VoiceVerify>
- 用户收听的效果是:"huanying.wav+yanzhengma.wav+1.wav+3.wav+5.wav+9.wav"
1.7 自定义语音模板的JSON请求示例
- POST /2013-12-26/Accounts/abcdefghijklmnopqrstuvwxyz012345/Calls/VoiceVerify?sig=
- C1F20E7A9733CE94F680C70A1DBABCDE
- HTTP/1.1
- Host:192.168.0.1:8883
- content-length: 139
- Accept:application/json;
- Content-Type:application/json;charset=utf-8;
- Authorization:ZmY4MDgwODEzYzM3ZGE1MzAxM2M4MDRmODA3MjAwN2M6MjAxMzAyMDExNTABCDE=
- {"appId":"abcdefghijklmnopqrstuvwxyz123456","verifyCode":"1a8d9u","playTimes":"2",
- "to":"01052821234","displayNum":"01052821234","welcomePrompt":"huanying.wav","maxCallTime":"60",
- "playVerifyCode":"yanzhengma.wav;1.wav;3.wav;5.wav;9.wav"}
- 用户收听的效果是:"huanying.wav+yanzhengma.wav+1.wav+3.wav+5.wav+9.wav"
2 响应
- 此步响应只表明客户的语音验证码请求发送成功,不表明运营商已经呼叫发送验证码成功。
2.1 响应包体
属性 | 类型 | 约束 | 说明 |
statusCode | String | 必选 | 请求状态码,取值000000(成功),可参考错误代码。 |
callSid | String | 必选 | 一个由32个字符组成的唯一电话标识符 |
dateCreated | String | 必选 | 电话的创建时间 |
2.2 XML响应示例
- HTTP/1.1 200 OK
- Content-Length: 641
- <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
- <Response>
- <statusCode>000000</statusCode>
- <VoiceVerify>
- <callSid>a346467ca321c71dbd5e12f627123456</callSid>
- <dateCreated>2013-02-01 15:38:09</dateCreated>
- </VoiceVerify>
- </Response>
2.3 JSON响应示例
- HTTP/1.1 200 OK
- Content-Length: 641
- {"statusCode":"000000","VoiceVerify":{"dateCreated":"2013-02-01 15:53:06",
- "callSid":" ff8080813c373cab013c94be9fe300c5"}}