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

Receiving error.noresource which causes a lost a recording

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:

Receiving error.noresource which causes a lost a recording

Post by metroscript »

Good evening,

We seem to be receiving an error.noresource error when a user is right in the middle of recording. The major issue is that we are losing their recording once this error happens. So, my question is how do I handle this error correctly, so I can still save their recording. Attached is the vxml page which is where the user is recording along with where they receive the error. Just so you know, when the user receives an error.badfetch during a recording, we have special logic which works correctly to make sure that the recording is saved and not lost. When I tried to use the SAME error.badfetch logic for the error.noresource, we LOSE the dictation which is really causing a major issue since we have users who then have to dictate all over. Since some of their dictations can be quite long(30 minutes), losing a dictation causes quite a major issue, so any help would be greatly appreciated. Here is the page which contains the <record> tag, as well as the error.badfetch handling which works correctly and saves the recording as well as the error.noresource logic which is NOT saving the recording. Thx! Mike C.

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"-->

<%
GetSessionValues

dim strFrom
strFrom = Request.querystring("from")

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

strFileCount = cint(strFileCount) + 1

SaveSessionValues
%>

<catch event="connection.disconnect">
	<log>process_record_start.xml - End (disconnect outside recording, 24k or less in length(3 seconds), Go to process_record_hangup.xml?next=zerolength )</log>
	<submit next="process_record_hangup.xml?next=zerolength" method="post"/>
</catch>

<error>
	<log>process_record_start.xml - End (error outside recording, 24k or less in length(3 seconds), Go to process_record_hangup.xml?next=zerolength )</log>
	<log><value expr="'process_record_start.xml - ERROR EVENT='+ _event + '   MESSAGE=' +_message"/></log> 
	<submit next="process_record_hangup.xml?next=zerolength" method="post"/>
</error>

<!--
This extraneous BREAK statement is here because the XML files that are sometimes called prior to this one
(process_combine_voxs.xml, main_menu.xml, and process_record_new.xml) are not acknowledging the fact that
the user hung up.  That is, their disconnect handler is not getting acknowledged.  This BREAK tag seems
to "force" the disconnect event here.
-->

<form id="begin">
	<block>
		<prompt>
			<break time="1ms"/>
		</prompt>
		<goto next="#record"/>
	</block>
</form>

<form id="record">
	<!-- <var name="username" expr="<% = strUserName %>"/> -->
	<!-- <var name="calldate" expr="'<% = dtStartDateTimeYear %>'"/> -->
	<var name="foldernumber" expr="<% = strFolderNumber %>"/>
	<var name="filenumber" expr="<% = strFileCount %>"/>

	<block>
		<log>process_record_start.xml - Start</log>
	</block>
	<grammar>1|2|3|4|5|6|7|8|9|0|"*"|"#"</grammar>
	<record name="initial_recording" beep="true" dtmfterm="true" maxtime="3540s" finalsilence="300s" type="audio/basic">
		<prompt>
		<% 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 name="lauren">Reecord at the beep.</voice>
		<% else %>
			<voice name="lauren">Continue at the beep.</voice>
		<% end if %>
		</prompt>
		<catch event="noinput">
			<prompt>
				<voice name="lauren">
					Are you still there.
				</voice>
			</prompt>
			<reprompt/>
		</catch>
		<catch event="noinput" count="3">
			<% if (strFrom = "pause" or strFrom = "recordfromhere" or strFrom = "continuerecord") then %>
				<prompt><voice name="lauren">You have not created a recording. All previous recordings were saved. Please Wait.</voice></prompt>
				<log>process_record_start.xml - End (User Choice *, no recording, from <% = strFrom %>, Go to process_combine_voxs.xml?next=hangup )</log>
				<submit next="process_combine_voxs.xml?next=hangup" method="post"/>
			<% else %>
				<prompt>
					<voice name="lauren">
						Goodbye.
					</voice>
				</prompt>
				<log>process_record_start.xml - End (No input, Go to process_record_hangup.xml?next=zerolength )</log>
				<submit next="process_record_hangup.xml?next=zerolength" method="post"/>
			<% end if %>
		</catch>
		<filled>
		    <assign name="nextkey" expr="initial_recording$.termchar"/>
			<if cond="nextkey=='1'">
				<if cond="initial_recording$.size < 4500000">
					<prompt><voice name="lauren">Please wait while your dictation is saved</voice></prompt>
	            <else/>
					<assign name="saveTime" expr="Math.round(initial_recording$.size/450000)"/>
					<prompt><voice name="lauren">Please wait <value expr="saveTime"/> seconds for your dictation to be saved.  If you hang up, your dictation will still be saved</voice></prompt>
				</if>
				<if cond="initial_recording == undefined || initial_recording$.size == ''">
					<% if (strFrom = "pause" or strFrom = "recordfromhere" or strFrom = "continuerecord") then %>
						<log>process_record_start.xml - End (User Choice 1, no recording, from <% = strFrom %>, Go to process_combine_voxs.xml?next=saveandrecordnormal )</log>
						<submit next="process_combine_voxs.xml?next=saveandrecordnormal" method="post"/>
					<% else %>
						<prompt><voice name="lauren">You have not created a recording. All previous recordings were saved. You will now be disconnected. Goodbye.</voice></prompt>
						<log>process_record_start.xml - End (User Choice 1, no recording, not pause or recordfromhere, Go to process_record_hangup.xml?next=zerolength )</log>
						<submit next="process_record_hangup.xml?next=zerolength" method="post"/>
					<% end if %>
				<else/>
					<log>process_record_start.xml - MID (File size in bytes: <value expr="initial_recording$.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="initial_recording" fetchtimeout="120s" enctype="multipart/form-data"/>
				</if>
			<elseif cond="nextkey=='2'"/>
				<if cond="initial_recording$.size < 4500000">
					<prompt><voice name="lauren">Please wait while your dictation is saved</voice></prompt>
	            <else/>
					<assign name="saveTime" expr="Math.round(initial_recording$.size/450000)"/>
					<prompt><voice name="lauren">Please wait <value expr="saveTime"/> seconds for your dictation to be saved.  If you hang up, your dictation will still be saved</voice></prompt>
				</if>
				<if cond="initial_recording == undefined || initial_recording$.size == ''">
					<% if (strFrom = "pause" or strFrom = "recordfromhere" or strFrom = "continuerecord") then %>
						<log>process_record_start.xml - End (User Choice 2, no recording, from <% = strFrom %>, Go to process_combine_voxs.xml?next=saveandrecordstat )</log>
						<submit next="process_combine_voxs.xml?next=saveandrecordstat" method="post"/>
					<% else %>
						<prompt><voice name="lauren">You have not created a recording. All previous recordings were saved. You will now be disconnected. Goodbye.</voice></prompt>
						<log>process_record_start.xml - End (User Choice 2, no recording, not pause or recordfromhere, Go to process_record_hangup.xml?next=zerolength )</log>
						<submit next="process_record_hangup.xml?next=zerolength" method="post"/>
					<% end if %>
				<else/>
					<log>process_record_start.xml - MID (File size in bytes: <value expr="initial_recording$.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="initial_recording" fetchtimeout="120s" enctype="multipart/form-data"/>
				</if>
			<elseif cond="nextkey=='3'"/>
				<if cond="initial_recording$.size < 4500000">
					<prompt><voice name="lauren">Please use the rewind functionality before using the reecord from here function. Please wait to enter the pause menu..</voice></prompt>
	            <else/>
					<assign name="saveTime" expr="Math.round(initial_recording$.size/450000)"/>
					<prompt><voice name="lauren">Please use the rewind functionality before using the reecord from here function. Please wait <value expr="saveTime"/> seconds to enter the pause menu.  If you hang up, your dictation will still be saved</voice></prompt>
				</if>
				<if cond="initial_recording == undefined || initial_recording$.size == ''">
					<% if (strFrom = "pause" or strFrom = "recordfromhere" or strFrom = "continuerecord") then %>
						<prompt><voice name="lauren">You can not use the reecord from here feature in this area. Please wait so that your previous recordings are saved.</voice></prompt>
						<log>process_record_start.xml - End (User Choice 3, no recording, from <% = strFrom %>, Go to process_combine_voxs.xml?next=hangup )</log>
						<submit next="process_combine_voxs.xml?next=hangup" method="post"/>
					<% else %>
						<prompt><voice name="lauren">You have not created a recording. All previous recordings were saved. You will now be disconnected. Goodbye.</voice></prompt>
						<log>process_record_start.xml - End (User Choice 3, no recording, not pause or recordfromhere, Go to process_record_hangup.xml?next=zerolength )</log>
						<submit next="process_record_hangup.xml?next=zerolength" method="post"/>
					<% end if %>
				<else/>
					<log>process_record_start.xml - MID (File size in bytes: <value expr="initial_recording$.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="initial_recording" fetchtimeout="120s" enctype="multipart/form-data"/>
				</if>
			<elseif cond="nextkey=='4'"/>
				<if cond="initial_recording$.size < 4500000">
					<prompt><voice name="lauren">Please wait while your dictation is accessed</voice></prompt>
		        <else/>
					<assign name="saveTime" expr="Math.round(initial_recording$.size/450000)"/>
					<prompt><voice name="lauren">Please wait <value expr="saveTime"/> seconds while your dictation is accessed.  If you hang up, your dictation will still be saved</voice></prompt>
				</if>
				<if cond="initial_recording == undefined || initial_recording$.size == ''">
					<% if (strFrom = "pause" or strFrom = "recordfromhere" or strFrom = "continuerecord") then %>
						<log>process_record_start.xml - End (User Choice 4, no recording, from <% = strFrom %>, Go to process_combine_voxs.xml?next=reviewrewind )</log>
						<submit next="process_combine_voxs.xml?next=reviewrewind" method="post"/>
					<% else %>
						<prompt><voice name="lauren">You have not created a recording. All previous recordings were saved. You will now be disconnected. Goodbye.</voice></prompt>
						<log>process_record_start.xml - End (User Choice 4, no recording, not pause or recordfromhere, Go to process_record_hangup.xml?next=zerolength )</log>
						<submit next="process_record_hangup.xml?next=zerolength" method="post"/>
					<% end if %>
				<else/>
					<log>process_record_start.xml - MID (File size in bytes: <value expr="initial_recording$.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="initial_recording" fetchtimeout="120s" enctype="multipart/form-data"/>
				</if>
			<elseif cond="nextkey=='5'"/>
				<if cond="initial_recording$.size < 4500000">
					<prompt><voice name="lauren">Please wait to enter the pause menu</voice></prompt>
	            <else/>
					<assign name="saveTime" expr="Math.round(initial_recording$.size/450000)"/>
					<prompt><voice name="lauren">Please wait <value expr="saveTime"/> seconds to enter the pause menu.  If you hang up, your dictation will still be saved</voice></prompt>
				</if>
				<if cond="initial_recording == undefined || initial_recording$.size == ''">
					<% if (strFrom = "pause" or strFrom = "recordfromhere" or strFrom = "continuerecord") then %>
						<prompt><voice name="lauren">You can not use the pause feature in this area. Please wait so that your previous recordings are saved.</voice></prompt>
						<log>process_record_start.xml - End (User Choice 5, no recording, from <% = strFrom %>, Go to process_combine_voxs.xml?next=hangup )</log>
						<submit next="process_combine_voxs.xml?next=hangup" method="post"/>
					<% else %>
						<prompt><voice name="lauren">You have not created a recording. All previous recordings were saved. You will now be disconnected. Goodbye.</voice></prompt>
						<log>process_record_start.xml - End (User Choice 5, no recording, not pause or recordfromhere, Go to process_record_hangup.xml?next=zerolength )</log>
						<submit next="process_record_hangup.xml?next=zerolength" method="post"/>
					<% end if %>
				<else/>
					<log>process_record_start.xml - MID (File size in bytes: <value expr="initial_recording$.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="initial_recording" fetchtimeout="120s" enctype="multipart/form-data"/>
				</if>
			<elseif cond="nextkey=='6'"/>
				<if cond="initial_recording$.size < 4500000">
					<prompt><voice name="lauren">Please use the rewind functionality before using the fast forward function. Please wait to enter the pause menu.</voice></prompt>
	            <else/>
					<assign name="saveTime" expr="Math.round(initial_recording$.size/450000)"/>
					<prompt><voice name="lauren">Please use the rewind functionality before using the fast forward function. Please wait <value expr="saveTime"/> seconds to enter the pause menu.  If you hang up, your dictation will still be saved</voice></prompt>
				</if>
				<if cond="initial_recording == undefined || initial_recording$.size == ''">
					<% if (strFrom = "pause" or strFrom = "recordfromhere" or strFrom = "continuerecord") then %>
						<prompt><voice name="lauren">You can not use the fast forward feature in this area. Please wait so that your previous recordings are saved.</voice></prompt>
						<log>process_record_start.xml - End (User Choice 6, no recording, from <% = strFrom %>, Go to process_combine_voxs.xml?next=hangup )</log>
						<submit next="process_combine_voxs.xml?next=hangup" method="post"/>
					<% else %>
						<prompt><voice name="lauren">You have not created a recording. All previous recordings were saved. You will now be disconnected. Goodbye.</voice></prompt>
						<log>process_record_start.xml - End (User Choice 6, no recording, not pause or recordfromhere, Go to process_record_hangup.xml?next=zerolength )</log>
						<submit next="process_record_hangup.xml?next=zerolength" method="post"/>
					<% end if %>
				<else/>
					<log>process_record_start.xml - MID (File size in bytes: <value expr="initial_recording$.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="initial_recording" fetchtimeout="120s" enctype="multipart/form-data"/>
				</if>
			<elseif cond="nextkey=='7'"/>
				<if cond="initial_recording$.size < 4500000">
					<prompt><voice name="lauren">Please wait while your dictation is accessed</voice></prompt>
	            <else/>
					<assign name="saveTime" expr="Math.round(initial_recording$.size/450000)"/>
					<prompt><voice name="lauren">Please wait <value expr="saveTime"/> seconds while your dictation is accessed.  If you hang up, your dictation will still be saved</voice></prompt>
				</if>
				<if cond="initial_recording == undefined || initial_recording$.size == ''">
					<% if (strFrom = "pause" or strFrom = "recordfromhere" or strFrom = "continuerecord") then %>
						<log>process_record_start.xml - End (User Choice 7, no recording, from <% = strFrom %>, Go to process_combine_voxs.xml?next=reviewbeginning )</log>
						<submit next="process_combine_voxs.xml?next=reviewbeginning" method="post"/>
					<% else %>
						<prompt><voice name="lauren">You have not created a recording. All previous recordings were saved. You will now be disconnected. Goodbye.</voice></prompt>
						<log>process_record_start.xml - End (User Choice 7, no recording, not pause or recordfromhere, Go to process_record_hangup.xml?next=zerolength )</log>
						<submit next="process_record_hangup.xml?next=zerolength" method="post"/>
					<% end if %>
				<else/>
					<log>process_record_start.xml - MID (File size in bytes: <value expr="initial_recording$.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="initial_recording" fetchtimeout="120s" enctype="multipart/form-data"/>
				</if>
			<elseif cond="nextkey=='8'"/>
				<if cond="initial_recording$.size < 4500000">
					<prompt><voice name="lauren">Going to the cancellation menu. Please wait.</voice></prompt>
	            <else/>
					<assign name="saveTime" expr="Math.round(initial_recording$.size/450000)"/>
					<prompt><voice name="lauren">Going to the cancellation menu. Please wait <value expr="saveTime"/> seconds.  If you hang up, your dictation will still be saved</voice></prompt>
				</if>
				<if cond="initial_recording == undefined || initial_recording$.size == ''">
					<% if (strFrom = "pause" or strFrom = "recordfromhere" or strFrom = "continuerecord") then %>
						<% if (cstr(strCancelFlag) = "1") then %>
							<log>process_record_start.xml - End (User Choice 8, Go to process_record_cancel.xml )</log>
							<submit next="process_record_cancel.xml"/>
						<% else %>
							<prompt><voice name="lauren">The cancel feature is not activated for your account. All previous recordings were saved. You will now be disconnected. Goodbye.</voice></prompt>
							<log>process_record_start.xml - End (User Choice 8, no recording, not pause or recordfromhere, Go to process_combine_voxs.xml?next=hangup )</log>
							<submit next="process_combine_voxs.xml?next=hangup" method="post"/>
						<% end if %>
					<% else %>
						<prompt><voice name="lauren">You have not created a recording. All previous recordings were saved. You will now be disconnected. Goodbye.</voice></prompt>
						<log>process_record_start.xml - End (User Choice 8, no recording, not pause or recordfromhere, Go to process_record_hangup.xml?next=zerolength )</log>
						<submit next="process_record_hangup.xml?next=zerolength" method="post"/>
					<% end if %>
				<else/>
					<% if (cstr(strCancelFlag) = "1") then %>
						<log>process_record_start.xml - MID (File size in bytes: <value expr="initial_recording$.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="initial_recording" fetchtimeout="120s" enctype="multipart/form-data"/>
					<% else %>
						<log>process_record_start.xml - MID (File size in bytes: <value expr="initial_recording$.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="initial_recording" fetchtimeout="120s" enctype="multipart/form-data"/>
					<% end if %>
				</if>
			<elseif cond="nextkey=='9'"/>
				<if cond="initial_recording$.size < 4500000">
					<prompt><voice name="lauren">Please wait while your dictation is accessed</voice></prompt>
	            <else/>
					<assign name="saveTime" expr="Math.round(initial_recording$.size/450000)"/>
					<prompt><voice name="lauren">Please wait <value expr="saveTime"/> seconds while your dictation is accessed.  If you hang up, your dictation will still be saved</voice></prompt>
				</if>
				<if cond="initial_recording == undefined || initial_recording$.size == ''">
					<% if (strFrom = "pause" or strFrom = "recordfromhere" or strFrom = "continuerecord") then %>
						<log>process_record_start.xml - End (User Choice 9, no recording, from <% = strFrom %>, Go to process_combine_voxs.xml?next=reviewend )</log>
						<submit next="process_combine_voxs.xml?next=reviewend" method="post"/>
					<% else %>
						<prompt><voice name="lauren">You have not created a recording. All previous recordings were saved. You will now be disconnected. Goodbye.</voice></prompt>
						<log>process_record_start.xml - End (User Choice 9, no recording, not pause or recordfromhere, Go to process_record_hangup.xml?next=zerolength )</log>
						<submit next="process_record_hangup.xml?next=zerolength" method="post"/>
					<% end if %>
				<else/>
					<log>process_record_start.xml - MID (File size in bytes: <value expr="initial_recording$.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="initial_recording" fetchtimeout="120s" enctype="multipart/form-data"/>
				</if>
			<elseif cond="nextkey=='*'"/>
				<if cond="initial_recording$.size < 4500000">
					<prompt><voice name="lauren">Please wait while your dictation is saved</voice></prompt>
	            <else/>
					<assign name="saveTime" expr="Math.round(initial_recording$.size/450000)"/>
					<prompt><voice name="lauren">Please wait <value expr="saveTime"/> seconds while your dictation is saved.  If you hang up, your dictation will still be saved</voice></prompt>
				</if>
				<if cond="initial_recording == undefined || initial_recording$.size == ''">
					<% if (strFrom = "pause" or strFrom = "recordfromhere" or strFrom = "continuerecord") then %>
						<log>process_record_start.xml - End (User Choice *, no recording, from <% = strFrom %>, Go to process_combine_voxs.xml?next=hangup )</log>
						<submit next="process_combine_voxs.xml?next=hangup" method="post"/>
					<% else %>
						<prompt><voice name="lauren">You have not created a recording. All previous recordings were saved. You will now be disconnected. Goodbye.</voice></prompt>
						<log>process_record_start.xml - End (User Choice *, no recording, not pause or recordfromhere, Go to process_record_hangup.xml?next=zerolength )</log>
						<submit next="process_record_hangup.xml?next=zerolength" method="post"/>
					<% end if %>
				<else/>
					<log>process_record_start.xml - MID (File size in bytes: <value expr="initial_recording$.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="initial_recording" fetchtimeout="120s" enctype="multipart/form-data"/>
				</if>
			<elseif cond="nextkey=='0'"/>
				<if cond="initial_recording$.size < 4500000">
					<prompt><voice name="lauren">Going to help menu. Please wait while your dictation is saved</voice></prompt>
	            <else/>
					<assign name="saveTime" expr="Math.round(initial_recording$.size/450000)"/>
					<prompt><voice name="lauren">Going to help menu. Please wait <value expr="saveTime"/> seconds while your dictation is saved.  If you hang up, your dictation will still be saved</voice></prompt>
				</if>
				<if cond="initial_recording == undefined || initial_recording$.size == ''">
					<% if (strFrom = "pause" or strFrom = "recordfromhere" or strFrom = "continuerecord") then %>
						<prompt><voice name="lauren">You can not use the help feature in this area. Please wait so that your previous recordings are saved.</voice></prompt>
						<log>process_record_start.xml - End (User Choice 0, no recording, from <% = strFrom %>, Go to process_combine_voxs.xml?next=hangup )</log>
						<submit next="process_combine_voxs.xml?next=hangup" method="post"/>
					<% else %>
						<prompt><voice name="lauren">You have not created a recording. All previous recordings were saved. You will now be disconnected. Goodbye.</voice></prompt>
						<log>process_record_start.xml - End (User Choice 0, no recording, not pause or recordfromhere, Go to process_record_hangup.xml?next=zerolength )</log>
						<submit next="process_record_hangup.xml?next=zerolength" method="post"/>
					<% end if %>
				<else/>
					<log>process_record_start.xml - MID (File size in bytes: <value expr="initial_recording$.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="initial_recording" fetchtimeout="120s" enctype="multipart/form-data"/>
				</if>
			<elseif cond="nextkey=='#'"/>
				<if cond="initial_recording$.size < 4500000">
					<prompt><voice name="lauren">Please wait while your dictation is saved</voice></prompt>
	            <else/>
					<assign name="saveTime" expr="Math.round(initial_recording$.size/450000)"/>
					<prompt><voice name="lauren">Please wait <value expr="saveTime"/> seconds while your dictation is saved.  If you hang up, your dictation will still be saved</voice></prompt>
				</if>
				<if cond="initial_recording == undefined || initial_recording$.size == ''">
					<% if (strFrom = "pause" or strFrom = "recordfromhere" or strFrom = "continuerecord") then %>
						<log>process_record_start.xml - End (User Choice #, no recording, from <% = strFrom %>, Go to process_combine_voxs.xml?next=saveandreprompt )</log>
						<submit next="process_combine_voxs.xml?next=saveandreprompt" method="post"/>
					<% else %>
						<prompt><voice name="lauren">You have not created a recording. All previous recordings were saved. You will now be disconnected. Goodbye.</voice></prompt>
						<log>process_record_start.xml - End (User Choice #, no recording, not pause or recordfromhere, Go to process_record_hangup.xml?next=zerolength )</log>
						<submit next="process_record_hangup.xml?next=zerolength" method="post"/>
					<% end if %>
				<else/>
					<log>process_record_start.xml - MID (File size in bytes: <value expr="initial_recording$.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="initial_recording" fetchtimeout="120s" enctype="multipart/form-data"/>
				</if>
			</if>
			<if cond="initial_recording$.maxtime==true">
				<if cond="initial_recording$.size < 4500000">
					<prompt><voice name="lauren">You have reached the maximum time limit of 60 minutes. Please wait while your dictation is saved.</voice></prompt>
	            <else/>
					<assign name="saveTime" expr="Math.round(initial_recording$.size/450000)"/>
					<prompt><voice name="lauren">You have reached the maximum time limit of 60 minutes. Please wait <value expr="saveTime"/> seconds while your dictation is saved.  If you hang up, your dictation will still be saved</voice></prompt>
				</if>
				<log>process_record_start.xml - MID (File size in bytes: <value expr="initial_recording$.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="initial_recording" fetchtimeout="120s" enctype="multipart/form-data"/>
			</if>
		</filled>

		<catch event="connection.disconnect">
			<if cond="initial_recording == undefined">
				<% if ( strFrom = "pause" ) then %>
					<log>process_record_start.xml - END (disconnect during recording but after a PAUSE, no length, Go to process_combine_voxs.xml?next=disconnect )</log>
					<submit next="process_combine_voxs.xml?next=disconnect" method="post"/>
				<% else %>
					<log>process_record_start.xml - End (disconnect during recording, no length, Go to process_record_hangup.xml?next=zerolength )</log>
					<submit next="process_record_hangup.xml?next=zerolength" method="post"/>
				<% end if %>
			<elseif cond="initial_recording$.size < 24000 || initial_recording$.size == ''"/>
				<% if ( strFrom = "pause" ) then %>
					<log>process_record_start.xml - MID (File size in bytes: <value expr="initial_recording$.size"/> , Go to process_combine_voxs.xml?next=disconnect )</log>
					<log>process_record_start.xml - END (disconnect during recording but after a PAUSE, 24k or less in length(3 seconds), Go to process_combine_voxs.xml?next=disconnect )</log>
					<submit next="process_combine_voxs.xml?next=disconnect" method="post"/>
				<% else %>
					<log>process_record_start.xml - MID (File size in bytes: <value expr="initial_recording$.size"/> , Go to process_record_hangup.xml?next=zerolength )</log>
					<log>process_record_start.xml - END (disconnect during recording, 24k or less in length(3 seconds), Go to process_record_hangup.xml?next=zerolength )</log>
					<submit next="process_record_hangup.xml?next=zerolength" method="post"/>
				<% end if %>
            <else/>
				<log>process_record_start.xml - MID (File size in bytes: <value expr="initial_recording$.size"/> , Go to process_record_savevox.xml?next=disconnect )</log>
				<log>process_record_start.xml - End (disconnect during recording, Go to process_record_savevox.xml?next=disconnect )</log>
				<submit next="process_record_savevox.xml?next=disconnect" method="post" namelist="initial_recording" fetchtimeout="120s" enctype="multipart/form-data"/>
			</if>
		</catch>

		<catch event="error.badfetch" count="1">
			<if cond="initial_recording$.size == 0 || initial_recording$.size == '' || initial_recording == undefined">
				<log>process_record_start.xml - End (error.badfetch during recording, 0 length, Go to process_record_hangup.xml?next=zerolength )</log>
				<submit next="process_record_hangup.xml?next=zerolength" method="post"/>
            <else/>
				<log>process_record_start.xml - MID (File size in bytes: <value expr="initial_recording$.size"/> , Go to process_record_savevox.xml?next=disconnect )</log>
				<log>process_record_start.xml - End (error.badfetch during recording, Go to process_record_savevox.xml?next=disconnect)</log>
				<submit next="process_record_savevox.xml?next=disconnect" method="post" namelist="initial_recording" fetchtimeout="120s" enctype="multipart/form-data"/>
			</if>
		</catch>
		
		<catch event="error.badfetch" count="2">
			<log>process_record_start.xml - End (error.badfetch during recording, Save recording on Plum server)</log>
			<var name="filename" expr="foldernumber + '_phone_file_' + filenumber + '.vox'"/>
			<var name="recording" expr="initial_recording"/>
	        <submit next="http://metroscript.plumgroup.com/saverecording.php" namelist="filename recording" method="post" enctype="multipart/form-data"/>
		</catch>

		<catch event="error.noresource">
			<log>process_record_start.xml - End (error.noresource during recording, Save recording on Plum server)</log>
			<var name="filename" expr="foldernumber + '_phone_file_' + filenumber + '.vox'"/>
			<var name="recording" expr="initial_recording"/>
	        <submit next="http://metroscript.plumgroup.com/saverecording.php" namelist="filename recording" method="post" enctype="multipart/form-data"/>
		</catch>
		 
		<catch event="nomatch noinput">
			<submit next="process_record_hangup.xml" method="post"/>
		</catch>

		<error>
			<log><value expr="'process_record_start.xml - ERROR EVENT='+ _event + '   MESSAGE=' +_message"/></log> 
			<if cond="initial_recording == undefined">
				<% if ( strFrom = "pause" ) then %>
					<log>process_record_start.xml - END (error during recording but after a PAUSE, no length, Go to process_combine_voxs.xml?next=disconnect )</log>
					<submit next="process_combine_voxs.xml?next=disconnect" method="post"/>
				<% else %>
					<log>process_record_start.xml - End (error during recording, no length, Go to process_record_hangup.xml?next=zerolength )</log>
					<submit next="process_record_hangup.xml?next=zerolength" method="post"/>
				<% end if %>
			<elseif cond="initial_recording$.size < 24000 || initial_recording$.size == ''"/>
				<% if ( strFrom = "pause" ) then %>
					<log>process_record_start.xml - MID (File size in bytes: <value expr="initial_recording$.size"/> , Go to process_combine_voxs.xml?next=disconnect )</log>
					<log>process_record_start.xml - END (error during recording but after a PAUSE, 24k or less in length(3 seconds), Go to process_combine_voxs.xml?next=disconnect )</log>
					<submit next="process_combine_voxs.xml?next=disconnect" method="post"/>
				<% else %>
					<log>process_record_start.xml - MID (File size in bytes: <value expr="initial_recording$.size"/> , Go to process_record_hangup.xml?next=zerolength )</log>
					<log>process_record_start.xml - END (error during recording, 24k or less in length(3 seconds), Go to process_record_hangup.xml?next=zerolength )</log>
					<submit next="process_record_hangup.xml?next=zerolength" method="post"/>
				<% end if %>
            <else/>
				<log>process_record_start.xml - MID (File size in bytes: <value expr="initial_recording$.size"/> , Go to process_record_savevox.xml?next=disconnect )</log>
				<log>process_record_start.xml - End (error during recording, Go to process_record_savevox.xml?next=disconnect )</log>
				<submit next="process_record_savevox.xml?next=disconnect" method="post" namelist="initial_recording" fetchtimeout="120s" enctype="multipart/form-data"/>
			</if>
		</error>

	</record>
</form>

</vxml>


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

IVR developers working to recreate lost recordings

Post by support »

Hi,

We are currently working on attempting to recreate this IVR issue. We will let you know what we find out.

Regards,
Plum Support
Last edited by support on Thu Dec 24, 2009 4:37 pm, edited 2 times in total.

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

Post by metroscript »

Have you been able to recreate the issue?

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

Platform engineers to work on IVR problem

Post by support »

Hi,

This IVR issue has been escalated to our IVR platform engineers and we will be addressing it through the e-mail tickets that you have placed with us (2211 and 2441).

Thanks for your patience regarding this matter.

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

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

Post by metroscript »

Thanks.

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

Email Notification

Post by metroscript »

Good afternoon,

Say I receive an error on a page (i.e. error.noresource or error.badfetch) and I want to be emailed when we receive this error, so I can quickly go out and retrieve the current entire log file(remember, we get hundreds of calls a day so we need to grab the log file ASAP). How would I go about adding the email functionality WITH voicexml logic/tag? Since it would be an error such as error.badfetch, we wouldn't be able to come back to our server and use email logic on our side. Make sense?

Thanks,

Mike C.

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

No IVR application to do e-mail functionality

Post by support »

Hi,

Sorry, but there isn't any VXML logic or IVR tag that would allow for you to do e-mail functionality.

You would need an IVR server in a different location from the one where the error.badfetch is occurring and use that one for sending out your e-mails.

Regards,
Plum Support

Post Reply