UPnP exposed to/used by DLNA devices
------------------------------------

                 Key: FELIX-2730
                 URL: https://issues.apache.org/jira/browse/FELIX-2730
             Project: Felix
          Issue Type: New Feature
          Components: UPnP Subproject
         Environment: All platforms using the Felix UPnP bundle
            Reporter: Patrik Sagelius
            Priority: Minor


One of the larger areas of usage with UPnP is to expose a DMS. There are also 
many consumers of DMS devices, e.g. TVs. Many of the new TVs coming to the 
market are branded "DLNA compatible". This means they will require DMS devices 
to have the XML tag shown below in the device description:

<dlna:X_DLNADOC 
xmlns:dlna="urn:schemas-dlna-org:device-1-0">DMS-1.00</dlna:X_DLNADOC>

This is described in paragraph 7.2.10 in the document named "DLNA Networked 
Device Interoperability Guidelines". This is just one of many DLNA specific 
tags. However, it seems that a great number of DMR devices (consumers of DMS 
devices, e.g. TVs) expects this tag and only shows the DMS as a valid DMS if it 
is included.
I know this has nothing to do with UPnP since it is a DLNA specific tag, but it 
increases the usability of the UPnP stack and the number of usecases supported 
a great deal! Moreover, there is no way to set this XML tag in the device 
description using the OSGi UPnP API as it is currently specified.

What is needed is that the developer needs some way of controlling the content 
of the device description to include this tag.

So when creating the device the programmer supplies properties to control 
various things, such as name and description. It would be good to supply a 
property called "X_DLNADOC" with the value of the tag, e.g. DMS-1.00. So the 
code to create a DLNA supported device would look like:

public class DmsDevice implements UPnPDevice {
    private Dictionary dictionary = new Hashtable();

    public DmsDevice() {
        dictionary.put(UPnPDevice.FRIENDLY_NAME, "My Name");
        dictionary.put("X_DLNADOC", "DMS-1.00");
        ....
    }

    public Dictionary getDescriptions(String locale) {
        return this.dictionary;
    }
    ....
}

This should result in an XML like:

<?xml version="1.0" encoding="utf-8"?>
<root xmlns="urn:schemas-upnp-org:device-1-0">
   <specVersion>
      <major>1</major>
      <minor>0</minor>
   </specVersion>
   <URLBase>http://<myip>:<myport></URLBase>
   <device>
      <deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType>
      <dlna:X_DLNADOC 
xmlns:dlna="urn:schemas-dlna-org:device-1-0">DMS-1.00</dlna:X_DLNADOC>
      <friendlyName>My Name</friendlyName>
      ........
</root>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to