We've Moved! Please visit our new and improved forum over at our new portal: https://portal.plumvoice.com/hc/en-us/community/topics

Field type="number" throws nomatch

Questions and answers about IVR programming for Plum DEV

Moderators: admin, support

Post Reply
Robert Walker
Posts: 2
Joined: Tue Dec 21, 2004 1:17 pm
Location: Utah
Contact:

Field type="number" throws nomatch

Post by Robert Walker »

I'm having a problem where I'm getting a nomatch to any utterance for <field type="number">. If I change it to "digits", it works fine. Here's my simplified code, with some dubugging TTS added in:

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<vxml version="2.0">
	<property name="fetchtimeout" value="15s"/>
	<property name="termmaxdigits" value="true"/>

	<form id="skipTo">
		<var name="orgId" expr="1008" />
		<var name="key" expr="'06'" />
		<var name="commentCount" expr="7" />
		<var name="tries" expr="0"/>

		<catch event="noinput">
			No input received.
			<if cond="++tries < 3">
				<clear/>
				<reprompt/>
			<else/>
				I give up.
				<disconnect />
			</if>
		</catch>

		<catch event="nomatch">
			No match found for <value expr="commentNumber" />.
			<if cond="++tries < 3">
				<clear/>
				<reprompt/>
			<else/>
				I give up.
				<disconnect />
			</if>
		</catch>

		<field name="commentNumber" type="number">
			<property name="timeout" value="6s"/>
			<property name="interdigittimeout" value="8s"/>
			<property name="termtimeout" value="4s"/>

			<prompt bargein="true">
				Please say a number between 1 and <value expr="commentCount" />
				for the comment you want to hear, or enter it on the keypad
				followed by the pound sign.
			</prompt>
		</field>

		<block>
			<if cond="commentNumber == 0 || commentNumber > commentCount">
				<throw event="nomatch" />
			<else />
				You said <value expr="commentNumber" />.
				<submit namelist="orgId key commentNumber" next="goToMsg" />
			</if>
		</block>
	</form>
</vxml>
Using the above code, no matter what I enter, it responds with "No match found for." (The platform recognizes that I provided an utterance, but it's not recorded in the commentNumber variable.)

support
Posts: 3632
Joined: Mon Jun 02, 2003 3:47 pm
Location: Boston, MA
Contact:

Re: Field type="number" throws nomatch

Post by support »

Hi Robert,

The problem you were experiencing was occurring because your script was not correctly capturing the noinput event. We changed your conditional to reflect a valid match, nomatch, and noinput. When you were experiencing the "No match found for." without an utterance played, it was not playing back the utterance because it actually should have been catching a noinput (instead of a nomatch) and therefore had nothing valid to play back. The following changes to your <field> should resolve this issue.

Code: Select all

<field name="commentNumber" type="number">
         <property name="timeout" value="6s"/>
         <property name="interdigittimeout" value="8s"/>
         <property name="termtimeout" value="4s"/>

         <prompt bargein="true">
            Please say a number between 1 and <value expr="commentCount" />
            for the comment you want to hear, or enter it on the keypad
            followed by the pound sign.
         </prompt>

      <filled>
         <if cond="commentNumber <= commentCount">
            You said <value expr="commentNumber" />.
            <submit namelist="orgId key commentNumber" next="goToMsg" />
         <elseif cond="commentNumber == 0 || commentNumber > commentCount"/>
            <throw event="nomatch"/>
         <else />
            <throw event="noinput"/>
         </if>
      </filled>
</field>
We also changed your <block> tags to <filled> tags, as this is the standard for capturing input in a <field>.

Hope that helps!

Regards,
Plum Support

Robert Walker
Posts: 2
Joined: Tue Dec 21, 2004 1:17 pm
Location: Utah
Contact:

Re: Field type="number" throws nomatch

Post by Robert Walker »

Thank you, but I have made the changes you suggest, and it still fires nomatch when I provide valid input (for example, DTMF "5#").

Also, I don't think the code you provided correctly replicates the conditions I was checking for. My original condition was supposed to throw nomatch if commentNumber was 0 or greater than commentCount. (Technically, I should probably be checking for negative and fractional values, as well.) The code you provided theoretically would accept 0 as valid, since it tests commentNumber <= commentCount first.

In any case, what it needs to do is accept any value between 1 and commentCount (inclusive) and reject all others. Right now, even with your suggested changes, it still rejects perfectly valid input.

support
Posts: 3632
Joined: Mon Jun 02, 2003 3:47 pm
Location: Boston, MA
Contact:

Re: Field type="number" throws nomatch

Post by support »

Hi Robert,

We have been unable to reproduce this issue for our hosted environment. We would recommend sending an e-mail to support@plumgroup.com for our engineering team to look further into this issue. Please make sure to include your 8-digit customer ID in the subject line of your e-mail to support. Your 8-digit customer ID can be found in your support contract with Plum.

Also, in your e-mail, you'll want to mention the IP address of your IVR system for our engineering team to check the call logs and a phone number we can dial into with steps on how we can reproduce the issue you're experiencing.

Regards,
Plum Support

Post Reply