Page 1 of 1

time out after recordings and re-recording

Posted: Wed Jul 26, 2006 6:59 pm
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

Posted: Wed Jul 26, 2006 8:32 pm
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

Send IVR script so problem can be replicated in lab

Posted: Thu Jul 27, 2006 8:56 am
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!

Posted: Thu Jul 27, 2006 5:54 pm
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.

Last call logs needed to debug IVR error

Posted: Wed Aug 02, 2006 11:07 am
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

Posted: Sun Aug 13, 2006 8:52 am
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

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

Posted: Mon Aug 14, 2006 5:18 pm
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.

Posted: Tue Aug 15, 2006 6:32 pm
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

Posted: Tue Aug 15, 2006 6:36 pm
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.

Posted: Tue Aug 15, 2006 7:28 pm
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?