2

私は VXML (および一般的なコーディング) の初心者であり、明らかに私がやろうとしていることは... 普通ではありませんが、うまくいけばそれが可能です。

私が使用する VXML を使用した DTMF 入力の原則の概念を理解しています。

<grammar mode="dtmf"><![CDATA[ (*|0|1|2|3|4|5|6|7|8|9)<2-31> ]]></grammar>
<prompt>something here</prompt>
<noinput-nomatch-filled>conditions</noinput-nomatch-filled>

私がやろうとしているのは、ダイヤルパッド上の配置に基づいて文字の DTMF 入力を許可するために複数のアクションを実行することです。これを行うには、最初に文字が載っている番号 (2 ~ 9) をダイヤルし、その文字の配置 (1 ~ 4) をダイヤルします。

例: "E" は、ダイヤルパッドでは 3 と 2 になります。

これが VXML でどのように機能するかについて、私は完全に途方に暮れています。私がやりたいことはこれです:

1)プロンプト: 3 文字のコードを入力してください。最初の文字を入力してください。
2) 2 つの DTMF 入力が 2 から 9 の間の最初の数字、1 から 4 の間の 2 番目の数字であると想定します。この論理 (33 = F、94 = Z) に基づいて、文字が設定されます。
3)プロンプト: 入力した文字は (INPUT) です。これは正しいです?はいの場合は 1 を、再試行する場合は 2 を押します。
4)再試行するか、次の文字に進みます。などなど。

誰かがリソースを持っているので、これに対する答えを自分で見つけることができれば、それは素晴らしいことです! 報奨金が必要な場合は... それもオプションです。読んでくれてありがとう!

4

3 に答える 3

0

この問題への一般的なアプローチは、予想の2倍のトーン数を受け入れるか、ポンド終端入力を使用することです。次に、ECMAscriptまたはサーバー側のコードを使用して、トーン文字列を目的の文字に変換します。

于 2011-01-23T03:04:29.140 に答える
0

最良の方法は、各値を結果の文字にリンクする文法を定義することです。

  <grammar mode="dtmf" root="letter">
    <rule id="letter">
      <one-of>
        <item>32<tag>E</tag></item>
        ...
      </one-of>
    </rule>
  </grammar>

もう 1 つの方法は、ユーザーに 2 文字を入力して EcmaScript 関数で処理させるか、タグを使用することです。

このような機能を、Asterisk の VoiceXML インタープリターである Voximal に追加する予定です。しかし、ユーザーがこの方法を理解して文字を入力できると確信していますか?

于 2016-12-30T01:51:31.543 に答える