2016-12-12 44 views
0

我想獲取用戶輸入(國家代碼+電話號碼),以便稍後使用傳輸元素進行調用。VXML使用輸入傳輸

我的問題滿足在傳輸元素,它只是掛斷電話。我不知道如何調試它們。我使用NEXMO作爲提供者。我事先搜索並嘗試了很多東西,包括單獨測試每個函數(哪些工作正常!)。

<?xml version="1.0" encoding="UTF-8"?> 
<vxml version="2.1"> 
    <property name="inputmodes" value="dtmf" /> 
    <form id="get_mobile_number"> 
     <field name="mobileno" type="digits?minlength=7;maxlength=13"> 
     <prompt> 
      <prosody rate="slow"> please enter your 7 to 13 digit mobile number !</prosody> 
     </prompt> 
     <!--INVALID--> 
     <nomatch count="1"> 
      <prompt> 
       <prosody rate="slow"> Is that a number? Please try again. </prosody> 
      </prompt> 
      <reprompt/> 
     </nomatch> 
     <!--TIMEOUT--> 
     <noinput count="1"> 
      <prompt>Again, please enter your 7 to 13 digit mobile number !</prompt> 
      <reprompt/> 
     </noinput> 
     <catch event="noinput nomatch" count="3"> 
      <prompt>Please try again later. Good bye.</prompt> 
      <exit/> 
     </catch> 
     <filled> 
      <goto next="#call_number"/> 
     </filled> 
     </field> 
    </form> 

    <form id="call_number"> 
     <transfer name="result" destexpr="'tel:+'+ mobileno" bridge="true"> 
     <prompt>Please wait while we transfer you.</prompt> 
     <grammar xml:lang="en-US" root = "TOPLEVEL" mode="voice"> 
      <rule id="TOPLEVEL" scope="public"> 
       <one-of> 
        <item> disconnect </item> 
       </one-of> 
      </rule> 
     </grammar> 
     </transfer> 
     <filled> 
     <if cond="result == 'busy'"> 
      <prompt>Sorry, they're busy.</prompt> 
      <elseif cond="result == 'noanswer'" /> 
      <prompt>Sorry, they didn't answer.</prompt> 
      <else /> 
      <prompt> 
       You spoke for <value expr="result$.duration" /> seconds. 
      </prompt> 
     </if> 
     <if cond="result$.inputmode == 'voice'"> 
      You ended the call by saying,<value expr="result$.utterance" />. 
     </if> 
     </filled> 
    </form> 
</vxml> 

有沒有人知道它有什麼問題?

回答

0

從表面上看,邏輯似乎是正確的。

爲了進行調試,我建議只運行表格call_number(不含表格get_mobile_number),並以「call_number」形式放入實際的號碼而不是+ mobileno。然後你會知道電話是否確實正在通話。

如果它仍然沒有通過,那麼您可能需要按照提供者預期的正確格式工作(它可能不是VXML錯誤)。

或者,您可以檢查IVR日誌並查看正在撥打什麼號碼(以及是否可以識別其中的任何明顯錯誤)