I'm trying to write an app with Twilio programmable voice to be able to collect both speech and digits from customer. my code is getting the digits but not responding to the speech result. By the way in the latest version of Twilio, 'input' parameter for 'gather' does not allow to put "dmfs speech" string, to use both options together,since it's only accepting a list of [InputEnums] with Dtmf and Speech by definition. here is a sample of my code if anyone could help me figure out what am I doing wrong:
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());
}