So with the launch of Skype 6, and with a few patches sent from a very helpful user by the name of gabriele0101, I’ve had the chance to do a little bit of work on the Skype plugin.
One of the most annoying things that’s happened with newer versions of Skype – and the single largest cause of emails about the plugin – is the bug in Skype where it doesn’t always send notifications of new messages. Foolishly, I’ve been waiting for Skype to fix the bug in their software, and in the mean time told people to roll back to an older version of Skype. I’ve been suggesting the use of Skype 18.104.22.168 on Windows, since a friend of mine found that it uses the least amount of memory, cpu and disk space; but with the release of Skype 6 only recently decided to install a newer version of Skype to see if I could workaround the missing messages bug.
So far I’ve come up with a hackish polling for any missed messages every 10 seconds. While not perfect, it does workaround the problem, but it does mean an up-to 10s delay in getting some messages, and potential for messages to arrive out of order. I’m working on trying out a couple of other potential workarounds but they’re not ready yet.
Gabriele and I have also been working on cleaning up the code a tiny bit, removing a lot of the threading code, attempting to get it to work with InstantBird and made the ‘Get Info’ popup actually show some useful information. Once I sort out the missing messages bug properly, I’ll be sure to roll out a new version of the plugin to people. If you’re interested in testing the latest Windows plugin for Pidgin, feel free to send me a message on Skype.
Also interesting is the effect of linking your MSN & FB accounts to Skype and the resulting messages that get passed through the Skype API. If you have your FB account linked you get a lot of “USER xmpp:-email@example.com ONLINESTATUS” messages. And calls from people on Facebook can be answered by the Skype API, although they come through as being from a username of “fb:198374ldshflsk”. Online status and status messages for MSN contacts is a bit weird: the API will often leave out the username and say “USER MOOD_TEXT xyzabc”, and when placing a call it will be to/from a user with a username of “live:asdkfhaslkfdhj”, which appears to be the part of the MSN username before the @, and messages will appear to come from “1:firstname.lastname@example.org” (but you can’t send messages to a “1:” user).
So where does that leave us? Well, still looking for alternatives. I’d love to not be reliant on having a Skype/Skypekit client running to connect to Skype and I’ve been carefully paying attention to all the reverse engineering attempts out there. The skype-open-source team have been doing a lot of good work and the recent update from oklabs looks promising too. Unfortunately not quite ready yet to try and pull apart and turn into a library for Pidgin to use just yet, but watch this space!
Update: Thought I’d mention another side effect of linking your Live/MSN account with your Skype account: You’re going to start receiving offline messages on your MSN account from “skypeusername@fakeSkypeDomain.fakedomain”, every time you receive a Skype message. It appears that the messages are being sent from the newer Skype clients from the other party; that they’re also forwarding their messages through the ‘old’ MSN offline message servers. You can’t reply to these email addresses, nor can you add them to your buddy list. They’re just a completely fake address. Personally, I don’t understand the logic behind forwarding all messages through the MSN offline message servers; all I can see is that it introduces further privacy concerns of your messages being stored somewhere else – another privacy concern. This really furthers my belief that you shouldn’t be using newer versions of the Skype client – although this doesn’t help anything unless the person you’re talking to is also not using the latest Skype.