[Telepathy] Mission Control Spec

Tobias Hunger tobias at aquazul.com
Thu Nov 2 06:35:56 PST 2006

On Thursday 02 November 2006 00:33, Raphaël Slinckx wrote:
> Good night !
> I sense excitement through my powerful telepathy skills. I also
> perceive it's because I just finished the Mission Control API Spec
> proposal !
> http://telepathy.freedesktop.org/wiki/Mission_Control

Hi Raf!

First I want to thank you for taking the time to write such a proposal. I do 
have a couple of issues with it though that I would like to address:

The first thing is that you do not mention Connection Manager/profile 
management at all. In my understanding that is one of the three central 
aspects of a mission control component (with the others being account 
management and componet startup). Will you still add such a part at some 
later time?

Account Management:

I found you mentioning profile management here and was a bit confused by that. 
Maybe you could work over the wording a bit to make it clearer how profile 
management relates to account management?

I further do not see the need of a changed flag. The GUI should be able to 
figure out which accounts it changed pretty well without the help of the 
account management.

The fixed string to identify an account is a nice idea, but I would prefer 
using a handle here: It is shorter, faster to compare and more consistent 
with the rest of telepathy. You already propose to have a "Name" (which I 
would personally change to "display-name" to make its purpose more clear) 
later on which can be set by the user. That is what most UIs will use to 
describe the account to the user, so I see no need for a human-readable ID,

I do not see why you need a enable/disabled state. In Houston all the accounts 
stored in the AccountManager are what you call enabled. An account 
configuration application can always back up the data from some accounts and 
store it someplace on the filesystem to simulate your proposed disabled 
state. In my opinion this is nothing a MC component needs to be concerned 
about. We should keep things as simple and flexible as possible.

Editing account settings is something you should not leave out of your API 
though! This is a pretty central aspect of the whole account management after 
all and has a great impact on being able to use account configuration 
applications from one MC on another.

I do not understand why you are trying to add contacts to accounts (maybe my 
understanding of that problem space is just lacking). I am trying to keep the 
concepts of contact and account as separate as possible in Decibel and am 
trying to push contact handling out of Houston itself. I have to admit that I 
am so far not sure whether this works out the way I hope it will;-) 

Synchronising personal data, presence and connection status across accounts:

Sorry, I do not think that is a good thing to enforce in a central policy 
daemon. I often want to stay online with one account and not with another or 
have a pseudonym on one account and my real name on an other, etc. I do not 
want that data to by in sync at all times.

I prefer having a interface to modify *one* account at a time in Decibel's 
Houston. A client application can then do the synchronisation business if the 
user wants that... much more flexible this way.

Requesting Channels:

This part is OK with me, but the chandler files seem much to coarse grained 
for my taste and to inflexible. Users will want to configure this, having to 
change around files in some system directory is nothing anyone will want to 

Stuff outside of Raf's proposal:

Some part that is sadly not addressed by telepathy so far and would be really 
nice to have in a mission control component is an option to get a description 
of capabilities of a Connection Manager: This CM does support encryption (or 
does not), etc. Currently there is just no algorithmic way to find a good CM 
to try for a connection request: Basically the programmer has to know which 
capabilities a CM has. That is very unsatisfactory: It would be much nicer if 
the CMs would describe their capabilities, so that a mission control 
component can pick the "right" CM for a connection.

I know that this whether a encrypted connection is possible depends on more 
than just our CM, but it does not make sense to try for something that the CM 
at our end can not do. Why should I try CM X to eg. transfer a file to 
someone else if X can not transfer files? If CM Y can do so, then I should 
try that one so that I can report to the user "It is the servers fault" when 
the transfer is not possible;-)

How about adding a capabilities interface to the CMs?

I hope I was not destructive with my criticism. It is great that somebody is 
working on such an important add-on to telepathy! Please keep up your work.

Best Regards,
Tobias Hunger
-------------- 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/20061102/5a1c8127/attachment.pgp

More information about the Telepathy mailing list