2016-12-12 3 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) и положить в фактическом числе вместо + mobileno в виде «CALL_NUMBER». Затем вы узнаете, действительно ли звонок.

Если он по-прежнему не проходит, то вам, возможно, придется работать в правильном формате, как ожидается провайдером (это может быть не ошибка VXML).

В качестве альтернативы, вы можете просто проверить журналы IVR и посмотреть, на какой номер набирается (и если вы можете идентифицировать там любую очевидную ошибку)

Смежные вопросы