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 Responses to “Adding more protocols to Empathy”

  1. Michael says:

    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. Nathan Samson says:

    @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. Tomasz says:

    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. Staz says:

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

  5. rawsausage says:

    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. 嘉佑 says:

    Oh, very good, I hope Empathy more better than Pidgin.

  7. JimHu says:

    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.

  8. Alban says:

    > If you got MSN support, you can reach 90+%
    > of the instant messenging people on this planet.

    Do you have a source for this? Wikipedia says QQ has more active users:
    http://en.wikipedia.org/wiki/Instant_messaging#User_base

    MSN: 294 million active worldwide
    QQ: 317.9 million “active” (majority in China)

    But this may be true if we consider only western countries.

  9. ganloo says:

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

  10. xclaesse says:

    @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!

  11. Erik Helin says:

    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!

  12. smcv says:

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

  13. Angel  says:

    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.

  14. xclaesse says:

    What is Xfire? An IM protocol? If it’s supported by libpurple it should work with empathy.