VXML DTMF получает информацию от абонента
Платформа: место тестирования песочницы
Я хотел бы добавить еще один набор фрагментов
Приведенный ниже фрагмент получит номер мобильного телефона от вызывающего абонента и разместит введенный номер вызывающего абонента на другой странице. Код работает нормально,
но я хочу проверить этот номер в таблице и вытащить "Введенные данные о номере телефона", который находится в 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>
1 ответ
Этот вопрос немного старый, но для будущих читателей...
Трудно сказать, что вы спрашиваете. Чтобы разрешить более одной цифры, измените грамматику на:
<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" >
Однако, если вы спрашиваете, как получить несколько ответов от вызывающего абонента, просто добавьте второй элемент поля в форму, например:
<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 и просодии убрали их для наглядности. Они могут быть добавлены обратно.