cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
844
Views
5
Helpful
3
Replies

Form element grammar error with CVP 11.6 -- VVB

Mostafa_Shawky
Level 1
Level 1

Hi All,
We have issue when using form element in CVP 11.6  with VVB 11, as it was working before with CVP 10 without VVB. the issue is that old grammar used in form element in CVP 10 was working in CVP 11 till we changed VXML GW with VVB. attached  the logs  and current grammar.

IMG-20221103-WA0005.jpg

 

 

 

 

 

 

 

------------------------------------
--------- New Page Request ---------
------------------------------------
Request Received on:  11/06/2022 14:54:11.006

------- HTTP Request Headers -------

Header Name = "content-type"  Header Value = "application/x-www-form-urlencoded"
Header Name = "cookie"  Header Value = "HttpOnly=; JSESSIONID=70EE1417EF4CF6DEC623225112DD59DA"
Header Name = "uniqueid"  Header Value = "82B6AD605D0011ED8A9F96238D83479A-1667735629081888"
Header Name = "connection"  Header Value = "keep-alive"
Header Name = "host"  Header Value = "10.21.1.195:7000"
Header Name = "content-length"  Header Value = "15"
Header Name = "accept"  Header Value = "text/vxml, application/vxml, application/vxml+xml, *; q=.2, */*; q=.2"
Header Name = "user-agent"  Header Value = "Cisco Voice Browser/1.0"

------ Request HTTP Arguments ------

Parameter Name = "audium_vxmlLog"  Parameter Value #0 = ""

--------- VoiceXML Response --------

Response Returned on:  11/06/2022 14:54:11.006
<?xml version="1.0" encoding="UTF-8"?>
<vxml version="2.0" application="/CVP/Server?audium_root=true&amp;calling_into=ChooseServedNumberRoutine&amp;session_id=10.21.1.195.1667735629551.0.ChooseServedNumberRoutine">
  <property name="termchar" value="#" />
  <property name="timeout" value="3s" />
  <var name="noinput_count" expr="0" />
  <var name="nomatch_count" expr="0" />
  <form id="audium_start_form">
    <block>
      <assign name="audium_vxmlLog" expr="''" />
      <assign name="audium_element_start_time_millisecs" expr="new Date().getTime()" />
      <goto next="#start" />
    </block>
  </form>
  <form id="start">
    <property name="inputmodes" value="dtmf" />
    <block>
      <assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||audio_group$$$' + 'initial_audio_group' + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />
      <goto nextitem="foundation_fld" />
    </block>
    <field name="foundation_fld" modal="true">
      <property name="inputmodes" value="dtmf" />
      <property name="com.cisco.secureLogging" value="false" />
      <prompt bargein="true">
        <audio src="http://media/STC907MEDIA/STCInbound/cbu/ar/Commons/EnterGSMorLLNumber.wav" />
        <audio src="http://media/STC907MEDIA/STCInbound/cbu/ar/Commons/Silence_5Sec.wav" />
        <audio src="http://media/STC907MEDIA/STCInbound/cbu/ar/Commons/ReturnPreviousMenuPress.wav" />
        <audio src="http://media/STC907MEDIA/STCInbound/cbu/ar/Vocabulary/Digit/Star.wav" />
      </prompt>
      <catch event="nomatch">
        <prompt bargein="true">
          <audio src="http://media/STC907MEDIA/STCInbound/cbu/ar/Commons/InvalidNumber.wav" />
        </prompt>
        <assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||nomatch$$$' + '1' + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />
        <assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||audio_group$$$' + 'nomatch_audio_group' + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />
        <assign name="nomatch_count" expr="nomatch_count + 1" />
        <var name="maxNoMatch" expr="'yes'" />
        <submit next="/CVP/Server" method="post" namelist="noinput_count foundation_fld maxNoMatch audium_vxmlLog nomatch_count" />
      </catch>
      <catch event="noinput">
        <prompt bargein="true">
          <audio src="http://media/STC907MEDIA/STCInbound/cbu/ar/Commons/NoInput.wav" />
        </prompt>
        <assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||noinput$$$' + '1' + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />
        <assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||audio_group$$$' + 'noinput_audio_group' + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />
        <assign name="noinput_count" expr="noinput_count + 1" />
        <var name="maxNoInput" expr="'yes'" />
        <submit next="/CVP/Server" method="post" namelist="maxNoInput noinput_count foundation_fld audium_vxmlLog nomatch_count" />
      </catch>
      <filled>
        <var name="completeNBestStr" expr="''" />
        <assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||utterance$$$' + foundation_fld$.utterance + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />
        <assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||inputmode$$$' + foundation_fld$.inputmode + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />
        <assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||interpretation$$$' + foundation_fld + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />
        <assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||confidence$$$' + foundation_fld$.confidence + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />
        <script><![CDATA[function recurse(interpretation)
{
	var slot_string;
	if (interpretation instanceof Object)
	{
		slot_string = '+';
		var count = 0;
		for (var attr in interpretation)
		{
			if (count++ > 0)
				slot_string += '+';
			slot_string += attr + ':' + recurse(interpretation[attr]);
		}
	} else {
		slot_string = interpretation;
	}
	return slot_string;
}
var len = application.lastresult$.length;
for (var i = 0; i < len; i++)
{
	var slot_string = recurse(application.lastresult$[i].interpretation);
	completeNBestStr += "|||" + application.lastresult$[i].confidence + "^^^" + application.lastresult$[i].utterance + "^^^" + application.lastresult$[i].inputmode + "^^^" + slot_string;
}]]></script>
        <var name="confidence" expr="foundation_fld$.confidence" />
        <submit next="/CVP/Server" method="post" namelist="completeNBestStr noinput_count foundation_fld confidence audium_vxmlLog nomatch_count" />
      </filled>
    </field>
  </form>
</vxml>

------------------------------------
--------- New Page Request ---------
------------------------------------
Request Received on:  11/06/2022 14:54:11.084

------- HTTP Request Headers -------

Header Name = "content-type"  Header Value = "application/x-www-form-urlencoded"
Header Name = "cookie"  Header Value = "HttpOnly=; JSESSIONID=70EE1417EF4CF6DEC623225112DD59DA"
Header Name = "uniqueid"  Header Value = "82B6AD605D0011ED8A9F96238D83479A-1667735629081888"
Header Name = "connection"  Header Value = "keep-alive"
Header Name = "host"  Header Value = "10.21.1.195:7000"
Header Name = "content-length"  Header Value = "256"
Header Name = "accept"  Header Value = "text/vxml, application/vxml, application/vxml+xml, *; q=.2, */*; q=.2"
Header Name = "user-agent"  Header Value = "Cisco Voice Browser/1.0"

------ Request HTTP Arguments ------

Parameter Name = "audium_type"  Parameter Value #0 = "error.semantic"
Parameter Name = "audium_action"  Parameter Value #0 = "error"
Parameter Name = "audium_vxmlLog"  Parameter Value #0 = "|||audio_group$$$initial_audio_group^^^1"
Parameter Name = "audium_message"  Parameter Value #0 = "error.semantic - recognition failed; nested exception is: 
	com.cisco.dialogservices.RecNoActiveGrammarException"

--------- VoiceXML Response --------

Response Returned on:  11/06/2022 14:54:11.100
<?xml version="1.0" encoding="UTF-8"?>
<vxml version="2.0" application="/CVP/Server?audium_root=true&amp;calling_into=ChooseServedNumberRoutine&amp;session_id=10.21.1.195.1667735629551.0.ChooseServedNumberRoutine">
  <form id="second_form">
    <block>
      <throw event="com.audium.error" />
    </block>
  </form>
</vxml>

 

 

3 Replies 3

When you say it doesn't work, what happens? Caller hears error message or something else?
Do you have the Error and Application log?
Also, what do you have for the VoiceXML Gateway setting under the Project/Call Studio/General Settings?

janinegraves
Spotlight
Spotlight
The VVB doesn't accept the DTMF Grammar setting. Move your configuration to the setting named DTMF Grammar and it will work.
Here are a few other differences:

The Digits element accepts * as a digit, this can lead to Say it Smart errors unless you use a Decision element to check if the entry contains Constant String *

Whenever waiting for just 1 DTMF (in a menu or a form), the VVB processes NoMatch dtmf entry only after the interdigittimeout (3s) expires. So I always set the interdigittimeout to 1ms in the Settings tab of every menu (or Form used as a menu) to speed up the nomatch reprompting.

Do not set fetchaudio in the root document, as it causes 'hung license' errors if callers hang up.

The VVB buffers all Audio element requests until it's told to collect input or return to ICM. If you have a long web service delay in the app, the caller won't hear the 'please hold while we look this up' until AFTER the delay! To fix this, set the VXML Property named fetchaudio in the Audio element just before the slow lookup. This forces the VVB to play all the buffered audio BEFORE the slow web service lookup.

Almost all VXML Events are different. You should generate different VXML events and document them.

HTH

Thanks a lot janinegraves & bill.king1 for reply to my inquiry, this open the way to think to change element configuration , seems that old configuration not accepted to VVB  but was working with VG.

We applied below :

 

  SmartSelect_20230103_210309_WhatsApp.jpg