性格决定命运 气度左右格局 拼搏方能取胜 谦虚才会进步

IVR-2 [Voice XML规范详细描述12]

上一篇 / 下一篇  2008-03-25 10:16:50 / 个人分类:做着

第七节 Timeout 
 
 
    timeout属性指定了当最后一个<prompt>元素播放结束后,等待用户输入时,允许的静音时间。如果静音事件超过了timeout属性值,则抛出noinput事件。在<prompt>元素排队时,该属性默认为timeout property指定的值(见6.3.4节)。换句话说,每个<prompt>元素都有它自己的timeout值。
    允许指定<prompt>元素的timeout属性值是为了能够支持分级timeout。例如,用户在第一次输入时有5秒的事件,而第二次则有10秒。
    <prompt>元素的timeout属性决定了接下来用户输入的noinput timeout:
<prompt count="1">
Pick a color for your new Model T.
</prompt>
<prompt count="2" timeout="120s">
Please choose color of your new nineteen twenty four
Ford Model T. Possible colors are black, black, or
black.  Please take your time.
</prompt>
    如果在用户输入之前有几个<prompt>元素进行排队,则使用最后一个<prompt>元素的timeout属性值。
第八节 Prompt Queueing and Input Collection 
 
 
    VoiceXML解释器一直都处于下面的两种状态之一:
      ·在input itm 中等待输入(例如<field>,<record>或<transfer>元素) ;
      ·在input item中跳转以响应在等待状态中收集到的输入(包括语音输入、DTMF按键输入和与输入有关的的事件,如noinput和nomatch事件)。当在跳转状态时,任何语音输入都不会被收集、接受或解释。从而,root和文档级的语音语法在整个应用中可能都没有被激活的机会。然而,在跳转状态时,DTMF输入应该被收集并缓冲。同样的,和跳转的执行没有直接关系的异步产生的事件(如connection.disconnect.hangup事件)也应该被缓冲,直到等待状态才被删除。
    等待和跳转状态与FIA的几个阶段的关系如下:
      ·在一个input item的收集阶段开始时才进入等待状态(在解释器等待输入的那一刻)。
      ·跳转状态贯穿了处理阶段和选定阶段,包括control item(例如<block>元素)的选定阶段和input item的选定阶段,直到解释器等待输入的那一刻。
    分成两个状态是为了更好的简化编程的模型。特别的,这个模型让VoiceXML应用的开发者能够依靠所有的可执行内容(例如<filled>元素和<block>元素的内容)一直运行到完成要执行的操作。因为在跳转状态,正在执行的操作不会被用户的输入打断。
    在跳转状态有多种<prompt>元素进行排队,或者是可执行内容中的<prompt>元素,或者是form. item中的<prompt>元素。另外,由于指定了fetchaudio属性,音频也可以参加排队。当出现下面的情况之一时,播放排队的<prompt>元素和音频:
      ·当解释器达到等待状态时,此时系统播放提示语,且解释器监听是否有匹配激活的语法的输入;
      ·当解释器开始获取资源(例如一个文档),且该元素指定了fetchaudio属性。在这种情况下,fetchaudio之前的提示语都会被播放,之后,如果确实需要获取资源(即该资源在缓存中不是非过期的),就播放该fetchaudio直到获取完成。在获取资源时,解释器处于跳转状态,且不接收任何输入。
    注意,如果一个<prompt>元素的bargein属性值为false,则输入不会被收集,且在跳转状态时,缓冲中的DTMF输入被删除(见4.1.5)。
    在解释器退出前,会播放完所有已排队的<prompt>元素。当解释器正在退出时,解释器保持在跳转状态,且不接受任何输入。
    一个允许的优化是:在达到等待状态之前的跳转状态期间就播放已排队的<prompt>元素。如果这样做的话,对于在播放<prompt>元素时接收到的输入音频的处理是能够保持正确的语义的。例如,对于bargein和语法的处理。
    下面的例子表明了,在某些情形下这些规则的操作。
    情形1
    典型的non-fetching情形:第一个<field>元素后面有可执行的内容(如<block>元素和<filled>元素),再后面是另外一个<field>元素。
in document d0
<field name="f0"/>
<block>
executable content e1
queues prompts {p1}
</block>
<field name="f2">
queues prompts {p2}
enables grammars {g2}
</field>
    在<field>元素f0的等待状态中接收到输入,导致了下面操作的发生:
      · 在跳转状态
        o 执行e1(没有<goto>元素)
        o 对<prompt>元素{p1}排队
        o 对<prompt>元素{p2}排队
      ·在等待状态中同时进行如下操作
        o 播放<prompt>元素{p1,p2}
        o 激活语法{g2},并等待输入
    情形2
    典型的获取资源的情形:第一个<field>元素后面是以<goto>元素为结尾的可执行内容,该<goto>元素指定了fetchaudio属性,并跳转到另一个文档中的<field>元素,该文档是从服务器获取的。
in document d0
<field name="f0"/>
<block>
executable content e1
queues prompts {p1}
ends with goto f2 in d1 with fetchaudio fa
</block>
in document d1
<field name="f2">
queues prompts {p2}
enables grammars {g2}
</field>
    在<field>元素f0的等待状态中接收到输入,导致了下面操作的发生:
      · 在跳转状态
        o 执行 e1
        o 对<prompt>元素 {p1}排队
        o 同时
          ·获取 d1
          ·播放 {p1} ,之后播放fa,直到获取资源完毕
        o 对<prompt>元素 {p2}排队
      ·在等待状态中同时进行如下操作
        o 播放 {p2}
        o 激活语法 {g2} 并等待输入
    情形3
    和情形2类似,只是没有指定fetchaudio属性。
in document d0
<field name="f0"/>
<block>
executable content e1
queues prompts {p1}
ends with goto f2 in d1 (no fetchaudio specified)
</block>
in document d1
<field name="f2">
queues prompts {p2}
enables grammars {g2}
</field>
    在<field>元素f0的等待状态中接收到输入,导致了下面操作的发生:
      · 在跳转状态
        o 执行 e1
        o 对<prompt>元素 {p1}排队
        o 获取 d1
        o 对<prompt>元素 {p2}排队
      ·在等待状态中同时进行如下操作
        o 播放<prompt>元素 {p1, p2}
        o 激活语法{g2},并等待输入

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar