twilio - 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)
推荐阅读
- elasticsearch - index_template 不适用于第二天
- emacs - org-mode 弄乱了 Outlook Web 中的 URL
- python - IIS 托管 python CherryPy API
- javascript - JavaScript 输入类型验证
- c++ - Rand() 不显示随机数,请帮助我了解问题所在:)
- java - 在 Tomcat 中运行的 Square Java SDK 无法找到球衣通用类
- ruby - 使用 splat 运算符解构数组时出现 SystemStackError
- vue.js - Vuex 状态监视计算不工作
- javascript - 在 UI 反映选择之前处理 JavaScript 单选按钮
- xml - 如何将 XML 添加为另一个 XML 中的内部文本,作为 SOAP 请求的参数