如何解决Twilio - 如果未将其标记为失败,如何检查收集的语音结果是否具有预期值
需要帮助验证语音结果:我正在尝试验证我们是否在 twiml 函数中获得了正确的语音结果。我能够获取语音结果并对它们执行某些操作..但是当它不匹配时我希望我的测试失败。如何实现这一目标.. 提前致谢。我的示例代码
exports.handler = function(context,event,callback)
{
let twiml = new Twilio.twiml.VoiceResponse();
console.log("Event = " + JSON.stringify(event));
let ivrSpeech = (event.SpeechResult ? event.SpeechResult : "").toLowerCase();
let servicetype = event.servicetype;
console.log("Call type" + servicetype);
let IVRType = event.ivrgoal;
if (ivrSpeech && ivrSpeech.length > 0)
{
if(servicetype.includes("XX"))
{
if (ivrSpeech.includes("Call may be recorded and monitored for quality purpose"))
{
twiml.pause({ length: 10 });
}
else
{
XXX - fail my test
}
}
}
callback(null,twiml)
}
解决方法
这里是 Twilio 开发者布道者。
首先,您的代码存在一个问题,这意味着您将始终无法通过检查。
当您获得 ivrSpeech
时,您可以在其上调用 .toLowerCase()
:
let ivrSpeech = (event.SpeechResult ? event.SpeechResult : "").toLowerCase();
但是然后您针对其中包含大写字母的字符串进行测试:
if (ivrSpeech.includes("Call may be recorded and monitored for quality purpose"))
所以你应该从一开始就改变它。
否则,当你说你想在不匹配时“让我的测试失败”时,我不确定你的意思。到目前为止,您的代码写得很好,但我不太明白您想在 else
条件下做什么。
一种选择是挂断电话,您可以这样实现:
if (ivrSpeech && ivrSpeech.length > 0)
{
if(servicetype.includes("XX"))
{
if (ivrSpeech.includes("call may be recorded and monitored for quality purpose"))
{
twiml.pause({ length: 10 });
}
else
{
twiml.hangup();
}
}
}
callback(null,twiml)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。