I installed new voice audio files for my VoiceXML application but the old files are still played. How can the new files be used?




Question


An application was updated to use new voice files. These were copied into the filesystem as usual and the Java and VoiceXML (VRBE) environment was restarted, but the old copies of the audio files were still played to the caller.


Cause


The original voice data has been cached and unless time and date expiration handling is in the code to determine when to fetch from the filesystem again, the updated voice is not fetched, so the old data is still used.

Answer


1. Shutdown the VRBE environment, delete the voice cache directories below $CUR_DIR/voice/ext/v2c/dotted.ip.address and then restart VRBE

or


2. Ensure that <audio> tags in the vxml application code use the maxage and/or maxstale attributes to control when to fetch data again. An example is provided below:



<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE vxml PUBLIC "-//W3C//DTD VOICEXML 2.0//EN" "vxml20-1115.dtd">

<vxml version="2.0" xml:lang="en-US" xmlns="http://www.w3.org/2001/vxml">
<meta name="GENERATOR" content="Voice Toolkit for WebSphere Studio" />
<meta http-equiv="Expires" content="0"/>
<meta http-equiv="Cache-control" content="max-age=0"/>

<form>
<block>
<audio maxage="20" src="hello.wav">Hello this is Dave</audio>
</block>
</form>
</vxml>