source: skype/README @ d044a5a

Last change on this file since d044a5a was d044a5a, checked in by Miklos Vajna <vmiklos@…>, at 2007-11-24T19:14:36Z

get rid of bzr, there is a tarball version now that works

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