Integrated communication framework for GNOME – elements of telepathy <ul><ul><li>Naba Kumar,  </li></ul></ul><ul><ul><li>R...
Internet communication <ul><li>Users depending more on Internet communication </li></ul><ul><li>Applications providing mor...
Talk <ul><li>Telepathy framework </li></ul><ul><li>Telepathy mission control </li></ul><ul><ul><li>What is it? </li></ul><...
Telepathy – unifying Internet communication <ul><li>Defines a set of standard interfaces - DBus </li></ul><ul><li>Main goa...
Connection Managers <ul><li>Telepathy-gabble (jabber/google-talk) </li></ul><ul><ul><li>Implements xmpp protocol </li></ul...
Telepathy Mission Control – gateway to Telepathy <ul><li>Runs as a DBUS service daemon </li></ul><ul><ul><li>Persistent as...
Telepathy Stack Connection Manager Connection Manager Connection Manager Telepathy Mission Control Client (Presence UI) Cl...
On Desktop mission control EDS (contacts) Evolution Data Server EDS-sync Chat UI Presence UI (Desktop Panel) telepathy-fee...
MC maintains states <ul><li>Maintains telepathy connections states </li></ul><ul><ul><li>Creates and destroys connection o...
MC – Presence and Channel handling Chat/Call UI Chess <ul><li>Presence UI </li></ul><ul><li>Offline </li></ul><ul><li>Onli...
User presence <ul><li>Single presence set  </li></ul><ul><li>Maintains the requested presence internally </li></ul><ul><li...
Mission Control Channel handling <ul><li>Applications install handler files </li></ul><ul><ul><li>Describing service detai...
Extending mission control <ul><li>Channel Filters </li></ul><ul><ul><li>Incoming/outgoing channels are intercepted by seri...
Alternate MC server implemenation <ul><li>Derived mission control server </li></ul><ul><li>Platform-specific implementatio...
MC – User accounts and Profiles <ul><li>Managers </li></ul><ul><ul><li>Supported protocols </li></ul></ul><ul><ul><li>Defa...
Service provisioning <ul><li>Service providers to export connection settings </li></ul><ul><li>Users only configure minima...
Telepathy Tubes <ul><li>Mechanism for arbitrary data transfer </li></ul><ul><ul><li>send D-Bus messages </li></ul></ul><ul...
Things to do <ul><li>Define DBus interface for Accounts management </li></ul><ul><ul><li>Currently only C API available (b...
Empathy <ul><li>Implements the UI components </li></ul><ul><ul><li>Chat/MUC UI </li></ul></ul><ul><ul><li>Contacts List </...
Audio/Video Call <ul><li>Stream engine </li></ul><ul><ul><li>Interfaces with Telepathy </li></ul></ul><ul><ul><li>Handles ...
Contacts <ul><li>telepathy-feed  for galago </li></ul><ul><ul><li>Galago-daemon </li></ul></ul><ul><ul><li>Monitors telepa...
Soylent Travis Reitter People browser …
Telepathy on Maemo
Internet Communications SW update for N800   ( development version ) <ul><li>Work in progress! </li></ul><ul><li>Updates <...
Links <ul><li>Telepathy Framework: http://telepathy.freedesktop.org/ </li></ul><ul><li>Mission Control: http://mission-con...
Thank you
Upcoming SlideShare
Loading in …5
×

Integrated communication framework for GNOME - elements of Telepathy

4,317 views
4,201 views

Published on

Internet-based communication has now become as common as web browsing, and has grown beyond pure e-mailing or instant messaging. The variety of communication services and applications available today call for an integrated communication framework. Because of the growing popularity of GNOME Desktop, it is thus natural to think of such a framework for it.

Mission Control, along with rest of the Telepathy framework components, constitutes a complete communication platform. Telepathy framework provides unified ways to access communication protocols, such as XMPP, SIP, IRC and so on. Mission Control is a Telepathy component that decentralizes communication based on Telepathy framework and presents means for applications to tap into user's communication channels (IM/voip/presence etc.). In this talk we will see what this integration could bring to the application developers, along with several example scenarios.

By using Mission Control within the Telepathy Framework we enable GNOME Desktop users to utilize just about any communication service, using a single unified framework. See http://mission-control.sourceforge.net and http://telepathy.freedesktop.org

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
4,317
On SlideShare
0
From Embeds
0
Number of Embeds
38
Actions
Shares
0
Downloads
152
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Integrated communication framework for GNOME - elements of Telepathy

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

×