【问题标题】:Calling webservice from voice xml从语音 xml 调用 web 服务
【发布时间】:2023-03-17 01:32:02
【问题描述】:

如何从语音 xml (vxml) 文档调用网络服务。我正在使用一个开源 IVR 项目,我需要为 vxml 文档中的任何给定选项运行 Web 服务。

这类似于这个查询; how can I call a webservice from voiceXML? 但是,那里提供了解决方案,但不是

【问题讨论】:

    标签: web-services ivr vxml


    【解决方案1】:

    您不能直接从 VoiceXML 应用程序调用 Web 服务。将数据导入 VoiceXML 应用程序通常有两种方法:

    1. 使用数据元素标签发出 http 请求。结果必须是 XML。您将需要使用提供的 DOM 函数解析结果。请注意,某些浏览器具有便于 XML 解析的扩展功能。这还需要符合 VoiceXML 2.1 的浏览器。
    2. 将控制权转移到服务器代码的动态位,该代码返回要处理的 VXML 以填充所需的变量。这可以通过 goto 元素或 subdialog 元素来完成。

    【讨论】:

    • 感谢您的帮助。我什至处于初级阶段——我怀疑我的开放式 IVR 系统无法识别 vxml 中的“数据”、“src”元素。我在 vxml 文档中使用 'data' 元素,并在 'src' 值中给出 url。我的开放式 IVR (Zanzibar) 系统无法识别它并在其控制台上引发异常,在处理 org.jvoicexml.event.error.BadFetchError: error.badfetch: 'src' 或 'srcexpr' 必须是其中之一时捕获了 JVoiceXML 事件被指定....
    • JVoiceXML 确实支持数据元素(我将代码库用于测试项目)。 srcexpr 可能缺少实现逻辑。我隐约记得必须修复它。确保使用的是最新版本的 JVoicexml。
    【解决方案2】:

    你的问题不完整,但我想我知道你在困扰什么。

    我通过使用从网络服务获取信息

    <data name="return_data" srcexpr="some_url" method="post" namelist="var1 var2 var3" />
    

    我返回的数据在 return_data 变量中。在我的例子中,数据是 XML 格式的,我使用 JavaScript 函数来提取我需要的数据。

    顺便说一句,为了可维护性、可重用性和易于阅读,我个人认为为 JS 函数创建单独的文件并通过&lt;script&gt; 将它们包含到我的根 VoiceXML 文档中很有用。

    【讨论】:

      猜你喜欢
      • 2013-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多