2

platform :サンドボックスのテスト場所

スニペット セットをもう 1 つ追加したい

以下のスニペットは、発信者から携帯電話番号を取得し、発信者が入力した番号を別のページに投稿します。コードは正常に機能しています。

しかし、私はテーブルでその番号を確認し、「入力された電話番号の詳細」を取得したいと思います。つまり、contact_tbl には電話番号、名、姓、住所が保持されています。

<?php
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
?>
<vxml version = "2.1">
  <meta name="maintainer" content="your_email_address@wherever.com"/>

  <property name="inputmodes" value="dtmf" />
  <form id="get_mobile_no">
    <field name="mobileno" type="digits?minlength=10;maxlength=10">
      <prompt>
        <prosody rate="slow"> please enter your 10 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 10 digit mobile number !</prompt>
        <reprompt/>
      </noinput>
      <catch event="noinput nomatch" count="3">
      <prompt>Please try again later. Good bye.</prompt>
      <exit/> </catch>
      <filled>
        <prompt>
          <prosody rate="slow"> you said
            <value expr="mobileno"/>
            ! Thanks for calling, you may now hang up.</prosody>
        </prompt>
      </filled>
    </field>
    <block name="sendData">
      <prompt>Entering   entering...</prompt>
      <submit next="get_dtmf_ip.php" namelist="mobileno" method="post" />
    </block>
  </form>
</vxml>

ユーザーから入力を取得し、発信者が入力した番号を再生するサンプル VXML IVR アプリケーション。

以下のコードは正常に動作していますが、文法タグを削除するとエラー コードが再生され、そのエラー コードを追跡できません。

今、私は少し変更を加えたいと思っています。そのユーザーは複数の数字を入力できます。

正確に発信者は自分の携帯電話番号を入力する必要があります。

複数の番号を受け入れるようにコードを変更する方法。

<?php
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
?>
<vxml version = "2.1">
      <meta name="maintainer" content="your_email_address@wherever.com"/>
    <form id="guessNumber">
        <field name="guess">
          <grammar type="text/gsl">
            [dtmf-1 dtmf-2 dtmf-3 dtmf-4 dtmf-5 dtmf-6 dtmf-6 dtmf-7 dtmf-8 dtmf-9]
          </grammar>
          <prompt>
            <prosody rate="slow">
Guess what the computer is thinking! Pick a number between 0 and 9.
            </prosody>
          </prompt>
          <nomatch>
            <prompt>
              <prosody rate="slow">
Is that a number? Please try again.
              </prosody>
            </prompt>
            <reprompt/>
          </nomatch>
          <filled>
            <prompt>
              <prosody rate="slow">
you said
                <value expr="guess"/>
                !
              </prosody>
            </prompt>
          </filled>
        </field>
      </form>
      </vxml>
4

1 に答える 1

0

この質問は少し古いですが、将来の読者のために...

あなたが何を求めているかを伝えるのは難しいです。複数の数字を許可するには、文法を次のように変更します。

<grammar version="1.0" xml:lang="en-US" root="keypress" 
         mode="dtmf" scope="document">
    <rule id="keypress" scope = "public">
      <one-of>
          <item> 1 </item>
          <item> 2 </item>
          <item> 3 </item>
          <item> 4 </item>
          <item> 5 </item>
          <item> 6 </item>
          <item> 7 </item>
          <item> 8 </item>
          <item> 9 </item>
          <item> 0 </item>
      </one-of>
    </rule>
</grammar>

次に、以下を使用して桁数を指定します。

<field name="guess" type="digits?length=2" >

ただし、呼び出し元から複数の応答を取得する方法を尋ねている場合は、次のようにフォームに 2 番目のフィールド要素を追加するだけです。

<form id="guessNumber">
    <field name="guess1" type="digits?length=1" >
        <prompt>
            Guess what the computer is thinking! Pick a number between 0 and 9.
        </prompt>
    </field>

    <field name="guess2" type="digits?length=1" >
        <prompt>
            Guess what the computer is thinking now! Pick a number between 0 and 9.
        </prompt>
        <filled>
            You guessed <value expr="guess1"> and <value expr="guess2">.
        </filled>
    </field>
</form>

nomatch および prosody 要素は、わかりやすくするためにそれらを削除しました。それらは再び追加できます。

于 2012-10-04T20:58:34.083 に答える