This package contains a number of modules that provide various parts of the functionality needed to perform upnp functions from Tcl.

The package depends on the following external packages:
  *  tcludp
  *  tdom
  *  http
  *  wibble (server side only)

The browser demo is designed to use icons from the icon set].

The package provides the following modules:
  *  ssdp
  *  upnp
  *  didl

<h1>ssdp</h1>
The ssdp package provides the low level infrastructure for the discovery step of UPnP networking. It takes care of sending out advertisements, periodically refreshing them, and responding to searches.

The ssdp package creates an ssdp command with the following subcommands:
<dl>
<dt>ssdp agent
<dd>Return a standard user agent string
<dt>ssdp detection <operation> <target> <cmdprefix>
<dd>Specify a cmdprefix to invoke when the specified target is advertised.
<dt>ssdp provide <struct>
<dd>Start advertising the specified device and service structure.
<dt>ssdp remove
<dd>Stop advertising and remove all advertised devices from the network.
<dt>ssdp search <target>
<dd>Initiate a search for a device or service.
</dl>

<h1>upnp</h1>
The upnp package provides functionality for the higher layers of UPnP networking,

The upnp package creates a upnp command with the following subcommands:
<dl>
<dt>upnp advertise <specfile> ?<base>?
<dd>Advertise devices and services described in the specified specfile.
<dt>upnp discover <target> ?<cmdprefix>?
<dd>Try to locate the specified device or service on the network. Also listen for any future providers of the device or service. When a device or service is located, the control functions advertised by the service or services of the device are created as commands in a unique namespace per device, named after the uuid of the device. When everything has been set up, the command prefix is invoked with the name of the namespace appended as an extra argument.
<dt>upnp revoke
<dt>Revoke all advertised devices and services.
</dl>

<h1>didl</h1>
The didl package provides functionality to facilitate the implementation of some UPnP services that exchange information in a DIDL-Lite XML structure.

The didl package creates a didl command with the following subcommands:
<dl>
<dt>didl build <data>
<dd>Create a DIDL-Lite XML document from the data dict.
<dt>didl parse <doc>
<dd>Parse a DIDL-Lite XML document into a dict.
</dl>