通过API使用语音通知/语音验证码

更新时间:
复制 MD 格式

语音通知/语音验证码是通过电话呼叫的方式向指定号码发送语音通知或对验证码进行语音播报,可以调用API接口发送语音通知语音验证码

使用须知

  • 文本转语音模板和语音通知文件审核通过后才可以使用。

  • API 调用支持 24 小时拨打。针对同一个”资质信息+号码用途”,呼叫同一个被叫方时进行流控限制(默认共享模式):1次/分钟、5次/小时、20次/24小时(从首次发起呼叫请求开始),请合理使用。若业务场景需要突破默认流控限制(实现高频呼叫或全天候无上限拨打),推荐选用专属模式并申请流控白名单,详情请参见呼叫设置

准备工作

说明

语音服务 API/SDK 调用仅面向企业用户,个人用户暂无试用通道。调用前需完成企业实名认证并通过企业资质审核(详见下方准备步骤)。

使用流程

image

步骤一:准备通话内容

重要

通过API上传语音文件,默认为专属模式。如计划通过公共模式调用API发起语音通话,请至语音服务控制台申请通话内容,操作步骤请参见创建语音模板

通话内容包含文本转语音模板和语音文件,推荐使用控制台申请通话内容并查询审核状态,审核通过后即可发起语音通话。

  • 文本转语音模板:暂不支持通过API接口创建,请通过语音服务控制台创建。操作步骤请参见创建语音模板

  • 语音文件:支持通过API、SDK接口上传和控制台上传,调用API或使用SDK上传操作步骤请参见通过API上传语音文件

    说明

    语音文件上传后,可通过QueryVoiceFileAuditInfo查询审核状态,若审核不通过,请查看失败原因后重新上传语音文件。

步骤二:发起语音通话

根据业务需要调用相应的API接口发起语音通知或语音验证码,在调用接口前请仔细阅读参数描述。

通用接口

仅支持专属模式接口

  • SingleCallByVoice:向指定号码发送语音通知文件类型的语音通知。

  • SingleCallByTts:向指定号码发送语音验证码文本转语音类型的语音通知。

  1. 创建语音通话任务-CreateCallTask:使用服务实例给多个被叫号码创建文本转语音任务、语音通知任务和语音验证码任务。

  2. 执行语音通话任务-ExecuteCallTask:启动已创建的语音通话任务。

SmartCall 接口报错排查

若调用 SmartCall(智能外呼)接口时报错"未开通智能外呼全变量",请检查以下配置:

  • 原因:SmartCall 接口的 VoiceCode 字段仅支持传入控制台语音文件详情中的语音文件 ID,不支持直接传入变量参数。

  • 解决方法:将变量参数从 VoiceCode 字段移除,仅填写控制台语音文件详情页中显示的语音 ID。

步骤三:查询通话详情

通用接口

仅支持专属模式接口

  • 使用API接口:调用QueryCallDetailByCallId接口,使用步骤二中发起语音通话时接口返回的CallId,查询语音通知/验证码发送详情。

  • 使用回执消息:可以通过消息队列或HTTP批量推送模式来接收语音服务的呼叫记录、状态信息。回执消息配置流程,请参见回执消息简介与配置流程

ListCallTaskDetail:使用步骤二中执行通话任务返回的任务ID,查看指定任务详情列表。

根据通话状态实现业务逻辑

通过 QueryCallDetailByCallId 接口查询通话详情后,可根据返回的接通状态字段,触发相应业务处理逻辑:

  • 未接通(被叫方未接听或通话失败):可根据业务需求发起重呼。

  • 已接通:按正常业务流程处理后续环节。

建议将“接通状态判断→重呼”纳入自动化流程,以减少人工干预,提升触达率。

相关文档

  • API在线调试:访问OpenAPI开发者门户,可以在线调试接口、查看完整请求参数和自动生成各种语言的SDK示例代码。

  • 错误码查询:调用API返回错误时,请参考API错误码文档排查问题。

  • 常见问题

    • 公共模式/专属模式FAQ

    • 语音计费FAQ

    • 语音模板FAQ

    • API&SDK常见问题

    • 调用 SingleCallByTts 或语音验证码接口时,返回数据缺少 Data 字段或查询结果异常怎么办?

      检查 ProdId(模板 ID)的产品归属是否与调用接口一致:

      • 若模板在语音通知产品中申请,必须使用语音通知相关接口(如 SingleCallByTts)进行调用和查询。

      • 若模板在语音验证码产品中申请,必须使用语音验证码相关接口进行调用和查询。

      混用不同产品线的模板 ID 会导致返回 Data 字段为空或查询失败,请确认模板的产品归属后,使用对应接口调用。

    • 调用 SingleCallByTts 接口时,对方未接听的最长响铃时间是多少?能否通过 API 设置?

      响铃时长由被叫方运营商的网络策略决定,阿里云 API/SDK 不提供自定义挂断时间的参数。国内运营商默认振铃超时时间通常为 45 秒~60 秒。

    • 调用语音服务 API 报错,如何快速排查?如何获取完整示例代码?

      常见报错原因:

      • TtsCode 模板 ID 填写有误(如使用了不属于当前接口的模板,或模板尚未通过审核)。

      • QueryDate 时间戳格式不正确(需使用 UTC 格式,精确到秒)。

      • 按键参数变量名与模板定义不匹配(如复制按键 1 的参数给按键 2 时,未同步修改对应变量名)。

      推荐访问 OpenAPI 开发者门户在线调试接口,确认参数配置正确后,可直接下载系统自动生成的完整 SDK 示例工程(支持 Java、Python、C# 等主流语言),避免手动编写代码引入传参错误。