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)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...