|
XBox360Notes
Notes and oddities found during adding compatibility with the XBox 360.
Phase-Implementation IntroductionThe XBox 360 is Microsoft's latest incarnation for console gaming. Other then playing games, and providing downloadable content, the XBox 360 uses UPnP to find other Microsoft UPnP Media Servers on the network. Because of this, it uses its own superset of the UPnP specification for UPnP Media Servers, and adds several other undocumented requirements, as well as not completely following the UPnP standard. This page is dedicated to the gotchas when trying to have a conversation with the XBox 360 using the UPnP Media Server 1.0 specification. Discovery
Example NOTIFY Packet from JEMS NOTIFY * HTTP/1.1 HOST: 239.255.255.250:1900 CACHE-CONTROL: max-age=1800 LOCATION: http://192.168.0.196:49226/upnp/device/24b1a1e6-4107-407e-b1c7-8945fb9181a6/description.xml NT: upnp:rootdevice NTS: ssdp:alive SERVER: Windows-Vista/6.0 UPnP/1.0 KodeNinja-UPnP-Stack/0.1 USN: uuid:24b1a1e6-4107-407e-b1c7-8945fb9181a6::upnp:rootdevice Example M-SEARCH Response Packet from JEMS HTTP/1.1 200 OK CACHE-CONTROL: max-age=1800 DATE: Wed, 12 Sep 2007 17:32:19 GMT EXT: LOCATION: http://192.168.0.196:49226/upnp/device/24b1a1e6-4107-407e-b1c7-8945fb9181a6/description.xml SERVER: Windows-Vista/6.0 UPnP/1.0 KodeNinja-UPnP-Stack/0.1 ST: urn:schemas-upnp-org:device:MediaServer:1 USN: uuid:24b1a1e6-4107-407e-b1c7-8945fb9181a6::urn:schemas-upnp-org:device:MediaServer:1 DescriptionThe description phase really seems to be the gate keeper to see whether or not your device will show up in the list recognized devices when the XBox is searching.
friendlyName and modelName ElementsThe friendly name must be in the format of one of the following:
The model name must be a Microsoft one. Such as:
X_MS_MediaReceiverRegistrar ServiceThis service is required to a certain extent. It must be listed, however all requests to the service can be safely denied and the description can be empty or even blank. The XBox will periodically make queries to the non-existent service, but never actually complain about it not working. If the service is not present in the device description, the device will still show up, however upon connection, it will timeout and complain about network connectivity problems, or something equally generic. Example X_MS_MediaReceiverRegistrar Service Definition <service> <serviceType>urn:microsoft.com:service:X_MS_MediaReceiverRegistrar:1</serviceType> <serviceId>urn:microsoft.com:serviceId:X_MS_MediaReceiverRegistrar</serviceId> <SCPDURL>URL OMITTED FOR READABILITY</SCPDURL> <controlURL>URL OMITTED FOR READABILITY</eventSubURL> </service> See also:
Browsing and SearchingFor the most part, the XBox uses typical browsing and searching as described by the official UPnP Content Directory documentation except for a few minor notes.
XBox 360 HierarchyMusicAlbums
Artists
Saved Playlists
Songs
Genres
Pictures
Video
|
The NetCompat?_WMP11.doc is now located at http://download.microsoft.com/download/0/0/b/00bba048-35e6-4e5b-a3dc-36da83cbb0d1/NetCompat_WMP11.docx
A note about the model details: the modelNumber must be an integer; "v1" was causing my device not to show up, but "1" worked fine.
My XBOX 360 does not respond to Multicast NOTIFY events, only unicast M-SEARCH responses.
Which one is it, control, or eventSub ? :)