本章节为您介绍了阿里云语音服务语音IVR的功能介绍和实现方法,您可以通过调用IvrCall实现交互式语音应答。

功能介绍

语音IVR是指通过调用语音呼叫的API,从运营商网络向指定号码发起一通呼叫,呼叫被接起后,播放一段指定音频,用户根据音频引导,通过手机按键信息返回意图,语音平台通通过消息回执返回按键信息给企业业务系统。

实现方法

在实现调用API实现语音IVR功能前,您需要完成以下操作。

  • 购买语音号码并审核通过语音模板或语音文件,具体操作请参见快速入门
  • 获取AccessKey信息,详情请参见获取AccessKey
  • 完成本地SDK环境搭建,详情请参见Pyhton SDK

本章节调用接口详情,请参见IvrCall

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkdyvmsapi.request.v20170525.IvrCallRequest import IvrCallRequest

client = AcsClient('<accessKeyId>', '<accessSecret>', 'cn-hangzhou')

request = IvrCallRequest()
request.set_accept_format('json')
request.set_CalledShowNumber("05715621xx")
request.set_CalledNumber("1500000xx")
request.set_StartCode("TTS_713900000")
request.set_StartTtsParams("{\"product\":\"aliyun\",\"code\":\"123\"}")
request.set_MenuKeyMaps([
  {
    "Key": "1",
    "Code": "9a9d7222-670f-40b0-a3af.wav"
  },
  {
    "Key": "2",
    "Code": "TTS_71390000",
    "TtsParams": "{\"product\":\"aliyun\",\"code\":\"123\"}"
  }
])
request.set_PlayTimes(3)
request.set_Timeout(3000)
response = client.do_action_with_exception(request)
print(response)

正常返回结果如下所示:

{
  "Message": "OK",
  "RequestId": "4ABF7FB6-449C-4624-8CC6-9AAE368453AA",
  "Code": "OK",
  "CallId": "118720962490^10551812xx"
}

调用SDK返回错误码,详情请参见错误码列表