source: skype/README @ 760ed1f

Last change on this file since 760ed1f was 760ed1f, checked in by Miklos Vajna <vmiklos@…>, at 2007-10-26T19:30:10Z

doc update: it is now tested under Windows, too

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