There are several ways that BVR determines whether or not to cache a resource and how long it is considered usable in the cache.
In BVR cache directives are either associated with the resource itself or apply only to an individual request to that resource.
The expiry times displayed by the bam --cache command and stored in the cache's metadata are the expiry times associated with the resource itself. Cache directives supplied on a per-request basis (for example: using the maxage attribute in a goto or audiomaxage in the audio tag) are not stored or displayed for the cached item but are just used to determine whether the cached version of the resource should be used for the current request.
If no cache control directives are specified for a resource the resource_max_age configuration setting for VXML (VXML Cache Configuration Options) or Audio (AUDIO Cache Configuration Options) will be used as the expiry time and will be stored against the cached entry.
Note that since RFC2616 states that HTTP max-age directives take precedence over the HTTP Expires header, so too does the resource_max_age configuration setting.
<?xml version="1.0" encoding="iso-8859-1"?> <vxml xmlns="http://www.w3.org/2001/vxml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2001/vxml http://www.w3.org/TR/voicexml20/vxml.xsd" version="2.0"> <meta http-equiv="cache-control" content="max-age=60"/> <form> <block> <audio src="1.wav" maxage="120"/> <!--HTTP server returns Cache-Control: max-age=10 for this resource--> <audio src="2.wav"/> <!--HTTP server returns Cache-Control: max-age=10 for this resource--> <audio src="3.wav"/> <!--HTTP server returns no Cache-Control headers for this resource--> </block> </form> </vxml>
On Cache Management Cache Management Using BAM
On VoiceXML Cache configuration VXML Cache Configuration Options
On Audio Cache configuration AUDIO Cache Configuration Options