source: skype/README @ 15282dc

Last change on this file since 15282dc was 15282dc, checked in by Miklos Vajna <vmiklos@…>, at 2008-01-15T03:14:26Z

move the git stuff to HACKING

  • Property mode set to 100644
File size: 8.4 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$ wget http://vmiklos.hu/project/bitlbee-skype/bitlbee-skype-@VERSION@.tar.gz
78$ tar xf bitlbee-skype-@VERSION@.tar.gz
79$ cd bitlbee-skype-@VERSION@
80----
81
82It doesn't matter where do you get it, it'll install the plugin to `/usr/local`
83by default (that's the location where BitlBee searches for plugins by default).
84
85- Compile and install it:
86
87----
88$ ./configure
89$ make
90# make install
91----
92
93- Install http://skype4py.sourceforge.net/[Skype4Py].
94
95(You may remember that previous versions of `skyped` did not require this
96package. This because it now uses the X11 interface of Skype (because the
97previously used `DBus` interface had
98http://forum.skype.com/index.php?s=&showtopic=94545&view=findpost&p=431710[known
99problems]), but I wanted to prevent a large code duplication from that project.
100In addition it then no longer requires the `dbus-python` package, just
101`pygobject`.)
102
103- Edit `/usr/local/etc/skyped/skyped.conf`: adjust `username` and `password`. The
104  `username` should be your Skype login and the `password` can be whatever you
105  want, but you will have to specify that one when adding the Skype account to
106  BitlBee (see later).
107
108NOTE: Here, and later - `/usr/local/etc` can be different on your installation
109if you used the `--sysconfdir` switch when running bitlbee-skype's `configure`.
110
111- Generate the SSL pem files:
112
113----
114# cd /usr/local/etc/skyped
115# openssl req -new -x509 -days 365 -nodes -config skyped.cnf -out skyped.cert.pem \
116        -keyout skyped.key.pem
117----
118
119NOTE: Maybe you want to adjust the permissions in the `/usr/local/etc/skyped`
120dir. For example make it readable by just your user.
121
122- Start Skype and `skyped` (the tcp server):
123
124----
125$ skype
126$ skyped
127----
128
129NOTE: You should run `skyped` on the same `X11` display, otherwise it won't be
130able to connect to Skype!
131
132- Start your `IRC` client, connect to BitlBee and add your account:
133
134----
135account add skype <user> <pass> localhost
136----
137
138<user> should be your Skype account name, <pass> should be the one you declared
139in `skyped.conf`. If you want to run skyped on a remote machine, replace
140`localhost` with the name of the machine.
141
142== Setting up Skype in a VNC server (optional)
143
144Optionally, if you want to run Skype on a server, you might want to setup up
145a `VNC` server as well. I used `tightvnc` but probably other `VNC` servers will
146work, too.
147
148First run
149
150----
151$ vncpasswd ~/.vnc/passwd
152----
153
154and create a password. You will need it at least once.
155
156Now create `~/.vnc/xstartup` with the following contents:
157
158----
159#!/bin/sh
160
161sleep 1
162skype &
163sleep 5
164skyped
165----
166
167Adjust the permissions:
168
169----
170$ chmod +x ~/.vnc/xstartup
171----
172
173Then start the server:
174
175----
176$ vncserver
177----
178
179Then connect to it, and set up Skype (username, password, enable auto-login, and
180allow the `SkypeApiPythonShell` client when Skype asks about it).
181
182Please be aware about that Skype has serious memory leak issues. After running
183with for a few weeks it may eat >300 MB of memory. Just don't forget to restart
184your VNC server regularly. (How ugly.)
185
186== What works
187
188- Download nicks and away statuses from Skype
189
190- Noticing joins / parts while we're connected
191
192- Sending messages
193
194- Receiving messages
195
196- Receiving away status changes
197
198- `skyped` (the tcp daemon that is a gateway between Skype and tcp)
199
200- Error handling when `skyped` is not running and when it exits
201
202- Marking received messages as seen so that Skype won't say there are unread messages
203
204- Adding / removing contacts
205
206- Set away state when you do a `/away`.
207
208- When you `account off`, Skype will set status to `Offline`
209
210- When you `account on`, Skype will set status to `Online`
211
212- Detect when somebody wants to add you and ask for confirmation
213
214- Detect when somebody wants to transfer a file
215
216- Group chat support:
217
218  * Detect if we're invited
219
220  * Send / receive group chat messages
221
222  * Invite others (using `/invite <nick>`)
223
224  * Part from group chats
225
226  * Starting a group chat (using `/j #nick`)
227
228- Topic changes in group chats:
229
230  * Show the current topic (if any) on join
231
232  * Notice when someone changes the topic
233
234  * Support changing the topic using `/topic`
235
236- Viewing the profile using the `info` command.
237
238- Handling skype actions (when the `CHATMESSAGE` has `EMOTED` type)
239
240- Setting your mood text using the `nick` command.
241
242- Running Skype on a machine different to BitlBee is possible, the
243  communication is encrypted.
244
245== What needs to be done (aka. TODO)
246
247- Add a question callback for calls.
248
249- Notice if foo invites bar. Currently you can see only that bar joined.
250
251- Public chats. See link:http://forum.skype.com/index.php?showtopic=98872[this
252  forum thread], it is still unclear how could it be done for you to be able to
253  `/join` to a public chat..
254
255- Split skyped from the plugin, so that one could install just the relevant
256  code if they are not running on the same machine.
257
258== I would like to have support for ...
259
260If something does not work and it's not in the TODO section, then please
261contact me! Please also try the git version before reporting a bug, your
262problem may be already fixed there.
263
264In fact, of course, I wrote this documentation after figured out how to do this
265setup, so maybe I left out some steps. If you needed 'any' additional tricks,
266then it would be nice to include them here.
267
268== Known bugs
269
270- None at this time.
271
272== Screenshots
273
274You can reach some screenshots link:shot[here].
275
276== Additional resources
277
278You can reach the Changelog link:Changelog[here], and a gitweb interface
279http://repo.or.cz/w/bitlbee-skype.git[here].
280
281The Skype API documentation is
282https://developer.skype.com/Docs/ApiDoc[here] if you're interested.
283
284== Thanks
285
286for the following people:
287
288* Wilmer van der Gaast, for answering questions about the bitlbee plugin interface
289
290* Arkadiusz Wahlig, author of skype4py, for making suggestions to skyped
291
292* Gabor Adam Toth (tg), for noticing extra code is needed to handle multiline
293  messages
294
295* Cristobal Palmer (tarheelcoxn), for helping to testing the plugin in a
296  timezone different to mine
297
298* people on `#bitlbee` for feedback
299
300Back to my link:/projects[projects page].
301
302// vim: ft=asciidoc
Note: See TracBrowser for help on using the repository browser.