2016-12-12 7 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

表面上、ロジックは正しいと思われます。

これをデバッグするには、私は(フォームget_mobile_numberなし)のみのフォームcall_numberを実行し、フォームのcall_number '内の実際の数の代わりに、+ mobilenoに入れてお勧めします。通話が実際に行われているかどうかを確認します。

それでも解決しない場合は、プロバイダが予期したとおりに正しい形式で作業する必要があります(VXMLエラーではない可能性があります)。

また、IVRログを調べて、ダイヤルインされている番号を確認することもできます(また、明らかなエラーがある場合はそれを識別できます)

関連する問題