2015-09-02 41 views
0

如何在VXML中連接變量。考慮下面的例子VXML,如何在vxml中連接變量

<?xml version="1.0" encoding="UTF-8"?> 
<vxml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.w3.org/2001/vxml" version="2.0" xsi:schemaLocation="http://www.w3.org/2001/vxml http://www.w3.org/TR/voicexml20/vxml.xsd"> 
    <form> 
     <block> 
      <audio src="{url1}"/> 
      <audio src="{url2}"/> 
     </block> 
     <field name="dtmf"> 
      <option dtmf="1" value="1"/> 
      <option dtmf="2" value="2"/> 
      <option dtmf="2" value="3"/> 
      <filled> 
       <submit next="{url3}" namelist="action toneId dtmf" method="get"/> 
      </filled> 
     </field> 
     <noinput> 
      <reprompt/> 
     </noinput> 
     <nomatch> 
      <reprompt/> 
     </nomatch> 
    </form> 
</vxml> 

{URL3} = {一些字符串} + {一些變量=值},我想這樣的,有URL3得到concating兩個價值。

回答

1

變化:

<submit next="{url3}" namelist="action toneId dtmf" method="get"/> 

<submit expr="{some string} + {some variable=value}" namelist="action toneId dtmf" method="get"/> 

或者更具體的例子:

<submit expr="'http://yourserver.com/api/' + servletName" namelist="action toneId dtmf" method="get"/> 
+0

請告訴我如何獲得

+0

我想我很困惑你的要求。如果您的意思是您希望輸入值位於url中,請將我使用的servleName替換爲字段名稱dtmf,因爲它將設置爲輸入值。您已經提供輸入作爲請求參數的一部分。 –

+0

謝謝,但我想知道一點關於具體的兩個** vxml **變量。 –

1

以前的答案是正確的,但讓我增加一個額外的一行或兩行顯示如何使用namelistfield

<field name="dtmf"> 

即名字有點confusing.You're定義一個變量名,「DTMF」是在文檔中其他地方使用;爲了避免問題,我們稱之爲「迴應」。

<field name="response"> 

您允許的選項,這是很好的:

<option dtmf="1" value="1"/> 
<option dtmf="2" value="2"/> 
<option dtmf="2" value="3"/> 

過程中的值可以是任何東西,如

<option dtmf="1" value="meat"/> 
<option dtmf="2" value="fish"/> 
<option dtmf="2" value="dairy"/> 

,我想在這裏指出,value不是接受ECMAScript值;它只是純文本,是VoiceXML的一個古怪之處。

設置你要發送的其他變量的值:

<var name="toneId" expr="12"/> 
<var name="action" expr="'scream'"/> 

而且expr確實需要一個ECMAScript表達式。 「toneID」被設置爲一個數字,並且「動作」已被設置爲一個字符串。如果需要,也可以這樣做:

<var name="foo" expr="'scream'"/> 
<var name="action" expr="foo"/> 

字段「響應」將自動填入用戶選擇的值。如果你願意,你也可以使用所謂的「影子變量」,然後發送它們;請參閱VoiceXML spechttp://www.w3.org/TR/2004/REC-voicexml20-20040316/#dml2.3.1

最後,Jim說,

<submit expr="'http://example.com/api/' + servletName" namelist="action toneId response" method="get"/> 

希望這有助於。

+0

謝謝,這對我更有幫助。 –