Pause Response

Questions and answers about IVR programming for Plum DEV

Moderators: admin, support

  • Author
  • Message
Offline

cgomez@hpsglobal.net

  • Posts: 16
  • Joined: Tue Dec 06, 2016 5:13 pm

Re: Pause Response

PostThu Jan 12, 2017 1:33 pm

I went ahead and create a ivrroot.vxml file which contains the ivr variables. I also redirected all the pages to look at this new page too. I removed the variables from the ivrfaxback.vxml and pointed the application= to the new page.

I get the same results.

I removed these two properties too with no luck.
<property name="com.genesyslab.maintainer.sendwhen" value="on_message"/>
<property name="com.genesyslab.loglevel" value="2"/>
Offline

cgomez@hpsglobal.net

  • Posts: 16
  • Joined: Tue Dec 06, 2016 5:13 pm

Re: Pause Response

PostThu Jan 12, 2017 1:41 pm

Here is an update of the code and call log below:

Code:
-----------------------

<?xml version="1.0"?>
<vxml version="2.1" xmlns="http://www.w3.org/2001/vxml" application="ivrroot.vxml">
<meta name="maintainer" content="cgomez"/>
<property name="inputmodes" value="dtmf"/>
<var name="main"/>
<var name="result"/>
<var name="providertype" expr="'G'"/>
<var name="dbaction" />
<var name="CallStep" expr="20"/>
<var name="CallAction"/>
<var name="OptionMap" expr="1000000" />
<var name="CallActionCount" expr="'0'"/>
<var name="CompanyID" expr="'XXXX'" />
<var name="CurrentSessionID" expr="'2017'" />
<var name="NoMatchCount" expr="0" />




<form id="Main">

<field name="main" type="digits?length=1">

<prompt bargein="true" count="1">

<audio src="voicefiles/ivr_press_027.wav">Press one for member verification.</audio>

<audio src="voicefiles/ivr_press_032.wav">Press two for status information.</audio>

</prompt>

<noinput count="9">
<assign name="CallAction" expr="'96'"/>
<assign name="dbaction" expr="'No Input - Disconnect'"/>
<goto next="#TooManyAttempts"/>
</noinput>

<noinput count="1">
<audio src="voicefiles/IVR_Press_023.wav">Press Eight to replay this message.</audio>
<reprompt/>
</noinput>

<filled>

<if cond="main == 9">
<assign name="result" expr="9"/>
<goto next="#Exit" />

<elseif cond="main == 8"/>
<goto next="#Main" />

<elseif cond="main == '*'" />
<goto next="#StarExit" />


<elseif cond="main == 1"/>


<assign name="result" expr="1"/>
<goto next="#Exit" />

<elseif cond="main == 2"/>
<assign name="result" expr="2"/>
<goto next="#Exit" />



<else/>
<assign name="NoMatchCount" expr="NoMatchCount+1"/>
<if cond="NoMatchCount == 9">
<assign name="CallAction" expr="'97'"/>
<assign name="dbaction" expr="'No Match - Disconnect'"/>
<goto next="#TooManyAttempts"/>
</if>
<audio src="voicefiles/ivr_error_018.wav">I'm sorry, that is not a valid entry. Please try again.</audio>

<goto next="#Main"/>
</if>
</filled>
</field>

</form>
<form id="ProviderTypeMenu">
<field name="ProviderTypeMenu" type="digits?length=1">

<prompt bargein="true" count="1">

</prompt>

<noinput count="9">
<assign name="CallAction" expr="'96'"/>
<assign name="dbaction" expr="'No Input - Disconnect'"/>
<goto next="#TooManyAttempts"/>
</noinput>

<noinput count="1">
<audio src="voicefiles/IVR_Press_023.wav">Press Eight to replay this message.</audio>
<reprompt/>
</noinput>

<filled>

<if cond="ProviderTypeMenu == 9">
<assign name="result" expr="9"/>
<goto next="#Exit" />

<elseif cond="ProviderTypeMenu == 8"/>
<goto next="#Main" />

<elseif cond="ProviderTypeMenu == '*'"/>
<goto next="#StarExit" />


<else/>

<assign name="NoMatchCount" expr="NoMatchCount+1"/>
<if cond="NoMatchCount == 9">
<assign name="CallAction" expr="'97'"/>
<assign name="dbaction" expr="'No Match - Disconnect'"/>
<goto next="#TooManyAttempts"/>
</if>
<audio src="voicefiles/ivr_error_018.wav">I'm sorry, that is not a valid entry. Please try again.</audio>

<goto next="#Main"/>
</if>
</filled>
</field>
</form>

<form id="Exit">
<block>
<return namelist="result providertype" />
</block>
</form>

<form id="TooManyAttempts">
<block>
<assign name="CallActionCount" expr="'0'"/>
<audio src="voicefiles/IVR_Error_019.wav">I'm sorry, that is too many attempts. Please try again later. Good bye.</audio>


<submit next="ivrfb_LogUpdate.asp" namelist="CompanyID dbaction CurrentSessionID CallStep CallAction CallActionCount"/>
</block>
</form>
<form id="StarExit">
<block>
<assign name="dbaction" expr="'Star Hangup - Disconnect'"/>
<assign name="CallAction" expr="'98'"/>
<assign name="CallActionCount" expr="'0'"/>
<audio src="voicefiles/IVR_Thank_035.wav">Thank you. Good bye.</audio>
<submit next="ivrfb_LogUpdate.asp" namelist="CompanyID dbaction CurrentSessionID CallStep CallAction CallActionCount"/>
</block>
</form>
<form id="CallTransfer">
<block>
<submit next="ivrfb_CallTransfer.asp" namelist="CompanyID dbaction CurrentSessionID CallStep CallAction CallActionCount OptionMap"/>
</block>
</form>
<catch event="telephone.disconnect.hangup" count="1">
<assign name="dbaction" expr="'User Hangup - Disconnect'"/>
<assign name="CallAction" expr="'99'"/>
<assign name="CallActionCount" expr="'0'"/>
<submit next="ivrfb_LogUpdate.asp" namelist="CompanyID dbaction CurrentSessionID CallStep CallAction CallActionCount"/>
</catch>





</vxml>


Call Log:
------------------------------------------


Entering form = 'Main' form item = 'main'
VXI::queue_prompts()
bargein set to true
INPUTMODES set to "DTMF"
Cache Hit: https://ivrplum.tpabenefits.com/voicefi ... ss_027.wav
Audio segment from the URL voicefiles/ivr_press_027.wav added to prompt queue
bargein set to true
INPUTMODES set to "DTMF"
Cache Hit: https://ivrplum.tpabenefits.com/voicefi ... ss_032.wav
Audio segment from the URL voicefiles/ivr_press_032.wav added to prompt queue
VXI::field_element - activating grammars for form = 'Main' formitem = 'main'
VXI::do_recognition()
PromptManager::Play()
Newly queued prompts are now being played

Thu 12 Jan 2017 12:36:47 PM EST:
dtmf input: *
received event: nomatch:
bargein set to true
INPUTMODES set to "DTMF"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak>Sorry, I didn't understand you. </speak>
---------
Entering form = 'Main' form item = 'main'
VXI::queue_prompts()
bargein set to true
INPUTMODES set to "DTMF"
Offline

support

  • Posts: 3348
  • Joined: Mon Jun 02, 2003 4:47 pm
  • Location: Boston, MA

Re: Pause Response

PostThu Jan 12, 2017 3:27 pm

Right now, your field grammar is not expecting an asterisk. You should include a grammar like this:

Code: Select all
<form id="Main">
    <field name="main" type="digits?length=1">
      <grammar type="application/srgs+xml" root="STAR">
        <rule id="STAR">
          <one-of>
            <item>*</item>
          </one-of>
        </rule>
      </grammar>

      <prompt bargein="true" count="1">
        <audio src="voicefiles/ivr_press_027.wav">Press one for member verification.</audio>
        <audio src="voicefiles/ivr_press_032.wav">Press two for status information.</audio>
      </prompt>
Offline

cgomez@hpsglobal.net

  • Posts: 16
  • Joined: Tue Dec 06, 2016 5:13 pm

Re: Pause Response

PostThu Jan 12, 2017 3:38 pm

It is accepted the * this time, but the long pause happens after the star is pressed. The pause is close to 30 seconds.

This is the form it goes to when pressed *

<?xml version="1.0"?>
<!DOCTYPE vxml PUBLIC "-//The Plum Group//DTD VOICEXML 2.1//EN" "/usr/local/plumvp/vxml.dtd">
<vxml version="2.1" xmlns="http://www.w3.org/2001/vxml" application="ivrroot.vxml">
<meta name="maintainer" content="cgomez"/>
<form id="LogCallDisconnect">
<block>
<disconnect />
</block>
</form>
</vxml>
Offline

support

  • Posts: 3348
  • Joined: Mon Jun 02, 2003 4:47 pm
  • Location: Boston, MA

Re: Pause Response

PostFri Jan 13, 2017 11:48 am

According to the code you previously posted, pressing star would take the caller to the StarExit form:

Code: Select all
<form id="StarExit">
  <block>
    <assign name="dbaction" expr="'Star Hangup - Disconnect'"/>
    <assign name="CallAction" expr="'98'"/>
    <assign name="CallActionCount" expr="'0'"/>
    <audio src="voicefiles/IVR_Thank_035.wav">Thank you. Good bye.</audio>
    <submit next="ivrfb_LogUpdate.asp" namelist="CompanyID dbaction CurrentSessionID CallStep CallAction CallActionCount"/>
  </block>
</form>


What is the code you just posted?
Offline

cgomez@hpsglobal.net

  • Posts: 16
  • Joined: Tue Dec 06, 2016 5:13 pm

Re: Pause Response

PostFri Jan 13, 2017 1:38 pm

I posted all the code to review again, but yes that is the code is go to when pressing star and it happens. When you press star there is a long pause for 20 seconds then the StarExit form code gets executed. I am asking why. I reposted all the code so you can look at with the updates we have made to solve the first pause.

putting in this code is now causing the pause for 20 seconds:
<grammar type="application/srgs+xml" root="STAR">
<rule id="STAR">
<one-of>
<item>*</item>
</one-of>
</rule>
</grammar>
Offline

support

  • Posts: 3348
  • Joined: Mon Jun 02, 2003 4:47 pm
  • Location: Boston, MA

Re: Pause Response

PostFri Jan 13, 2017 5:48 pm

We took a look into your account directly and noticed a couple quirks in your code.

In your root document ivrroot.vxml, you are defining a lot of variables instead of just initializing them. This means every time your application jumps to a new page, all those variables are redefined by the root document. Your application will not "remember" the value of those variables as it jumps from page to page.

According to your call logs, these 3 grammars get defined at the beginning of the call:

Code: Select all
<grammar xml:lang="en-us" type="application/srgs+xml" root="OPTION" mode="dtmf">
   <rule id="OPTION">
      <one-of>
         <item>
            *
            <tag>retry='*';</tag>
         </item>
      </one-of>
   </rule>
</grammar>

<grammar xml:lang="en-us" type="application/srgs+xml" root="OPTION" mode="dtmf">
   <rule id="OPTION">
      <one-of>
         <item>
            *
            <tag>retry2='*';</tag>
         </item>
      </one-of>
   </rule>
</grammar>

<grammar xml:lang="en-us" type="application/srgs+xml" root="OPTION" mode="dtmf">
   <rule id="OPTION">
      <one-of>
         <item>
            *
            <tag>retry1='*';</tag>
         </item>
      </one-of>
   </rule>
</grammar>


We can't see where you are defining these variables, but please try removing them. They may be interfering with your other grammars.
Offline

cgomez@hpsglobal.net

  • Posts: 16
  • Joined: Tue Dec 06, 2016 5:13 pm

Re: Pause Response

PostMon Jan 16, 2017 9:47 am

The initial form defines the variables. The form is called GetControlInformation. The other variables are set as the call continues thru its process. The 3 grammars are in the code for the initial code as "<option dtmf="*"/>", which host the initial form. I would think if "<option dtmf="*"/>" was in the initial form I would run into the pause. Do you know why there is a pause?
Offline

cgomez@hpsglobal.net

  • Posts: 16
  • Joined: Tue Dec 06, 2016 5:13 pm

Re: Pause Response

PostMon Jan 16, 2017 10:40 am

I was a syntax error with the following code:
<grammar type="application/srgs+xml" root="STAR">
<rule id="STAR1">
<one-of>
<item>*</item>
</one-of>
</rule>
</grammar>

Once I have removed the code everything is working correctly. I made sure the IDs were not duplicate too.
Offline

support

  • Posts: 3348
  • Joined: Mon Jun 02, 2003 4:47 pm
  • Location: Boston, MA

Re: Pause Response

PostMon Jan 16, 2017 11:18 am

We have the phone number to your demo application, could you list step by step how to reproduce the issue? Please include what prompts we should hear and what buttons to press at what time, and indicate where you are experiencing the pause.
Previous

Return to Plum DEV Q&A

Who is online

Users browsing this forum: Google [Bot] and 1 guest

cron