本章节为您介绍阿里云语音服务的语音IVR功能和实现方法,您可以通过调用IvrCall实现交互式语音应答。
功能介绍
语音IVR是指通过调用语音呼叫的API,从运营商网络向指定号码发起一通呼叫,呼叫被接起后,播放一段指定音频,用户根据音频引导,通过手机按键信息返回意图,语音平台通过消息回执返回按键信息给企业的业务系统。
实现方法
在调用API实现语音IVR功能前,您需要完成以下操作。
购买语音号码并审核通过语音模板或语音文件。具体操作,请参见新手指引。
获取AccessKey信息。更多详情,请参见获取AccessKey。
完成本地SDK环境搭建。更多详情,请参见Java SDK。
本章节调用接口详情,请参见交互式语音通话。
说明
调用接口前,需配置环境变量,通过环境变量读取访问凭证。AccessKey ID和AccessKey Secret的环境变量名:VMS_AK_ENV 、VMS_SK_ENV。配置详情请参见配置访问凭证。
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
public class IvrCall {
public static void main(String[] args) {
// 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
// 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
// 本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
DefaultProfile profile = DefaultProfile.getProfile(
"cn-hangzhou",
System.getenv("VMS_AK_ENV"),
System.getenv("VMS_SK_ENV")
);
IAcsClient client = new DefaultAcsClient(profile);
CommonRequest request = new CommonRequest();
request.setMethod(MethodType.POST);
request.setDomain("dyvmsapi.aliyuncs.com");
request.setVersion("2017-05-25");
request.setAction("IvrCall");
request.putQueryParameter("RegionId", "cn-hangzhou");
request.putQueryParameter("CalledShowNumber", "057156****");
request.putQueryParameter("CalledNumber", "1380000****");
request.putQueryParameter("StartCode", "TTS_713900000");
request.putQueryParameter(
"StartTtsParams",
"{\"product\":\"aliyun\",\"code\":\"123\"}"
);
request.putQueryParameter("MenuKeyMap.1.Key", "1");
request.putQueryParameter(
"MenuKeyMap.1.Code",
"9a9d7222-670f-40b0-a3af.wav"
);
request.putQueryParameter("MenuKeyMap.2.Key", "2");
request.putQueryParameter("MenuKeyMap.2.Code", "TTS_71390000");
request.putQueryParameter(
"MenuKeyMap.2.TtsParams",
"{\"product\":\"aliyun\",\"code\":\"123\"}"
);
request.putQueryParameter("PlayTimes", "3");
request.putQueryParameter(
"ByeTtsParams",
"{\"product\":\"aliyun\",\"code\":\"123\"}"
);
request.putQueryParameter("Timeout", "3000");
try {
CommonResponse response = client.getCommonResponse(request);
System.out.println(response.getData());
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
}
}
正常返回结果如下所示:
{
"Message": "OK",
"RequestId": "4ABF7FB6-449C-4624-8CC6-9AAE368453AA",
"Code": "OK",
"CallId": "118720962490^1055181****"
}
调用SDK返回错误码,详情请参见错误码列表。
反馈
- 本页导读 (1)
文档反馈