1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
|
-*-Text-*-
This is an RVP (Microsoft Exchange Instant Messaging) plugin for Gaim
1.5 and Pidgin 2.x. It's based on some work done at Lucent - see
AUTHORS file for previous authors of parts of this. Most of the
original codebase has been replaced.
Note, this code ONLY supports RVP. It does not support SIP or .NET
messaging.
INSTALLATION:
See the INSTALL file for build and install instructions.
CONFIGURATION:
The less config you use, the better, I've found. Start Gaim and select
Add Account, then select RVP from the pulldown list. Put your
username@domainname into the Screen Name field. Then select the "Show
More Options" arrow, and put in your Windows domain in the Auth Domain
field. This should be sufficient for most scenarios. The other options
on this screen are as follows:
* Password: ...
* Alias: not used by RVP. The server's value overrides this.
* Auth Host: RVP tries to figure out which host it should talk
to. If it can't figure out your IM host for any reason, put the IM
hostname in here.
* Auth ID: if your screen name and login name differ, put the login
name here. This is a highly unlikely scenario, mind you.
* My Hostname: RVP tries to figure out the hostname it should offer to
the IM server for routing messages to you. Since this predates
UPnP, it's possible that RVP will get it wrong if you're behind a
firewall or network translation layer. In that case, put the
correct hostname in here. Again, I'd rather this wasn't used as
there's an option in Gaim's Network Preferences to do the same
thing.
* Proxy: I've never tested this code via a proxy, so I have no idea
if it works or even how it should work.
On Pidgin 2 there's an option (default true) to use the local IP rather
than any detected UPNP address. You probably want this, as it's not
likely that your RVP server lives on the public Internet.
WHAT WORKS...
* Instant messaging works.
* Group chats work, but Gaim's chat is a poor fit with Microsoft's. To
initiate a multi-user chat, use the Add Chat menu option to add a
blank chat to your buddy list, then double-click it to open it and
invite as many users as you like. If someone you are IM'ing invites
a third party to the conversation, you will get a new window for the
chat. This may improve in future versions.
* File transfer works in both directions, although Microsoft's client
offers two ports to connect to while I only work with one. This
hasn't yet caused me any problems.
* Incoming messages with font and colour are dealt with as best your
locally installed fonts can manage.
* Away status works, albeit without sending automatic messages to
anyone who tries to talk to you while you're away.
...AND WHAT DOESN'T:
* Gaim imposes a few restrictions that I'd rather didn't exist, or
that I've not yet figured out how to escape. This is why
conversations with people not on your buddy list use their login ids
instead of real names, and why multi-user chats have weird
hexadecimal titlebars.
* Application Sharing, Voice Calls, and Whiteboarding are all
implemented using Netmeeting. I have not even tried to figure out
how to do any of this. Whiteboarding actually looks to be a
specialised version of Application Sharing using MS Paint.
* Send Email is very rough and could do with more work once I figure
out how I'm really supposed to invoke GNOME's configured apps.
* The Get Info page is a little rough, and doesn't work on
non-buddies.
* Setting fonts and colours on outgoing messages isn't implemented,
largely due to a mismatch between what Gaim allows and what
Microsoft allows.
* Polling connections aren't supported, as I've not reverse-engineered
the protocol and Microsoft has deprecated it.
* There is a small amount of weirdness with Auto-Away vs. manual away
at least on Gaim 1.5; Pidgin appears to have a small amount of
weirdness with respect to not recognising self-subscriptions
properly when updating the buddy list.
See the to-do list at the end of the file for things that I plan on
fixing up.
I FOUND A BUG. WHAT DO I DO?
Until such time as there's a 1.0 release (and, realistically, beyond
that), it's safe to assume that there are bugs in this code. If you
find a bug, and you can reproduce it, run gaim with the --debug flag
and capture the output to a file. Send me this file along with a rough
description of what happened. Edit it as you see fit to obscure
personal/corporate/private information, but please try to keep the
debugging information intact.
TO-DO LIST:
- See ChangeLog for a list of what's been changed/fixed recently.
* general
- get 2.0 code cleaned up and working
- mostly working at this point, although there are rough
edges, since the codebase was swiftly ported to Pidgin after the
name-change. I really need to clean this up.
- file transfer is more than likely broken in 2.0
- url send is not safe! (doesn't check write() return code) This is
sort of a big deal since url send is how it all works, but if it's
broken you'll probably find a lot of other things are broken too,
and IM will be the least of your worries.
* clean up multi-user chat
- figure out the circumstances under which the title is set/unset
- part of shutdown sequence should send a chat signoff to any active
chats
- 'add buddy to this chat' would be great, even though gaim doesn't
really support it
* user context menu
- Send Email - there, but rough
- Properites - there, but rough
* match MSM look/feel more closely (icons, etc.)
- outgoing font/colour (Gaim 1.5 has good support for this)
- custom permissions UI to match MSM client would be nice
* implement POLL
- haha. microsoft have actually abandoned this because it was
causing them a huge amount of support calls.
* figure out how to do a working shutdown sequence
- add overall shutdown timeout
- maybe display some sort of progress?
- not happy that it requires an explicit call to gtk's event loop
* file transfer
- code needs cleaning up in general, since it was implemented
optimistically.
- not all BYE codes are handled at present
- add timeouts
- 'send file to myself' doesn't work, and should either error out or
try to do something sane (send file to other instance of myself,
perhaps). It definitely shouldn't crash Gaim in any of the ways it
currently does.
- if xfer is accepted, ignore subsequent reject attempts. this
caters for sending to a recipient logged in from multiple
locations.
|