VXML для DTMF ввода букв на основе их размещения на клавиатуре

Я новичок в VXML (и вообще кодирую), и, видимо, я пытаюсь сделать это... не нормально, но, надеюсь, это можно сделать.

Я понимаю принципиальную концепцию ввода DTMF с VXML, где я использую:

<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) ПОДСКАЗКА: Пожалуйста, введите ваш ТРИ буквенный код. Пожалуйста, введите ваше первое письмо.
2) Ожидайте двух входов DTMF: первое число от 2 до 9, второе число от 1 до 4. На основании этой логики (33 = F, 94 = Z) буква установлена.
3) ПОДСКАЗКА: буква, которую вы ввели - (ВХОД). Это правильно? Нажмите 1 для да, 2, чтобы повторить попытку.
4) Повторите попытку или перейдите к следующей букве. Так далее и тому подобное.

Если у кого-то есть ресурсы, чтобы я сам наткнулся на ответ на этот вопрос, это было бы здорово! Если кому-то захочется щедрость... это тоже вариант! Спасибо за чтение!

3 ответа

Типичный подход к этой проблеме - просто принять удвоенное количество тонов, как вы ожидаете, или использовать ввод в фунтах. Затем используйте ECMAscript или код на стороне сервера, чтобы перевести строки тонов в нужные буквы.

Есть несколько способов решения этой проблемы:

1) Вы можете просто принять все 2-значные числа в грамматике и выполнить все проверки / вычисления на стороне сервера.

и / или

2) Сделайте некоторую проверку в <filled> section и letter-decoding-from-number на стороне сервера (а затем вернитесь с результатом и уточните у пользователя, было ли это предполагаемое письмо).

Для двузначной грамматики вы можете параметризовать встроенную грамматику цифр следующим образом (обратите внимание, что схема URI зависит от платформы, поэтому вам может понадобиться обратиться к руководству пользователя вашего голосового браузера, чтобы быть уверенным в точной схема будет использоваться)

<field type="digits?length=2">
   <prompt>Please enter the code of the first letter</prompt>
</field>

Есть и другие способы, например, вы можете также выполнить декодирование писем на стороне клиента, используя скрипт на той же странице, но, надеюсь, вышеизложенное дает некоторые идеи о том, что выбрать в зависимости от ваших требований.

(На самом деле, ФП, вероятно, не будет искать ответ на этот вопрос после столь длительного времени, но, надеюсь, это поможет другим, кто попал на эту страницу в поисках решения аналогичного вопроса)

Лучший способ - определить грамматику, связывающую каждое значение с буквой результата:

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

Другой способ - позволить пользователю ввести 2 буквы и обработать их с помощью функции EcmaScript или использовать тег.

Я планирую добавить такую ​​функцию в интерпретатор Voximal VoiceXML для Asterisk. Но уверены ли вы, что пользователи смогут понять и использовать этот метод для ввода букв?

Другие вопросы по тегам