source: skype/README @ edf09c6

Last change on this file since edf09c6 was edf09c6, checked in by Miklos Vajna <vmiklos@…>, at 2007-10-17T23:01:07Z

docu update about /topic

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