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

time out after recordings and re-recording

Questions and answers about IVR programming for Plum DEV

Moderators: admin, support

Post Reply
robbiesullivan
Posts: 42
Joined: Mon Oct 10, 2005 3:40 pm

time out after recordings and re-recording

Post by robbiesullivan »

Hello,
I am having a problem a problem with a posting timeout:

The error I receive is:
Error fetching document due to Operation timed out with 0 out of -1 bytes received

If someone calls into that system and records multiple
things in one call, and records things multiple times, when the post
happens to my aspx (that saves the recording on my server) page it
timesouts after 2 minutes (even if I record only a 10 second spot). If I
call in and just record something that is long (like 30s) and hang up
and do nothing else in the call it works fine. It seems to be related to
how long the entire phone call is.

I'm not sure what is happening here, but something seems to be timing
out after the 2 minute mark.

I am able to reproduce it everytime in my core application. I will try to reproduce it in a smaller subset of code and post it here to provide more information.

Any information or ideas as to what is occuring would be greatly appriciated.

Thanks,
Rob

robbiesullivan
Posts: 42
Joined: Mon Oct 10, 2005 3:40 pm

Post by robbiesullivan »

OK I think I've figured something out.
It seems to be only if I call the recording from a GOTO from my main application.

for example, if I do this:

Code: Select all

<form id="GetDudesREsponse" scope="document">
               <prompt>Hey Dude, press star to go to the recording section</prompt>
		<field name="DudesResponse" type="digits"> 
                         <filled>
				<if cond="DudesResponse== '*'">						
                                 <goto next="vxml_MyrecordingApp.aspx" />						

                                </if>			
                         </filled>
                </field>
          </form>
Happens everytime I do a longer then 2 minute phone call. It I reference the aspx file as it was the main application, it works fine.

Any ideas as to what is happening.

Thanks,
Rob

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

Send IVR script so problem can be replicated in lab

Post by support »

If you have been able to isolate this IVR issue down to two VXML pages, can you copy the entirety of those IVR scripts here? That way we can attempt to replicate this IVR problem in our lab. Thanks!
Last edited by support on Sat Feb 20, 2010 4:50 pm, edited 2 times in total.

robbiesullivan
Posts: 42
Joined: Mon Oct 10, 2005 3:40 pm

Post by robbiesullivan »

Here is the code for the small snit that I reproduced the problem in.
Happens if I record something over and over again for like 2 minutes for the entire call. The eventual post will just timeout.

Works fine if I reference vxml_recordTestaspx directly and not being called from another script.

Code: Select all

<?xml version="1.0"?>
<vxml version="2.1" xmlns="http://www.w3.org/2001/vxml">

<form id="MyMainForm">
<block>
<goto next="vxml_recordTestaspx" fetchtimeout="600s" />									
</block>
</form>
</vxml>
-----------record test-------------

Code: Select all

<?xml version="1.0"?>
<vxml version="2.1" xmlns="http://www.w3.org/2001/vxml">

<form id="MyMainForm">
<block>
	<assign name="intAgentID" expr="'1'"/>
	<assign name="homeCode" expr="'01'"/>
	
	<data name="infolineWSHomeCodeExits" method="post" src="InfolineService.asmx/HomeCodeExits" namelist="intAgentID homeCode"/> 		
	
	
	<data name="infolineWSHomeCodeExits" method="post" src="InfolineService.asmx/HomeCodeExits" namelist="intAgentID homeCode"/> 		
	<goto next="#record_audio"/>
</block>
</form>

<form id="record_audio">
   <record name="aud" beep="true" type='audio/x-wav' dtmfterm="true"
      maxtime="50s" finalsilence="2s">
      <prompt bargein="false">
        Please say something very cool
      </prompt>
      <filled>
        <if cond="aud$.termchar == '*'">
          <clear/>
          <reprompt/>
       <else/>
          <assign name="myrecording" expr="aud"/>
          <goto next="#review_audio"/>
        </if>
      </filled>
      <catch event="noinput nomatch">
        Empty Recording Note good
        <reprompt />
      </catch>
   </record> 
</form>


<form id="review_audio">
  <property name="inputmodes" value="dtmf"/>
  <property name="interdigittimeout" value="1s"/>

  <field name="myfield">
      <grammar type="application/x-jsgf">1</grammar>
      <prompt>
         This is what you recorded fool, press any key to record again or one to submit it
         <value expr="myrecording"/>
         Press blah to continue
      </prompt>
    <filled>
		Please wait for your recording to be sent to our magical database
		<assign name="targetFile" expr="'3642_title'"/>
      <data name="FileNamePost" fetchtimeout="120s" method="post" src="record.aspx" namelist="myrecording targetFile"/>
      You submission was sent, very cool
      <goto next="#record_audio" />

    </filled>
    <noinput>
      <reprompt/>
    </noinput>
    <nomatch>
      <goto next="#record_audio"/>
    </nomatch>
  </field>
</form>

</vxml>
Thanks for any assistance.

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

Last call logs needed to debug IVR error

Post by support »

Hello,

Could you please post data from the last IVR call log demonstrating the timeout. Also, have you tried decreasing the timeout and reattempting the <data> tag submit? We are dealing with IVR systems in disparate locations over the internet, it would not be shocking to see some small number of file uploads fail. We will not be able to further debug the IVR error without the IVR last call logs as we have not be able to replicate this with our local servers.

Regards,
Plum Support
Last edited by support on Sat Feb 20, 2010 4:51 pm, edited 3 times in total.

robbiesullivan
Posts: 42
Joined: Mon Oct 10, 2005 3:40 pm

Post by robbiesullivan »

Hello, sorry for the delayed response I was away:

Here is the data from my call log demostraiting the timeout. I think the Key to this problem is that it only happens if I use a GOTO to switch processing to another seperate vxml file. If I use the file directly it works fine.

Thx,
Rob

Thu 27 Jul 2006 06:51:55 PM EDT:
New call
Beginning tel session
Beginning prompt session
Beginning rec session
Call Start Event: ANII 9024445217 DNIS 8664203115 VURL http://hosting.plumgroup.com/plumvp/director.vxml
DocumentParser::FetchDocument()
Previously playing audio (if any) has finished
Previously playing audio (if any) has finished
DocumentParser::FetchDocument(http://hosting.plumgroup.com/plumvp/director.vxml)
Using proxy server 127.0.0.1:8080 for channel 3
Attempting to fetch http://hosting.plumgroup.com/plumvp/director.vxml
VXI::var_element(name="dnis" expr = "session.telephone.dnis")
Previously playing audio (if any) has finished
Previously playing audio (if any) has finished
DocumentParser::FetchDocument(director.php)
Not using a proxy because we're POSTing
Posted form data is URL encoded
Attempting to fetch http://hosting.plumgroup.com/plumvp/director.php
Click here to view saved VoiceXML script
Previously playing audio (if any) has finished
Previously playing audio (if any) has finished
DocumentParser::FetchDocument(http://www.smartsalestools.com/public/test1.xml)
Using proxy server 127.0.0.1:8080 for channel 3
Attempting to fetch http://www.smartsalestools.com/public/test1.xml

Thu 27 Jul 2006 06:51:56 PM EDT:
Click here to view saved VoiceXML script
Previously playing audio (if any) has finished
Previously playing audio (if any) has finished
DocumentParser::FetchDocument(vxml_playnumbersdialog.aspx)
Using proxy server 127.0.0.1:8080 for channel 3
Attempting to fetch http://www.smartsalestools.com/public/v ... ialog.aspx
Click here to view saved VoiceXML script
GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
1
</grammar>

---------

VXI::assign_element(name="intAgentID" expr = "'1'"
VXI::assign_element(name="homeCode" expr = "'01'"
Using proxy server 127.0.0.1:8080 for channel 3
Attempting to fetch file:///usr/local/plumvp/resources/xmlw3cdomsax.js
Previously playing audio (if any) has finished
Previously playing audio (if any) has finished
Not using a proxy because we're POSTing
Posted form data is URL encoded
Attempting to fetch http://www.smartsalestools.com/public/I ... eCodeExits
Using proxy server 127.0.0.1:8080 for channel 3
Attempting to fetch file:///usr/local/plumvp/resources/xmlw3cdomsax.js
Previously playing audio (if any) has finished
Previously playing audio (if any) has finished
Not using a proxy because we're POSTing
Posted form data is URL encoded
Attempting to fetch http://www.smartsalestools.com/public/I ... eCodeExits
Using proxy server 127.0.0.1:8080 for channel 3
Attempting to fetch file:///usr/local/plumvp/resources/xmlw3cdomsax.js
Previously playing audio (if any) has finished
Previously playing audio (if any) has finished
Not using a proxy because we're POSTing
Posted form data is URL encoded
Attempting to fetch http://www.smartsalestools.com/public/I ... eCodeExits
Using proxy server 127.0.0.1:8080 for channel 3
Attempting to fetch file:///usr/local/plumvp/resources/xmlw3cdomsax.js
Previously playing audio (if any) has finished
Previously playing audio (if any) has finished
Not using a proxy because we're POSTing
Posted form data is URL encoded
Attempting to fetch http://www.smartsalestools.com/public/I ... eCodeExits
Using proxy server 127.0.0.1:8080 for channel 3
Attempting to fetch file:///usr/local/plumvp/resources/xmlw3cdomsax.js

Thu 27 Jul 2006 06:51:57 PM EDT:
Previously playing audio (if any) has finished
Previously playing audio (if any) has finished
Not using a proxy because we're POSTing
Posted form data is URL encoded
Attempting to fetch http://www.smartsalestools.com/public/I ... eCodeExits
Using proxy server 127.0.0.1:8080 for channel 3
Attempting to fetch file:///usr/local/plumvp/resources/xmlw3cdomsax.js
Previously playing audio (if any) has finished
Previously playing audio (if any) has finished
Not using a proxy because we're POSTing
Posted form data is URL encoded
Attempting to fetch http://www.smartsalestools.com/public/I ... eCodeExits
Using proxy server 127.0.0.1:8080 for channel 3
Attempting to fetch file:///usr/local/plumvp/resources/xmlw3cdomsax.js
Previously playing audio (if any) has finished
Previously playing audio (if any) has finished
Not using a proxy because we're POSTing
Posted form data is URL encoded
Attempting to fetch http://www.smartsalestools.com/public/I ... eCodeExits
VXI::queue_prompts()
bargein set to false
INPUTMODES set to "DTMF VOICE"
Audio segment added to prompt queue from TTS text/plain;charset=wchar_t for:
---------

Please say something very cool

---------
Previously playing audio (if any) has finished
Newly queued prompts are now being played
bargein set to true
Using proxy server 127.0.0.1:8080 for channel 3
Attempting to fetch file:///usr/local/plumvp/resources/beep.ulaw
Audio segment from the URL resources/beep.ulaw added to prompt queue
PromptManager::Play()

Thu 27 Jul 2006 06:52:00 PM EDT:
Previously playing audio (if any) has finished
Previously playing audio (if any) has finished
Newly queued prompts are now being played

Thu 27 Jul 2006 06:52:34 PM EDT:
Saved utterance 0 for DNIS 8664203115 on channel 3
VXI::assign_element(name="myrecording" expr = "aud"
VXI::queue_prompts()
bargein set to true
INPUTMODES set to "DTMF"
Audio segment added to prompt queue from TTS text/plain;charset=wchar_t for:
---------

This is what you recorded fool, press any key to record again or one to submit it

---------
bargein set to true
INPUTMODES set to "DTMF"
Audio segment from a binary data buffer of size 246446 added to prompt queue
bargein set to true
INPUTMODES set to "DTMF"
Audio segment added to prompt queue from TTS text/plain;charset=wchar_t for:
---------

Press blah to continue

---------
VXI::field_element - activating grammars for form = 'review_audio' formitem = 'myfield'
VXI::do_recognition()
PromptManager::Play()
Previously playing audio (if any) has finished
Previously playing audio (if any) has finished
Newly queued prompts are now being played

Thu 27 Jul 2006 06:52:43 PM EDT:
received event: nomatch
VXI::queue_prompts()
bargein set to false
INPUTMODES set to "DTMF VOICE"
Audio segment added to prompt queue from TTS text/plain;charset=wchar_t for:
---------

Please say something very cool

---------
Previously playing audio (if any) has finished
Newly queued prompts are now being played
bargein set to true
Using proxy server 127.0.0.1:8080 for channel 3
Attempting to fetch file:///usr/local/plumvp/resources/beep.ulaw
Audio segment from the URL resources/beep.ulaw added to prompt queue
PromptManager::Play()

Thu 27 Jul 2006 06:52:45 PM EDT:
Previously playing audio (if any) has finished
Previously playing audio (if any) has finished
Newly queued prompts are now being played

Thu 27 Jul 2006 06:53:36 PM EDT:
Saved utterance 1 for DNIS 8664203115 on channel 3
VXI::assign_element(name="myrecording" expr = "aud"
VXI::queue_prompts()
bargein set to true
INPUTMODES set to "DTMF"
Audio segment added to prompt queue from TTS text/plain;charset=wchar_t for:
---------

This is what you recorded fool, press any key to record again or one to submit it

---------
bargein set to true
INPUTMODES set to "DTMF"
Audio segment from a binary data buffer of size 400686 added to prompt queue
bargein set to true
INPUTMODES set to "DTMF"
Audio segment added to prompt queue from TTS text/plain;charset=wchar_t for:
---------

Press blah to continue

---------
VXI::field_element - activating grammars for form = 'review_audio' formitem = 'myfield'
VXI::do_recognition()
PromptManager::Play()
Previously playing audio (if any) has finished
Previously playing audio (if any) has finished
Newly queued prompts are now being played

Thu 27 Jul 2006 06:53:45 PM EDT:
received event: nomatch
VXI::queue_prompts()
bargein set to false
INPUTMODES set to "DTMF VOICE"
Audio segment added to prompt queue from TTS text/plain;charset=wchar_t for:
---------

Please say something very cool

---------
Previously playing audio (if any) has finished
Newly queued prompts are now being played
bargein set to true
Using proxy server 127.0.0.1:8080 for channel 3
Attempting to fetch file:///usr/local/plumvp/resources/beep.ulaw
Audio segment from the URL resources/beep.ulaw added to prompt queue
PromptManager::Play()

Thu 27 Jul 2006 06:53:48 PM EDT:
Previously playing audio (if any) has finished
Previously playing audio (if any) has finished
Newly queued prompts are now being played

Thu 27 Jul 2006 06:54:13 PM EDT:
Saved utterance 2 for DNIS 8664203115 on channel 3
VXI::assign_element(name="myrecording" expr = "aud"
VXI::queue_prompts()
bargein set to true
INPUTMODES set to "DTMF"
Audio segment added to prompt queue from TTS text/plain;charset=wchar_t for:
---------

This is what you recorded fool, press any key to record again or one to submit it

---------
bargein set to true
INPUTMODES set to "DTMF"
Audio segment from a binary data buffer of size 176926 added to prompt queue
bargein set to true
INPUTMODES set to "DTMF"
Audio segment added to prompt queue from TTS text/plain;charset=wchar_t for:
---------

Press blah to continue

---------
VXI::field_element - activating grammars for form = 'review_audio' formitem = 'myfield'
VXI::do_recognition()
PromptManager::Play()
Previously playing audio (if any) has finished
Previously playing audio (if any) has finished
Newly queued prompts are now being played

Thu 27 Jul 2006 06:54:20 PM EDT:
Found grammar match
hypothesis #0: 1 (0.9990)
bargein set to true
INPUTMODES set to "DTMF"
Audio segment added to prompt queue from TTS text/plain;charset=wchar_t for:
---------

Please wait for your recording to be sent to our magical database

---------
VXI::assign_element(name="targetFile" expr = "'3642_title'"
Using proxy server 127.0.0.1:8080 for channel 3
Attempting to fetch file:///usr/local/plumvp/resources/xmlw3cdomsax.js
Previously playing audio (if any) has finished
Newly queued prompts are now being played

Thu 27 Jul 2006 06:54:24 PM EDT:
Previously playing audio (if any) has finished
Not using a proxy because we're POSTing
Posting binary content "myrecording" of size 176926 and type "audio/x-wav"
Posted form data is multipart encoded
Attempting to fetch http://www.smartsalestools.com/public/r ... mVXML.aspx

Thu 27 Jul 2006 06:56:25 PM EDT:
Error fetching document due to Operation timed out with 0 out of -1 bytes received
DocumentParser::FetchXML - could not open URL: recordFromVXML.aspx
errno: 203 uri recordFromVXML.aspx
received event: error.badfetch
Can not queue audio -- line disconnected
VXI::exit_element()
Call End Event
Ending session
Ending Session On Channel 3
plumvp::ChannelThread: Channel 3: Call Terminated
New session ID 000003;003;1154040985 for Channel 3
plumvp::ChannelThread: Channel 3: Enabling Call 496
Enabling Calls For Channel 3
plumvp::ChannelThread: About to call VXIplatformWaitForCall
Waiting For Calls on Channel 3

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

IVR code copied directly onto test system at Plum- no errors

Post by support »

We've been unable to replicate the IVR error you describe below. The IVR code you submitted was copied directly onto a test system here at Plum with all of the aspx scripts replaced by php scripts and the two initial data tags commented out. We tried many different combinations of recordings and re-recordings and never encountered a timeout.

Since the only difference between our setup and yours is the scripting engine used, our two recommendations are a) try a scripting language other than ASP or b) reduce the fetch timeout in the <data> tag to, say, 10 seconds and put an error handler that retries the POST should your IVR application server fail to respond. If you choose option (b), be sure to cap it at 1 or 2 retries so you don't put your IVR application into an infinite loop.
Last edited by support on Sat Feb 20, 2010 4:52 pm, edited 3 times in total.

robbiesullivan
Posts: 42
Joined: Mon Oct 10, 2005 3:40 pm

Post by robbiesullivan »

Hello,
unforutintly I cannot try a different scripting language other then aspx. That is my webserver.

I tried bumping the fethtimeout on the data tag to 10 seconds and trying it again, it just errors out over and over again.

I am baffled at what the problem is.

Rob

robbiesullivan
Posts: 42
Joined: Mon Oct 10, 2005 3:40 pm

Post by robbiesullivan »

The magical number is definitly 2 mintes for the entire call. If the entire call is less then 2 minutes everything works fine, even if I record over and over and over again. Once I get past that 2 minute mark for the call, the Data post to the aspx times out ever time.

robbiesullivan
Posts: 42
Joined: Mon Oct 10, 2005 3:40 pm

Post by robbiesullivan »

I fixed the problem I think. I've tested it 3 times and it seems to work now. I had been referencing the SRC as a relitive path. Once I put my full server HTTP path in there it worked fine!

I think what is happening is that relitive paths are using the same HTTP connection which is timing out.

Does this make sense?

Post Reply