[Telepathy] mission control API

Tobias Hunger tobias at aquazul.com
Fri Oct 13 02:44:05 PDT 2006


Hi Daf!

Sorry for answering only now, I was at the Linux World in the Netherlands and 
had very limited connectivity for the last two days. I put in the Houston 
equivalents to the groups of functionality you propose in all uppercase:-)

On Tuesday 10 October 2006 17:28, Dafydd Harries wrote:
> 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.

ACCOUNTMANAGER:

>  - Unifying presence across accounts
<snip>
>    On second thoughts, perhaps the client or a presence applet should be
>    responsible for auto-away.

I want to have a AccountManager in Houston, that can be used to bring accounts 
online as required. I further want to keep the code in Houston minimal, so I 
do prefer having a application outside of Houston doing the unifying. It 
should be trivial to write with a good API for bringing accounts 
online/offline.

I do consider online/offline/presence state as part of the account settings, 
which is why this sails under the heading of "AccountManager" in Houston.

>  - 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.

I fully agree.

>    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.

Yes, it would be so cool if gnome-keyring and kwallet would be able to agree 
on one share DBus Interface!

<snip>
>    For editing accounts:
>
>    CreateAccount(s: name)
>    SetAccountProperty(s: account, s: property, v: value)
>    GetAccountProperty(s: account, s: property) -> v
>    DeleteAccount(s: name)

I left out a method to list all known accounts.

COMPONENTMANAGER:

>  - 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?

I do think this requires an API: The user should be able to configure which 
applications are started in response to which channels.

>  - Advertise capabilities

Not sure where this belongs... probably into the AccountManager, maybe in the 
ComponentManager.

>    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 have to admit that so far I did not think too hard about this issue, but 
your suggestion sounds OK.

> I think this covers the major areas of functionality. Did we miss anything?

PROTOCOLMANAGER:

In the interest of abstraction (yes, I know you do not like that too much;-) 
I'm implementing a ProtocolManager. It is a really thin wrapper around 
tapioca-qt that hides the ConnectionManagers from the view of the application 
programmer. It has a very simple API which allows to query CMs by protocol 
and has a method to return the "preferred CM" for a protocol. I am pretty 
sure we will end up with several CMs for each protocol (we are working on 
open source after all;-) and so there must be a way to configure which one to 
use.

It is further no use to require a application programmer to remember 
that "gabble" == "jabber" ;-)

Best Regards,
Tobias
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/telepathy/attachments/20061013/6e6b4d1e/attachment.pgp


More information about the Telepathy mailing list