我正在尝试使用Twilio可编程语音编写应用程序,以便能够从客户收集语音和数字。我的代码是获取数字但没有响应语音结果。顺便说一下,在Twilio的最新版本中,'gather'的'input'参数不允许输入“dmfs speech”字符串,同时使用两个选项,因为它只接受带有Dtmf和Speech by的[InputEnums]列表定义。这是我的代码示例,如果有人可以帮我弄清楚我做错了什么:
public List<InputEnum> inputEnum = new List<InputEnum>() {InputEnum.Speech , InputEnum.Dtmf}; // creating a list with Dtmf and Speech options
var gather = new Gather(input: inputEnum, action: new Uri(baseUri,"IVR/MainMenu"), hints: "returning customer , agent", timeout: 4, numDigits: 1);
gather.Say("If you are a returning customer and would like to place your last order, say returning customer or press 1." );
gather.Say("To speak to an agent, say agent or press 2");
_response.Append(gather);
return new TwiMLResult(_response.ToString());
}
[HttpPost]
public ActionResult MainMenu(string digits)
{
if ((digits == "1") || ( digits == "returning customer"))
{
_response.Say("Please hold while we pull up your information.");
_response.Pause(6);
var gather = new Gather(input: inputEnum, hints: "last order, place last order , agent", timeout: 4, action: new Uri(baseUri, "IVR/ReturnInstructions"), numDigits: 1);
gather.Say("If you would like us to read your last order to you, say last order or press 1");
gather.Say("To place your last order, say place last order or press 2");
gather.Say("To speak to an agent, say agent or press 0");
_response.Append(gather);
return new TwiMLResult(_response.ToString());
}
答案 0 :(得分:0)
我尝试了不同的方法,事实证明我必须将专门针对语音结果的另一个参数传递给我的操作,并确保将其转换为小写,否则它将始终返回false以进行字符串比较。这是我的MainMenu ActionResult示例:
public ActionResult MainMenu(string digits = null, string speechresult = null)
{
if ((digits == "1") || (speechresult != null && speechresult.ToLower() == "returning customer"))
{
_response.Say("Please hold while we pull up your information.");
_response.Pause(6);
gather.Say("If you would like us to read your last order to you, say last order or press 1");
return new TwiMLResult(_response.ToString());
}
else if ((digits == "0") || (speechresult != null && speechresult.ToLower() == "agent"))
{
return connectToAnAgent();
}
return connectToAnAgent();
}