2016-12-12 9 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 로그를 확인하고 어떤 번호가 다이얼되고 있는지 확인할 수 있습니다. (명백한 오류를 식별 할 수있는 경우)