source: skype/README @ 57f0440

Last change on this file since 57f0440 was 57f0440, checked in by Miklos Vajna <vmiklos@…>, at 2008-01-15T03:03:08Z

spelling fix

  • Property mode set to 100644
File size: 8.5 KB
Line 
1= Skype plugin for BitlBee
2Miklos Vajna <vmiklos@vmiklos.hu>
3
4== Status
5
6[Wilmer van der Gaast (author of BitlBee)]
7____
8Okay, this exists now, with lots of thanks to vmiklos for his *excellent*
9work!!
10
11It's not in the main BitlBee and it'll never be for various reasons, but
12because it's a plugin that shouldn't be a problem.
13____
14
15One day I browsed the BitlBee bugtracker and found
16http://bugs.bitlbee.org/bitlbee/ticket/82[this] ticket. Then after a while I
17returned and saw that it was still open. So I wrote it.
18
19It's pretty stable, I use it for my daily work. Being a plug-in, no patching
20is required, you can just install it after installing BitlBee itself.
21
22NOTE: You will see that this implementation of the Skype plug-in still requires
23a Skype instance to be running. This is because I'm not motivated to reverse
24engineer Skype's
25http://en.wikipedia.org/wiki/Skype_Protocol#Obfuscation_Layer[obfuscation
26layer]. (Not mentioning that you should ask your lawyer about if it is legal or
27not..)
28
29== Requirements
30
31* Skype >= 1.4.0.99. The latest version I've tested is 2.0.0.27.
32* bitlbee >= 1.1.1dev. (This is the latest version I've tested, probably
33  newer versions will work, too.)
34* Skype4Py >= 0.9.28.7. Previous versions won't work due to API changes.
35* Python >= 2.5. Skype4Py does not work with 2.4.
36* pygobject
37
38`bitlbee-skype` has been tested under Linux and Windows. Skype is available
39under OSX, too, so it probably works, but this has not been tested.
40
41== How to set it up
42
43Before you start. The setup is the following: BitlBee can't connect directly to
44Skype servers (the company's ones). It needs a running Skype client to do so.
45In fact BitlBee will connect to `skyped` (a tcp server, provided in this
46package) and `skyped` will connect to to your Skype client.
47
48NOTE: The order is important. First you have to start Skype. Then `skyped` can
49connect to it, finally BitlBee can connect to `skyped`. (In fact `skyped`
50automatically reconnect if you restart Skype.)
51
52- If you happen to be a happy Frugalware user, you can install the `bitlbee`
53  and `bitlbee-skype` packages from
54  http://ftp.frugalware.org/pub/other/people/vmiklos/bmf/[my repo].
55
56- You need the BitlBee testing/development version:
57
58----
59$ wget http://get.bitlbee.org/src/bitlbee-1.1.1dev.tar.gz
60$ tar xf bitlbee-1.1.1dev.tar.gz
61$ cd bitlbee-1.1.1dev
62----
63
64NOTE: You no longer need additional patches, as of version 1.1.1dev.
65
66- Now compile and install it:
67
68----
69$ ./configure
70$ make
71# make install install-dev
72----
73
74- Get the plugin code:
75
76----
77$ git clone git://vmiklos.hu/bitlbee-skype
78----
79
80(Or you can use the tarballs below, see the Changelog about what
81features/bugfixes will you miss in this case).
82
83NOTE: It doesn't matter where do you get it, it'll install the plugin to
84`/usr/local` by default (that's the location where BitlBee searches for plugins
85by default).
86
87- Compile and install it:
88
89----
90$ cd bitlbee-skype
91$ make prepare
92$ ./configure
93$ make
94# make install
95----
96
97- Install http://skype4py.sourceforge.net/[Skype4Py].
98
99(You may remember that previous versions of `skyped` did not require this
100package. This because it now uses the X11 interface of Skype (because the
101previously used `DBus` interface had
102http://forum.skype.com/index.php?s=&showtopic=94545&view=findpost&p=431710[known
103problems]), but I wanted to prevent a large code duplication from that project.
104In addition it then no longer requires the `dbus-python` package, just
105`pygobject`.)
106
107- Edit `/usr/local/etc/skyped/skyped.conf`: adjust `username` and `password`. The
108  `username` should be your Skype login and the `password` can be whatever you
109  want, but you will have to specify that one when adding the Skype account to
110  BitlBee (see later).
111
112NOTE: Here, and later - `/usr/local/etc` can be different on your installation
113if you used the `--sysconfdir` switch when running bitlbee-skype's `configure`.
114
115- Generate the SSL pem files:
116
117----
118# cd /usr/local/etc/skyped
119# openssl req -new -x509 -days 365 -nodes -config skyped.cnf -out skyped.cert.pem \
120        -keyout skyped.key.pem
121----
122
123NOTE: Maybe you want to adjust the permissions in the `/usr/local/etc/skyped`
124dir. For example make it readable by just your user.
125
126- Start Skype and `skyped` (the tcp server):
127
128----
129$ skype
130$ skyped
131----
132
133NOTE: You should run `skyped` on the same `X11` display, otherwise it won't be
134able to connect to Skype!
135
136- Start your `IRC` client, connect to BitlBee and add your account:
137
138----
139account add skype <user> <pass> localhost
140----
141
142<user> should be your Skype account name, <pass> should be the one you declared
143in `skyped.conf`. If you want to run skyped on a remote machine, replace
144`localhost` with the name of the machine.
145
146== Setting up Skype in a VNC server (optional)
147
148Optionally, if you want to run Skype on a server, you might want to setup up
149a `VNC` server as well. I used `tightvnc` but probably other `VNC` servers will
150work, too.
151
152First run
153
154----
155$ vncpasswd ~/.vnc/passwd
156----
157
158and create a password. You will need it at least once.
159
160Now create `~/.vnc/xstartup` with the following contents:
161
162----
163#!/bin/sh
164
165sleep 1
166skype &
167sleep 5
168skyped
169----
170
171Adjust the permissions:
172
173----
174$ chmod +x ~/.vnc/xstartup
175----
176
177Then start the server:
178
179----
180$ vncserver
181----
182
183Then connect to it, and set up Skype (username, password, enable auto-login, and
184allow the `SkypeApiPythonShell` client when Skype asks about it).
185
186Please be aware about that Skype has serious memory leak issues. After running
187with for a few weeks it may eat >300 MB of memory. Just don't forget to restart
188your VNC server regularly. (How ugly.)
189
190== What works
191
192- Download nicks and away statuses from Skype
193
194- Noticing joins / parts while we're connected
195
196- Sending messages
197
198- Receiving messages
199
200- Receiving away status changes
201
202- `skyped` (the tcp daemon that is a gateway between Skype and tcp)
203
204- Error handling when `skyped` is not running and when it exits
205
206- Marking received messages as seen so that Skype won't say there are unread messages
207
208- Adding / removing contacts
209
210- Set away state when you do a `/away`.
211
212- When you `account off`, Skype will set status to `Offline`
213
214- When you `account on`, Skype will set status to `Online`
215
216- Detect when somebody wants to add you and ask for confirmation
217
218- Detect when somebody wants to transfer a file
219
220- Group chat support:
221
222  * Detect if we're invited
223
224  * Send / receive group chat messages
225
226  * Invite others (using `/invite <nick>`)
227
228  * Part from group chats
229
230  * Starting a group chat (using `/j #nick`)
231
232- Topic changes in group chats:
233
234  * Show the current topic (if any) on join
235
236  * Notice when someone changes the topic
237
238  * Support changing the topic using `/topic`
239
240- Viewing the profile using the `info` command.
241
242- Handling skype actions (when the `CHATMESSAGE` has `EMOTED` type)
243
244- Setting your mood text using the `nick` command.
245
246- Running Skype on a machine different to BitlBee is possible, the
247  communication is encrypted.
248
249== What needs to be done (aka. TODO)
250
251- Add a question callback for calls.
252
253- Notice if foo invites bar. Currently you can see only that bar joined.
254
255- Public chats. See link:http://forum.skype.com/index.php?showtopic=98872[this
256  forum thread], it is still unclear how could it be done for you to be able to
257  `/join` to a public chat..
258
259- Split skyped from the plugin, so that one could install just the relevant
260  code if they are not running on the same machine.
261
262== I would like to have support for ...
263
264If something does not work and it's not in the TODO section, then please
265contact me! Please also try the git version before reporting a bug, your
266problem may be already fixed there.
267
268In fact, of course, I wrote this documentation after figured out how to do this
269setup, so maybe I left out some steps. If you needed 'any' additional tricks,
270then it would be nice to include them here.
271
272== Known bugs
273
274- None at this time.
275
276== Screenshots
277
278You can reach some screenshots link:shot[here].
279
280== Additional resources
281
282You can reach the Changelog link:Changelog[here], and a gitweb interface
283http://repo.or.cz/w/bitlbee-skype.git[here].
284
285The Skype API documentation is
286https://developer.skype.com/Docs/ApiDoc[here] if you're interested.
287
288== Thanks
289
290for the following people:
291
292* Wilmer van der Gaast, for answering questions about the bitlbee plugin interface
293
294* Arkadiusz Wahlig, author of skype4py, for making suggestions to skyped
295
296* Gabor Adam Toth (tg), for noticing extra code is needed to handle multiline
297  messages
298
299* Cristobal Palmer (tarheelcoxn), for helping to testing the plugin in a
300  timezone different to mine
301
302* people on `#bitlbee` for feedback
303
304Back to my link:/projects[projects page].
305
306// vim: ft=asciidoc
Note: See TracBrowser for help on using the repository browser.