source: skype/README @ 7cc31b1

Last change on this file since 7cc31b1 was 7cc31b1, checked in by Miklos Vajna <vmiklos@…>, at 2007-11-11T20:00:48Z

doc: patch is for bitlbee, not the plugin

  • Property mode set to 100644
File size: 7.1 KB
Line 
1= Skype plugin for BitlBee
2Miklos Vajna <vmiklos@frugalware.org>
3
4== Status
5
6One day I browsed the BitlBee bugtracker and found
7http://bugs.bitlbee.org/bitlbee/ticket/82[this] ticket. Then after a while I
8returned and saw that it was still open. So I wrote it. Not a big deal, I wrote
9it in two days or so (and not because I'm a genius or anything ;-) ). I think
10it's pretty stable, but it needs wider testing. Also see the 'Known bugs'
11section, I really hope those random hangups will be fixed soon by Skype.
12
13Oh, before I forget. I'm not a wizard, the Skype API documentation is
14https://developer.skype.com/Docs/ApiDoc[here] if you're interested.
15
16NOTE: You will see that this implementation of the Skype plug-in still requires
17a Skype instance to be running. This is because I'm not motivated to reverse
18engineer Skype's
19http://en.wikipedia.org/wiki/Skype_Protocol#Obfuscation_Layer[obfuscation
20layer]. (Not mentioning that you should ask your lawyer about if it is legal or
21not..)
22
23== Requirements
24
25* Skype >= 1.4.0.99. (1.4.0.74 did not work for me, 1.4.0.118 seems to be OK.)
26* bitlbee-dev >= rev245. Previous versions need patching.
27* Skype4Py >= 0.9.28.1. Previous versions uses `DBus` by default. The latest version I've tested is 0.9.28.3.
28* Python 2.5. Skype4Py does not work with 2.4.
29* pygobject
30
31`bitlbee-skype` has been tested under Linux and Windows. Skype is available
32under OSX, too, so it probably works, but this has not been tested.
33
34== How to set it up
35
36Before you start. The setup is the following: BitlBee can't connect directly to
37Skype servers (the company's ones). It needs a running Skype client to do so.
38In fact BitlBee will connect to `skyped` (a tcp server, provided in this
39package) and `skyped` will connect to to your Skype client.
40
41NOTE: The order is important. First you have to start Skype. Then `skyped` can
42connect to it, finally BitlBee can connect to `skyped`. (In fact `skyped`
43automatically reconnect if you restart Skype.)
44
45- If you happen to be a happy Frugalware user, you can install the `bitlbee`
46  and `bitlbee-skype` packages from
47  http://ftp.frugalware.org/pub/other/people/vmiklos/bmf/[my repo].
48
49- You need the BitlBee bzr branch:
50
51----
52bzr branch http://code.bitlbee.org/bitlbee/
53----
54
55//NOTE: You no longer need additional patches, as of revision 245.
56- Apply a not yet merged patch: http://frugalware.org/~vmiklos/patches/bitlbee-topic-write.patch[download]
57
58
59- Now compile and install it:
60
61----
62./configure
63make
64make install install-dev
65----
66
67- Get the plugin code:
68
69----
70git clone git://git.frugalware.org/pub/other/people/vmiklos/bitlbee-skype
71----
72
73(Or you can use the tarballs below, see the Changelog about what
74features/bugfixes will you miss in this case).
75
76- Compile and install it:
77
78----
79make prepare
80./configure
81make
82make install
83----
84
85- Install http://skype4py.sourceforge.net/[Skype4Py].
86
87(You may remember that previous versions of `skyped` did not require this
88package. This because it now uses the X11 interface of Skype (because the
89previously used `DBus` interface had
90http://forum.skype.com/index.php?s=&showtopic=94545&view=findpost&p=431710[known
91problems]), but I wanted to prevent a large code duplication from that project.
92In addition it then no longer requires the `dbus-python` package, just
93`pygobject`.)
94
95- Start Skype and `skyped` (the tcp server):
96
97----
98skype
99skyped
100----
101
102NOTE: It's important to start `skyped` on the same machine and using the same
103user!
104
105- Start your `IRC` client, connect to BitlBee and add your account:
106
107----
108account add skype <user> <pass>
109account set 0/server localhost
110----
111
112IMPORTANT: <user> should be your Skype account name. This way you won't see
113yourself joining to `&bitlbee`.
114
115NOTE: the <pass> option is not used currently.
116
117== Setting up Skype in a VNC server (optional)
118
119Optionally, if you want to run Skype on a server, you might want to setup up
120a `VNC` server as well. I used `tightvnc` but probably other `VNC` servers will
121work, too.
122
123First run
124
125----
126vncpasswd ~/.vnc/passwd
127----
128
129and create a password. You will need it at least once.
130
131Now create `~/.vnc/xstartup` with the following contents:
132
133----
134#!/bin/sh
135
136sleep 1
137skype &
138sleep 5
139skyped
140----
141
142Adjust the permissions:
143
144----
145chmod +x ~/.vnc/xstartup
146----
147
148Then start the server:
149
150----
151vncserver
152----
153
154Then connect to it, and set up Skype (username, password, enable auto-login, and
155allow the `SkypeApiPythonShell` client when Skype asks about it).
156
157Please be aware about that Skype has serious memory leak issues. After running
158with for a few weeks it may eat >300 MB of memory. Just don't forget to restart
159your VNC server regularly. (How ugly.)
160
161== What works
162
163- Download nicks and away statuses from Skype
164
165- Noticing joins / parts while we're connected
166
167- Sending messages
168
169- Receiving messages
170
171- Receiving away status changes
172
173- `skyped` (the tcp daemon that is a gateway between Skype and tcp)
174
175- Error handling when `skyped` is not running and when it exits
176
177- Marking received messages as seen so that Skype won't say there are unread messages
178
179- Adding / removing contacts
180
181- Set away state when you do a `/away`.
182
183- When you `account off`, Skype will set status to `Offline`
184
185- When you `account on`, Skype will set status to `Online`
186
187- Detect when somebody wants to add you and ask for confirmation
188
189- Detect when somebody wants to transfer a file
190
191- Group chat support:
192
193  * Detect if we're invited
194
195  * Send / receive group chat messages
196
197  * Invite others (using `/invite <nick>`)
198
199  * Part from group chats
200
201  * Starting a group chat (using `/j #nick`)
202
203- Topic changes in group chats:
204
205  * Show the current topic (if any) on join
206
207  * Notice when someone changes the topic
208
209  * Support changing the topic using `/topic`
210
211== What needs to be done (aka. TODO)
212
213- Add a question callback for calls.
214
215- Notice if foo invites bar. Currently you can see only that bar joined.
216
217- Public chats. See link:http://forum.skype.com/index.php?showtopic=98872[this
218  forum thread], it is still unclear how could it be done for you to be able to
219  `/join` to a public chat..
220
221== I would like to have support for ...
222
223If something does not work and it's not in the TODO section, then please
224contact me! Please also try the git version before reporting a bug, your
225problem may be already fixed there.
226
227In fact, of course, I wrote this documentation after figured out how to do this
228setup, so maybe I left out some steps. If you needed 'any' additional tricks,
229then it would be nice to include them here.
230
231== Known bugs
232
233- When you join start a group chat, a warning is shown saying creating the
234  group chat is failed. Indeed it is created. I should improve the API to be
235  able to suppress that warning.
236
237== Screenshots
238
239You can reach some screenshots http://frugalware.org/~vmiklos/pics/shots/bitlbee-skype/[here].
240
241== Additional resources
242
243You can reach the Changelog link:Changelog[here], and a gitweb interface
244link:http://git.frugalware.org/gitweb/gitweb.cgi?p=bitlbee-skype.git;a=summary[here].
245
246== Thanks
247
248for the following people:
249
250* Wilmer van der Gaast, for answering questions about the bitlbee plugin interface
251
252* Arkadiusz Wahlig, author of skype4py, for making suggestions to skyped
253
254* Gabor Adam TOTH, for usable bugreports
255
256// vim: ft=asciidoc
Note: See TracBrowser for help on using the repository browser.