Page 1 of 1

How do I use 44 as a grammar

Posted: Wed Aug 22, 2007 5:19 pm
by metroscript
Good morning to all,

I would like to use the following grammars:
<grammar>1|2|3|4|44|5|6|7|8|9|0|"*"|"#"</grammar>

It doesn't like when I hit 44. Why is that? Is there something
I need to add to get that to work? I looked in all the posts and
didn't see anything.

Thanks!! I attached my code

Mike C.

Code: Select all

<form id="replay">
	<property name="inputmodes" value="dtmf"/>
	<var name="MyDataName"/> 
	<block>
		<data name="MyDataName" src="CreateNewPlayFile.xml" namelist="intFileCount lngPosStart lngPosEnd voxfilenum totalTime" method="get"/>
        	<assign name="startTime" expr="(new Date()).getTime()"/>
        </block>
	<field name="pressed">
		<grammar>1|2|3|4|44|5|6|7|8|9|0|"*"|"#"</grammar>
		<prompt><audio expr="'https://stage.metroscript.com/tempupload/tempvoicefiles/<% = strfolder %>/phone_file_playback_now' + voxfilenum + '.wav'"/></prompt>
		<filled>
			<assign name="endTime" expr="(new Date()).getTime()"/>
			<assign name="elapsedTime" expr="Math.round((endTime - startTime - processingTime)/1000)"/>
			<if cond="pressed==1">
				<assign name="voxfilenum" expr="voxfilenum + 1"/>
				<goto next="#continuecleanup"/>
			<elseif cond="pressed==2"/>
				<assign name="voxfilenum" expr="voxfilenum + 1"/>
				<goto next="#continuecleanup"/>
			<elseif cond="pressed==3"/>
				<assign name="recordOverTimeTemp" expr="lngPosStart + elapsedTime - 1"/>
				<assign name="recordOverTime" expr="totalTime - recordOverTimeTemp"/>
				<goto next="#verifythreemenu"/>
			<elseif cond="pressed==4"/>
				<assign name="lngPosStart" expr="lngPosStart + elapsedTime - 10"/>
				<if cond="lngPosStart < 0">
					<assign name="lngPosStart" expr="0"/> 
				</if>
				<assign name="voxfilenum" expr="voxfilenum + 1"/>
				<assign name="processingTime" expr="(new Date()).getTime()-endTime"/>
				<goto next="#replay"/>
			<elseif cond="pressed==44"/>
				<assign name="lngPosStart" expr="lngPosStart + elapsedTime - 20"/>
				<if cond="lngPosStart < 0">
					<assign name="lngPosStart" expr="0"/> 
				</if>
				<assign name="voxfilenum" expr="voxfilenum + 1"/>
				<assign name="processingTime" expr="(new Date()).getTime()-endTime"/>
				<goto next="#replay"/>
			<elseif cond="pressed==5"/>
				<assign name="lngPosStart" expr="lngPosStart + elapsedTime"/> 
				<assign name="voxfilenum" expr="voxfilenum + 1"/>
				<assign name="processingTime" expr="(new Date()).getTime()-endTime"/>
				<goto next="#pausemenu"/>
			<elseif cond="pressed==6"/>
				<assign name="lngPosStart" expr="lngPosStart + elapsedTime + 10"/> 
				<assign name="voxfilenum" expr="voxfilenum + 1"/>
				<if cond="lngPosStart > totalTime">
					<assign name="lngPosStart" expr="totalTime - 6"/> 
				</if>
				<assign name="processingTime" expr="(new Date()).getTime()-endTime"/>
				<goto next="#replay"/>
			<elseif cond="pressed==7"/>
				<assign name="lngPosStart" expr="0"/> 
				<assign name="voxfilenum" expr="voxfilenum + 1"/>
				<goto next="#replay"/>
			<elseif cond="pressed==8"/>
				<% if (cstr(strCancelFlag) = "1") then %>
					<goto next="#cancelmenu"/>
				<% else %>
					<goto next="#badcancelmenu"/>
				<% end if %>
			<elseif cond="pressed==9"/>
				<assign name="lngPosStart" expr="lngPosStart + elapsedTime - 45"/>
				<if cond="lngPosStart < 0">
					<assign name="lngPosStart" expr="0"/> 
				</if>
				<assign name="voxfilenum" expr="voxfilenum + 1"/>
				<assign name="processingTime" expr="(new Date()).getTime()-endTime"/>
				<goto next="#replay"/>
			<elseif cond="pressed=='*'"/>
				<assign name="lngPosEnd" expr="2"/>
				<data name="MyDataName2" src="CreateNewPlayFile.xml" namelist="intFileCount lngPosStart lngPosEnd voxfilenum totalTime" method="get"/>
				<goto next="#saveandhangup"/>
			<elseif cond="pressed=='#'"/>
				<assign name="lngPosEnd" expr="2"/>
				<data name="MyDataName2" src="CreateNewPlayFile.xml" namelist="intFileCount lngPosStart lngPosEnd voxfilenum totalTime" method="get"/>
				<goto next="#saveandreprompt"/>
			<elseif cond="pressed==0"/>
				<assign name="voxfilenum" expr="voxfilenum + 1"/>
				<goto next="#helpmenu"/>
			</if>
		</filled>

		<catch event="nomatch noinput">
			<assign name="endTime" expr="(new Date()).getTime()"/>
			<assign name="endTime2" expr="endTime"/>
			<assign name="elapsedTime" expr="Math.round((endTime - startTime - processingTime)/1000)"/>
			<assign name="elapsedTime2" expr="elapsedTime"/>
			<assign name="voxfilenum" expr="voxfilenum + 1"/>
			<goto next="#helpmenu"/>
		</catch>

		<catch event="connection.disconnect">
			<assign name="lngPosEnd" expr="2"/>
			<data name="MyDataName2" src="CreateNewPlayFile.xml" namelist="intFileCount lngPosStart lngPosEnd voxfilenum totalTime" method="get"/>
			<submit next="https://stage.metroscript.com/voicexml/process_record_hangup.xml" method="post"/>
		</catch>

	</field>

	<catch event="connection.disconnect">
		<assign name="lngPosEnd" expr="2"/>
		<data name="MyDataName2" src="CreateNewPlayFile.xml" namelist="intFileCount lngPosStart lngPosEnd voxfilenum totalTime" method="get"/>
		<submit next="https://stage.metroscript.com/voicexml/process_record_hangup.xml" method="post"/>
	</catch>
</form>

IVR code to use 44 as a grammar

Posted: Thu Aug 23, 2007 10:11 am
by support
Hi,

To use 44 as an IVR <grammar>, you would have to do something like the following:

Code: Select all

<?xml version="1.0"?>
<vxml version="2.0">

<form id="mainmenu">
  <field name="menuchoice">
    <grammar type="application/x-jsgf">4 4</grammar>
      <prompt>
        Enter fourty-four.
      </prompt>
      <filled>
       <if cond="menuchoice=='4 4'">
          <prompt>
            Fourty-Four
          </prompt>
        </if>
      </filled>
  </field>
</form>

</vxml>
When you enter 44 as input, it gets recognized as "4 4" by the IVR platform. So, in your conditionals, you would have to put 4 4 in single quotes.

Hope this helps.

Regards,
Plum Support

Posted: Thu Aug 23, 2007 11:18 am
by metroscript
Awesome. Just tried it and it worked! Thanks for the quick and correct response!

Mike C.