Tutorial / Howto / How-To ...
article en cours de rédaction
Dans cette page, j’ai mis mes notes sur les tests UPnP que je suis en train de réaliser. Les logiciels testés sont de préférence sous GNU/Linux :) Pour avoir plus d’informations concernant l’installatino de ces logiciels, vous pouvez voir mon article précédent : Partager des contenus avec UPnP.
J’utilise les logiciels suivants sur mon réseau (en attendant de vrais périphériques UPnP :) :
- uShare (UPnP Server)
- gmediaserver (UPnP Server)
- mediatomb (UPnP Server)
- djmount (UPnP Client)
- gmediarender (UPnP Renderer ou Client)
- cidero (UPnP Controller)
Description de la configuration
Le répertoire /home/petrus/share est partagé en UPnP ; il contient 3 sous-répertoires : audios, pictures, videos.
$ tree /home/petrus/share
/home/petrus/share
|-- audios
| |-- Brother John
| | |-- JunkyFazz.mp3
| | |-- album1
| | | |-- GodMakeMeDubby.mp3
| | | `-- OrganDonuts.mp3
| | `-- album2
| | |-- SergeEnPetitsMorceaux.mp3
| | `-- tenderness.mp3
| `-- recursive_test
| `-- Brother John -> ../Brother John
|-- pictures
| |-- covers
| | |-- da_vinci_code_poster.jpg
| | |-- kingkong_200510112253.jpg
| | |-- supermanreturns_200512081503.jpg
| | |-- vforvendetta_200512151209.jpg
| | `-- x3_200512051032.jpg
| `-- wallpapers
`-- videos
`-- trailers
|-- da_vinci_code-tsr2_h480p.mov
|-- king_kong_h480p.mov
`-- x-men_3-pre_teaser_h480p.mov
Utilisation de djmount
$ djmount /mnt/upnp
$ ls /mnt/upnp
debug/ devices GMediaRender/ gmediaserver/ MediaTomb/ test/ ushare/
$ tree /mnt/upnp/ushare
/mnt/upnp/ushare
|-- browse
| `-- share
| |-- audios
| | |-- Brother John
| | | |-- JunkyFazz.mp3
| | | |-- JunkyFazz.xml
| | | |-- album1
| | | | |-- GodMakeMeDubby.mp3
| | | | |-- GodMakeMeDubby.xml
| | | | |-- OrganDonuts.mp3
| | | | `-- OrganDonuts.xml
| | | `-- album2
| | | |-- SergeEnPetitsMorceaux.mp3
| | | |-- SergeEnPetitsMorceaux.xml
| | | |-- tenderness.mp3
| | | `-- tenderness.xml
| | `-- recursive_test
| | `-- Brother John
| | |-- JunkyFazz.mp3
| | |-- JunkyFazz.xml
| | |-- album1
| | | |-- GodMakeMeDubby.mp3
| | | |-- GodMakeMeDubby.xml
| | | |-- OrganDonuts.mp3
| | | `-- OrganDonuts.xml
| | `-- album2
| | |-- SergeEnPetitsMorceaux.mp3
| | |-- SergeEnPetitsMorceaux.xml
| | |-- tenderness.mp3
| | `-- tenderness.xml
| |-- pictures
| | |-- covers
| | | |-- da_vinci_code_poster.jpg
| | | |-- da_vinci_code_poster.xml
| | | |-- kingkong_200510112253.jpg
| | | |-- kingkong_200510112253.xml
| | | |-- supermanreturns_200512081503.jpg
| | | |-- supermanreturns_200512081503.xml
| | | |-- vforvendetta_200512151209.jpg
| | | |-- vforvendetta_200512151209.xml
| | | |-- x3_200512051032.jpg
| | | `-- x3_200512051032.xml
| | `-- wallpapers
| `-- videos
| `-- trailers
| |-- da_vinci_code-tsr2_h480p.mov
| |-- da_vinci_code-tsr2_h480p.xml
| |-- king_kong_h480p.mov
| |-- king_kong_h480p.xml
| |-- x-men_3-pre_teaser_h480p.mov
| `-- x-men_3-pre_teaser_h480p.xml
`-- status
Utilisation de test_upnp
La commande test_upnp est fournie avec djmount ; elle permet de lancer quelques commandes UPnP :
$ test_upnp
[...]
>> help
Valid Commands:
help
loglevel <max log level (0-3)>
leak
leakfull
listdev
refresh
printdev <devname>
browse <devname> <objectId>
metadata <devname> <objectId>
ls <devname> <path>
action <devname> <serviceId> <actionName>
exit
>> listdev
DeviceList:
gmediaserver -- uuid:5177fca0-c42d-11d8-9669-0800200c9a66
GMediaRender -- uuid:GMediaRender-1_0-000-000-002
ushare -- uuid:00:11:2F:C7:56:0E
MediaTomb -- uuid:65a0aae2-80ef-40eb-b15c-4eb34ecd5bb9
>> printdev ushare
Device "ushare" (expires in 1770 seconds)
|
+- Discovered on = Sat Dec 24 03:20:27 2005 (51 seconds ago)
+- UDN = uuid:00:11:2F:C7:56:0E
+- DeviceType = urn:schemas-upnp-org:device:MediaServer:1
+- DescDocURL = http://10.0.0.4:49152/description.xml
+- FriendlyName = ushare
+- PresURL = http://10.0.0.4:49152/web/ushare.html
+- talloc memory = 20 blocks / 17270 bytes
|
+- Service
| |
| +- Class = Service
| +- Object Name = Service
| +- ServiceId = urn:upnp-org:serviceId:ConnectionManager
| +- ServiceType = urn:schemas-upnp-org:service:ConnectionManager:1
| +- EventURL = http://10.0.0.4:49152/web/cms_event
| +- ControlURL = http://10.0.0.4:49152/web/cms_control
| +- ServiceStateTable
| +- Last Action = (null)
| +- SID = uuid:d934a63c-1dd1-11b2-9c97-9c58ff6c7302
|
+- Service
|
+- Class = ContentDir
+- Object Name = ContentDir
+- ServiceId = urn:upnp-org:serviceId:ContentDirectory
+- ServiceType = urn:schemas-upnp-org:service:ContentDirectory:1
+- EventURL = http://10.0.0.4:49152/web/cds_event
+- ControlURL = http://10.0.0.4:49152/web/cds_control
+- ServiceStateTable
+- Last Action = (null)
+- SID = uuid:d934ef34-1dd1-11b2-9c97-9c58ff6c7302
+- Cache size = 1024
+- Cached entries = 0 (0%)
+- Cache timeout = 60 seconds
+- Cache access = 0
>> browse ushare 0
share
>> browse ushare 1
audios
pictures
videos
>> browse ushare 2
Brother John
recursive_test
>> ls ushare /share/
ls '/share/' :
audios
pictures
videos
-> path left to match : '/'
Utilisation du module CPAN Net ::UPnP
Pour lister mes périphériques UPnP, j’ai écrit un script perl upnp-controller.pl utilisant la librairie CPAN Net ::UPnP disponible sur le site de cybergarage. Il est en cours de développement. Pour le moment, il liste tous les périphériques UPnP et affiche automatiquement les partages des périphériques UPnP A/V. Je suis en train d’écrire une version en Gtk2 pour que ce soit plus joli :o)
Utilisation de cidero
Commentaires
Aucun commentaireAjouter un commentaire