HNTF/Home Network TF Discussions/UPnPHomeNetworkUA

From Web and TV IG
Jump to: navigation, search

Use Case: Home Network Enabled User-Agent

Submitter(s): Samsung Electronics (Russell Berkoff)

Description:

  • Enable a User-Agent to act as a Home Network Media Player
  • Enable a User-Agent to act as a Home Network Media Server
  • Enable a User-Agent to control a Home Network Recording Device
  • Enable a User-Agent to control other media oriented Home Network Devices (3-box model)
  • Enable a User-Agent to control future Home Network Device classes
  • See: Home Network Browser System Diagram

Need/justification:

  • Existing Home Network interfaces do not (by scope/tradition) standardize user interface control. However, the combination of HTML markup and Javascript allow both access to Home Network devices functions and access to very capable user interface resources.

Scenarios

  • The use-case scenarios are divided into the following sets:
    • The User-Agent acts as a Home Network Media Player device. For example:
      • List available Home Network Media Server devices. Steps
      • List available content on a Home Network Media Server. Steps
      • List available content on a Home Network Media Server matching specified metadata criteria. Steps
      • Play content from a Home Network Media Server. Steps
      • View EPG data from a Home Network Media Server. Steps
      • Tune and play live programs from a Home Network Media Server capable of streaming live content.
      • Select and play recorded content from a Home Network Recording device.
    • The User-Agent acts as a Home Network Media Server device. For example:
      • List available content that the User-Agent chooses to make available on the Home Network
      • Provide descriptive metadata (title, description) for this content.
      • Provide multiple binary formats for this content.
      • Provide functionality to allow other User-Agents to search for content matching specified metadata criteria.
      • Notify User-Agents of changes to available content.
    • The User-Agent controls a Home Network Recording device. For example:
      • Request the recording device capture content based on simple time/date criteria.
      • Request the recording device capture content based recurring time/date criteria.
      • Request the recording device capture content based on an EPG description.
      • Request the recording device capture content based on a metadata description.
      • Provide controls to suspend/restart/cancel planned recording activities.
      • Provide status information for current/future recording activities.
      • Provide access to recorded program descriptions and content.
    • The User-Agent commands other media oriented home network devices. For example:
      • Direct a Home Network Media Rendering device to play content stored from a Home Network Media Server.
      • Direct a Home Network Media Rendering device to play live content from a Home Network Media Server capable of streaming content.
      • Control Home Network Media Renderer attributes: Brightness, Contrast, Volume, etc.
      • Control Home Network Media Renderer multiplex stream selection: Closed Captioning, Language, Subtitling, Camera Angles.
    • The User-Agent commands future home network device classes. For example:
      • Control of home-automation devices such as window shades or (HVAC) room temperature.
      • Control and monitoring of home-energy standards compliant devices (energy usage, time-of-day scheduling).
      • Control of E-Health and Fitness devices.
      • Control of Device Management devices (provisioning, firmware upgrades, etc).
  • Why were you not able to use only existing standards to accomplish this?
    • HTML User-Agents do not provided the abstractions necessary for Javascript to issue discover and issue commands to home network devices.
    • Basic access methods to home network devices need to be standardized so that developers can implement pages to control Home Network devices using Javascript/HTML.
  • What might you suggest could be standardized?
    • Provide generic access methods to enable a User-Agent to discover and command home network devices.
    • Provide extensions to HTML5 <video>, <audio> elements to allow HTML5 to comply with Home Network Media Transport Requirements (mainly DLNA specific headers). Also, provide backward-compatible extensions to previous HTML versions to support similar functionality (presumably as browser-plugins).
    • Provide access and privacy controls for untrusted pages accessing home network devices.
    • Allow pages to control future Home Network device classes where the comand sets are not currently known.
    • Allow pages to discover functional differences (optional functionality) that may be implemented in some but not all Home Network ecosystem devices.

Steps:

  • The User-Agent acts as a Home Network Media Player device.
    • List available Home Network Media Server devices.
      1. Web page issues a method to discover home network devices
      2. User-Agent gets an event indicating the list is ready.
      3. User-Agent retrieves a list of handles representing the discovered devices
      4. Web page issues a method to get information about each discovered device
      5. Web page retains handles for devices of the appropriate type.
      6. Web page displays available devices to end-user.
      7. End-User selects one of the displayed devices.
      8. Web page issues method to access the device.
      9. User-Agent responds that a password is required.
      10. Web page obtains the password from the end-user (or secure password store) and issues method to provide the password to the User-Agent
      11. Web page can now access the device.
    • List available content on a Home Network Media Server.
      1. Web page formats an action request to browse the Home Network device metadata store.
      2. Web page issues method to send action request to selected Home Network device
      3. User-Agent sends request to Home Network Media Server device.
      4. User-Agent generates event when Home Network device responds (or times-out)
      5. Web page gets response (XML document) from Home Network Media Server device.
      6. Web page displays containers and items as indicated in XML document
        This depends on the data representation of Home Network Media Server content metadata.
      7. Web page displays the information in the Home Media Server response.
    • List available content on a Home Network Media Server matching specified metadata criteria.
      1. Web page formats an action request to determine searchable metadata on the selected Home Network device metadata store.
      2. Web page issues method to send action request to selected Home Network device.
      3. Web page formats an action request to search the Home Network device metadata store.
      4. Web page issues method to send action request to selected Home Network device
      5. User-Agent sends request to Home Network Media Server device.
      6. User-Agent generates event when Home Network device responds (or times-out)
      7. Web page gets response (XML document) from Home Network Media Server device.
      8. Web page displays containers and items as indicated in XML document
    • Play content from a Home Network Media Server.
      1. End-user select displayed Home Network Media Server item for playback.
      2. Web page formats an action request to browse metadata for selected item.
      3. User-Agent sends request to Home Network Media Server device.
      4. User-Agent generates event when Home Network device responds (or times-out)
      5. Web page gets response (XML document) from Home Network Media Server device.
      6. Web page selects media binary format that is compatible with User-Agent.
      7. Web page displays Media Player using HTML5 <video> element.
      8. Web page transfers item URL to <video> element @src (or creates

        Invalid language.

        You need to specify a language like this: <source lang="html4strict">...</source>

        Supported languages for syntax highlighting:

        4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, arm, asm, asp, asymptote, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcl, dcpu16, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, freeswitch, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, haxe, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, ldif, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, nagios, netrexx, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, octave, oobas, oorexx, oracle11, oracle8, oxygene, oz, parasail, parigp, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, pys60, python, q, qbasic, rails, rebol, reg, rexx, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, spark, sparql, sql, stonescript, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, upc, urbi, uscript, vala, vb, vbnet, vedit, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic


         element as child-element)
        
**#Web page issues Play() method <video> element **<span id="DMS-EPGView"></span>View EPG data from a Home Network Media Server. **#Web page formats an action request to determine <i>root container(s)</i> for EPG data on the selected Home Network device metadata store. **#Web page issues method to send action request to selected Home Network device. **#Web page formats an action request to <i>search</i> the Home Network device metadata store. **#Web page issues method to send action request to selected Home Network device **#User-Agent sends request to Home Network Media Server device. **#User-Agent generates event when Home Network device responds (or times-out) **#Web page gets response (XML document) from Home Network Media Server device. **#Web page displays EPG containers and EPG items as indicated in XML document **<span id="DMS-Tune"></span>Tune and play live programs from a Home Network Media Server capable of streaming live content. **# **# **<span id="DMS-PlayRecord"></span>Select and play recorded content from a Home Network Recording device. **# **# * The User-Agent acts as a Home Network Media Server device. For example: ** List available content that the User-Agent chooses to make available on the Home Network **# **# ** Provide descriptive metadata (title, description) for this content. **# **# ** Provide multiple binary formats for this content. **# **# ** Provide functionality to allow other User-Agents to search for content matching specified metadata criteria. **# **# ** Notify User-Agents of changes to available content. **# **# * The User-Agent controls a Home Network Recording device. For example: **Request the recording device capture content based on simple time/date criteria. **# **# **Request the recording device capture content based recurring time/date criteria. **# **# **Request the recording device capture content based on an EPG description. **# **# **Request the recording device capture content based on a metadata description. **# **# **Provide controls to suspend/restart/cancel planned recording activities. **# **# **Provide status information for current/future recording activities. **# **# **Provide access to recorded program descriptions and content. **# **# * The User-Agent commands other media oriented home network devices. For example: **Direct a Home Network Media Rendering device to play content stored from a Home Network Media Server. **# **# **Direct a Home Network Media Rendering device to play live content from a Home Network Media Server capable of streaming content. **# **# **Control Home Network Media Renderer attributes: Brightness, Contrast, Volume, etc. **# **# **Control Home Network Media Renderer multiplex stream selection: Closed Captioning, Language, Subtitling, Camera Angles. **# **# * The User-Agent commands future home network device classes. For example: **Control of home-automation devices such as window shades or (HVAC) room temperature. **# **# **Control and monitoring of home-energy standards compliant devices (energy usage, time-of-day scheduling). **# **# **Control of E-Health and Fitness devices. **# **# **Control of Device Management devices (provisioning, firmware upgrades, etc). **# **# '''Dependencies:''' * This use-case provides the basic framework for generic access to home network devices. It is "agnostic" towards the underlying functionality of the devices being controlled.