You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Patrik Sagelius (JIRA)" <ji...@apache.org> on 2010/12/14 09:42:00 UTC

[jira] Created: (FELIX-2730) UPnP exposed to/used by DLNA devices

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.


[jira] Commented: (FELIX-2730) UPnP exposed to/used by DLNA devices

Posted by "Francesco Furfari (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-2730?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12972438#action_12972438 ] 

Francesco Furfari commented on FELIX-2730:
------------------------------------------

Hi Patrick,

I agree it is a requirement related to an important  standard: DLNA, but it should be faced with the  vendor extension mechanism provided by the UPnP specification. In fact DLNA uses exactly that extension mechanism. I used the term non-standard vendor extension because everything not defined in a standardised DCP is a non-standard vendor extension. With respect to this DLNA aaliance is a vendor defining a non-standard extension: the DLNA standard.  Read the paragraph "2.5 Description: Non-standard vendor extensions" of the UpnP specification  (http://upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.0.pdf)

You got the point, with your last sentence.

In other words I would like to use a more general mechanism to include custom XML elements in the schema.
Moreover we should be able to get such extensions when importing UpnP Devices and report them  as properties of the OSGi service.
This is a piece of the UPnP Specification 1.0 that was not considered by the OSGi-UPnP Device specification, which is related to the UPnP Spec 1.0 and should be updated to the UPnP 1.1.
The extension management in the last version has been simplified. Extended tags (that ones beginiing with X_) can be added only at the end of the Complex_Element definition, in the old version you could find such elements everywhere.

So we need to think to a better way to pass XML elements and namespace definitions.

Francesco


> 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
>         Attachments: site.patch
>
>
> 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.


[jira] Commented: (FELIX-2730) UPnP exposed to/used by DLNA devices

Posted by "Francesco Furfari (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-2730?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12971220#action_12971220 ] 

Francesco Furfari commented on FELIX-2730:
------------------------------------------

Hi Patrick,

you're right it is a useful feature request, but we should think to a more general mechanism to deal with non-standard vendor extensions.
This is not defined by the current OSGi UPnP specification.
We will work on it and include  ASAP.

Francesco



> 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
>         Attachments: site.patch
>
>
> 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.


[jira] Updated: (FELIX-2730) UPnP exposed to/used by DLNA devices

Posted by "Patrik Sagelius (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/FELIX-2730?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Patrik Sagelius updated FELIX-2730:
-----------------------------------

    Attachment: site.patch

I have attached a patch that will do just the described in this improvement.

> 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
>         Attachments: site.patch
>
>
> 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.


[jira] Commented: (FELIX-2730) UPnP exposed to/used by DLNA devices

Posted by "Patrik Sagelius (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FELIX-2730?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12971232#action_12971232 ] 

Patrik Sagelius commented on FELIX-2730:
----------------------------------------

Hi Francesco,

Just to clarify, this is not a vendor specific problem. This is related to the DLNA standard (www.dlna.org). In the DLNA standard you need to add other XML tags to the device description other than the standard UPnP XML tags.

I agree that this is not a UPnP related issue, but since the DLNA is built on top of UPnP it is needed if one wants to use the OSGi UPnP API to implement DLNA compatible device. Since the UPnP API does not support adding those XML tags it is not possible right now.

The most ideal (and generic) thing to do would be to extend the OSGi UPnP API to allow developers to control the XML code generated. 

Best regards
Patrik Sagelius

> 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
>         Attachments: site.patch
>
>
> 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.