This started off to help LiquidIce with his sonos device:

http://www.hackint0sh.org/forum/showthread.php?t=13126

isonos seems to work with local perl on the phone:

# 
# /opt/iphone/bin/perl ./sonos.pl
27/184918 crit: ./sonos.pl:172 main::main Starting up version 0.71!
If the application doesn't seem to work:
  * you may need to disable your firewall or allow the application
  * make sure the computer is on the same network as Sonos boxes
  * make sure the Sonos Controller software isn't running on the same computer

Now, point your browser to http://localhost:8001 and leave this running

I don't have a sonos... but looks like most of the code seems to stand up:




UPnP NOTES

You need to grab the web.tgz above and put it in ./web.  Then you can run the following:

# ./upnp_tv_combo

Initializing UPnP Sdk with 
         ipaddress = (null) port = 0

UPnP Initialized
         ipaddress= 192.168.1.130 port = 49153

Specifying the webserver root directory -- ./web

Registering the RootDevice
         with desc_doc_url: http://192.168.1.130:49153/tvcombodesc.xml

RootDevice Registered

Initializing State Table

Found service: urn:schemas-upnp-org:service:tvcontrol:1

serviceId: urn:upnp-org:serviceId:tvcontrol1

Found service: urn:schemas-upnp-org:service:tvpicture:1

serviceId: urn:upnp-org:serviceId:tvpicture1

State Table Initialized

Advertisements Sent

Intializing UPnP with ipaddress=(null) port=0
WinCEStart: UpnpInit() Error: -105
UPnP Initialized (192.168.1.130:-16383)
Registering Control Point
Control Point Registered


It did also discover a net camera we have:


UPNP_DISCOVERY_ADVERTISEMENT_ALIVE

ErrCode     =  0
Expires     =  1800
DeviceId    =  uuid:4d454930-0000-1000-8000-0080f053ea1a
DeviceType  =  urn:schemas-upnp-org:device:Basic:1
ServiceType =  
ServiceVer  =  
Location    =  http://192.168.1.124:1900/cameradesc.xml
OS          =  Embedded/1.0 UPnP/1.0 IPCamera-UPnP/1.0
Ext         =