腾讯语音服务文档
一、开通语音消息服务流程
(1)注册并认证
- 如果您还没有腾讯云账号,您需要 注册腾讯云 账号,并完成 企业实名认证。
- 如果您已有企业认证的腾讯云账号,请直接进行下一步操作。
申请开通语音消息服务
说明:首次登录语音消息控制台时,需要申请开通语音消息服务。
登录 语音消息控制台,勾选【我已阅读并同意 腾讯云语音消息服务协议】,单击【开始接入】即可开通。
(2)创建应用
- 在左侧导航栏选择【应用管理】>【应用列表】。
- 单击【创建应用】,填写【应用名称】为
测试
,【应用简介】为测试语音消息
。 - 单击【创建】。
(3)购买语音号码
- 在左侧导航栏选择【应用管理】>【语音号码】,选择【当前应用】为
测试
。
购买语音号码前需提交企业资质并通过审核。 - 在【企业资质管理】页签,填写企业信息后单击【提交】,待审核通过后方可购买号码。
- 单击【购买号码】,进入语音号码购买页。
- 选择您所需的号码归属地和语音号码,可根据实际需求勾选语音号码到期后自动续费,单击【立即购买】。
说明:单个企业最多支持购买5个语音号码。
- 核对所选号码信息,确认无误后单击【确认】。
- 选择您的支付方式,单击【立即支付】即购买完成。
(4)创建语音模板
- 在左侧导航栏选择【应用管理】>【语音模板】,选择【当前应用】为
测试
。 - 单击【创建语音模板】。
- 结合实际情况设置以下参数:
- 模板名称:输入
验证码通知
。 - 模板内容:输入
您的验证码是{1},如非本人操作无需处理。
。
- 模板名称:输入
- 单击【确定】。
等待语音模板审核,当状态变为【已通过】时,语音模板才可用。
(5)购买套餐包
- 在左侧导航栏选择【套餐包管理】,单击【购买套餐包】。
- 根据实际需求设置以下参数:
- 套餐类型:选择【固定套餐包】。
- 套餐配额:选择1万分钟。
- 购买数量:选择1。
- 勾选【我已阅读并同意 腾讯云语音消息 《服务协议》】。
- 单击【立即购买】。
- 核对您需要购买的套餐包配额、数量及费用等信息,单击【确认购买】。
- 选择您的支付方式,单击【立即支付】。
如果您需要开具发票,可以参考 发票 进行申请。
(6)发送语音消息
发送语音消息前,您需要检查确认语音模板已通过审核。
您可以调用 发送语音验证码 API 或 SDK 发送语音消息。
(7)查看发送结果
- 在 语音消息控制台,单击【统计分析】。
- 选择【语音记录】页签,输入手机号,选择【应用】为
测试
,设置时间段,单击【查询】筛选查看发送记录。
二、使用SDK发送语音消息
maven
<dependency>
<groupId>com.github.qcloudsms</groupId>
<artifactId>qcloudsms</artifactId>
<version>1.0.6</version>
</dependency>
准备必要参数
// 语音消息应用 SDK AppID
int appid = 1400009099; // SDK AppID 以1400开头
// 语音消息应用 App Key
String appkey = "9ff91d87c2cd7cd0ea762f141975d1df37481d48700d70ac37470aefc60f9bad";
// 需要发送语音消息的手机号码
String[] phoneNumbers = {"21212313123", "12345678902", "12345678903"};
// 语音模板 ID,需要在语音消息控制台中申请
int templateId = 7839; // NOTE: 这里的模板 ID`7839`只是示例,真实的模板 ID 需要在语音消息控制台中申请
发送语音验证码
try {SmsVoiceVerifyCodeSender vvcsender = new SmsVoiceVerifyCodeSender(appid,appkey);SmsVoiceVerifyCodeSenderResult result = vvcsender.send("86", phoneNumbers[0],"5678", 2, "");System.out.println(result);
} catch (HTTPException e) {// HTTP 响应码错误e.printStackTrace();
} catch (JSONException e) {// JSON 解析错误e.printStackTrace();
} catch (IOException e) {// 网络 IO 错误e.printStackTrace();
}
指定模板发送语音通知
try {int templateId = 45221;String[] params = {"5678"};TtsVoiceSender tvsender = new TtsVoiceSender(appid, appkey);TtsVoiceSenderResult result = tvsender.send("86", phoneNumbers[0],templateId, params, 2, "");System.out.println(result);
} catch (HTTPException e) {// HTTP 响应码错误e.printStackTrace();
} catch (JSONException e) {// JSON 解析错误e.printStackTrace();
} catch (IOException e) {// 网络 IO 错误e.printStackTrace();
}
三、拨号记录回调接口
配置事件回调
- 登录 语音消息控制台。
- 您可以通过以下方式进入【基础配置】页签:
- 在左侧导航栏选择【应用管理】>【应用列表】,单击目标应用卡片进入应用详情页,单击【基础配置】。
- 在左侧导航栏选择【应用管理】>【基础配置】。
- 选择【当前应用】为待操作的目标应用。
- 单击【事件回调配置】区域的【设置】,勾选并输入对应的回调 URL。
- 单击【设置】即可保存。
(1)语音通知状态通知
通知业务方语音通知下发的状态。
URL 示例
POST https://example.com/voice/callback
请求参数
{"voiceprompt_callback": {"result": "0","accept_time": "1470197211","call_from": "","callid": "xxxxxx","end_calltime": "1470197221","fee": "1","mobile": "13xxxxxxxxx","nationcode": "86","start_calltime": "1470197196"}
}
参数 | 必选 | 类型 | 描述 |
---|---|---|---|
voiceprompt_callback | 是 | object | 通知状态回调,详细参数说明请参见下方表格 |
参数voiceprompt_callback
:
参数 | 必选 | 类型 | 描述 |
---|---|---|---|
result | 是 | string | 错误码,0表示用户正常接听,1表示用户未接听, 2表示呼叫异常 |
accept_time | 是 | string | 用户接听时间 |
call_from | 是 | string | 呼入号码 |
callid | 是 | string | 标识本次发送 ID |
end_calltime | 是 | string | 结束语音通知呼叫时间 |
fee | 是 | string | 计费时长,单位为分钟 |
mobile | 是 | string | 手机号码 |
nationcode | 是 | string | 国家(或地区)码 |
start_calltime | 是 | string | 开始发起语音通知呼叫时间 |
响应参数
{"result": 0,"errmsg": "OK"
}
参数 | 必选 | 类型 | 描述 |
---|---|---|---|
result | 是 | number | 错误码,0表示成功,非0表示失败 |
errmsg | 是 | string | 错误消息,result 非0时的具体错误信息 |
(2)语音通知按键通知
通知业务方被叫用户按下的键。
URL 示例
POST https://example.com/voice/callback
请求参数
{"voicekey_callback": {"call_from": "","callid": "xxxxxx","keypress": "2","mobile": "13xxxxxxxxx","nationcode": "86"}
}
参数 | 必选 | 类型 | 描述 |
---|---|---|---|
voicekey_callback | 是 | object | 通知按键通知回调,详细参数说明请参见下方表格 |
参数voicekey_callback
:
参数 | 必选 | 类型 | 描述 |
---|---|---|---|
call_from | 是 | string | 呼入号码 |
callid | 是 | string | 标识本次发送 ID |
keypress | 是 | string | 用户按下的键 |
mobile | 是 | string | 手机号码 |
nationcode | 是 | string | 国家(或地区)码 |
响应参数
{"result": 0,"errmsg": "OK"
}
参数 | 必选 | 类型 | 描述 |
---|---|---|---|
result | 是 | number | 错误码,0表示成功,非0表示失败 |
errmsg | 是 | string | 错误消息,result 非0时的具体错误信息 |
(3)语音送达失败原因通知
语音消息系统可以向语音验证码或语音通知下发失败的被叫号码推送失败原因。
URL 示例
POST https://example.com/voice/callback
请求参数
{"voice_failure_callback": {"call_from": "075583763333","callid": "xxxxxx","failure_code": 8,"failure_reason": "空号","mobile": "13xxxxxxxxx","nationcode": "86"}
}
参数 | 必选 | 类型 | 描述 |
---|---|---|---|
voice_failure_callback | 是 | object | 语音送达失败原因推送回调,详细参数说明请参见下方表格 |
参数voice_failure_callback
:
参数 | 必选 | 类型 | 描述 |
---|---|---|---|
call_from | 是 | string | 呼入号码 |
callid | 是 | string | 标识本次发送 ID |
failure_code | 是 | number | 失败错误码,详情请参见 推送回执相关错误码 |
failure_reason | 是 | string | 失败原因 |
mobile | 是 | string | 手机号码 |
nationcode | 是 | string | 国家(或地区)码 |
响应参数
{"result": 0,"errmsg": "OK"
}
参数 | 必选 | 类型 | 描述 |
---|---|---|---|
result | 是 | number | 0表示成功,非0表示失败 |
errmsg | 是 | string | result 非0时的具体错误信息 |