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

Operation timed out with 0 out of -1 bytes received

Questions and answers about IVR programming for Plum DEV

Moderators: admin, support

Post Reply
metroscript
Posts: 78
Joined: Mon Sep 25, 2006 6:52 am
Contact:

Operation timed out with 0 out of -1 bytes received

Post by metroscript »

Good evening to all,

We are receiving the following error:

Code: Select all

Error fetching document http://www.metroscript.com/voicexml/process_record_savevox.xml?next=hangup due to Operation timed out with 0 out of -1 bytes received
DocumentParser::FetchBuffer - could not open URL: process_record_savevox.xml?next=hangup
DocumentParser::FetchDocument - exiting with error result 2
errno: 203 uri process_record_savevox.xml?next=hangup
Basically, the user is in process_record_start.xml. In that page, they are making their recording. When the finish, the hit * to save but hangup right after hitting *. This issue happens intermittently in production and I cannot replicate it. I tried to record for the same length recording. I tried to hit * to save and immediately hangup but I am successful. What is happening is that the application is trying to go from the first xml page(process_record_start.xml) to the second xml page(process_record_savevox.xml) via the disconnect handling in the application. When the application tries to go to process_record_savevox.xml, that is when the error occurs. Since it doesn't happen every time, it is difficult to diagnose. Here is my code and also some logging that I have created.

Any assistance would be appreciated since we are losing clients due to this issue.

process_record_start.xml

Code: Select all

<?xml version="1.0"?>
<vxml version="2.1" application="root.xml">

<!--#include file="clsXMLConstants.asp"-->
<!--#include file="clsXMLDatabase.asp"-->
<!--#include file="clsXMLSessionManager.asp"-->
<!--#include file="clsXMLUtilities.asp"-->
<!--#include file="clsXMLVariables.asp"-->

<%
Server.ScriptTimeout = 3600
GetSessionValues

objXMLUtilities.AppendToTodaysVoiceXMLServerLogFile(strPlumCallID & " process_record_start.xml - Start and End")

strFileCount = cint(strFileCount) + 1

SaveSessionValues
%>

<catch event="connection.disconnect">
	<if cond="phone_file_1vox$.size == 0">
		<log>process_record_start.xml - End (disconnect after recording, 0 length, Go to process_record_hangup.xml )</log>
		<submit next="process_record_hangup.xml?next=zerolength" method="post"/>
        <else/>
		<log>process_record_start.xml - End (disconnect after recording, Go to process_record_savevox.xml?next=hangup )</log>
		<submit next="process_record_savevox.xml?next=hangup" method="post" namelist="myphone_file_1vox" enctype="multipart/form-data"/>
	</if>
</catch>

<form id="record">
	<block>
		<log>process_record_start.xml - Start</log>
	</block>
	<grammar>1|2|3|4|5|6|7|8|9|0|"*"|"#"</grammar>
	<record name="phone_file_1vox" beep="true" dtmfterm="true" maxtime="720s" finalsilence="300s" type="audio/basic">
		<prompt bargein="false">
		<% if ( cint(strFileCount) <= 1 ) then 
			'Log the dictation
			'stored procedure: sp_insert_phone_in_log_record
			'tables: phone_log
			set conDatabase = Server.CreateObject("ADODB.Connection")
			conDatabase.Open strConnection
			objXMLUtilities.SetDictationStarted2 "L", strUserID, strFolderNumber, strCallID, 0
			conDatabase.Close
		%>
			<voice>Reecord at the beep.</voice>
		<% else %>
			<voice>Continue at the beep.</voice>
		<% end if %>
		</prompt>
		<catch event="noinput" count="1">
			<prompt>Are you still there.</prompt>
			<reprompt/>
		</catch>
		<catch event="noinput" count="3">
			<prompt>Goodbye.</prompt>
			<exit/>
		</catch>
		<filled>
		        <assign name="nextkey" expr="phone_file_1vox$.termchar"/>
			<assign name="myphone_file_1vox" expr="phone_file_1vox"/>
			<if cond="nextkey=='1'">
				<prompt>Please wait while your dictation is saved</prompt>
				<log>process_record_start.xml - MID (File size in bytes: <value expr="phone_file_1vox$.size"/>,Go to process_record_savevox.xml?next=saveandrecordnormal )</log>
				<log>process_record_start.xml - END (User Choice 1, Go to process_record_savevox.xml?next=saveandrecordnormal )</log>
				<submit next="process_record_savevox.xml?next=saveandrecordnormal" method="post" namelist="myphone_file_1vox" enctype="multipart/form-data"/>
			<elseif cond="nextkey=='2'"/>
				<prompt>Please wait while your dictation is saved</prompt>
				<log>process_record_start.xml - MID (File size in bytes: <value expr="phone_file_1vox$.size"/>,Go to process_record_savevox.xml?next=saveandrecordstat )</log>
				<log>process_record_start.xml - End (User Choice 2, Go to process_record_savevox.xml?next=saveandrecordstat )</log>
				<submit next="process_record_savevox.xml?next=saveandrecordstat" method="post" namelist="myphone_file_1vox" enctype="multipart/form-data"/>
			<elseif cond="nextkey=='3'"/>
				<prompt>Please use the rewind functionality before using the reecord from here function. Please wait.</prompt>
				<log>process_record_start.xml - MID (File size in bytes: <value expr="phone_file_1vox$.size"/>,Go to process_record_savevox.xml?next=pause )</log>
				<log>process_record_start.xml - End (User Choice 3, Go to process_record_savevox.xml?next=pause )</log>
				<submit next="process_record_savevox.xml?next=pause" method="post" namelist="myphone_file_1vox" enctype="multipart/form-data"/>
			<elseif cond="nextkey=='4'"/>
				<prompt>Please wait while your dictation is accessed</prompt>
				<log>process_record_start.xml - MID (File size in bytes: <value expr="phone_file_1vox$.size"/>,Go to process_record_savevox.xml?next=reviewrewind )</log>
				<log>process_record_start.xml - End (User Choice 4, Go to process_record_savevox.xml?next=reviewrewind )</log>
				<submit next="process_record_savevox.xml?next=reviewrewind" method="post" namelist="myphone_file_1vox" enctype="multipart/form-data"/>
			<elseif cond="nextkey=='5'"/>
				<prompt>Please wait</prompt>
				<log>process_record_start.xml - MID (File size in bytes: <value expr="phone_file_1vox$.size"/>,Go to process_record_savevox.xml?next=pause )</log>
				<log>process_record_start.xml - End (User Choice 5, Go to process_record_savevox.xml?next=pause )</log>
				<submit next="process_record_savevox.xml?next=pause" method="post" namelist="myphone_file_1vox" enctype="multipart/form-data"/>
			<elseif cond="nextkey=='6'"/>
				<prompt>Please use the rewind functionality before using the fast forward function. Please wait.</prompt>
				<log>process_record_start.xml - MID (File size in bytes: <value expr="phone_file_1vox$.size"/>,Go to process_record_savevox.xml?next=pause )</log>
				<log>process_record_start.xml - End (User Choice 6, Go to process_record_savevox.xml?next=pause )</log>
				<submit next="process_record_savevox.xml?next=pause" method="post" namelist="myphone_file_1vox" enctype="multipart/form-data"/>
			<elseif cond="nextkey=='7'"/>
				<prompt>Please wait while your dictation is accessed</prompt>
				<log>process_record_start.xml - MID (File size in bytes: <value expr="phone_file_1vox$.size"/>,Go to process_record_savevox.xml?next=reviewbeginning )</log>
				<log>process_record_start.xml - End (User Choice 7, Go to process_record_savevox.xml?next=reviewbeginning )</log>
				<submit next="process_record_savevox.xml?next=reviewbeginning" method="post" namelist="myphone_file_1vox" enctype="multipart/form-data"/>
			<elseif cond="nextkey=='8'"/>
				<% if (cstr(strCancelFlag) = "1") then %>
					<log>process_record_start.xml - MID (File size in bytes: <value expr="phone_file_1vox$.size"/>,Go to process_record_savevox.xml?next=cancel )</log>
					<log>process_record_start.xml - End (User Choice 8, Go to process_record_savevox.xml?next=cancel )</log>
					<submit next="process_record_savevox.xml?next=cancel" method="post" namelist="myphone_file_1vox" enctype="multipart/form-data"/>
				<% else %>
					<log>process_record_start.xml - MID (File size in bytes: <value expr="phone_file_1vox$.size"/>,Go to process_record_savevox.xml?next=badcancel )</log>
					<log>process_record_start.xml - End (User Choice 8, Go to process_record_savevox.xml?next=badcancel )</log>
					<submit next="process_record_savevox.xml?next=badcancel" method="post" namelist="myphone_file_1vox" enctype="multipart/form-data"/>
				<% end if %>
			<elseif cond="nextkey=='9'"/>
				<prompt>Please wait while your dictation is accessed</prompt>
				<log>process_record_start.xml - MID (File size in bytes: <value expr="phone_file_1vox$.size"/>,Go to process_record_savevox.xml?next=reviewend )</log>
				<log>process_record_start.xml - End (User Choice 9, Go to process_record_savevox.xml?next=reviewend )</log>
				<submit next="process_record_savevox.xml?next=reviewend" method="post" namelist="myphone_file_1vox" enctype="multipart/form-data"/>
			<elseif cond="nextkey=='*'"/>
				<prompt>Please wait while your dictation is saved</prompt>
				<log>process_record_start.xml - MID (File size in bytes: <value expr="phone_file_1vox$.size"/>,Go to process_record_savevox.xml?next=hangup )</log>
				<log>process_record_start.xml - End (User Choice *, Go to process_record_savevox.xml?next=hangup )</log>
				<submit next="process_record_savevox.xml?next=hangup" method="post" namelist="myphone_file_1vox" enctype="multipart/form-data"/>
			<elseif cond="nextkey=='0'"/>
				<prompt>Going to help menu. Please Wait.</prompt>
				<log>process_record_start.xml - MID (File size in bytes: <value expr="phone_file_1vox$.size"/>,Go to process_record_savevox.xml?next=help )</log>
				<log>process_record_start.xml - End (User Choice 0, Go to process_record_savevox.xml?next=help )</log>
				<submit next="process_record_savevox.xml?next=help" method="post" namelist="myphone_file_1vox" enctype="multipart/form-data"/>
			<elseif cond="nextkey=='#'"/>
				<prompt>Please wait while your dictation is saved</prompt>
				<log>process_record_start.xml - MID (File size in bytes: <value expr="phone_file_1vox$.size"/>,process_record_savevox.xml?next=saveandreprompt )</log>
				<log>process_record_start.xml - End (User Choice #, Go to process_record_savevox.xml?next=saveandreprompt )</log>
				<submit next="process_record_savevox.xml?next=saveandreprompt" method="post" namelist="myphone_file_1vox" enctype="multipart/form-data"/>
			</if>
			<if cond="phone_file_1vox$.maxtime==true">
				<prompt>You have reached the maximum time limit of 12 minutes. Please wait.</prompt>
				<log>process_record_start.xml - MID (File size in bytes: <value expr="phone_file_1vox$.size"/>,process_record_savevox.xml?next=maxtime )</log>
				<log>process_record_start.xml - End (Go to process_record_savevox.xml?next=maxtime )</log>
				<submit next="process_record_savevox.xml?next=maxtime" method="post" namelist="myphone_file_1vox" enctype="multipart/form-data"/>
			</if>
		</filled>

		<catch event="connection.disconnect">
			<if cond="phone_file_1vox$.size == 0">
				<log>process_record_start.xml - MID (File size in bytes: <value expr="phone_file_1vox$.size"/> , Go to process_record_hangup.xml )</log>
				<log>process_record_start.xml - END (disconnect during recording, 0 length, Go to process_record_hangup.xml )</log>
				<submit next="process_record_hangup.xml?next=zerolength" method="post"/>
                        <else/>
				<assign name="myphone_file_1vox" expr="phone_file_1vox"/>
				<log>process_record_start.xml - MID (File size in bytes: <value expr="phone_file_1vox$.size"/> , Go to process_record_savevox.xml?next=hangup )</log>
				<log>process_record_start.xml - End (disconnect during recording, Go to process_record_savevox.xml?next=hangup )</log>
				<submit next="process_record_savevox.xml?next=hangup" method="post" namelist="myphone_file_1vox" enctype="multipart/form-data"/>
			</if>
		</catch>

		<catch event="error.badfetch">
			<if cond="phone_file_1vox$.size == 0">
				<log>process_record_start.xml - MID (File size in bytes: <value expr="phone_file_1vox$.size"/> , Go to process_record_hangup.xml )</log>
				<log>process_record_start.xml - End (error.badfetch during recording, 0 length, Go to process_record_hangup.xml )</log>
				<submit next="process_record_hangup.xml?next=zerolength" method="post"/>
                        <else/>
				<assign name="myphone_file_1vox" expr="phone_file_1vox"/>
				<log>process_record_start.xml - MID (File size in bytes: <value expr="phone_file_1vox$.size"/> , Go to process_record_savevox.xml?next=hangup )</log>
				<log>process_record_start.xml - End (error.badfetch during recording, Go to process_record_savevox.xml?next=hangup)</log>
				<submit next="process_record_savevox.xml?next=hangup" method="post" namelist="myphone_file_1vox" enctype="multipart/form-data"/>
			</if>
		</catch>

		<catch event="nomatch noinput">
			<submit next="process_record_hangup.xml" method="post"/>
		</catch>

	</record>
</form>

</vxml>


process_record_savevox.xml

Code: Select all

<?xml version="1.0"?>
<vxml version="2.1" application="root.xml">

<!--#include file="clsXMLConstants.asp"-->
<!--#include file="clsXMLDatabase.asp"-->
<!--#include file="clsXMLSaveRecording.asp"-->
<!--#include file="clsXMLSessionManager.asp"-->
<!--#include file="clsXMLUtilities.asp"-->
<!--#include file="clsXMLVariables.asp"-->

<%
Server.ScriptTimeout = 3600
dim strNext
strNext = Request("next")

GetSessionValues

objXMLUtilities.AppendToTodaysVoiceXMLServerLogFile(strPlumCallID & " process_record_savevox.xml - Start")

strFileCount = trim(strFileCount)

if strFileCount = "" then
	strFileCount = "1"
end if

dim strTempSaveFolder
strTempSaveFolder = Server.MapPath("..\tempupload\tempvoicefiles\") & "\" & session("foldernumber") & "\"

dim strFileName
strFileName = strTempSaveFolder & "phone_file" & "_" & strFileCount & ".vox"

dim Upload

Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.SetMaxSize 10000000

Upload.Save strTempSaveFolder
Upload.MoveFile strTempSaveFolder & "myphone_file_1vox", strFileName

Set Upload = nothing

SaveSessionValues

objXMLUtilities.AppendToTodaysVoiceXMLServerLogFile(strPlumCallID & " process_record_savevox.xml - End (Temp File1:" & strFileName & ")")

%>

<catch event="connection.disconnect">
	<log>process_record_savevox.xml - User disconnected</log>
	<submit next="process_combine_voxs.xml?next=hangup" method="post"/>
</catch>

<% if ( strNext = "pause" ) then %>
	<menu id="pausemenu">
		<property name="inputmodes" value="dtmf"/>
		<prompt>
			<voice>
				Enter
				<enumerate><value expr="_dtmf"/> <value expr="_prompt"/>, 
					<break size="large"/><break size="large"/>
					<break size="large"/><break size="large"/>
					<break size="large"/><break size="large"/>
					<break size="large"/><break size="large"/>
					<break size="large"/><break size="large"/>
					<break size="large"/><break size="large"/>
				</enumerate>
			</voice>
		</prompt>
		<choice dtmf="5" next="process_record_start.xml">to continue</choice>

		<noinput count="1">
			<reprompt/>
		</noinput>

		<nomatch count="1">
			Sorry, that is not one of the selections. Please try again.
			<reprompt/>
		</nomatch>

		<catch event="nomatch noinput" count="12">
			<log>process_record_savevox.xml - Start and End (No Match or No Input in Pause menu, Go to process_combine_voxs.xml?next=hangup)</log>
			<submit next="process_combine_voxs.xml?next=hangup" method="post"/>
		</catch>

		<catch event="connection.disconnect">
			<log>process_record_savevox.xml - Start and End (Disconnect in Pause menu, Go to process_combine_voxs.xml?next=hangup)</log>
			<submit next="process_combine_voxs.xml?next=hangup" method="post"/>
		</catch>

	</menu>
<% elseif ( strNext = "cancel" ) then %>
	<menu id="cancelmenu">
		<property name="inputmodes" value="dtmf"/>
		<prompt>
			<voice>
				Enter
				<enumerate><value expr="_dtmf"/> <value expr="_prompt"/>, <break size="small"/></enumerate>
			</voice>
		</prompt>
		<choice dtmf="8" next="process_record_cancel.xml">to verify the cancellation</choice>
		<choice dtmf="1" next="process_record_start.xml">to continue reecording</choice>
	<% if ( strStatAllowFlag = "Y" ) then %>
		<choice dtmf="2" next="process_record_start.xml">to continue reecording</choice>
	<% end if %>
		<choice dtmf="4" next="process_combine_voxs.xml?next=reviewrewind">to rewind ten seconds and review dictation</choice>
		<choice dtmf="6" next="process_combine_voxs.xml?next=reviewforward">to forward ten seconds and review dictation</choice>
		<choice dtmf="7" next="process_combine_voxs.xml?next=reviewbeginning">to rewind to the beginning and review dictation</choice>
		<choice dtmf="*" next="process_combine_voxs.xml?next=hangup">to save and hangup</choice>
		<choice dtmf="#" next="process_combine_voxs.xml?next=saveandreprompt">to save and record another dictation</choice>

		<noinput count="1">
			Sorry, I did not hear you. Please try again.
			<reprompt/>
		</noinput>

		<nomatch count="1">
			Sorry, that is not one of the selections. Please try again.
			<reprompt/>
		</nomatch>

		<noinput count="2">
			Sorry, I still did not hear you. Please try again.
			<reprompt/>
		</noinput>

		<catch event="nomatch noinput" count="3">
			<log>process_record_savevox.xml - Start and End (No Match or No Input in Cancel menu, Go to process_combine_voxs.xml?next=hangup)</log>
			<submit next="process_combine_voxs.xml?next=hangup" method="post"/>
		</catch>

		<catch event="connection.disconnect">
			<log>process_record_savevox.xml - Start and End (Disconnect in Cancel menu, Go to process_combine_voxs.xml?next=hangup)</log>
			<submit next="process_combine_voxs.xml?next=hangup" method="post"/>
		</catch>

	</menu>
<% elseif ( strNext = "badcancel" ) then %>
	<menu id="badcancelmenu">
		<property name="inputmodes" value="dtmf"/>
		<prompt>
			<voice>The cancel feature is not activated for your account. Please contact your system administrator</voice>
			<voice>
				Enter
				<enumerate><value expr="_dtmf"/> <value expr="_prompt"/>, <break size="small"/></enumerate>
			</voice>
		</prompt>
		<choice dtmf="1" next="process_record_start.xml">to continue reecording</choice>
	<% if ( strStatAllowFlag = "Y" ) then %>
		<choice dtmf="2" next="process_record_start.xml">to continue reecording</choice>
	<% end if %>
		<choice dtmf="4" next="process_combine_voxs.xml?next=reviewrewind">to rewind ten seconds and review dictation</choice>
		<choice dtmf="6" next="process_combine_voxs.xml?next=reviewforward">to forward ten seconds and review dictation</choice>
		<choice dtmf="7" next="process_combine_voxs.xml?next=reviewbeginning">to rewind to the beginning and review dictation</choice>
		<choice dtmf="*" next="process_combine_voxs.xml?next=hangup">to save and hangup</choice>
		<choice dtmf="#" next="process_combine_voxs.xml?next=saveandreprompt">to save and record another dictation</choice>

		<noinput count="1">
			Sorry, I did not hear you. Please try again.
			<reprompt/>
		</noinput>

		<nomatch count="1">
			Sorry, that is not one of the selections. Please try again.
			<reprompt/>
		</nomatch>

		<noinput count="2">
			Sorry, I still did not hear you. Please try again.
			<reprompt/>
		</noinput>

		<catch event="nomatch noinput" count="3">
			<log>process_record_savevox.xml - Start and End (No Match or No Input in BadCancel menu, Go to process_combine_voxs.xml?next=hangup)</log>
			<submit next="process_combine_voxs.xml?next=hangup" method="post"/>
		</catch>

		<catch event="connection.disconnect">
			<log>process_record_savevox.xml - Start and End (Disconnect in BadCancel menu, Go to process_combine_voxs.xml?next=hangup)</log>
			<submit next="process_combine_voxs.xml?next=hangup" method="post"/>
		</catch>

	</menu>
<% elseif ( strNext = "help" ) then %>
	<menu id="help">
		<property name="inputmodes" value="dtmf"/>
		<prompt>
			<voice>
				You have entered the interactive help menu. You can press any key at any time to 
				initiate that feature. Please enter
				<enumerate><value expr="_dtmf"/> <value expr="_prompt"/>, <break size="small"/></enumerate>
			</voice>
		</prompt>
		<choice dtmf="1" next="process_record_start.xml">to continue recording</choice>
	<% if ( strStatAllowFlag = "Y" ) then %>
		<choice dtmf="2" next="process_record_start.xml">to continue recording</choice>
	<% end if %>
		<choice dtmf="4" next="process_combine_voxs.xml?next=reviewrewind">to rewind ten seconds and review dictation</choice>
		<choice dtmf="6" next="process_combine_voxs.xml?next=reviewforward">to forward ten seconds and review dictation</choice>
		<choice dtmf="7" next="process_combine_voxs.xml?next=reviewbeginning">to rewind to the beginning and review dictation</choice>
		<choice dtmf="9" next="process_combine_voxs.xml?next=reviewend">to rewind forty five seconds from the end and review dictation</choice>
		<choice dtmf="*" next="process_combine_voxs.xml?next=hangup">to save and hangup</choice>
		<choice dtmf="#" next="process_combine_voxs.xml?next=saveandreprompt">to save and record another dictation</choice>

		<noinput count="1">
			Sorry, I did not hear you. Please try again.
			<reprompt/>
		</noinput>

		<nomatch count="1">
			Sorry, that is not one of the selections. Please try again.
			<reprompt/>
		</nomatch>

		<noinput count="2">
			Sorry, I still did not hear you. Please try again.
			<reprompt/>
		</noinput>

		<catch event="nomatch noinput" count="3">
			<log>process_record_savevox.xml - Start and End (No Match or No Input in Cancel menu, Go to process_combine_voxs.xml?next=hangup)</log>
			<submit next="process_combine_voxs.xml?next=hangup" method="post"/>
		</catch>

		<catch event="connection.disconnect">
			<log>process_record_savevox.xml - Start and End (Disconnect in Cancel menu, Go to process_combine_voxs.xml?next=hangup)</log>
			<submit next="process_combine_voxs.xml?next=hangup" method="post"/>
		</catch>
	</menu>
<% elseif ( strNext = "maxtime" ) then %>
	<menu id="help">
		<property name="inputmodes" value="dtmf"/>
		<prompt>
			<voice>
				Please enter
				<enumerate><value expr="_dtmf"/> <value expr="_prompt"/>, <break size="small"/></enumerate>
			</voice>
		</prompt>
		<choice dtmf="1" next="process_combine_voxs.xml?next=saveandrecordnormal">to save your normal dictation and reecord another instantly</choice>
	<% if ( strStatAllowFlag = "Y" ) then %>
		<choice dtmf="2" next="process_combine_voxs.xml?next=saveandrecordstat">to save your normal dictation and reecord another instantly</choice>
	<% end if %>
		<choice dtmf="4" next="process_combine_voxs.xml?next=reviewrewind">to rewind ten seconds and review dictation</choice>
		<choice dtmf="6" next="process_combine_voxs.xml?next=reviewforward">to forward ten seconds and review dictation</choice>
		<choice dtmf="7" next="process_combine_voxs.xml?next=reviewbeginning">to rewind to the beginning and review dictation</choice>
		<choice dtmf="9" next="process_combine_voxs.xml?next=reviewend">to rewind forty five seconds from the end and review dictation</choice>
		<choice dtmf="*" next="process_combine_voxs.xml?next=hangup">to save and hangup</choice>
		<choice dtmf="#" next="process_combine_voxs.xml?next=saveandreprompt">to save and record another dictation</choice>

		<noinput count="1">
			Sorry, I did not hear you. Please try again.
			<reprompt/>
		</noinput>

		<nomatch count="1">
			Sorry, that is not one of the selections. Please try again.
			<reprompt/>
		</nomatch>

		<noinput count="2">
			Sorry, I still did not hear you. Please try again.
			<reprompt/>
		</noinput>

		<catch event="nomatch noinput" count="3">
			<log>process_record_savevox.xml - Start and End (No Match or No Input in Cancel menu, Go to process_combine_voxs.xml?next=hangup)</log>
			<submit next="process_combine_voxs.xml?next=hangup" method="post"/>
		</catch>

		<catch event="connection.disconnect">
			<log>process_record_savevox.xml - Start and End (Disconnect in Cancel menu, Go to process_combine_voxs.xml?next=hangup)</log>
			<submit next="process_combine_voxs.xml?next=hangup" method="post"/>
		</catch>
	</menu>
<% elseif ( strNext = "reviewrewind" ) then %>
	<form id="rewind">
		<block>
			<log>process_record_savevox.xml - Start and End (Go to process_combine_voxs.xml?next=reviewrewind)</log>
			<submit next="process_combine_voxs.xml?next=reviewrewind" method="post"/>
		</block>
	</form>
<% elseif ( strNext = "reviewbeginning" ) then %>
	<form id="beginning">
		<block>
			<log>process_record_savevox.xml - Start and End (Go to process_combine_voxs.xml?next=reviewbeginning)</log>
			<submit next="process_combine_voxs.xml?next=reviewbeginning" method="post"/>
		</block>
	</form>
<% elseif ( strNext = "reviewend" ) then %>
	<form id="beginning">
		<block>
			<log>process_record_savevox.xml - Start and End (Go to process_combine_voxs.xml?next=reviewend)</log>
			<submit next="process_combine_voxs.xml?next=reviewend" method="post"/>
		</block>
	</form>
<% elseif ( strNext = "saveandrecordnormal" ) then %>
	<form id="save">
		<block>
			<log>process_record_savevox.xml - Start and End (Go to process_combine_voxs.xml?next=saveandrecordnormal)</log>
			<submit next="process_combine_voxs.xml?next=saveandrecordnormal" method="post"/>
		</block>
	</form>
<% elseif ( strNext = "saveandrecordstat" ) then %>
	<form id="save">
		<block>
			<log>process_record_savevox.xml - Start and End (Go to process_combine_voxs.xml?next=saveandrecordstat)</log>
			<submit next="process_combine_voxs.xml?next=saveandrecordstat" method="post"/>
		</block>
	</form>
<% elseif ( strNext = "saveandreprompt" ) then %>
	<form id="save">
		<block>
			<log>process_record_savevox.xml - Start and End (Go to process_combine_voxs.xml?next=saveandreprompt)</log>
			<submit next="process_combine_voxs.xml?next=saveandreprompt" method="post"/>
		</block>
	</form>
<% elseif ( strNext = "hangup" ) then %>
	<form id="finish">
		<block>
			<log>process_record_savevox.xml - Start and End (Go to process_combine_voxs.xml?next=hangup)</log>
			<submit next="process_combine_voxs.xml?next=hangup" method="post"/>
		</block>
	</form>
<% elseif ( strNext = "help" ) then %>
	<form id="help">
		<block>
			<log>process_record_savevox.xml - Start and End (Go to process_combine_voxs.xml?next=help)</log>
			<submit next="process_combine_voxs.xml?next=help" method="post"/>
		</block>
	</form>
<% end if %>

</vxml>

logging:

Code: Select all

000003;036;1193790769 label default.xml - Start 
000003;036;1193790769 label default.xml - End (Go to check_user_id.xml) 
000003;036;1193790769 label check_user_id.xml - Start (User Id: 1499 User Name: 521642 Name: John Doe) 
000003;036;1193790769 label check_user_id.xml - End (Go to check_password.xml) 
000003;036;1193790769 label check_password.xml - Start (Confirmation Number: 188002) 
000003;036;1193790769 label check_password.xml  - End (Go to main_menu_setup.xml) 
000003;036;1193790769 label main_menu_setup.xml - Start and End (Go to main_menu.xml) 
000003;036;1193790769 label main_menu.xml - Start and End (User Choice 1, Go to process_record_new.xml) 
000003;036;1193790769 label process_record_new.xml - Start and End (Folder List: 56571, Go to process_record_start.xml) 
000003;036;1193790769 label process_record_start.xml - Start 
000003;036;1193790769 label process_record_start.xml - MID (File size in bytes:  2223232 ,Go to process_record_savevox.xml?next=hangup ) 
000003;036;1193790769 label process_record_start.xml - End (User Choice *, Go to process_record_savevox.xml?next=hangup ) 
000003;036;1193790769 label process_record_start.xml - MID (File size in bytes:  2223232  , Go to process_record_savevox.xml?next=hangup ) 
000003;036;1193790769 label process_record_start.xml - End (disconnect during recording, Go to process_record_savevox.xml?next=hangup ) 
000003;036;1193790769 label process_record_start.xml - MID (File size in bytes:  2223232  , Go to process_record_savevox.xml?next=hangup ) 
000003;036;1193790769 label process_record_start.xml - End (error.badfetch during recording, Go to process_record_savevox.xml?next=hangup) 
000003;036;1193790769 label process_record_start.xml - MID (File size in bytes:  2223232  , Go to process_record_savevox.xml?next=hangup ) 
000003;036;1193790769 label process_record_start.xml - End (error.badfetch during recording, Go to process_record_savevox.xml?next=hangup) 
000003;036;1193790769 label process_record_start.xml - MID (File size in bytes:  2223232  , Go to process_record_savevox.xml?next=hangup ) 
000003;036;1193790769 label process_record_start.xml - End (error.badfetch during recording, Go to process_record_savevox.xml?next=hangup) 
000003;036;1193790769 label process_record_start.xml - MID (File size in bytes:  2223232  , Go to process_record_savevox.xml?next=hangup ) 
000003;036;1193790769 label process_record_start.xml - End (error.badfetch during recording, Go to process_record_savevox.xml?next=hangup) 
0 000003;036;1193790769 1193790833 1193791292 0:7:39

As you can tell by the logging, it is going to through the disconnect logic but not making it to the next page:

Code: Select all

      <catch event="connection.disconnect">
         <if cond="phone_file_1vox$.size == 0">
            <log>process_record_start.xml - MID (File size in bytes: <value expr="phone_file_1vox$.size"/> , Go to process_record_hangup.xml )</log>
            <log>process_record_start.xml - END (disconnect during recording, 0 length, Go to process_record_hangup.xml )</log>
            <submit next="process_record_hangup.xml?next=zerolength" method="post"/>
                        <else/>
            <assign name="myphone_file_1vox" expr="phone_file_1vox"/>
            <log>process_record_start.xml - MID (File size in bytes: <value expr="phone_file_1vox$.size"/> , Go to process_record_savevox.xml?next=hangup )</log>
            <log>process_record_start.xml - End (disconnect during recording, Go to process_record_savevox.xml?next=hangup )</log>
            <submit next="process_record_savevox.xml?next=hangup" method="post" namelist="myphone_file_1vox" enctype="multipart/form-data"/>
         </if>
      </catch> 

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

IVR issue-operation timedout with 0 out of -1 bytes received

Post by support »

Hi,

Have you tried checking your IIS logs for when this IVR error is occurring?

Regards,
Plum Support
Last edited by support on Mon Dec 28, 2009 4:30 pm, edited 1 time in total.

metroscript
Posts: 78
Joined: Mon Sep 25, 2006 6:52 am
Contact:

Post by metroscript »

We checked both the IIS log and the HTTP error log file and there was nothing.

Another question associated with the first question:

On a hangup(disconnect), how long does Plum leave the session open so we can request another file from our server? So, looking back at the issue, the user hangs up after they recorded in process_record_start.xml. In my disconnect logic in process_record_start.xml, I call process_record_savevox.xml, which is failing to be called intermittently.

Thanks,

Mike C.

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

Plum leaves IVR session open indefinitely

Post by support »

Hi,

As long as your IVR application doesn't attempt to interact with the non-existent caller (i.e. play audio, collect input, attempt to transfer), Plum leaves the IVR session open indefinitely for you to request files from your IVR server.

Also, from your first IVR log file, it appears that the IVR system is timing out before it gets a response from your application server. You should adjust the "fetchtimeout" attribute for your <submit> tag to allow for more time for the audio file to be fetched.

Regards,
Plum Support
Last edited by support on Fri Feb 19, 2010 2:05 pm, edited 3 times in total.

metroscript
Posts: 78
Joined: Mon Sep 25, 2006 6:52 am
Contact:

Post by metroscript »

Thanks for the reply. Any suggestions on length for the fetchtimeout attribute?

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

IVR developer recommends fetchtimeout

Post by support »

Hi,

I would suggest a fetchtimeout of 60s and see if you are still getting a timeout with your IVR application.

Regards,
Plum Support
Last edited by support on Tue Jan 12, 2010 2:20 pm, edited 2 times in total.

metroscript
Posts: 78
Joined: Mon Sep 25, 2006 6:52 am
Contact:

Post by metroscript »

thanks. I'll give it a try.

metroscript
Posts: 78
Joined: Mon Sep 25, 2006 6:52 am
Contact:

Post by metroscript »

We are still receiving this error once in a great while, even after upping the fetchtimeout to 60s. The problem is that we lose the ENTIRE recording when we get this error, which makes this extremely critical.

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

IVR developer suggests trapping the error.badfetch

Post by support »

Hi,

It appears like there may be an IVR problem with the server side code. You should look over your server side code for any problems.

If that doesn't work, I would suggest trapping the error.badfetch that is occurring and then trying to resubmit it.

Regards,
Plum Support

Post Reply