[Telepathy] Proposed standard MC API

Xavier Claessens xclaesse at gmail.com
Fri Aug 10 12:08:14 PDT 2007


Le vendredi 10 août 2007 à 15:57 +0100, George Wright a écrit :
> On Friday 10 August 2007 15:54:40 George Wright wrote:
> > - Ironing out, peer review.
> 
> Woops, forgot that we still need to do profiles.

Profiles are the hard part I think... The following is based on NMC
profile definition.

Here is why I think profiles should be per client:

1) They have translated fields
2) Clients wants to select "blessed" CM that works for them. A client
without MUC won't install tp-idle profile, clients don't want to support
officially the last very unstable CM that will break everything.
3) There is UI related information, like which UI plugin to use to
display the protocol-specific setting widget.
4) Some defaut values for CM depends on policies, like should we
ignore-ssl-errors which is a security flaw but (atm) required to connect
GTalk.

For those reasons a client can't use a profile installed by another
client. This means we won't be able to use an account created by one
client in another client... And what if I uninstall one client, I loose
all my accounts? That's not an option !

CM already provide their own default values, they can't add anything in
a profile that isn't already available via telepathy spec. And they
can't provide translated strings, protocol icon, etc.

Maybe a solution would be to let MC install profiles itself, like that
we don't specify a file format but only a DBus API to let clients
read-only access information of all profiles. The only thing that can't
be done inside MC is the UI setting plugin to use, but that's not a big
lost, clients can just select the ui based on the protocol/CM name.

At DBus level, AccountManager object needs a ListProfiles()->ao method.
And the profile API looks like:

GetConnectManagerName()-> s
GetProtocolName()-> s
GetDisplayName()-> s --> Translated string
GetDescription() -> --> Translated string
GetIconName() -> s --> Following the fd.o icon-naming spec.
GetCapabilities -> as
  possible capabilities copied from NMC:
  "chat-p2p"
  "chat-room"
  "chat-room-list"
  "voice-p2p"
  "contact-search"
  "split-account"
  "registration-ui"
  "supports-avatars"
  "supports-alias"
  "supports-roster"
GetSupportedPresences() -> au
GetVCardField() -> s
IsDefaultVCard() -> b

Maybe we can specify a file format to store profiles and MC should then
look for
<all xdg dirs>/share/mission-control/*.profile

Like that other programs can install additional profiles and users can
add in ~/.local/ That should work but those additional profiles won't
have translated strings.

I'm sure there will be lots of comments :D

Xavier Claessens.



More information about the Telepathy mailing list