Setting up Skype with Bitlbee
The Skype API is deprecated and may have issues, such as losing messages
You should use skypeweb instead.
Bitlbee's Skype plugin requires the official Skype client to be running somewhere, although not necessarily on the same server as bitlbee. This is because Skype's API has not been reverse-engineered for a variety of reasons, so the bitlbee skype plugin use's the client's own API.
Installing the plugin
The Skype plugin is included with bitlbee but not activated by default due to being inappropriate for public servers.
If you are installing from source, provide --skype=1 to ./configure. If you are on Debian or Ubuntu, install the bitlbee-plugin-skype package. For other distributions, check with the package maintainers.
Checking the installation
You can check installation was successful by attempting to add a skype account to bitlbee. (Restart bitlbee and reconnect to it if you were already running it.)
If installation wasn't successful, you will get an unknown protocol error:
You will also need skyped on the computer you run Skype on. This is included and installed with the bitlbee skype plugin, but if you plan to run skype on a different computer to bitlbee, you will also need to install it on the skype computer.
skyped is a Python command-line application that requires the Skype4Py python package. This is provided in the python-skype Debian package, or is available from https://github.com/awahlig/skype4py (install with sudo python setup.py install).
You will need to generate an SSL certificate so that traffic between bitlbee and skyped is secure. The skyped manpage explains this in more detail, but the essential commands are:
$ mkdir -p ~/.skyped $ cd ~/.skyped $ cp /usr/local/etc/skyped/skyped.conf /usr/local/etc/skyped/skyped.cnf . # edit ~/.skyped/skyped.conf by following the helpful comments therein (change the username, password hash, and directory paths) $ openssl req -new -x509 -days 365 -nodes -config skyped.cnf -out skyped.cert.pem -keyout skyped.key.pem
OpenSSL will ask you a few questions about the certificate. You can keep the defaults if you're not sure.
Once skyped is installed, launch it with:
$ skyped skyped is started on port 2727, pid: 7736
If you don't want skyped to detach and/or want to debug it, run it like this:
$ skyped -n -d
If you have a copy of Skype already running, it will give you the following notification asking you to approve Skype4Py:
Click Yes to this, of course.
If you don't have a copy of Skype running, skyped will launch one. You may like to have Skype log in automatically so that skyped can be launched at startup and still work without you doing anything.
Connecting to skype from bitlbee
Back to your bitlbee session, add the skype account if you haven't already:
If Skype and skyped are running on a different computer to bitlbee, you will need to change the server setting, which defaults to localhost:
Now, just account skype on and everything should work!
To add contacts from MSN to skype, use account add skype live:email@example.com (note the "live:" prefix). Note that it seem to work, but not too well-tested.
Or you can also use MSN for those.
- Skype API isn't officially supported by Microsoft any more, so use clients newer than 4.2.X at your own peril.
- Versions of Skype higher (and maybe lower) than 126.96.36.199 might not be sending first messages in a brand-new chat to bitlbee (i.e. when someone contacts you for the first time since client start). Skype just doesn't forward notifications about these to dbus for some reason.
- Several Skype clients connected to the same Skype account might cause bitlbee to not miss chat messages, as they'll be marked by other clients as "read" (and plugin ignores these as already-received). Same applies to having particular chat window open and focused in the running client.
If you have trouble working with stock skyped (python daemon), there's an alternative implementation here.
If some particular chat doesn't get messages in bitlbee, try sending message there, as suggested here (russian lang).
You might as well try HowtoSkypeWithSpectrum2