skip navigation
URC Consortium Logo

You are here: MyURC.org > Tools & Prototypes > UCHe > Release Notes

UCHe - Release Notes

Release 2.0 - May 2010


Page Contents:


Change Log

Changes after Release 1.1:

New Features

This is release 2.0 of Trace's UCH reference implementation for C++.

It includes binaries of the following modules:

Resource Server Binding

This version 2.0 is pre-configured to retrieve resources from dot UI's global resource server (with guest access). This will provide you with all public resources on the dot UI resource server. If you would like to create your own resources and upload them into a protected environment on the dot UI resource server, send a message to rsadmin@dotui.com.

UCHe can also be configured to work in an offline-environment without the use of a resource server, or in a mixed environment with both local resources and resources from a resource server (see How To Add Local Resource).

UPnP AV Targets

The UPnP AV Target Adapter has been tested successfully with the following devices:

Other UPnP AV compatible media servers and renderers may or may not work with UCHe. Note that the playing device needs to be a media renderer that can be remotely controlled (in a 3-box model scenario).

GC-100 Master Controller

The GC100 Target Adapter has been tested successfully with the following devices:

Other Infrared, relay controlled devices can be easily controlled using GC100 Target adapters provided with this realease.

Standard Versions

This release is based on the following standards and versions:

NOTE: For an overview of related standards, please refer to the URC Technical Primer.

Known Limitations

The following subsections describe what features of the standards ARE and ARE NOT implemented by UCHe.

ISO/IEC 24752-1:2008 URC Framework

6.1 Discovery management  UCH is discovered by Bonjour Zero Conf Service and UPnP Device Spy.
6.1.2 Target instance identifier A target identifier is automatically generated by the TDM for every target discovered.  
6.1.3 Support for document deployment Target Description and Socket Description for each target is provided through the UIList (http://[uch-ip-address]/UCH/GetCompatibleUIs). See UCH spec.  
6.1.4 Target description Provided through UIList.  
6.1.5 Invocation of a target's locator. Locator function is available in UCH.  
6.2 User interface socket The UCH is providing direct access to the targets' sockets through the UIPM Listener API, or alternatively through the URC-HTTP protocol.  
6.2.2 A target’s sockets The UCH exposes a target's socket on behalf of the target (as a proxy). The targets that the UCH connects to are not URC-compatible in general.  
6.2.3 Socket elements Variables, commands and notifications are implemented. The client needs to take care of constants.  
6.2.3.2 Multiple connected URCs Multiple clients supported in general, and for URC-HTTP UIPM.  
6.2.3.3 Multi-user and single-user targets Generally supported. TA needs to take care of this.  
6.2.3.4 Synchronization Synchronization between socket layer and UIPM layer provided. Also between URC-HTTP UIPM and URC-HTTP client.  
6.3 User interface socket description Provided through UIList.  
6.4.1 Target grouping resources Provided through Resource Sheets (linked from Target Description).  
6.4.2 Target atomic resources Provided through Resource Sheets (linked from Target Description).  
6.4.3 Target resource sheets Provided through links from Target Description.  
6.4.4 Required target resources The target manufacturer needs to provide links in the Target Description to the required target resources (i.e. the pertaining resource sheets).  
6.4.6 Target user interface implementation descriptions (UIIDs) Any kind of UIID can be implemented as a UIPM. The UCH does not natively provide support for presentation templates.
6.5 Session management In general, session management is provided through the UIPM API and the UIPM Listener API of the UCH.  
6.5.1.3 Forwarding   Session forwarding upon open session request is not supported.
6.5.2 Support for URC suspend session request   Not implemented.
6.5.3 Support for URC resume session request   Not implemented.
6.5.5 Abort session event Supported in the UIPM API. Not defined in URC-HTTP protocol.
6.5.6 Established connection   No connection sensing implemented beyond Apache's http server features.
6.5.7 Session forwarding   Not implemented.
6.6 Socket management In general, this is implemented through the UIPM API and UIPM Listener API.  
6.6.3 Indication of availability of socket elements at runtime Up to the TA to implement this (TA API). Note: Invalid paths should just be ignored by the TA.

In the URC-HTTP protocol, unavailable socket variables have the value NULL in the UIPM/UIPM Listener API, and "undefined" in the URC-HTTP protocol.

 
6.6.4 Synchronization mechanism Supported through APIs.  
6.6.5 Variable and synchronization of variable values Supported through APIs.  
6.6.5.2 Undefined values In the APIs, NULL is representing the "undefined" value.  
6.6.6 Command and synchronization of command state Supported through APIs.  
6.6.6.2 Local input parameters Supported. The value of a local input parameters has to be provided prior to calling the pertaining function.

Note: The value of any input parameter (local and global) and the invocation of a function can be contained in one call to setValuesRequest. However, the input parameter has to be specified in an array element prior to the array element requesting the function invocation.

 
6.6.6.5 Undefined command states An undefined command state is represented by NULL.  
6.6.6.7 Concurrency restriction   Not implemented.
6.6.6.8 timeToComplete Generally supported. TAs can make use of it.  
6.6.7 Notifications and acknowledgment reception Supported.  
6.6.7.3 Multiple control sessions The TAs have to make sure that notifications are not shared among sessions.  
6.6.7.4 Explicit user acknowledgment Client responsible for this. In any case (explicit user acknowledgment required or not), the TA is supposed to wait for acknowledgment of a notification.  
6.6.7.6 Stacking of notifications Responsibility of TA.  
6.6.8 Actual indices for dimensional socket sets/elements Supported.  
6.6.9 URC side interpretation of socket element dependencies Responsibility of TA.  
6.6.10 User response timeouts Responsibility of TA.  
6.6.11 Providing atomic resources at runtime TAs can provide dynamic resources to UCH.
6.7 Target-URC network link (TUNL) on the target The UCH implements the TUNL in the form of the UIPM/UIPM Listener APIs (direct calls instead of protocol).  
7 Supplemental resources   Supplemental resources are not provided by the UCH currently. In future versions, they may be retrieved by the UCH from a resource server.
8.2 Target-URC network (TUN) The TUN is hidden inside the UCH (as UIPM/UIPM Listener APIs). The functions of the TUN are implemented as functions of the pertaining APIs.  
8.2.2 Unique instance identifier Supported.  
8.2.3 Support for discovery Provided if target can be automatically discovered.  
8.2.3.2 Scope of discovery Discovery of remote targets is possible if TA can connect to remote targets.  
8.2.4 Support for document deployment Provided through getDocument() function.  
8.2.5 Support for session management Provided through API.  
8.3 Resource-URC network (RUN) Currently, resources have to be configured and stored locally. In the future, the UCH may use the Internet as RUN to retrieve resources from a resource server.  
9 Security and privacy considerations The connections between UIPMs and UCH, and between the UCH and the TAs is secure since they are APIs in a closed system. It is up to the TAs / UIPMs to secure their connections to controllers / targets as appropriate.  

ISO/IEC 24752-2:2008 User Interface Socket Description

Section in ISO/IEC 24752-2 Description of feature implemented Description of feature not implemented
5.2 XPath expressions   XPath expressions are not supported.
5.3 MIME type Socket Description files are served with MIME type of “application/urc-uisocketdesc+xml” if their file extension is ".uis".  
6 Structure of a socket description The library packages edu.wisc.trace.uch.util and edu.wisc.trace.uch.util.socket do provide support for the following elements or attributes of a Socket Description:
  • 6.9 <variable>, <constant>, <command>, <notify> and <set> elements
  • 6.6 The <dcterms:conformsTo> element
  • 6.7 The <dcterms:modified> element

The library packages edu.wisc.trace.uch.util and edu.wisc.trace.uch.util.socket do not provide support for the following elements or attributes of a Socket Description:
  • 6.4 The ‘sufficient’ attribute
  • 6.5 The ‘complete’ attribute
  • 6.8 Socket description properties from DCMI
  • 6.10 XSD type schema elements
  • 6.11 Platform-specific mapping information
6.6 The <dcterms:conformsTo> element Checking dcterms:conformsTo for validity of socket description.  
7 Sets The library packages edu.wisc.trace.uch.util and edu.wisc.trace.uch.util.socket do provide support for the following elements or attributes of a Socket Description:
  • 7.2 Attribute ‘id’
  • 7.3 Attribute ‘dim’
  • 7.7 Set members
The library packages edu.wisc.trace.uch.util and edu.wisc.trace.uch.util.socket do not provide support for the following elements or attributes of a Socket Description:
  • 7.5 Platform-specific mapping information
  • 7.6 Set properties from DCMI
7.4 Set dependencies   Set dependencies are not evaluated by the UCH. It is up to UIPMs (and URC-HTTP clients) to check dependencies.
8 Variables The library packages edu.wisc.trace.uch.util and edu.wisc.trace.uch.util.socket provide support for the following subelements or attributes of a variable:
  • 8.2 The ‘id’ attribute
  • 8.3 The ‘type’ attribute
  • 8.9 The ‘dim’ attribute
  • 8.10 The ‘includesRes’ attribute
The library packages edu.wisc.trace.uch.util and edu.wisc.trace.uch.util.socket do not provide support for the following elements or attributes of a variable:
  • 8.4 The ‘secret’ attribute
  • 8.5 The ‘sensitive’ attribute
  • 8.6 The ‘timeout’ attribute
  • 8.7 The ‘optional’ attribute
  • 8.8 The ‘final’ attribute
  • 8.12 Selection
  • 8.12.2 The ‘closed’ attribute
  • 8.12.3.2 The <selectionSetStatic> element
  • 8.12.3.3 The <selectionSetDynamic> element
  • 8.13 Platform-specific mapping information
  • 8.14 Properties from DCMI
8.3 The ‘type’ attribute   All variable values are handled as strings, disregarding their defined types. No validity checking on values is performed by the UCH.

Note: This makes it easier to pass values from and to UIPMs and TAs.

8.3.5 Stream types   Streams are not supported by the UCH.
8.4 The ‘secret’ attribute   No extra mechanism supported to protect 'secret' values.
8.5 The ‘sensitive’ attribute   No mechanism is in place to make sure the user sees the sensitive information.
8.11 Variable dependencies   Variable dependencies are not evaluated by the UCH. It is up to UIPMs (and URC-HTTP clients) to check dependencies.
8.12 Selection   No checking on validity of values against open or closed selections is done by the UCH.
8.13 Platform-specific mapping information   Platform-specific mapping information is ignored by UCH.
9 Constants   UCH ignores constants in the socket description. UIPMs are supposed to pull the constant values from the socket description, if needed.
10 Commands The library packages edu.wisc.trace.uch.util and edu.wisc.trace.uch.util.socket provide support for the following elements or attributes of a command:
  • 10.2 The ‘id’ attribute
  • 10.3 The ‘type’ attribute
  • 10.8 The ‘dim’ attribute
  • 10.9 The ‘includesRes’ attribute
  • 10.12 Command parameters (but only the following attributes)
    • 10.12.2 The ‘id’ attribute (local parameter)
    • 10.12.3 The ‘idref’ attribute (global parameter)
    • 10.12.4 The ‘dir’ attribute
    • 10.12.5 The ‘type’ attribute
The library packages edu.wisc.trace.uch.util and edu.wisc.trace.uch.util.socket do not provide support for the following elements or attributes of a command:
  • 10.4 The ‘sensitive’ attribute
  • 10.5 The ‘sufficient’ attribute
  • 10.6 The ‘complete’ attribute
  • 10.7 The ‘optional’ attribute
  • 10.10 Command dependencies
  • 10.11 Platform-specific mapping information
  • 10.12 Command parameters (the following)
    • 10.12.6 The ‘secret’ attribute
    • 10.12.7 The ‘sensitive’ attribute
    • 10.12.8 The <selection> subelement
    • 10.12.9 Platform-specific mapping information
    • 10.12.10 Properties from DCMI
  • 10.13 Properties from DCMI
11 Notifications The library packages edu.wisc.trace.uch.util and edu.wisc.trace.uch.util.socket provide support for the following elements or attributes of a notification:
  • 11.2 The ‘id’ attribute
  • 11.6 The ‘dim’ attribute
  • 11.7 The ‘includesRes’ attribute
The library packages edu.wisc.trace.uch.util and edu.wisc.trace.uch.util.socket do not provide support for the following elements or attributes of a notification.
  • 11.3 The ‘category’ attribute
  • 11.4 The ‘sensitive’ attribute
  • 11.5 The ‘optional’ attribute
  • 11.8 Notification dependencies
  • 11.9 The notify timeout variable/constant. However, the UCH will pass through the path and value of a timeout variable inside a notify element.
  • 11.10 Platform-specific mapping information
  • 11.11 Properties from DCMI
12 Type definitions UCH ignores type definitions. There is no library package provided for parsing internally and externally defined types.  

ISO/IEC 24752-4:2008 Target Description

Section in ISO/IEC 24752-4 Description of feature implemented Description of feature not implemented
5.2 MIME type Target description files are served with MIME type “application/urc-targetdesc+xml” if their file extension is ".td".  
6 The <target> element

The library packages edu.wisc.trace.uch.util provides support for the following elements or attributes of a target description:

  • 6.2 The ‘about’ attribute
  • 6.3 The ‘id’ attribute
  • 6.5 The <dcterms:conformsTo> element (but no checking done by UCH)
  • 6.6 The <dcterms:modified> element
  • 6.9 The <socket> element (only the following):
    • 6.9.2 The ‘id’ attribute
    • 6.9.3 The ‘name’ attribute
    • 6.9.9 The <socketDescriptionLocalAt> element
  • 6.10 Resource directory
The UCH does not parse target descriptions.

The library packages edu.wisc.trace.uch.util does not provide support for the following elements or attributes of a target description:

  • 6.4 The ‘hidden’ attribute
  • 6.7 The <locator> element
  • 6.8 Target properties from DCMI
  • 6.9 The <socket> element (parts of):
    • 6.9.4 The ‘type’ attribute
    • 6.9.5 The ‘hidden’ attribute
    • 6.9.6 The ‘maxSessions’ attribute
    • 6.9.7 The ‘sharedSessions’ attribute
    • 6.9.8 The ‘requestable’ attribute
    • 6.9.10 The <category> element
    • 6.9.11 The <constraints> element
    • 6.9.12 Socket properties from DCMI
    • 6.9.13 Platform-specific mapping information
  • 6.11 Platform-specific mapping information
6.7 The <locator> element Locator invocation requests from UIPMs are passed on to the appropriate TA. TAs are responsible to implement the locator behavior.  
6.10 Resource directory The UCH uses the resource directory to find pertaining resource sheets. All resource sheets referenced in the resource directory are parsed by the UCH in order to retrieve atomic resources from them.  

ISO/IEC 24752-5:2008 Resource Description

Section in ISO/IEC 24752-5 Description of feature implemented Description of feature not implemented
General Resource sheets are parsed by the UCH, in order to provide UIPMs with atomic resources. Grouping resources are not parsed, and are not available from the UCH.
6 Atomic resource – <AResDesc> The resource manager in the UCH provides support for atomic resources. Only resources with perfect match are delivered. If multiple resources match the query, only one is delivered (arbitrary choice). Parsing of resource sheets based on order resource directory. Inheritance of properties within a resource sheet is supported.

The following resource properties are available through the resource manager in the UCH:

  • 6.2 The ‘rdf:about’ attribute
  • 6.3 The <content> element (only the following):
    • 6.3.2 The ‘rdf:parseType’ attribute
    • 6.3.3 The ‘rdf:dataType’ attribute
    • 6.3.4 The ‘xml:lang’ attribute
  • 6.4 The <contentAt> element
  • 6.5 The <dc:type> element
  • 6.6 The <dc:format> element
  • 6.7 The <useFor> element
    • 6.7.2 The ‘rdf:parseType’ attribute
    • 6.7.3 The <Context> element
      • 6.7.3.1 The <eltRef> element
      • 6.7.3.2 The <valRef> element
      • 6.7.3.3 The <opRef> element
      • 6.7.3.4 The <role> element
      • 6.7.3.5 The <forLang> element
      • 6.7.3.6 The <forTargetInstance> element
  • 6.8 The <dc:creator> element
  • 6.9 The <dc:publisher> element
  • 6.10 The <dc:contributor> element
  • 6.11 The <dc:date> element
  • 6.12 The <dc:rights> element
  • 6.13 The <dcterms:audience> element
  • 6.14 The <dcterms:hasVersion> element
  • 6.15 The <dcterms:isVersionOf> element
  • 6.16 The <dcterms:isReplacedBy> element
  • 6.17 The <dcterms:replaces> element
The following resource properties are not available through the resource manager in the UCH:
  • 6.3 The <content> element (parts of):
    • 6.3.5 The <span> element
  • 6.18 Other elements from DCMI
7 Grouping resource – <Grouping>   Grouping resources are not supported. UIPMs wanting to use grouping resources need to retrieve groupings from resource sheets themselves.
8 Resource sheet – <ResSheet> The UCH supports parsing of resource sheets. Some notes on specific sections:
  • 8.2 The ‘rdf:about’ attribute
  • 8.3 The <dcterms:modified> element
  • 8.4 The <dcterms:conformsTo> element: Checked for valid value.
  • 8.5 The <localAt> element
  • 8.6 Scents for Resource Sheets (only the following):
    • 8.6.2 The <forLang> element
    • 8.6.3 The <dcterms:audience> element
    • 8.6.4 The <dc:type> element
    • 8.6.5 The <dc:format> element
    • 8.6.6 The <aResDescForDomain> element
    • 8.6.7 The <role> element
    • 8.6.8 The <groupingForDomain> element
  • 8.7 The <resItems> element (only the following):
    • 8.7.2 Subelements of <resItems>
Notes:
  • 8.6 Scents for Resource Sheets (parts of):
    • 8.6.9 Elements from DCMI
  • 8.7 The <resItems> element (parts of):
    • 8.7.1 The ‘rdf:parseType’ attribute
8.8 MIME type Resource Sheets are served with MIME type “application/urc-ressheet+xml”, if their extension is ".rsheet".  
9 UIID description – <UiidDesc>   UIID descriptions are ignored by the UCH.
10 Resource service description – <ResSvcDesc>   Resource service descriptions are ignored by the UCH.
11 Resource directory – <ResDir> The UCH parses resource directories, but only if they are local in the target description. External resource directory files (referenced through <localAt>) in a target description, are ignored.
  • 11.2 The ‘rdf:about’ attribute
  • 11.3 The <dcterms:conformsTo> element
  • 11.4 The <localAt> element
  • 11.5 Scents for Resource Directories
  • 11.6 The <dirItems> element
11.7 MIME type Resource Directories are served with MIME type “application/urc-resdir+xml”, if their extension is ".rdir".  

UCH specification

Section in UCH spec Description of feature implemented Description of feature not implemented
RUI Server UCHe is RUI Server level-2 Input arguments InputDeviceProfile is ignored. Returned UI List depends on the input argument UIFilter.
API of UIPM (IUIPM) Mandatory Functions:
  • void init(IUIPMListener uipmListener, Map uipmProps, Map uchProps, Map[] contexts) throws UIPMFatalException
  • void finalize()
  • void contextsOpened(Map[] Contexts) throws UIPMFatalException
  • void contextsClosed(Map[] Contexts) throws UIPMFatalException
  • Map getUIPMProps()
  • void targetDiscovered(string targetId, Map[] contexts) throws UIPMFatalException
  • void targetContextsAdded(string targetId, Map[] Contexts) throws UIPMFatalException
  • void targetContextsRemoved(string targetId, Map[] Contexts) throws UIPMFatalException
  • void targetDiscarded(string targetId) throws UIPMFatalException
  • void sessionAborted(string sessionId) throws UIPMFatalException
  • void updateValues(string[] sessionIds, string[] paths, string[] operations, string[] values, boolean[] hasDynRes) throws UIPMFatalException
  • boolean isImplemented(string functionName)
  • Map[] getUriServiceContexts(string uri) throws UIPMFatalException

Optional Functions:
  • void controllerRequest(Object request, Object response) throws UIPMFatalException
Mandatory Functions:
  • void sessionForwardRequest(string sessionId, Map forwardInfo) throws UIPMFatalException

Optional Functions:
API of UIPM Listener (IUIPMListener) Mandatory Functions:
  • Map[] getContexts()
  • string[] getAvailableTargetIds(Map context)
  • string getTargetName(string targetId)
  • Map getTargetProps(string targetId)
  • Map[] getTargetContexts(string targetId)
  • string getTargetDescriptionUri(string targetName)
  • string getSocketDescriptionUri(string targetName, string socketName)
  • string getDocument(string uri, string postData, Map context) throws UCHException
  • string[] getSocketNames(string targetName)
  • string getSocketDescriptionUri(string targetName, string socketName)
  • string getSocketName(string sessionId)
  • string getSocketFriendlyName(string targetId, string socketName)
  • Map getLocators(string targetName)
  • void invokeLocator(string targetId, string locatorId)
  • boolean isElementAvailable(string targetId, string socketName, string eltId)
  • Map[][] getResources(string sessionId, Map[] resProps)
  • Map openSessionRequest(IUIPM uipm, string targetId, string socketName, Map sessionProps, Map context)
  • void closeSession(string sessionId)
  • Map getValues(string sessionId, string[] paths, boolean[] includeSets)
  • Object[] getIndices(string sessionId, string[] eltIds, integer[] indexNos)
  • Map setValuesRequest(string sessionId, string[] paths, string[] operations, string[] reqValues)
  • string getIpAddress()
  • string startUriService(IUIPM uipm, string scheme, int port, boolean portIsFlexible, string basePath, boolean basePathIsFlexible, Map[] contexts) throws UCHException
  • void addUriServiceContexts(string uri, Map[] contexts) throws UCHException
  • void removeUriServiceContexts(string uri, Map[] contexts) throws UCHException
  • void stopUriService(string uri) throws UCHException
  • boolean addCompatibleUI(string targetId, string[] socketNames, string protocolShortName, string[] uris, Map protocolInfo) throws UCHException
  • void removeCompatibleUI(string[] uris) throws UCHException
  • IUCHStore getLocalUCHStore()
  • Map getUCHProps()
  • boolean isImplemented(string functionName)
  • Map[] uploadResources(Map[] props, string[] resourceUris)

Optional Functions:
  • void removeUIPM(IUIPM uipm)

Mandatory Functions:

Optional Functions:

  • boolean validateValue(string sessionId, string path, string value) throws UCHNotImplementedException
  • boolean getDependencyValue(string sessionId, string path, string dependency) throws UCHNotImplementedException
  • string getElementRef(string sessionId, string path) throws UCHNotImplementedException
  • boolean isSessionSuspendable(string sessionId) throws UCHNotImplementedException
  • long suspendSession(string sessionId, long suggestedTimeout) throws UCHNotImplementedException
  • boolean isSessionResumable(string sessionId) throws UCHNotImplementedException
  • boolean resumeSession(string sessionId) throws UCHNotImplementedException
Target Discovery Module Interface (ITDM) Mandatory Functions:
  • void init(ITDMListener tdmListener, Map tdmProps, Map uchProps, Map[] contexts) throws TDMFatalException
  • void finalize()
  • void contextsOpened(Map[] Contexts) throws TDMFatalException
  • void contextsClosed(Map[] Contexts) throws TDMFatalException
  • Map getTDMProps()
  • void startDiscovery() throws TDMFatalException
  • void stopDiscovery() throws TDMFatalException
  • Map[] getTargetContexts(string targetId)

Optional Functions:
  • void targetRequest(Object request, Object response, Map context) throws TDMFatalException

Mandatory Functions:

Optional Functions:
Target Discovery Manager Listener Interface (ITDMListener) Mandatory Functions:
  • Map[] getContexts()
  • string targetDiscovered(ITDM tdm, Map targetProps, Map taProps, Map[] contexts)
  • void targetContextsAdded(string targetId, Map[] Contexts)
  • void targetContextsRemoved(string targetId, Map[] Contexts)
  • void targetDiscarded(string targetId)
  • IUCHStore getLocalUCHStore()
  • string getIpAddress()
  • string startUriService(ITDM tdm, string scheme, int port, boolean portIsFlexible, string basePath, boolean basePathIsFlexible, Map[] contexts) throws UCHException
  • void addUriServiceContexts(string uri, Map[] contexts) throws UCHException
  • void removeUriServiceContexts(string uri, Map[] contexts) throws UCHException
  • void stopUriService(string uri) throws UCHException
  • Map[][] getResources(string sessionId, Map[] resProps)
  • string getDocument(string uri, string postData, Map context) throws UCHException
  • Map getUCHProps()
  • boolean isImplemented(string functionName)
  • Map[] uploadResources(Map[] props, string[] resourceUris)


Optional Functions:

  • void removeTDM(ITDM tdm)
Mandatory Functions:

Optional Functions:



Target Adapter Interface (ITA) Mandatory Functions:
  • void init(ITAListener taListener, Map taProps, Map uchProps) throws TAFatalException
  • void finalize()
  • Map getTAProps()
  • void registerTarget(string targetId, Map targetProps, Map[] contexts) throws TAException, TAFatalException
  • void targetRequest(Object request, Object response, Map context) throws TAFatalException
  • void targetContextsRemoved(string targetId, Map[] Contexts) throws TAFatalException
  • void unregisterTarget(string targetId) throws TAFatalException
  • string[] getRegisteredTargetIds() throws TAFatalException
  • Map getLocators(string targetName)
  • void invokeLocator(string targetId, string locatorId) throws TAException, TAFatalException
  • string getTargetName(string targetId) throws TAFatalException
  • string getTargetDescriptionUri(string targetName) throws TAFatalException
  • Map getTargetProps(string targetId) throws TAFatalException
  • string[] getSocketNames(string targetName) throws TAFatalException
  • string getSocketName(string sessionId) throws TAFatalException
  • string getSocketFriendlyName(string targetId, string socketName)
  • string[] getSessionIds(string targetId, string socketName) throws TAFatalException
  • string getSocketDescriptionUri(string targetId, string socketName) throws TAFatalException
  • Map openSessionRequest(string targetId, string socketName, Map sessionProps, Map context) throws TAFatalException
  • void sessionOpened(string targetId, string sessionId, string socketName, Map sessionProps, Map context) throws TAFatalException
  • void sessionClosed(string sessionId) throws TAFatalException
  • Map getValues(string sessionId, string[] paths) throws TAFatalException
  • Object[] getIndices(string sessionId, string[] eltIds, integer[] indexNos)
  • Map[] getDynRes(string sessionId, Map[] resProps) throws TAFatalException
  • boolean isElementAvailable(string targetId, string socketName, string eltId) throws TAFatalException
  • boolean isImplemented(string functionName)

Optional Functions:

  • void targetRequest(Object request, Object response, Map context) throws TAFatalException

Mandatory Functions:

Optional Functions:
  • boolean suspendSessionRequest(string sessionId) throws TAFatalException, TANotImplementedException
  • long sessionSuspended(string sessionId, long suggestedTimeout) throws TAException, TAFatalException, TANotImplementedException
  • boolean resumeSessionRequest(string sessionId) throws TAFatalException, TANotImplementedException
  • void sessionResumed(string sessionId) throws TAException, TAFatalException, TANotImplementedException

Target Adapter Listener Interface (ITAListener) Mandatory Functions:
  • Map[] getTargetContexts(string targetId)
  • void abortSession(string sessionId)
  • void updateValues(string[] sessionIds, string[] paths, string[] operations, string[] values, boolean[] hasDynRes)
  • void updateDynRes(string[] sessionIds, string[] eltIds)
  • IUCHStore getLocalUCHStore()
  • string getIpAddress()
  • string startUriService(ITA ta, string scheme, int port, boolean portIsFlexible, string basePath, boolean basePathIsFlexible, Map[] contexts) throws UCHException
  • void addUriServiceContexts(string uri, Map[] contexts) throws UCHException
  • void removeUriServiceContexts(string uri, Map[] contexts) throws UCHException
  • void stopUriService(string uri) throws UCHException
  • Map[][] getResources(string sessionId, Map[] resProps)
  • string getDocument(string uri, string postData, Map context) throws UCHException
  • Map getUCHProps()
  • boolean isImplemented(string functionName)
  • Map[] uploadResources(Map[] props, string[] resourceUris)
Optional Functions:
  • void removeTA(ITA ta)

Mandatory Functions:
  • void sessionForwardRequest(string sessionId, Map forwardInfo)
  • boolean setValidation(ITA ta, boolean activate)
Optional Functions:



URC-HTTP specification

Section in URC-HTTP spec Description of feature implemented Description of feature not implemented
URC-HTTP Protocol Advertising URC-HTTP UIPM supports the URC/HTTP protocol and advertises <protocol>...</protocol> in its UIList. Advertising of URC-HTTP Client Wrapper Protocols
Get Resources (Out-of-session and In-session) URC-HTTP UIPM get requested resources from IUIPMListener and returns the resources as per the format defined in URC-HTTP Protocol.  
Get Document (HTTP Proxy) URC-HTTP UIPM asks for the documet from IUIPMListener.
Though UCH has limited facility to provide the document. (UCH specification -6.2.1.5).
 
Invoke Locator Implemented.
Get User Interface Info Not Implemented.
Open Session Request Implemented partially. </openSessionRequest> is ignored by the URC-HTTP UIPM. Consequently, values sent from the UCH (by Get Value, Get Updates, and Set Values, or via the Update Channel) do not come bundled with resources.

Forwarding of open session request is not implemented.

Close Session Request URC-HTTP UIPM calls IUIPMListener's closeSession().  
Get Values URC-HTTP UIPM gets values from IUIPMListener and responds as per the format defined in URC-HTTP Protocol. Values from UCH don't come with resources.

Get Updates URC-HTTP UIPM get updated values from IUIPMListener and responds the values as par the format defined in URC-HTTP Protocol-V12. Values from UCH don't come with resources.
Set Values Implemented. Values from UCH don't come with resources.
Get Resources (In-Session) Implemented.  
Opening the Update Channel Implemented.  
Update Events Implemented. Values from UCH don't come with resources.
URL Rewriting Implemented.  
Cookies   Not Implemented.

Implementation of UPnP AV

List of Play-1 Socket element id's not implemented (either on the device or in UPnPAV TA):

  1. childCount
  2. chVolumeDB
  3. chLoudness
  4. chVolumeDBMaxValue
  5. chVolumeDBMinValue
  6. contrastMaxValue
  7. verticalKeystoneMaxValue
  8. verticalKeystone
  9. blueVideoBlackLevel
  10. greenVideoGainMaxValue
  11. sharpness
  12. contrast
  13. brightness
  14. blueVideoBlackLevelMaxValue
  15. greenVideoGain
  16. horizontalKeystoneMaxValue
  17. horizontalKeystoneMinValue
  18. colorTemperatureMaxValue
  19. blueVideoGainMaxValue
  20. colorTemperature
  21. redVideoBlackLevelMaxValue
  22. greenVideoBlackLevel
  23. blueVideoGain
  24. sharpnessMaxValue
  25. verticalKeystoneMinValue
  26. redVideoGain
  27. redVideoGainMaxValue
  28. redVideoBlackLevel
  29. horizontalKeystone
  30. brightnessMaxValue
  31. greenVideoBlackLevelMaxValue
  32. absoluteCounterPosition
  33. possibleRecordStorageMedia
  34. currentMediaDuration
  35. possiblePlaybackStorageMedia
  36. recordMediumWriteStatus
  37. isCurrentPlayModeSettable
  38. recordStorageMedium
  39. absoluteTimePosition
  40. recordQualityModeSettable
  41. nextAvTransportUri
  42. possibleRecordQualityModes
  43. currentRecordQualityMode
  44. relativeCounterPosition
  45. playbackStorageMedium
  46. seek
  47. record
  48. nextAvTransportUriMetaData

List of Play-2 Socket element id's not implemented (either on the device or in UPnPAV TA):

  1. chVolumeDB
  2. chLoudness
  3. chVolumeDBMaxValue
  4. chVolumeDBMinValue
  5. contrastMaxValue
  6. verticalKeystoneMaxValue
  7. verticalKeystone
  8. blueVideoBlackLevel
  9. greenVideoGainMaxValue
  10. sharpness
  11. contrast
  12. brightness
  13. blueVideoBlackLevelMaxValue
  14. greenVideoGain
  15. horizontalKeystoneMaxValue
  16. horizontalKeystoneMinValue
  17. colorTemperatureMaxValue
  18. blueVideoGainMaxValue
  19. colorTemperature
  20. redVideoBlackLevelMaxValue
  21. greenVideoBlackLevel
  22. blueVideoGain
  23. sharpnessMaxValue
  24. verticalKeystoneMinValue
  25. redVideoGain
  26. redVideoGainMaxValue
  27. redVideoBlackLevel
  28. horizontalKeystone
  29. brightnessMaxValue
  30. greenVideoBlackLevelMaxValue
  31. absoluteCounterPosition
  32. possibleRecordStorageMedia
  33. currentMediaDuration
  34. possiblePlaybackStorageMedia
  35. recordMediumWriteStatus
  36. isCurrentPlayModeSettable
  37. recordStorageMedium
  38. absoluteTimePosition
  39. recordQualityModeSettable
  40. nextAvTransportUri
  41. possibleRecordQualityModes
  42. currentRecordQualityMode
  43. relativeCounterPosition
  44. playbackStorageMedium
  45. seek
  46. record
  47. nextAvTransportUriMetaData

Known Bugs

General:

UPnP AV:

Please report bugs to


Last update: Gottfried Zimmermann, Parikshit Thakur & Team, 2010-05-20

This site is maintained by the University of Wisconsin Trace Center, a member of the Universal Remote Console Consortium.