Slide 1
Integrated communication framework for GNOME elements of telepathy
Naba Kumar,
Real Time Communications team,
Maemo, Nokia
16.07.2007
Internet communication
Users depending more on Internet communication
Applications providing more online features
Communication with users, not computers
Too many (different) ways to communicate
Unifying different communication methods
Communication as a service, not application
Talk
Telepathy framework
Telepathy mission control
What is it?
How it Works?
What is there for applications?
How to extend it?
User interface applications
Telepathy unifying Internet communication
Defines a set of standard interfaces - DBus
Main goals
Break monolithic comm applications
Allow independent development
Isolates protocol implementations
Connection Manager for each protocol
Implements Telepathy interfaces
Components talk Telepathy to each other
New protocols can be added easily
Telepathy interfaces
XMPP protocol
SIP protocol others
Connection Managers
Telepathy-gabble (jabber/google-talk)
Implements xmpp protocol
Chat/Group chat/audio call/video call
Very mature
Telepathy-idle (IRC)
Functional
Telepathy-sofiasip (SIP)
Based on sofia-sip stack
P2P messaging
Basic audio/video call support
Telepathy-wilde (AIM/ICQ)
Telepathy-salut (Link-Local)
Telepathy-butterfly (MSN)
Telepathy Mission Control gateway to Telepathy
Runs as a DBUS service daemon
Persistent as long as user is online
Maintains all connections states
Maintains all channels states
Aggregates and maintains users presence
Notifies presence and connection changes
Listens for any communication channels
Forwards incoming channels to respective client handler
Takes requests to create outgoing channels from clients
Provides accounts management API
Telepathy Stack
Connection ManagerConnection ManagerConnection ManagerTelepathyMission ControlClient (Presence UI)Client (Chat UI)Client (Audio/Video UI)
On Desktop
EDS (contacts)Evolution Data ServerEDS-syncChat UIPresence UI
(Desktop Panel)telepathy-feed
galago(contacts presence)
Connection Manager
Audio/Video call UIStream engine
Accounts UIConnection ManagerConnection Manager
Application
mission control
MC maintains states
Maintains telepathy connections states
Creates and destroys connection objects.
Takes accounts online as needed
Monitors their health
Reconnects if necessary
Notifies account statues
Monitors activities on channels
Maintains channels life cycle.
Makes sure every channel has a handler running
MC Presence and Channel handling
Chat/Call UIChessPresence UI
Offline
Online
Away
Invisible
FilterFilter
Channel
FilterFilter
ChannelRequestCMCMCMAggregationMission ControlDispatchDispatch....
User presence
Single presence set
Maintains the requested presence internally
Maps user presence to Service
Going online
Determines connection profile for the account
Connects with respective CM
Aggregates all CMs presences to form user presence
Mission Control Channel handling
Applications install handler files
Describing service details
Installed in standard path
MC reads all registered channel handlers
On new incoming channels, MC determines the best handler
Extending mission control
Channel Filters
Incoming/outgoing channels are intercepted by series of filters
Can be used for
User notifications
Blocked contacts check
Waking up
Logging
Applications can install their own filters
Shared library plugins
DBus filters
Alternate MC server implemenation
Derived mission control server
Platform-specific implementation
Implementation for custom provisioning
MC User accounts and Profiles
Managers
Supported protocols
Default connection parameters
Installed by Connection Managers
Static
Profiles
Service name and icon
Connection parameters
Manager to use
Protocol to use
Installed by UIs
Static
User accounts
Info (avatar, name etc.)
Credentials (username, password etc.)
Profile to use
Created by accounts UI
Dynamic and syncable
User accountService profile(SIP)User accountUser accountService profile(jabber)Service profile(google talk)SIP ManagerXMPP Manager
User account
Service provisioning
Service providers to export connection settings
Users only configure minimal provisioning parameters
Mission control retrieves the parameters
Prior to going online
Caches them for some time
Multiple provisioning implementation
Useful with SIP accounts
Can be used for other services
Telepathy Tubes
Mechanism for arbitrary data transfer
send D-Bus messages
Arbitrary streams (like TCP)
Used for application specific data transfers
Implemented in Gabble and Salut.
single and multiple users
Used on OLPC
Abiword-based collaborative "Write" activity
Things to do
Define DBus interface for Accounts management
Currently only C API available (but usable across DBus)
Allows clients to access it exclusively via DBus only
Implement telepathy tubes handling
Empathy
Implements the UI components
Chat/MUC UI
Contacts List
Presence UI
Notifications
Accounts creations
Widgets for other applications to embed
Under development
Voip UI (SoC project)
Utilizing gossips widgets
Xavier Claessens
Audio/Video Call
Stream engine
Interfaces with Telepathy
Handles Streamed Media channels
Uses Farsight for streaming sessions
Farsight
Audio/video streaming library
Uses GStreamer for media streaming
Provides RTP gstreamer plugin
Audio/Video call UI
Google SoC project
To implement the UI in Empathy
Stream EngineAudio/video call UIFarsightGStreamer
Philippe KhalafCollabora
Contacts
telepathy-feed for galago
Galago-daemon
Monitors telepathy connections
Feeds Presence & Capabilities
eds-sync for syncing contacts with evolution-data-server
Handler for telepathy contact list channel
Syncs contacts
Binds user accounts
fetches and caches avatars
Handles remote and local blocking
Handles authorization requests
Soylent
People browser Travis Reitter
Telepathy on Maemo
Internet Communications SW update for N800
(development version)
Work in progress!
Updates
SIP connection manager for Telepathy Framework
Based on Sofia SIP stack
Supports VoIP calls to SIP addresses (including PSTN numbers)
UI improvements
Avatar support (XMPP)
Account configuration UI updates
Improvements in Call and Chat
Imrovements in Address Book
Google Talk relay support
Various other updates
Install
http://rtcomm.garage.maemo.org/
Feedback
http://bugzilla.maemo.org
Links
Telepathy Framework: http://telepathy.freedesktop.org/
Mission Control: http://mission-control.sourceforge.net/
DBus: http://freedesktop.org/wiki/Software/dbus
Empathy: http://live.gnome.org/Empathy
Galago: http://www.galago-project.org/
Farsight: http://projects.collabora.co.uk/farsight
Telepathy Feed: http://telepathy.freedesktop.org/releases/telepathy-feed
Eds-sync: https://garage.maemo.org/svn/eds/trunk/eds-sync/
Thank you
2007 Nokia