Inventory reporting

From A-SMIL.org
Revision as of 19:19, 14 April 2014 by SMIL T.A. (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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