使voiceXML读取服务器返回的结果

我在voiceXML是新的,我想知道如何读后通过服务器返回的值。 我希望voiceXML读取服务器的响应。 根据voiceXML文档 ,我知道结果应该是XML。

这是我接收结果的node.js / express.js代码:

app.post("/getData", function (req, res) { console.log(JSON.stringify(req.body)); res.header('Content-Type','text/xml').send('<?xml version="1.0" ?> <vxml version="2.0"> <block> <prompt> The time in Milwaukee is 10 </prompt> </block> </vxml>'); }); 

以下是显示我已成功收到发布内容的屏幕截图:

在这里输入图像描述

以下是显示我正在成功发送XML结果的屏幕截图: 在这里输入图像描述

这是我的voiceXML文件:

 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE vxml PUBLIC "-//BeVocal Inc//VoiceXML 2.0//EN" "http://cafe.bevocal.com/libraries/dtd/vxml2-0-bevocal.dtd"> <vxml xmlns="http://www.w3.org/2001/vxml" xmlns:bevocal="http://www.bevocal.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0"> <form scope="dialog"> <field name="name" modal="false"> <grammar src="grammars.grammar#Names"/> <prompt>Whats your name?</prompt> <filled> <prompt>Hello <value expr="name"/> </prompt> </filled> </field> <field name="city" modal="false"> <grammar src="grammars.grammar#Cities"/> <prompt>What city are you from?</prompt> <filled> <prompt>You are from <value expr="city"/> </prompt> </filled> </field> <field name="country" modal="false"> <grammar src="grammars.grammar#Countries"/> <prompt>What country are you from?</prompt> <filled> <prompt>You are from <value expr="country"/> </prompt> </filled> </field> <field name="cityTime"> <prompt> What city would you like the time for? </prompt> <grammar type="application/x-nuance-gsl"> [denver (san francisco) ] </grammar> </field> <field name="formatTime"> <prompt> Twelve hour or twenty four hour clock? </prompt> <grammar type="application/x-nuance-gsl"> [[twelve (twenty four)] ?hour] </grammar> </field> <block> <submit next="http://65.29.170.122/getData" method="post" namelist="name city country cityTime formatTime" /> </block> </form> </vxml> 

有两种方法可用:首先,在收集您的input后,提交表单,响应应该是一个新的播放数据的VoiceXML文档。

其次,如果您的浏览器支持(大多数情况),您可以使用Data元素在VoiceXML表单中提出请求。 响应需要是XML。 VoiceXML提供了一种方法来遍历生成的DOM来获取数据。

至于说到数据,大多数浏览器在提示中支持SSML的say-as元素。 对于大多数专业应用程序来说,通常的做法是build立一个JavaScript库来组装和播放一组录音以播放时间。

在文件中添加php代码,添加xml脚本并随时随地响应服务器响应。 这样,语音服务器获得的最终的XML实际上也有PHP代码,但它并不重要,因为它会忽略PHP只采取之间的XML标签,你会回应的结果。 例如:

 <?php $appointmentTime = $_REQUEST['appointment_time']; ?> <Response> <Play> <?php echo $appointmentTime ?> </Play> </Response>