[Telepathy] mission control API
Dafydd Harries
dafydd.harries at collabora.co.uk
Tue Oct 10 08:28:00 PDT 2006
I spent a bit of time with Raphaël at Boston thinking about what mission
control needs to do, and what API it needs to provide.
- Unifying presence across accounts
By this, I mean that mission control tries to keep all your accounts in a
consistent state. If you tell mission control that you want to go online,
it will bring all of your accounts online. If you are idle, it will set all
your accounts away. If a connection falls offline due to a network error,
it will try to reconnect it. It can also signal an error to a UI if an
account fails to authenticate. (I'm thinking in terms of supporting the UI
Gossip currently for indicating that an account failed to connect.)
It may be possible for mission control to use NetworkManager to know of
network connections/disconnections and connect/disconnect connection
managers as appropriate.
On second thoughts, perhaps the client or a presence applet should be
responsible for auto-away.
In terms of API, I think a simple SetPresence call / PresenceChanged signal
should cover most requirements.
- Manage accounts
Mission control must be able to read your account information. It is useful
if a graphical account settings editor can use mission control to add, edit
and remove accounts.
While such an API would allow, e.g. a KDE Telepathy accounts editor to edit
accounts on a Gnome mission control, this does not necessarily mean that
KDE and Gnome share account information, which is a shame. We could try and
get KDE and Gnome to use the same storage format for accounts, but
currently this has drawbacks: e.g. storing account information in GConf
allows for notifications when the information changes. If a freedesktop.org
standard for configuration storage emerges, then we can consider to
migrating to it at that point, I think.
For editing accounts:
CreateAccount(s: name)
SetAccountProperty(s: account, s: property, v: value)
GetAccountProperty(s: account, s: property) -> v
DeleteAccount(s: name)
- Launch channel handlers
I don't think this requires any API unless we're intersted in being able to
configure MC to suppress incoming channels. We could make MC ignore
incoming channels from contacts on the deny list for instance, but perhaps
this behaviour belongs in the client. Yesno?
- Advertise capabilities
Tell online accounts that we are able to e.g. receive video calls. I think
this can look the same as the AdvertiseCapabilities method on connections,
and that the race/failure model of that API should multiplex ok.
I think this covers the major areas of functionality. Did we miss anything?
--
Dafydd
More information about the Telepathy
mailing list