How-To: UPnP over XMPP



Sharing/Accessing UPnP MediaServers over XMPP in 7 steps

This little howto explains briefly how you can easily share and access UPnP devices using Coherence and Telepathy over XMPP.

Ingredients:

  • you and one or more friends
  • your jabber account and a jabber conference server
  • some media files
  • a UPnP compatible media-player, like Rhythmbox or Totem
  • or any UPnP device in your living room (PS3, ...)

The obligatory warning: this stuff describes how to share any local MediaServer you might have in your LAN across the internets. So be careful about what you share ;)

The second warning: Mirabeau is not yet able to traverse NATs. This means that if you are behind a router (typical setup for DSL connections), you need to enable its UPnP support (using the admin interface).

An experimental Maemo UI is also available (there are less steps :) ).

Steps to follow:

  1. Install the various telepathy packages, especially telepathy-gabble (>= 0.7.30) and telepathy-python (>= 0.15.8)

  2. Checkout the development version of Coherence:

    $ git clone https://github.com/coherence-project/Coherence.git
    $ git clone https://github.com/coherence-project/Mirabeau.git
    $ cd Coherence
    
  3. Configure Coherence

    $ cp docs/mirabeau.xml my-mirabeau.xml
    # edit the config: jabber account, conf server, jabber room and eventually a media folder
    # you want to share with your friends
    
  4. Start Coherence, it will connect to your jabber account, join the chatroom and start offering data to other participants of the room:

    $ PYTHONPATH=$PWD:$PYTHONPATH ./bin/coherence -c my-mirabeau.xml
    
  5. Ask your friends to do the same. You need to all agree on a common conference server and chatroom name! conference.jabber.org is a good choice. (NB: Your friends need to be in your Jabber roster also)

  6. While people join the room, your local Coherence instance starts connecting to the tubes available in the room and translate them to local UPnP devices. Coherence should print informations on the console output each time a new incoming tube is opened and accepted.

  7. Start your media player and/or other UPnP compatible clients. Remote devices of the people in the room should show up and be browseable!