integrated communication framework for gnome - elements of telepathy

Download Integrated communication framework for GNOME - elements of Telepathy

If you can't read please download the document

Upload: naba-kumar

Post on 16-Apr-2017

4.417 views

Category:

Technology


0 download

TRANSCRIPT

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

[email protected]

[email protected]

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