Difference between revisions of "Inventory reporting"

From A-SMIL.org
Jump to: navigation, search
(Designating a URL to the Inventory Handler)
 
Line 15: Line 15:
 
           <method>put</method>
 
           <method>put</method>
 
           <refreshInterval>3600</refreshInterval>
 
           <refreshInterval>3600</refreshInterval>
 +
          <retryInterval>3600</retryInterval>
 
         </subscription>
 
         </subscription>
 
       </subscriptionList>
 
       </subscriptionList>

Latest revision as of 11:19, 14 April 2014

A-SMIL player reports status of file objects in the player's cache. Both media files that have completed downloading and is in the process of being downloaded are reported. The report is sent back to designated server every 5 minutes.

Designating a URL to the Inventory Handler

In your SMIL script, you need to add a section to your head section to define where the media player should PUT the inventory file. A typical definition looks like this.

<head>
  <metadata>
    <x-server xmlns="http://schemas.adfotain.org/adapi-1.0">
      <subscriptionList>
        <subscription>
          <type>InventoryReport</type>
          <action>http://server/filename</action>
          <method>put</method>
          <refreshInterval>3600</refreshInterval>
          <retryInterval>3600</retryInterval>
        </subscription>
      </subscriptionList>
    </x-server>
  </metadata>
</head>

Here "http://server/filename" is the path of the file that will contain the report. Typically it is provide as the name of a server-side CGI script (PHP, etc.) which will receive the content of the file via HTTP PUT method. The refresh interval can be adjusted by adding an extra <refreshInterval> tag, this can control the report update frequency.

Log File Format

A log file uploaded to the server looks like this.

<report xmlns="http://schemas.adfotain.org/adapi-1.0">
  <date>{createDate}</date>
  <version>1.0</version>
  <player id="{playerId}">
    <contentDirectory>
      <objectInfo>
        <object id="{uuid}" persistent="true|false">
          <resourceURI><!--resourceURI--></resourceURI>
          <state><!--TRANSFER|STREMAING|CHECKSUM|CHECKSUM_ERROR|COMPLETE--></state>
          <contentType><!--mimeType--></contentType>
          <contentLength><!--empty if unknown size or data is in TRANSFER state--></contentLength>
          <lastModified><!--empty if n/a, otherwise xsd:dateTime based on local TZ--></lastModified>
          <expires><!--empty, 0, or xsd:dateTime based on locale TZ--></Expires>
          <transferLength><!--size downloaded in cache so far--></transferLength>
        </object>
        <!-- More <object>'s -->
      </objectInfo>
    </contentDirectory>
  </player>
</report>

Related