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

Problem in subdialog

Questions and answers about IVR programming for Plum DEV

Moderators: admin, support

Post Reply
aliasg
Posts: 24
Joined: Sat Mar 14, 2009 1:23 am

Problem in subdialog

Post by aliasg »

I am calling a small page FnMisc.aspx through subdialog that always return following three variable Status, Data, Message in my application.
But same page can't be called after I record user voice of around 1 min. See log below for error.

Steps to reproduce this issue.

1. Call through subdialog
2. Record between 1 & 2 mins(with small recording of 10 sec it works fine)
3. Assign recording variable to some document variable
3. Listen to this recording(play through document variable)
4. Call same subdialog and get bad fetch(timeout)

Any idea/help?
================================
VXI::var_element(name="FunctionID" expr = "7")
VXI::var_element(name="UserID" expr = "1")
VXI::queue_prompts()
DocumentParser::FetchDocument(FnMisc.aspx)
Posted form data is URL encoded
Attempting to fetch http://66.135.33.9/rv-dev/RVivr/FnMisc.aspx
Click here to view saved VoiceXML script
VXI::var_element(name="Status" expr = "'True'")
VXI::var_element(name="Message" expr = "'3183'")
VXI::var_element(name="Data" expr = "'2'")
bargein set to false
INPUTMODES set to "DTMF VOICE"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak><voice gender="female" name="Diane"><speak xml:lang="en-us">
You can only record message for up to 3178 seconds
</speak></voice></speak>
---------
Newly queued prompts are now being played
VXI::queue_prompts()
bargein set to false
INPUTMODES set to "DTMF VOICE"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak><voice gender="female" name="Diane"><speak xml:lang="en-us">
Please start your recording after the beep. When you are finished recording press star
</speak></voice></speak>
---------

Thu 09 Apr 2009 06:00:08 AM EDT:
Newly queued prompts are now being played
bargein set to true
Cache Miss: file:///usr/local/plumvp/resources/beep.ulaw
Attempting to fetch file:///usr/local/plumvp/resources/beep.ulaw
Audio segment from the URL resources/beep.ulaw added to prompt queue
VXI::record_element - activating grammars for form = 'frmRecordVoice' formitem = 'userrecording'
PromptManager::Play()

Thu 09 Apr 2009 06:00:14 AM EDT:
Newly queued prompts are now being played

Thu 09 Apr 2009 06:01:22 AM EDT:
VXI::assign_element(name="document.varRecordedVoice" expr = "userrecording")
VXI::assign_element(name="document.AudioDuration" expr = "userrecording$.duration")
bargein set to false
INPUTMODES set to "DTMF VOICE"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak><voice gender="female" name="Diane"><speak xml:lang="en-us">
Thank you
</speak></voice></speak>
---------
Newly queued prompts are now being played
VXI::queue_prompts()
bargein set to true
INPUTMODES set to "DTMF VOICE"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak><voice gender="female" name="Diane"><speak xml:lang="en-us">
To listen to you recording press 1.
To continue press 2.
To record again press 3.
</speak></voice></speak>
---------
VXI::field_element - activating grammars for form = 'frmReplayVoice' formitem = 'replayrecording'
VXI::do_recognition()
PromptManager::Play()

Thu 09 Apr 2009 06:01:23 AM EDT:
Newly queued prompts are now being played

Thu 09 Apr 2009 06:01:30 AM EDT:
dtmf input: 1
Found grammar match
hypothesis #0: 1 (0.9990)
bargein set to false
INPUTMODES set to "DTMF VOICE"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak><voice gender="female" name="Diane"><speak xml:lang="en-us">
You recorded
</speak></voice></speak>
---------
Newly queued prompts are now being played
bargein set to true
INPUTMODES set to "DTMF VOICE"
Audio segment from a binary data buffer of size 530478 added to prompt queue
VXI::queue_prompts()
bargein set to true
INPUTMODES set to "DTMF VOICE"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak><voice gender="female" name="Diane"><speak xml:lang="en-us">
To listen to you recording press 1.
To continue press 2.
To record again press 3.
</speak></voice></speak>
---------
VXI::field_element - activating grammars for form = 'frmReplayVoice' formitem = 'replayrecording'
VXI::do_recognition()
PromptManager::Play()

Thu 09 Apr 2009 06:01:31 AM EDT:
Newly queued prompts are now being played

Thu 09 Apr 2009 06:02:49 AM EDT:
received event: noinput:
bargein set to false
INPUTMODES set to "DTMF VOICE"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak><voice gender="female" name="Diane"><speak xml:lang="en-us">
No key pressed
</speak></voice></speak>
---------
Newly queued prompts are now being played
VXI::queue_prompts()
bargein set to true
INPUTMODES set to "DTMF VOICE"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak><voice gender="female" name="Diane"><speak xml:lang="en-us">
To listen to you recording press 1.
To continue press 2.
To record again press 3.
</speak></voice></speak>
---------
VXI::field_element - activating grammars for form = 'frmReplayVoice' formitem = 'replayrecording'
VXI::do_recognition()
PromptManager::Play()

Thu 09 Apr 2009 06:02:50 AM EDT:
Newly queued prompts are now being played

Thu 09 Apr 2009 06:03:01 AM EDT:
dtmf input: 3
Found grammar match
hypothesis #0: 3 (0.9990)
VXI::var_element(name="FunctionID" expr = "7")
VXI::var_element(name="UserID" expr = "1")
VXI::queue_prompts()
DocumentParser::FetchDocument(FnMisc.aspx)
Posted form data is URL encoded
Attempting to fetch http://66.135.33.9/rv-dev/RVivr/FnMisc.aspx

Thu 09 Apr 2009 06:03:32 AM EDT:
Error fetching document http://66.135.33.9/rv-dev/RVivr/FnMisc.aspx due to Operation timed out with 0 out of -1 bytes received
DocumentParser::FetchBuffer - could not open URL: FnMisc.aspx
DocumentParser::FetchDocument - exiting with error result 2
errno: 203 uri FnMisc.aspx
received event: error.badfetch:
bargein set to true
INPUTMODES set to "DTMF VOICE"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak>
A serious error of type </speak>
---------
bargein set to true
INPUTMODES set to "DTMF VOICE"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak>error.badfetch</speak>
---------
bargein set to true
INPUTMODES set to "DTMF VOICE"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak> has occurred. Exiting. </speak>
---------
VXI::exit_element()
Newly queued prompts are now being played

Thu 09 Apr 2009 06:03:37 AM EDT:
Line disconnect detected. Abandoning queued audio data.
received event: connection.disconnect.hangup:
VXI::exit_element()
Call End Event
Ending session
Ending Session On Channel 25
Ali

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

IVR fix for problem in subdialog

Post by support »

Hi,

Generally, for messages such as this:

Error fetching document http://66.135.33.9/rv-dev/RVivr/FnMisc.aspx due to Operation timed out with 0 out of -1 bytes received

that means that your IVR application server is taking too long to return the fetch request back to the IVR platform.

You should increase your IVR property, fetchtimeout, to a longer time to try and avoid this IVR error.

Regards,
Plum Support
Last edited by support on Wed Feb 24, 2010 1:19 pm, edited 4 times in total.

aliasg
Posts: 24
Joined: Sat Mar 14, 2009 1:23 am

Thats not a problem

Post by aliasg »

I dont think so there is something wrong with our server or we need to increase fetch timeout. If you have noticed the log, same page is called with same namelist and there is never been a problem when this code is executed first time. We tried saving more recording file more than of 4 mb size without any problem. The issue is only reproduced when we first listen it and then try to submit that file or make any other call through subdialog.

try yourself by following the steps mentioned and you will get the problem for whatever time you specify in timeout propery.
Ali

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

IVR fix for problem in subdialog

Post by support »

Hi,

Could you please provide us with the VXML code that you are using to reproduce this IVR issue? This would provide us with more information on how to debug your IVR issue.

Regards,
Plum Support
Last edited by support on Tue Feb 16, 2010 5:39 pm, edited 2 times in total.

aliasg
Posts: 24
Joined: Sat Mar 14, 2009 1:23 am

Post by aliasg »

Code: Select all

<?xml version="1.0" encoding="utf-8" ?>
<vxml version="2.0" xmlns="http://www.w3.org/2001/vxml"> 
<var name="varRecordedVoice" /> 
<var name="varRecordedVoice2" /> 
<var name="varRecordedTitle" /> 
<var name="AudioDuration" /> 
<property name="inputmodes" value="dtmf" /> 

<form id="frmRecordVoice"> 
<var name="FunctionID" expr="7" /> 
<var name="UserID" expr="1" /> 
<subdialog name="getAvailableSecs" src="FnMisc.aspx" namelist="UserID FunctionID" method="post" /> 
<record name="userrecording" maxtime="300s" finalsilence="30s" dtmfterm="true" beep="true" type="audio/x-wav"> 

<prompt bargein="false"> 
<voice gender="female" xml:lang="en-us" name="Diane"> 
Please start your recording after the beep. When you are finished recording press star 
</voice> 
</prompt> 

<filled> 
<assign name="document.varRecordedVoice" expr="userrecording" /> 
<assign name="document.AudioDuration" expr="userrecording$.duration" /> 
</filled> 

</record> 

<block> 

<goto next="#frmThankYou" /> 
</block> 

</form> 

<form id="frmThankYou"> 
<block> 
<prompt bargein="false"> 
<voice gender="female" xml:lang="en-us" name="Diane"> 
Thank you 
</voice> 
</prompt> 
<goto next="#frmReplayVoice" /> 
</block> 
</form> 

<property name="inputmodes" value="dtmf voice" /> 
<form id="frmReplayVoice"> 

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

<grammar type="application/x-jsgf" mode="dtmf"> 
1|2
</grammar> 
<grammar type="application/x-jsgf" mode="voice"> 
one|two 
</grammar> 
<prompt> 
<voice gender="female" xml:lang="en-us" name="Diane"> 
<!--Thank you 
<break size="medium" />--> 
To listen to you recording press 1. 
To record again press 2. 
</voice> 
</prompt> 
<!-- if no input then reprompt --> 
<noinput count="1"> 
<prompt bargein="false"> 
<voice gender="female" xml:lang="en-us" name="Diane"> 
No key pressed 
</voice> 
</prompt> 
<reprompt /> 
</noinput> 
<noinput count="2"> 
<prompt bargein="false"> 
<voice gender="female" xml:lang="en-us" name="Diane"> 
press any key 
</voice> 
</prompt> 
<reprompt /> 
</noinput> 
<catch count="3" event="noinput"> 
<disconnect/>

</catch> 

<filled> 
<if cond="replayrecording==1 || replayrecording=='one'"> 
<prompt bargein="false"> 
<voice gender="female" xml:lang="en-us" name="Diane"> 
You recorded 
</voice> 
</prompt> 

<value expr="document.varRecordedVoice" /> 
<goto next="#frmReplayVoice" /> 

<elseif cond="replayrecording==2 || replayrecording=='two'" /> 
<clear namelist="document.varRecordedVoice" /> 
<goto next="#frmRecordVoice" /> 

<else/> 
<prompt bargein="false"> 
<voice gender="female" xml:lang="en-us" name="Diane"> 
you have press wrong key, please press valid key 
</voice> 
</prompt> 
<goto next="#frmReplayVoice" /> 

</if> 
</filled> 
</field> 
</form> 
</vxml>
Ali

aliasg
Posts: 24
Joined: Sat Mar 14, 2009 1:23 am

Post by aliasg »

See, same frmRecordVoice is called after listening to the recording to record again.
Ali

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

IVR solution to problem in subdialog

Post by support »

Hi,

Thanks for this information and we have been able to reproduce your IVR issue. I would recommend that you check the firewall settings on your web server. If you use a firewall between your web server and the Internet, the firewall might be keeping the persistent connection open to the IVR even though the server-side connection has already been closed.

Also, if you have IIS and the Keep-Alives are enabled, you should turn them off.

This IVR issue has also occurred in these past topics, so you may want to refer to them if you are still having problems resolving this:

http://support.plumvoice.com/viewtopic.php?t=1045
http://support.plumvoice.com/viewtopic.php?t=850
http://support.plumvoice.com/viewtopic.php?t=767
http://support.plumvoice.com/viewtopic.php?t=571

Hope this helps.

Regards,
Plum Support

Post Reply