source: skype/README @ 3b495c0

Last change on this file since 3b495c0 was 3b495c0, checked in by Miklos Vajna <vmiklos@…>, at 2008-01-15T03:10:35Z

add @version@ magic and prefer tarballs
people hate autotools (well, i can understand them as i hate automake as well),
so prefer the tarball method where you can avoid make prepare

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