Speaker Sjoerd Simons
Time 2009-01-21 11:40
Conference LCA2009

XMPP protocol extension for managing peer to peer video and audio sessions.

XMPP

  • Based on XML.
  • Formally known as Jabber.
  • RFC3920 and RFC3921.
  • Extensions using XEP (extension proposals).
  • JID - looks like an email address.
  • juliet@domain.com/resource - multiple clients on same account.
  • message, presence, info/query

Jingle

  • Extension to XMPP
  • Supports RTP

MUC - Multi User Chat

Multi User Jingle

  • Should work ok for clients that don’t support Multi-user Jingle.
  • Joining Multi User Jingle session split into two stages to prevent race conditions.

Steps to join a session:

  1. Announce that you’re preparing to start or join the session. Send a presence message.
  2. After all clients that nnounced they were preparing to join have done so, update your presence with payload mapping.

Multi User Jingle

  • only needs basic infrastructure.
  • each client can present conference in different manner.
  • does not scale to large groups, due to bandwidth requirements.
    • Limited to number of streams a client can decode.
    • upstream bandwidth
    • local bandwidth

Further work

Problem: not scalable

  • RTP relay. Clients send streams to a relay, which relays to multiple clients.
  • Mixer - client send streams to a mixer which combines streams into one stream. Unfortunately clients no longer have control over presentation.
  • Combined relay and mixer. Clients choose if they want to receive a mixed stream or not. Allows clients to decide on tradeoff.

Problem: each client encodes data once, so must do so using method that is compatable with all other clients.

  • Scalable Video codecs. Low resolution low quality base layer. Add extra layers for extra quality. Client decides which layers it wants to send. H264/SVC exists but is heavily patented. No free standard available.

http://telephathy.freedesktop.org/wiki/MultiUserJingle http://www.nlnet.nl/project/mujingle/ http://farsight.freedesktop.org/ http://nice.freedesktop.org/