source: skype/README @ c01edb7

Last change on this file since c01edb7 was 7f93882, checked in by Miklos Vajna <vmiklos@…>, at 2007-12-16T22:38:27Z

new todo (i think first i need to do it in bitlbee)

  • Property mode set to 100644
File size: 7.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 probably 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----
59wget http://get.bitlbee.org/src/bitlbee-1.1.1dev.tar.gz
60tar xf bitlbee-1.1.1dev.tar.gz
61cd 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
70make
71make install install-dev
72----
73
74- Get the plugin code:
75
76----
77git clone git://vmiklos.hu/~vmiklos/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----
90cd bitlbee-skype
91make prepare
92./configure
93make
94make 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- Start Skype and `skyped` (the tcp server):
108
109----
110skype
111skyped
112----
113
114NOTE: It's important to start `skyped` on the same machine and using the same
115user!
116
117- Start your `IRC` client, connect to BitlBee and add your account:
118
119----
120account add skype <user> <pass>
121account set 0/server localhost
122----
123
124IMPORTANT: <user> should be your Skype account name. This way you won't see
125yourself joining to `&bitlbee`.
126
127NOTE: the <pass> option is not used currently.
128
129== Setting up Skype in a VNC server (optional)
130
131Optionally, if you want to run Skype on a server, you might want to setup up
132a `VNC` server as well. I used `tightvnc` but probably other `VNC` servers will
133work, too.
134
135First run
136
137----
138vncpasswd ~/.vnc/passwd
139----
140
141and create a password. You will need it at least once.
142
143Now create `~/.vnc/xstartup` with the following contents:
144
145----
146#!/bin/sh
147
148sleep 1
149skype &
150sleep 5
151skyped
152----
153
154Adjust the permissions:
155
156----
157chmod +x ~/.vnc/xstartup
158----
159
160Then start the server:
161
162----
163vncserver
164----
165
166Then connect to it, and set up Skype (username, password, enable auto-login, and
167allow the `SkypeApiPythonShell` client when Skype asks about it).
168
169Please be aware about that Skype has serious memory leak issues. After running
170with for a few weeks it may eat >300 MB of memory. Just don't forget to restart
171your VNC server regularly. (How ugly.)
172
173== What works
174
175- Download nicks and away statuses from Skype
176
177- Noticing joins / parts while we're connected
178
179- Sending messages
180
181- Receiving messages
182
183- Receiving away status changes
184
185- `skyped` (the tcp daemon that is a gateway between Skype and tcp)
186
187- Error handling when `skyped` is not running and when it exits
188
189- Marking received messages as seen so that Skype won't say there are unread messages
190
191- Adding / removing contacts
192
193- Set away state when you do a `/away`.
194
195- When you `account off`, Skype will set status to `Offline`
196
197- When you `account on`, Skype will set status to `Online`
198
199- Detect when somebody wants to add you and ask for confirmation
200
201- Detect when somebody wants to transfer a file
202
203- Group chat support:
204
205  * Detect if we're invited
206
207  * Send / receive group chat messages
208
209  * Invite others (using `/invite <nick>`)
210
211  * Part from group chats
212
213  * Starting a group chat (using `/j #nick`)
214
215- Topic changes in group chats:
216
217  * Show the current topic (if any) on join
218
219  * Notice when someone changes the topic
220
221  * Support changing the topic using `/topic`
222
223- Viewing the profile using the `info` command.
224
225== What needs to be done (aka. TODO)
226
227- Add a question callback for calls.
228
229- Notice if foo invites bar. Currently you can see only that bar joined.
230
231- Public chats. See link:http://forum.skype.com/index.php?showtopic=98872[this
232  forum thread], it is still unclear how could it be done for you to be able to
233  `/join` to a public chat..
234
235- Handle skype actions (when the `CHATMESSAGE` has `EMOTED` type)
236
237== I would like to have support for ...
238
239If something does not work and it's not in the TODO section, then please
240contact me! Please also try the git version before reporting a bug, your
241problem may be already fixed there.
242
243In fact, of course, I wrote this documentation after figured out how to do this
244setup, so maybe I left out some steps. If you needed 'any' additional tricks,
245then it would be nice to include them here.
246
247== Known bugs
248
249- None at this time.
250
251== Screenshots
252
253You can reach some screenshots link:shot[here].
254
255== Additional resources
256
257You can reach the Changelog link:Changelog[here], and a gitweb interface
258http://repo.or.cz/w/bitlbee-skype.git[here].
259
260The Skype API documentation is
261https://developer.skype.com/Docs/ApiDoc[here] if you're interested.
262
263== Thanks
264
265for the following people:
266
267* Wilmer van der Gaast, for answering questions about the bitlbee plugin interface
268
269* Arkadiusz Wahlig, author of skype4py, for making suggestions to skyped
270
271* Gabor Adam Toth (tg), for noticing extra code is needed to handle multiline
272  messages
273
274* Cristobal Palmer (tarheelcoxn), for helping to testing the plugin in a
275  timezone different to mine
276
277* people on `#bitlbee` for feedback
278
279Back to my link:/projects[projects page].
280
281// vim: ft=asciidoc
Note: See TracBrowser for help on using the repository browser.