Adding more protocols to Empathy

Seems lots of users are complaining about the lack of supported protocols in Empathy. In fact all protocols implemented in libpurple are easy to enable with empathy thanks to telepathy-haze. All you need is a .profile file describing some features, the icons to use, etc.

So I’m adding those profiles by default now but I need some info about protocols I never used myself: gadugadu, myspace, qq, sametime, simple, snpp, zephyr.

1) I need to know yes or no those features are supported:

  • chat-p2p – Private chat.
  • chat-room – Chat with multiple users, the XMPP/IRC way, not MSN-like which is private chat where we can invite more members.
  • chat-room-list – List public rooms on a server, like XMPP/IRC do.
  • voice-p2p – Private audio call
  • contact-search –
  • split-account – account are in the form of user@server.com, in that case the “@server.com” can be omitted and replace by a default value. For example gtalk profile have that feature so you can type “myaccount” and it will be translated magically to “myaccount@gmail.com”
  • registration-ui -The possibility to register a new account on the server, like XMPP.
  • supports-avatars – Does contacts have avatars, can I set my own avatar.
  • supports-alias – Does contacts have alias, can I set my own alias.
  • supports-roster – Is there a list of contacts for that protocol?
  • video-p2p – Private video call

2) For protocols having split-account feature I need to know the default domain to use. For example the gtalk profile says to use “@gmail.com” if the user didn’t type his full ID.

3) For each of those presence I need to know yes or no they are supported by the protocol:

  • offline – obvious
  • available – when you are online, ready to chat
  • away – when you are af, automacitally when you don’t touch your computer for a while
  • extended-away – whn you are afk for a long tim, automatically set when you are away for a while
  • hidden – You are online but don’t want others to know that
  • do-not-disturb – You are working on other things and don’t want to chat

4) What is the name I should display for qq and xnpp?

If you are able to answer those questions please let a comment or send me and email.

Thanks.

15 thoughts on “Adding more protocols to Empathy”

  1. Note: the jabber protocol is called XMPP not XNPP. And I would really only display this name.

    Btw: is haze maintained? If yes, wouldn’t it be better to ship those definition files with haze itself? I know there’s the gabble cm but besides that I don’t see any other working (for production use) cm besides the pidgin ones.

    Also what happens if a protocol has feature XY but the CM does not implement it (yet)? Can the definition just be the full one and telepathy handles this automatically in the background or will there be errors shown to the user?

  2. @Michael

    The writer says “So I’m adding those profiles by default now but I need some info about protocols I never used myself: gadugadu, myspace, qq, sametime, simple, snpp, zephyr.”

    So “Btw: is haze maintained? If yes, wouldn’t it be better to ship those definition files with haze itself? ”
    Is redundant

  3. Gadu-Gadu:

    * chat-p2p – yes
    * chat-room – n/a
    * chat-room-list – n/a
    * voice-p2p – yes, but proprietary
    * contact-search – yes
    * split-account – n/a
    * registration-ui – yes
    * supports-avatars – n/a
    * supports-alias – you mean change the name of the contact from its number to a defined string on the roster? yes
    * supports-roster – yes
    * video-p2p – n/a

    2) For protocols having split-account feature I need to know the default domain to use. For example the gtalk profile says to use “@gmail.com” if the user didn’t type his full ID.

    n/a

    3) For each of those presence I need to know yes or no they are supported by the protocol:

    * offline – yes + status text
    * available – yes + status text
    * away – yes + status text
    * extended-away – n/a
    * hidden – yes + status text
    * do-not-disturb – n/a

  4. Micheal > I believe he was refering to SNPP and not XMPP, he probably made a mix between the two.

  5. If you got MSN support, you can reach 90+% of the instant messenging people on this planet. That’s enough for orginary average joes, never mind the whines from couple nerds about their eccentric protocol X not being supported.

  6. QQ Procontrol:
    * chat-p2p Yes
    * chat-room Yes
    * chat-room-list Can be done with original QQ client, but not with libpurple yet.
    * voice-p2p Can be done with original QQ client, but not with libpurple yet.
    * contact-search Can be done with original QQ client, but not with libpurple yet.
    * split-account No need
    * registration-ui No
    * supports-avatars Can be done with original QQ client, but not fully support by libpurple yet.
    * supports-alias Yes
    * supports-roster No idea, maybe
    * video-p2p Can be done with original QQ client, but not with libpurple yet.
    * offline Yes
    * available Yes
    * away Yes
    * extended-away Can be done with original QQ client, but not with libpurple yet.
    * hidden Yes
    * What is the name I should display for qq and xnpp? QQ Should be O.K.

  7. If empathy doesn’t support QQ protocol, there is a few market it will gain in China mainland.

  8. @Michael: Right, SNPP
    Those profiles are required by the current MissionControl but we are working on a new dbus spec to replace it which does not require profiles.

    In fact we need features supported by the protocol AND implemented by the CM, but most of those features flags are in fact not used by empathy, so it’s not really important.

    @Tomasz: Thanks you very much, I added gadu gadu in trunk. Please give it a try as nobody actually tested it!

    @JimHu: Thanks you very much, I added QQ in trunk. Please give it a try as nobody actually tested it!

  9. Wow, you’re making a really great job with Empathy! I hope it gets accepted into Ubuntu and OpenSuse, because it’s really the most promising IM client out there!

  10. ” * chat-room – Chat with multiple users, the XMPP/IRC way, not MSN-like which is private chat where we can invite more members.”

    Does Haze ever support this? Check the source code.

    ” * chat-room-list – List public rooms on a server, like XMPP/IRC do.”

    Does Haze ever support this? Check the source code.

    ” * voice-p2p – Private audio call”

    Haze does not support this for any protocol.

    ” * contact-search -”

    Nothing actually implements ContactSearch and we’re fairly confident that its API is terrible. Current spec versions don’t put it in the HTML.

    ” * registration-ui -The possibility to register a new account on the server, like XMPP.”

    This is supported if and only if the CM offers a boolean ‘register’ parameter for the protocol. You can tell this without needing an account. I doubt Haze supports this for any protocol.

    ” * supports-avatars – Does contacts have avatars, can I set my own avatar.”

    You should get this from the presence or absence of the Avatars interface rather than from the profile.

    ” * supports-alias – Does contacts have alias, can I set my own alias.”

    You should get this from the presence or absence of the Aliasing interface rather than from the profile.

    ” * supports-roster – Is there a list of contacts for that protocol?”

    You should get this by requesting the contact lists you want and seeing if it works, rather than from the profile.

    “3) For each of those presence I need to know yes or no they are supported by the protocol:”

    You should get this by asking the Connection’s Presence (or SimplePresence) interface. I suspect Haze “supports” the same set of presences for every protocol anyway, though – check the source code.

  11. What about adding Xfire Integration to empathy that would please a lot of people as it’s one of the most sought features on pidgin. (there is a plugin for pidgin http://gfire.info) Empathy looks like a great client but I fear I’ll have to continue to use pidgin in order to stay in contact with my xfire friends.

Comments are closed.

Leave a Reply

Your email address will not be published. Required fields are marked *