For a more detailed explanation on how this is achieved refer to the UMSP originating thread presented by Zoster http://wdtvforum.com/main/index.php?topic=4459.0
 
For a more detailed explanation on how this is achieved refer to the UMSP originating thread presented by Zoster http://wdtvforum.com/main/index.php?topic=4459.0
   −
UMSP has been developed as a web service with all coding in PHP. UMSP is fully integrated into the WDLXTV firmware and the details found on the originating article you'll find regarding configuration of the server on your WD no longer apply.
+
UMSP has been developed as a web service with all coding in PHP. UMSP is fully integrated into the WDLXTV firmware and the details found on the originating article you'll find regarding configuration of the server on your WD '''no longer apply'''.
    
Given the implementation both the Apache web-server and the UMSP daemon must be active on your WD to allow the process to publish content.
 
Given the implementation both the Apache web-server and the UMSP daemon must be active on your WD to allow the process to publish content.
 
==Plugin architecture==
 
==Plugin architecture==
   −
Content can be published via one or more complaint plug-ins, we'll discuss compliance shortly.
+
Content can be published via one or more complaint UMSP plug-ins, we'll discuss compliance shortly.
    
The UMSP server ''looks'' for compliant plugins on your WD, a plugin makes its presence known by initially registering with the UMSP server.
 
The UMSP server ''looks'' for compliant plugins on your WD, a plugin makes its presence known by initially registering with the UMSP server.
 
You can add your own plugins to the server by creating an archive file '''umsp-plugins.tgz''' in the /tmp/conf folder on the WD
 
You can add your own plugins to the server by creating an archive file '''umsp-plugins.tgz''' in the /tmp/conf folder on the WD
   −
The archive contains the scripts that implement the plugin, in this example we're add a script called snapple.php, your plugin may have additional files, and/or folder structures - these would be archived too
+
The archive contains the scripts that implement the plugin, in this example we're add a script called revolution.php, your plugin may have additional files and/or folder structures - these would be contained within the archived too
   −
'''tar -cvzf umsp-plugins.tgz snapple.php'''
+
'''tar -cvzf umsp-plugins.tgz revolution.php'''
    
'''mv -f umsp-plugins.tgz /tmp/conf'''
 
'''mv -f umsp-plugins.tgz /tmp/conf'''
   −
Copy or move the archive to the /tmp/conf folder, this is a persistent folder in the WD firmware and your archive will be maintained across a reboot.  When the WD boots the archive will be automatically unzipped to the /tmp/umsp-plugins folder where UMSP ''looks'' for plugin scripts
+
If you've prepared or obtained the archive from another location copy or move the archive to the /tmp/conf folder, this is a persistent folder in the WD firmware and your archive will be maintained across a reboot.  When the WD boots the archive will be automatically unzipped to the /tmp/umsp-plugins folder where UMSP ''looks'' for plugin scripts
    
Along with archive a script called umsp.php [[must]] be provided, this too is located in the /tmp/conf folder.  
 
Along with archive a script called umsp.php [[must]] be provided, this too is located in the /tmp/conf folder.  
 
The umsp.php script contains one or more entries that add to the server global in effect registering the presence of the plugin. The details provided are attributes that will be published by the UMSP server - they define the attributes of the UPnP entity that may be consumed by any UPnP compliant device capable of rendering said entity - in our case that would be the WD box.
 
The umsp.php script contains one or more entries that add to the server global in effect registering the presence of the plugin. The details provided are attributes that will be published by the UMSP server - they define the attributes of the UPnP entity that may be consumed by any UPnP compliant device capable of rendering said entity - in our case that would be the WD box.
   −
In this example we register the snapple plugin, we'll develop this plugin throughout this article
+
In this example we register the revolution plugin, we'll develop this plugin throughout this article
    
<?php
 
<?php
 
     global $myMediaItems; # server side global containing registered plugins
 
     global $myMediaItems; # server side global containing registered plugins
   Exception encountered, of type "Error"