views:

485

answers:

5

I'm trying to play around with UPnP. Specifically, I'm trying to browse the content library of a PS3 Media Server.

I tried upnp.dll (a COM library that ships with windows) and found it easy to use. I can discover devices and look at their services pretty easily, however it throws an exception when trying to access the services of the media server (other devices, like my router and windows media player, work fine). A bit of searching around the net revealed that upnp.dll is not well implemented and other people have the same problem and found no solutions.

So I've looked for an alternative and found Mono.Upnp. It looks promising but I just can't get it to work, at all.

I saw mentions of Intel's UPnP SDK but this seems to be deprecated and I can't find a downloadable package.

I'm at a loss. Is there no alternative to upnp.dll ?

A: 

Does this help?

RCIX
Thanks, but I linked to this msdn section in my question. I understand the concepts behind UPnP, but I'm looking for an alternative to the microsoft's dll because it does not work with the device I'm using.
David Thibault
+1  A: 

It might be worth browsing the relevant part of MediaPortal source code. Inparticular, the UPnP project may be useful.

Si
Thanks. It's pretty interesting, but the code is MASSIVE, with components scattered across multiple projects. I'm having a hard time making sense of it all. I'm not sure if it would be possible to extract to UPnP components in a usable fashion.
David Thibault
I guess you could ask the developers about feasibility. By the way, did you see this http://stackoverflow.com/questions/333079/is-there-a-upnp-library-for-net-c-or-vb-net/346941#346941 from a similar SO question.
Si
+4  A: 

I decided to bite the bullet and just roll my own. It's not that hard. Simple udp + xml + soap.

This link was very helpful to me:
http://www.upnp.org/download/UPnP_Device_Architecture_Generic_20000710.ppt

For the specifics of a media server's content directory, see: http://www.upnp.org/standardizeddcps/documents/ContentDirectory1.0.pdf

The Mono.Upnp source was also helpful.

I have no plans to make this open source as it won't be a complete implementation (I'm doing the strict minimum for my project).

David Thibault
+1  A: 

About the Intel UPnP SDK, it was recently updated and renamed to Developer Tools For UPnP. Most notable changes are it now includes source code for all the tools and the code generator, the source is under the Apache 2.0 license, and IPv6 support was added in several places.

See blog post 1 and blog post 2 by Intel's Ylian Saint-hilaire.

Lucas