帮助在我的IVR中识别此Javascript“脚本”对象

时间:2018-12-09 04:18:00

标签: javascript

我正在为我的IVR编程。我需要使用内置的“脚本”对象,将其插入IVR中的对话框流时将执行JavaScript代码。我需要创建一个简单的JavaScript延迟函数,以延迟IVR对话框中另一个函数的运行,而根本不涉及JavaScript。 IVR是基于Windows的程序,除了“脚本对象”中的内容外,不使用Java或JavaScript。在Stack上有大量的JavaScript延迟计时器代码示例。问题是,无论我尝试在此IVR“脚本”对象中使用什么,都无济于事。有人可以尝试确定我需要哪种类型的JavaScript代码吗?这与我在屏幕快照中显示的内容有关吗?这是我没有写的现有代码,但是可以工作。我不知道JavaScript编程,我只需要一件事,一个简单的计时器用于IVR对话框,我也不知道这里所有的“ sun net client”和“ Java Lang System”以及其他东西是什么。我要做的就是执行我在Stack上找到的延迟代码。我需要什么特定的语法或使其有效的内容?下面的代码是我要使用的代码。 IVR“脚本对象”中存在的代码在我要使用的代码下面。这是一些专有的JavaScript代码/语法吗?

IVR“脚本对象”指定了以下内容:JavaScript:脚本资源应为JavaScript 1.5代码,由Voxeo CXP Server解释。

What I want to use in my "script object"


var x = 1;
var y = null; // To keep under proper scope
setTimeout(function() {
x = x * 3 + 2;
y = x / 2;
}, 100);


Existing working code, had to delete some things cause it wouldn't format here but it is an example of how its written.



var url = new java.net.URL(
selfPayURL);
java.lang.System.setProperty("sun.net.client.defaultReadTimeout ", 
java.lang.System.setProperty("sun.net.client.defaultConnectTimeout", "
var con = url.openConnection();
var in1 = new java.io.BufferedReader(new java.io.InputStreamReader(
con.getInputStream()));
var readLine = in1.readLine();
finalResult = '';
while (readLine) {
finalResult += readLine;
readLine = in1.readLine();
}
in1.close();
con.disconnect();

1 个答案:

答案 0 :(得分:0)

您找到的这些解决方案适用于网页上运行的JavaScript。使用setTimeout时,您要让JavaScript引擎在一定时间后调用一个函数。例如,您可能想在用户查看页面时每隔几秒钟更新一次该页面上的值。但是在那种情况下,用户当然可以随时浏览到下一页或随时单击“后退”按钮-他们不必等待计时器“关闭”。

当您的IVR正在运行脚本时,唯一的指令是“设置计时器”(而不是等待计时器“关闭”),因此没有更多的指令,因此脚本完成并且IVR移动转到下一个表格/提示。听起来JavaScript并没有一种简单的方法来等待计时器(也许您可以使用Promises和await来做到这一点,但这需要比您的JavaScript更高的版本)。

我没有使用过CXP,但我知道它是生成VXML的工具。要在VXML中暂停,您只需在提示中添加一个break标签即可。如:

<prompt>
    <break duration="5000ms"/>
</prompt>

然后通过收集一些输入(即使没有语法,并且您只是希望超时)而进入等待阶段。