Adium

Ticket #2993 (closed enhancement: wontfix)

Opened 4 years ago

Last modified 17 months ago

RVP protocol

Reported by: dirtyrussian@gmail.com Owned by: nobody
Milestone: Component: Service/Other
Version: Severity: normal
Keywords: protocol Cc:
Patch Status:

Description

Recently, development of RVP (Microsoft Exchange) GAIM plugin was revived and is now supported by GAIM 1.5. As the plugin becomes more stable, I would like to suggest including it in Adium for those of us who'd like to use it in a corporate environment.

RVP Plugin:  http://www.waider.ie/hacks/workshop/c/rvp/

Attachments

adium-rvp.patch (428.5 KB) - added by bm55b 20 months ago.
Patch adds Microsoft RVP protocol to adium, but not as a plugin
keyedobjects.nib (10.0 KB) - added by bm55b 20 months ago.
File goes in Plugins/Purple Service/en.lproj/ESPurpleRVPAccountView.nib/
rvp-small.png (4.6 KB) - added by bm55b 20 months ago.
Put in Resources/Service\ Icons/AquaAdiumServiceIcons/
rvp.png (2.5 KB) - added by bm55b 20 months ago.
Put in Resources/Service\ Icons/AquaAdiumServiceIcons/
adium-rvp-1.2.patch (427.2 KB) - added by bm55b 20 months ago.
Patch for the 1.2 release branch

Change History

Changed 4 years ago by john-apple@…

I second that.

-jp

Changed 4 years ago by catfish_man

  • milestone set to Waiting on libgaim

Changed 3 years ago by edr1084

  • milestone changed from Waiting on libgaim to Waiting on libpurple

Changed 2 years ago by Robby

  • keywords protocol added
  • patch_status set to None
  • pending set to 0

Changed 2 years ago by Robby

  • summary changed from Requesting support for RVP protocol to RVP protocol

Changed 22 months ago by djmori

Changed 21 months ago by Robby

  • milestone changed from Waiting on libpurple to Possible Third Party Plugins

Changed 20 months ago by bm55b

I have a good hunk of this port/integration working.

The good news is the code will connect to an MS RVP server with a hashed password and chat works. Saving contacts is flaky and Adium goes into an infinite loop on quit. I think Robby is correct that it should be implemented as a Third Party plugin. My attempts to get this working failed as objects passed from the plugin to the main Adium code (like the icons) went out of focus causing crashes. My current implementation is a patch on the main Adium codebase which is less desirable. The patch works on Adium v1.2.5, v1.2.6, and top of tree subversion.

I'll try to finish debugging what I have and post.

Changed 20 months ago by bm55b

Patch adds Microsoft RVP protocol to adium, but not as a plugin

Changed 20 months ago by bm55b

File goes in Plugins/Purple Service/en.lproj/ESPurpleRVPAccountView.nib/

Changed 20 months ago by bm55b

Put in Resources/Service\ Icons/AquaAdiumServiceIcons/

Changed 20 months ago by bm55b

Put in Resources/Service\ Icons/AquaAdiumServiceIcons/

Changed 20 months ago by bm55b

Got rid of alot of bugs so this is what I'm running with at the moment. Here is how to patch. Download the patch and 3 binary files into a work directory.

$ svn co  svn://svn.adiumx.com/adium/trunk adium $ cd adium $ patch -p0 < ../adium-rvp.patch $ cp ../rvp* Resources/Service\ Icons/Aqua.AdiumServiceIcons/ $ cp ../keyedobjects.nib Plugins/Purple\ Service/en.lproj/ESPurpleRVPAccountView.nib/

Make/run as usual. I'm on XCode 3.0 on a x86 MacBook Pro with the latest Leopord OS. The patch turns on offline users which I like, possibly works around an internal adium sequence problem. It also gets the DMG creation script working on Leopard.

Changed 20 months ago by bm55b

$ svn co svn://svn.adiumx.com/adium/trunk adium
$ cd adium $ patch -p0 < ../adium-rvp.patch
$ cp ../rvp* Resources/Service\ Icons/Aqua.AdiumServiceIcons/
$ cp ../keyedobjects.nib Plugins/Purple\ Service/en.lproj/ESPurpleRVPAccountView.nib/

Changed 20 months ago by bm55b

Patch for the 1.2 release branch

Changed 20 months ago by bm55b

Use the adium-rvp-1.2.patch instead of adium-rvp.patch. The adium-rvp-1.2.patch would be used against the subversion v1.2 release branch instead of using the trunk of subversion. Was getting lots of crashes and very very slow connections times using the trunk version of the patch. Getting pretty good results using the patch against the release branch, so...

$ svn co svn://svn.adiumx.com/adium/branches/adium-1.2 adium
$ cd adium 
$ patch -p0 < ../adium-rvp-1.2.patch
$ cp ../rvp* Resources/Service\ Icons/Aqua.AdiumServiceIcons/
$ cp ../keyedobjects.nib Plugins/Purple\ Service/en.lproj/ESPurpleRVPAccountView.nib/

Changed 20 months ago by Robby

Good job, bm55b.

Changed 19 months ago by lodea

I've tried this out, and have made some progress with it, but still can't login. Here are the problems I ran into:

  • The IM server pointed to by our SRV records sends a redirect somewhere else. But Adium didn't follow the redirect to the new server. I captured the packets to find out what was going on and manually put the real server in the config.
  • My login at my company is "lachlan.o'dea@…". The text field didn't allow apostrophe, so I added it to the allowed characters. But it wasn't encoded when it was placed in the URL, so I ended up also adding % to the allowed characters and putting my username as "lachlan.o%27dea@…". This seemed to work.
  • The problem I couldn't get past is that the URL sent in the SUBSCRIBE request is strangely truncated. It seems to be happening somewhere down in libpurple, but I was having trouble getting the debugger to go into it.

The tcpdump of the request is:

17:35:54.677759 IP gondolin.ca.com.60780 > XXX.ca.com.http: P 1:321(320) ack 1 win 65535 <nop,nop,timestamp 941858517 0>
	0x0000:  4500 0174 d202 4000 4006 bbfd 9b23 ac33  E..t..@.@....#.3
	0x0010:  9b23 c909 ed6c 0050 2cc2 3bb8 f66d 9036  .#...l.P,.;..m.6
	0x0020:  8018 ffff acea 0000 0101 080a 3823 9ed5  ............8#..
	0x0030:  0000 0000 5355 4253 4352 4942 4520 2f69  ....SUBSCRIBE./i
	0x0040:  6e73 746d 7367 2f6c 6f63 616c 2f69 6d2e  nstmsg/local/im.
	0x0050:  6361 2e63 6f6d 2f69 6e73 746d 7367 2f61  ca.com/instmsg/a
	0x0060:  6c69 6173 6573 2f6c 6163 686c 616e 2e6f  liases/lachlan.o
	0x0070:  2048 5454 502f 312e 310d 0a43 6f6e 7465  .HTTP/1.1..Conte
	0x0080:  6e74 2d4c 656e 6774 683a 2030 0d0a 5256  nt-Length:.0..RV
	0x0090:  502d 4e6f 7469 6669 6361 7469 6f6e 732d  P-Notifications-
	0x00a0:  5665 7273 696f 6e3a 2030 2e32 0d0a 486f  Version:.0.2..Ho
	0x00b0:  7374 3a20 6175 7379 6d73 3630 2e63 612e  st:.XXX.ca.
	0x00c0:  636f 6d0d 0a4e 6f74 6966 6963 6174 696f  com..Notificatio
	0x00d0:  6e2d 5479 7065 3a20 7072 6167 6d61 2f6e  n-Type:.pragma/n
	0x00e0:  6f74 6966 790d 0a52 5650 2d46 726f 6d2d  otify..RVP-From-
	0x00f0:  5072 696e 6369 7061 6c3a 2068 7474 703a  Principal:.http:
	0x0100:  2f2f 696d 2e63 612e 636f 6d2f 696e 7374  //im.ca.com/inst
	0x0110:  6d73 672f 616c 6961 7365 732f 6c61 6368  msg/aliases/lach
	0x0120:  6c61 6e2e 6f25 3237 6465 610d 0a53 7562  lan.o%27dea..Sub
	0x0130:  7363 7269 7074 696f 6e2d 4c69 6665 7469  scription-Lifeti
	0x0140:  6d65 3a20 3134 3030 300d 0a43 616c 6c2d  me:.14000..Call-
	0x0150:  4261 636b 3a20 6874 7470 3a2f 2f31 3535  Back:.http://155
	0x0160:  2e33 352e 3137 322e 3531 3a36 3037 3735  .35.172.51:60775
	0x0170:  0d0a 0d0a                                ....

To which the server responds with "404 could not find user". If I use curl to manually construct the same request with the full URL, it seems to find the user ok, as I get some other error back.

Changed 19 months ago by bm55b

libpurple is shipped in compiled form with Adium (instead of in source form like the core of Adium). Figure that is why you can't drop into the debugger. If you compile libpurple and get that somehow linked into your Adium build with XCode, that might get you back on track.

I believe our server setup has some type of a load balancer in front of it and the hookup didn't need the sleuthing to figure out the advertised vs. real destination.

One thing to try is get a Linux box and use Pidgin and librvp there and see if the problem is Mac specific or something that is a problem on both Mac and Linux. We have lots of Pidgin/librvp users and about 10 or so Adium/librvp users. Adium suffers some crashes which seems to get worse when you have lots of contacts setup. The users still like it better than the alternative. Otherwise, we haven't seen the problems you have reported. :(

Changed 17 months ago by anonymous

  • milestone Possible Third Party Plugins deleted

Milestone Possible Third Party Plugins deleted

Changed 17 months ago by Robby

  • status changed from new to closed
  • resolution set to wontfix

We don't need tickets like this hanging around as open tickets in our database. The fact that I'm closing this ticket, however, shouldn't stop anyone from making this plugin.

Note: See TracTickets for help on using tickets.