Adium

Opened 15 years ago

Closed 7 years ago

Last modified 7 years ago

#1541 closed enhancement (notadiumcode)

Microsoft Live Communication Server

Reported by: james@tempestsw.com Owned by: evan
Milestone: Component: Adium Core
Version: Severity: normal
Keywords: msn corporate Live Communication Server Cc:
Patch Status: Rejected

Description (last modified by Robert)

Administrative notes:


Its a bit sad being forced to use Microsoft Messenger 5.0 to be able to connect to the corporate messenger network (Live Communication Server). Any chance of this getting supported in Adium?

Cheers

Change History (219)

comment:1 Changed 15 years ago by Peter Hosey

Component: Other Protocollibgaim-general
Milestone: Adium X 0.85
Type: defectenhancement

Microsoft has two pages on Live Communication Server which discuss its protocols:

http://www.microsoft.com/office/livecomm/prodinfo/faq.mspx http://www.microsoft.com/technet/prodtechnol/winxppro/plan/rtcprot.mspx

nothing supported by libgaim currently. libgaim will have to add this before we can support it.

and this is not a defect, and please do not set the milestone.

comment:2 Changed 15 years ago by David Smith

Milestone: Waiting on libgaim

comment:3 Changed 13 years ago by Eric Richie

Milestone: Waiting on libgaimWaiting on libpurple

comment:4 Changed 13 years ago by Eric Richie

Component: libgaim-generallibpurple

comment:5 Changed 13 years ago by Nathan Ollerenshaw

At least the Microsoft Live Communicator server we have in use in my company uses SIP, the problem is that usernames need to contain an @ which the username field in the SIP/SIMPLE protocol won't allow you to set.

Or it needs a \ so you can do DOMAIN\account

Any chance of someone giving me a patched binary that allows both these characters in the User Name field to test? If I can get it to work, it's an easy win :)

I guess I could try downloading the source and compiling my own version, but I thought I'd ask.

comment:6 Changed 13 years ago by britain

The SIPE plugin for Pidgin was updated about a week after the last comment was posted here.

http://sipe.sourceforge.net/download/

Does someone with skills have an opinion as to whether this could be supported in future Adium releases? Girls only want boyfriends who have great skills.

comment:7 Changed 13 years ago by Jason Alexander

Is there a FAQ for porting pidgin plugins to Adium. We are also using LCS and it's annoying to have to load Adium and Messenger.

comment:8 Changed 13 years ago by britain

I did a little more research, and I gather that the lib_purple developers are working on integrating LCS support:

http://developer.pidgin.im/ticket/48

Granted it's from the Windows side, but what's good for lib_purple will eventually be good for Adium... amirite?

comment:9 Changed 13 years ago by styro

It's maybe easier to upgrade this Microsoft Live Communication Server to some XMPP-based solution?

comment:10 Changed 13 years ago by Nathan Ollerenshaw

The company I work for has over 40,000 employees. I wouldn't even know who to talk to, to ask if it could be done. If I asked my boss, I'm pretty sure he'd look at me for about half a second and pretend to consider me seriously before starting to laugh maniacally.

comment:11 Changed 12 years ago by Carlos Morales

comment:12 Changed 12 years ago by bobthule

Is this issue still waiting on libpurple? Based on looking at the information on the sipe plugin, it looks like libpurple may not handle talking to LCS.

The sipe plugin http://sipe.sourceforge.net/

Interesting to note, I tried Microsoft's Messenger 7.01 (for Mac), and even though it is supposed to work with LCS, it doesn't!

comment:13 Changed 12 years ago by Scott Palmer

Looks like there's stuff bubbling over at: http://developer.pidgin.im/ticket/48

A lot of activity in the last month or so - can't wait to have this feature!!

comment:14 Changed 11 years ago by Zachary West

Status: newclosed

Closing all "waiting on libpurple" tickets. There's no reason to keep them around as open, and largely go ignored anyway. File a ticket at http://developer.pidgin.im for any functionality you want to see.

comment:15 Changed 11 years ago by (none)

Milestone: Waiting on libpurple

Milestone Waiting on libpurple deleted

comment:16 Changed 11 years ago by Zachary West

Component: libpurpleAdium Core

Removing 'libpurple' component.

comment:17 Changed 11 years ago by Robert

Ticket #13394 has been marked as a duplicate of this ticket.

comment:18 Changed 10 years ago by Robert

Last I heard a guy called "Matt Meissner" was working on an Adium plugin based on the Pidgin one. Once it has been released it might be bundled with Adium.

comment:19 Changed 10 years ago by Robert

Ticket #12399 has been marked as a duplicate of this ticket.

comment:20 Changed 10 years ago by somekool

sipe plugin for pidgin works fine !

please let me use SIPE under OSX with Adium

comment:21 Changed 10 years ago by Stephen

Are there any updates on this? SIPE has worked in Pidgin for quite some time.

comment:22 Changed 10 years ago by Jek Smith

Any chance that this can be re-opened?

comment:23 Changed 10 years ago by Robert

What would be the point of that? :)

comment:24 Changed 10 years ago by nsolent

Robby - have you found a way to connect Adium to Corporate Messenger (LCS)?

comment:25 Changed 10 years ago by Dimmuxx

This isn't supported by default in libpurple so someone needs to port the pidgin plugin to Adium to get this functionality. This won't be done by any Adium developer so there is no reason to reopen this ticket.

comment:26 Changed 10 years ago by Ian

Is this work already done? Or mostly done?

There was a ticket opened to port the SIPE plugin for use by Adium (http://sourceforge.net/tracker/?func=detail&aid=2877403&group_id=194563&atid=949934). This ticket was closed as "fixed", saying "Released under 'contrib' in 1.8.0.".

There's nothing in "contrib" but starting in sipeplugin 1.8 the SIPEAdiumPlugin plugin my Matt Meissner referenced above started being included in /src/adium. I see it's also been changed at least a couple of times between 1.8 and the latest plugin release (1.11.2).

Has anyone bothered testing this?? If I get time I'll see if I can at least compile it later on.

comment:27 Changed 10 years ago by Robert

A bunch of people have said they'd work on this. So far, nobody has reported a working plugin to us.

comment:28 Changed 9 years ago by Evan Kinney

The code that's in the SIPE repository is a bit messy and doesn't compile cleanly without some gentle persuasion.

I started working on this a while back but ran out of time. I'm just going to start from scratch.

comment:29 Changed 9 years ago by James Mills

Hello. As I understand (from talking to a few guys on irc://irc.freenode.net/#adium) there is no port of the SIPE plugin from pidgin to adium available at this time.

Is anyone interested in a joint project with me to make this happen ?

--JamesMills?

comment:30 Changed 9 years ago by Jeff

I'm extremely interested in this plugin for Adium!

comment:31 Changed 9 years ago by adambot

I am working on this right now, I was able to get pidgin-sipe to compile on my mac, however, i am not sure how to integrate it into adium. Any dev guidance would be appreciated!

thanks, Adam

comment:32 Changed 9 years ago by Robert

Hey adambot, I bet the devs in #adium-devl would be able to help you. :)

comment:33 Changed 9 years ago by adambot

which irc server? Google led me to freenode, but the page was really old (i just want to verify)

thanks!

comment:34 Changed 9 years ago by Thijs Alkemade

comment:35 Changed 9 years ago by Robert

Ticket #15301 has been marked as a duplicate of this ticket.

comment:36 Changed 9 years ago by Bob

adambot, sphynx ... has any progress been made on getting the SIPE integration to work?

comment:37 Changed 9 years ago by Thijs Alkemade

Not as far as I know. I don't mind helping if you have any question related to Adium, but I have no intention of writing this plugin myself.

comment:38 Changed 9 years ago by James

Wow, I can't believe I created this ticket over 6 years ago!

I believe we might have a working (or semi-working) plugin for Adium now.

I grabbed the Adium and SIPE source, and managed to get the SIPE plugin to compile (kudos to whoever has been working on the Adium source in the SIPE plugin). I've only tested connecting to the LCS server, and it brings up online contacts and their status just fine, however I haven't tried messaging anyone yet (as it's the weekend). Hopefully that works fine as well.

Anyway, I've uploaded a binary of the compile I am using (x86 compile only, sorry PowerPC users) for those who'd like to try it: http://www.thesparklabs.com/downloads/other/SIPEAdiumPlugin.AdiumLibpurplePlugin.zip

Compiling it for yourself is fairly easy - grab the Adium source and compile, grab the SIPE source and then compile, and then compile the Adium plugin inside the SIPE source folder. You'll need to mess around with a few paths along the way.

Cheers, James

comment:39 Changed 9 years ago by Robert

I just found this comment here from July 7:

Matthew updated the Adium support, so 1.12.0 will probably compile out-of-the-box for Mac users.


1.12.0 doesn't seem to be out yet but that's good news...

comment:40 Changed 9 years ago by James

Well I gave the plugin a good workout today, and it seems to work fine.

@Robby The code I used was the latest HEAD code from the Git repo, so it may have included Matthew's changes. I didn't have to make any major changes to get it to compile - I just changed the header/framework search paths to be relative and use environment variables (rather than the broken fixed paths the project was using), and it worked a charm.

comment:41 Changed 9 years ago by Jeff

jbekkema can you share a copy of your compiled plugin please?

comment:42 Changed 9 years ago by James

@jvoitek It's linked above.

comment:43 Changed 9 years ago by Håvard Pedersen

cc

comment:44 Changed 9 years ago by Russell Heimlich

@jbekkema Your plugin works awesome for me. Thank you!

comment:45 Changed 9 years ago by Vladimir

Just tried the precompiled plugin posted by @jbekkema, it works awesome on SL!!! I am able to chat, change statuses, and look-up contact details.

One thing I've noticed that i am able to receive files, but unable to send them. On the Adium end, it states waiting for user to accept, on Windows Communicator end, user clicks accept, few seconds later shows that Adium end has canceled the request. Not sure if its an issue with SIPE or the port..

Another thing, i cannot set status of In Meeting.

Last edited 9 years ago by Vladimir (previous) (diff)

comment:46 Changed 9 years ago by Michael

I installed the precompiled plugin and it shows up in Xtras Manager -> Plugins, however I do not see a new protocol listed when adding a new Account. Should I?

comment:47 Changed 9 years ago by adium_user

I'm running Lion and I have installed the plugin posted by @jbekkema. It shows up in the Plugins section of the Xtras Manager, but I don't see SIPE as a valid account type. Maybe it only works on Snow Leopard? Or is there some configuration issue I'm missing?

comment:48 in reply to:  46 Changed 9 years ago by Eric Richie

Replying to leftwrite: Replying to adium_user:

The account type is called 'Office communicator'.

@jbekkema: This one? https://github.com/mlamb/sipe

comment:49 Changed 9 years ago by AlexB

Working - thanks. Trying this out vs. Office 2011 Communicator since it is braindead about sleep/wake - have to manually log in again every time you wake the machine, not helpful for a laptop where you move around a lot. What's the path for getting this in the "official" Xtras archive?

comment:50 Changed 9 years ago by James

@ edr1084

Nope, the SIPE repo: http://sipe.sourceforge.net/git/

comment:51 Changed 9 years ago by joelstein

I had much success installing the plugin posed by @jbekkema, but had two strange issues.

1) When a contact within the network IMs me directly, before I've created them as a contact, everything I send in that chat comes up saying that it could not be sent, even though it had. However, when I add a contact first, then chat with them, that doesn't happen.

2) Adding a contact... I tried adding a contact like with a username of "first.last@…" (which is the format of this company), and if I contact them, it says they may not get the message. I proceed with sending it. Then they respond back, and it appears in a new chat window. When looking at their new chat, their account name is "sip:first.last@companyname.net". So, I delete the first contact and use the second. That seems to work fine. But if I create a new contact with the username of "sip:first.last@companyname.net", Adium stores that as ""sipfirst.last@…" (no colon), and that contact won't work because that username doesn't exist in the system.

Just wanted to bring those up here, in case anyone else had these problems. Once you work around them, though, it works great.

comment:52 Changed 9 years ago by Paul Kehrer

The build provided works quite well but my company uses different endpoints internally and externally. This makes setting the login server manually annoying. The official clients automatically determine the endpoint via DNS SRV lookups so I have built a patched version that attempts to resolve the proper end point automatically. If you need this feature you can download it here: http://langui.sh/downloads/SIPEAdiumPlugin.AdiumLibpurplePlugin-SRVResolving-20110825.zip

(Build fixed!)

Last edited 9 years ago by Paul Kehrer (previous) (diff)

comment:53 in reply to:  52 ; Changed 9 years ago by Jeff

Replying to reaperhulk:

The build provided works quite well but my company uses different endpoints internally and externally. This makes setting the login server manually annoying. The official clients automatically determine the endpoint via DNS SRV lookups so I have built a patched version that attempts to resolve the proper end point automatically. If you need this feature you can download it here: http://langui.sh/downloads/SIPEAdiumPlugin.AdiumLibpurplePlugin-SRVResolving-20110825.zip

This build defaults to "someserveryoudontwantpeopletoknowabout.com" no matter what.

Last edited 9 years ago by Jeff (previous) (diff)

comment:54 in reply to:  53 Changed 9 years ago by Paul Kehrer

Replying to jvoitek:

Replying to reaperhulk:

The build provided works quite well but my company uses different endpoints internally and externally. This makes setting the login server manually annoying. The official clients automatically determine the endpoint via DNS SRV lookups so I have built a patched version that attempts to resolve the proper end point automatically. If you need this feature you can download it here: http://langui.sh/downloads/SIPEAdiumPlugin.AdiumLibpurplePlugin-SRVResolving-20110825.zip

This build defaults to "(redacted)" no matter what.

How embarrassing...I forgot to put the right build up. I'll post again as soon as I have a chance to correct it. Thanks for the quick heads up! Would you mind removing the domain from your comment? ;)

comment:55 Changed 9 years ago by Eric Richie

My ultimate goal is to have this plugin available as either an included service or as an official xtra. However, we don't really have the time to maintain it. Would anyone be interested (or even a group of you) in helping to develop and maintain this plugin?

*Disclaimer: I have not dug into this plugin to investigate how much our needs would differ from what's offered by the official SIPE project.*

Ideally, all modifications would be committed upstream to the official SIPE project, but If our needs are substantially different, I would be willing to create a repo for it within our own plugins repo. (Or else someone could create their own on [bitbucket/github/sourceforge/etc].)

There seems to be a good deal of interest in this plugin. I'd like to help facilitate it's development. What could we do to help you guys?

comment:56 Changed 9 years ago by Paul Kehrer

Build fixed. Available at the same link (http://langui.sh/downloads/SIPEAdiumPlugin.AdiumLibpurplePlugin-SRVResolving-20110825.zip) as before. Let me know if I made any other brain dead mistakes.

When you connect the plugin grabs the account name (me@mycompany dot com) and uses that domain to do the SRV lookups. The order of the lookups is:

  • _sipinternaltls._tcp.mycompany.com
  • _sipinternal._tcp.mycompany.com
  • _sip._tls.mycompany.com
  • _sip._tcp.mycompany.com

The first time it finds a DNS record it saves that entry as the login server for the account, then proceeds with the connection. If no SRV records exist it will fall through to whatever you manually set as the login server.

Edit: This build probably only works with 1.4.2. A coworker tried with 1.4.1 and while there were no errors it didn't seem to work.

Last edited 9 years ago by Paul Kehrer (previous) (diff)

comment:57 Changed 9 years ago by Vladimir

Another observation: status icons

When contact is Inactive, status is shown as Busy -> what should happen is shown as Idle

When contact is Away, status is shown as Busy -> what should happen is shown as Idle

Busy, Available, and typing statuses work as expected.

I was playing with Icons.plist file to try to fix this, however the Busy status gets overruled by Generic Away (which should not be the case according to http://trac.adium.im/wiki/CreatingStatusIcons).

Any thoughts?

Last edited 9 years ago by Vladimir (previous) (diff)

comment:58 Changed 9 years ago by Nick

Working with 1.4.3 @reaperhulk you are a genius, I have been watching this thread for a while. THANK YOU.

comment:59 in reply to:  56 ; Changed 9 years ago by Michael Lamb

Replying to reaperhulk:

Build fixed. Available at the same link (http://langui.sh/downloads/SIPEAdiumPlugin.AdiumLibpurplePlugin-SRVResolving-20110825.zip) as before. Let me know if I made any other brain dead mistakes.

When you connect the plugin grabs the account name (me@mycompany dot com) and uses that domain to do the SRV lookups. The order of the lookups is:

  • _sipinternaltls._tcp.mycompany.com
  • _sipinternal._tcp.mycompany.com
  • _sip._tls.mycompany.com
  • _sip._tcp.mycompany.com

The first time it finds a DNS record it saves that entry as the login server for the account, then proceeds with the connection. If no SRV records exist it will fall through to whatever you manually set as the login server.

Edit: This build probably only works with 1.4.2. A coworker tried with 1.4.1 and while there were no errors it didn't seem to work.

Have you checked your changes into the SIPE project's git repo? I think adding the SVR record resolution would be a welcome addition for everyone (not just the ones who have been lucky enough to find this thread). :)

comment:60 in reply to:  59 ; Changed 9 years ago by Paul Kehrer

Replying to joelstein:

2) Adding a contact... I tried adding a contact like with a username of "first.last@…" (which is the format of this company), and if I contact them, it says they may not get the message. I proceed with sending it. Then they respond back, and it appears in a new chat window. When looking at their new chat, their account name is "sip:first.last@companyname.net". So, I delete the first contact and use the second. That seems to work fine. But if I create a new contact with the username of "sip:first.last@companyname.net", Adium stores that as ""sipfirst.last@…" (no colon), and that contact won't work because that username doesn't exist in the system.

I've fixed this bug in the latest build. You will need to still define your contact as sip:email@domain.com but it will add properly now. http://langui.sh/downloads/SIPEAdiumPlugin.AdiumLibpurplePlugin-20110914.zip

Replying to mlamb:

Have you checked your changes into the SIPE project's git repo? I think adding the SVR record resolution would be a welcome addition for everyone (not just the ones who have been lucky enough to find this thread). :)

I have not at this time, but that's mostly because the code as currently constituted doesn't use libpurple's DNS SRV code. I haven't been able to sort out how that works so I'm using Apple's dns_sd frameworks. Seems like the wrong long-term approach, but works for now.

comment:61 in reply to:  60 Changed 9 years ago by Nick

Replying to reaperhulk:

Would it be possible for you to push your source to github (or somewhere) ?

I assume you are using xCode, it would be really great if we could easily clone your .xcodeproj and src files, hit Command-B and build it ourselves :)

comment:62 Changed 9 years ago by zens0

The account type "Office Communicator" doesn't show up in the drop down when creating a new user after installing the latest plugin found in 20110914.zip. The previous didn't work as well. I've tried deleting the plugin from both the Xtras manager and from the file system (~/Library/Application Support/Adium 2.0/PlugIn and still no dice.

Note that I _do_ have a "SIP / SIMPLE" account. Any ideas?

Thanks in advance.

Last edited 9 years ago by zens0 (previous) (diff)

comment:63 in reply to:  56 ; Changed 9 years ago by Nelson Menezes

Replying to reaperhulk:

Build fixed. Available at the same link (http://langui.sh/downloads/SIPEAdiumPlugin.AdiumLibpurplePlugin-SRVResolving-20110825.zip) as before. Let me know if I made any other brain dead mistakes.

@reaperhulk: Using your plugin, when it tries to connect to my company it fails immediately with "Error: Read error". The server name resets itself to "sip.mycompany.com" even if I type in "lync.mycompany.com", although I'm not sure if that has anything to do with the problem. Any ideas on what might be going wrong?

comment:64 in reply to:  63 ; Changed 9 years ago by Nick

Quick thing, I would suggest anyone testing this, gets moc working using the official microsoft client first. Our business uses internally signed certificates so I had to update my keyrings and get the Microsoft client working first before attempting SIPE.

I'm not sure if this helps you @nelson_menezes but it's worth mentioning to other users :)

comment:65 in reply to:  64 ; Changed 9 years ago by Nelson Menezes

Replying to linickx:

Quick thing, I would suggest anyone testing this, gets moc working using the official microsoft client first. Our business uses internally signed certificates so I had to update my keyrings and get the Microsoft client working first before attempting SIPE.

I'm not sure if this helps you @nelson_menezes but it's worth mentioning to other users :)

We have the same setup but I already had our root CA with full trust in the keychain. I can connect with Office Communicator, but not with the Adium plugin. :(

comment:66 in reply to:  65 ; Changed 9 years ago by Nick

Replying to nelson_menezes:

BTW - Lion or Snow Leopard? (I'm on SL).

comment:67 Changed 9 years ago by Robert

Milestone: Good ideas for later
Status: closednew

comment:68 in reply to:  55 Changed 9 years ago by Robert

Patch Status: Needs Changes by Author

To quote Adium's Project Manager:

Replying to edr1084:

My ultimate goal is to have this plugin available as either an included service or as an official xtra. However, we don't really have the time to maintain it. Would anyone be interested (or even a group of you) in helping to develop and maintain this plugin?

*Disclaimer: I have not dug into this plugin to investigate how much our needs would differ from what's offered by the official SIPE project.*

Ideally, all modifications would be committed upstream to the official SIPE project, but If our needs are substantially different, I would be willing to create a repo for it within our own plugins repo. (Or else someone could create their own on [bitbucket/github/sourceforge/etc].)

There seems to be a good deal of interest in this plugin. I'd like to help facilitate it's development. What could we do to help you guys?

comment:69 in reply to:  66 Changed 9 years ago by Nelson Menezes

Replying to linickx:

Replying to nelson_menezes:

BTW - Lion or Snow Leopard? (I'm on SL).

Lion (Adium 1.4.3)

comment:70 in reply to:  60 Changed 9 years ago by Markus Mayer

Replying to reaperhulk:

I've fixed this bug in the latest build. You will need to still define your contact as sip:email@domain.com but it will add properly now. http://langui.sh/downloads/SIPEAdiumPlugin.AdiumLibpurplePlugin-20110914.zip

This is awesome. Thanks so much. Just downloaded this archive, extract it into ~/Library/Application Support/Adium 2.0/PlugIns, and it all works perfectly. I'm running Lion 10.7.1 and Adium 1.4.3.

I entered first.last@… and DOMAIN\loginname as my credentials. Then I had to set up the HTTP proxy properly, so it could reach the SIP server. (Most people probably won't have to worry about this step.) Now I am able to connect without a hitch. No other tweaks or settings were necessary.

comment:71 in reply to:  65 Changed 9 years ago by Jeff

Replying to nelson_menezes:

Replying to linickx:

Quick thing, I would suggest anyone testing this, gets moc working using the official microsoft client first. Our business uses internally signed certificates so I had to update my keyrings and get the Microsoft client working first before attempting SIPE.

I'm not sure if this helps you @nelson_menezes but it's worth mentioning to other users :)

We have the same setup but I already had our root CA with full trust in the keychain. I can connect with Office Communicator, but not with the Adium plugin. :(

I have the exact same problem, when connecting with communicator I see it connected to two addresses, sip.mycompany.com and wcont.mycompany.com, and it seems that the Adium client can't connect to both sources.

comment:72 Changed 9 years ago by nwswanson

This is working for me on the Reuters Messaging network my company uses. Instructions via: http://runlevel.solutions.asia/?p=129

Adium Version 1.4.3 on both 10.6.8 and 10.7.1 (Two different computers). Total run-time has been about an hour, with a chat going on for 50 minutes, no crashes and proc and memory usage is normal. It gives an offline message when hot-switching between accounts, but delivers any further messages once online.

It seems to show display messages fine, and will show groups (group chat, however, is broken). Only basic chat works, not RTF, links, file transfer or chat icons—which isn’t that big a deal, since sending/receiving text is the important part.

EDIT: Group chat both works, and can be initiated through a right-click and "New Chat," then the addition of other users via "invite to chat".

Thank you, reaperhulk!

Last edited 9 years ago by nwswanson (previous) (diff)

comment:73 in reply to:  60 ; Changed 9 years ago by Evan Kinney

Replying to Robby:

To quote Adium's Project Manager:

Replying to edr1084:

My ultimate goal is to have this plugin available as either an included service or as an official xtra. However, we don't really have the time to maintain it. Would anyone be interested (or even a group of you) in helping to develop and maintain this plugin?

I'd love to help. I actually got started porting this all over a while ago, and had a working version... but subsequently ran out of time. As a result, however, I'm pretty intimately familiar with its internals.

I think it makes sense to keep this in a separate repo from the SIPE plugin proper. The way I set my project up was with the official SIPE repo as a submodule, with the library built as a separate target and tied to the plugin target.

Replying to reaperhulk:

I have not at this time, but that's mostly because the code as currently constituted doesn't use libpurple's DNS SRV code. I haven't been able to sort out how that works so I'm using Apple's dns_sd frameworks. Seems like the wrong long-term approach, but works for now.

If you could stick your code somewhere, I'd be glad to rewrite this using the purple_srv_resolve() stuff.

comment:74 in reply to:  73 Changed 9 years ago by Michael Lamb

Replying to evan:

Replying to Robby:

To quote Adium's Project Manager:

Replying to edr1084:

My ultimate goal is to have this plugin available as either an included service or as an official xtra. However, we don't really have the time to maintain it. Would anyone be interested (or even a group of you) in helping to develop and maintain this plugin?

I'd love to help. I actually got started porting this all over a while ago, and had a working version... but subsequently ran out of time. As a result, however, I'm pretty intimately familiar with its internals.

I think it makes sense to keep this in a separate repo from the SIPE plugin proper. The way I set my project up was with the official SIPE repo as a submodule, with the library built as a separate target and tied to the plugin target.

Replying to reaperhulk:

I have not at this time, but that's mostly because the code as currently constituted doesn't use libpurple's DNS SRV code. I haven't been able to sort out how that works so I'm using Apple's dns_sd frameworks. Seems like the wrong long-term approach, but works for now.

If you could stick your code somewhere, I'd be glad to rewrite this using the purple_srv_resolve() stuff.

Amazingly, it seems like a lot of people are willing to step up and get this working! I have a change in a local git repo that fixes the dependencies in the Xcode project, adds a cross-project dependency on Adium, and adds UI for Kerberos/SSO.

I also investigated the auto-discovery feature and found that the SIPE plugin actually already supports it! The problem is, that the server field in the settings UI has to be null... Adium sees that and prompts the user for a server (it doesn't know that the plugin will fill it in). I have not had a chance to figure out how to fool Adium into thinking the server field is non-null, but when the SIPE plugin gets the field, it *is* null.

I ran into a similar problem with Kerberos/SSO, and got around it with a "setPasswordTemporarily()" call. There doesn't seem to be an analogous call in Adium for the server field.

I can check-in my changes, you can merge in yours, and then maybe we can tackle getting the server field issue figured out? :)

comment:75 Changed 9 years ago by zens0

Hello,

First: thanks to the developers working on this.

I've created a new account and it gets the server host successfully, however, it never stops displaying the "Connecting..." message (and never does).

I've included logs and it shows assertion errors:

10/12/11 12:16:59.163 PM Adium: resolving service
10/12/11 12:16:59.164 PM Adium: got <email name>@<company> for email address
10/12/11 12:16:59.164 PM Adium: got <company> from email address
10/12/11 12:16:59.164 PM Adium: resolving SRV record: _sipinternaltls._tcp.navteq.com
10/12/11 12:16:59.165 PM Adium: found this path: <legit looking server>
10/12/11 12:16:59.268 PM Adium: Configure account: 65185b0
10/12/11 12:16:59.269 PM Adium: AccountName: <email name>@<company>,<domain>\<login name>
10/12/11 12:16:59.269 PM [0x0-0x2cf2cf].com.adiumX.adiumX: ** (process:10630): CRITICAL **: purple_presence_get_status: assertion `presence != NULL' failed
10/12/11 12:16:59.269 PM [0x0-0x2cf2cf].com.adiumX.adiumX: ** (process:10630): CRITICAL **: purple_presence_get_active_status: assertion `presence != NULL' failed
10/12/11 12:16:59.269 PM [0x0-0x2cf2cf].com.adiumX.adiumX: ** (process:10630): CRITICAL **: purple_status_is_online: assertion `status != NULL' failed

comment:76 Changed 9 years ago by Nuno Subtil

I seem to be running into the same issue reported by zens0.

@mlamb, are your sources (including the fixes you mentioned) available anywhere? I found your github repo but it seems to have been idle for a good while. I'd like to try to get this fixed.

comment:77 Changed 9 years ago by Tony Webster

I'm getting an error "You have been rejected by the server: You are currently not using the recommended version of the client" -- I found a few references online about forging your user-agent string to the one Microsoft Communicator uses. Any tips on how I could do that with this plugin? Thanks!

comment:78 Changed 9 years ago by solefald

Hello,

Is there any way to get a 64-bit build of this? If you do not have the hardware, please explain how can i build this.

thank you

comment:79 Changed 9 years ago by solefald

Ok, i wanted to build a 64-bit version last night, but it turns out that SIPE plugin only has a 32-bit version available, so I am stuck with Adium 1.4.x for now, as 1.5 beta builds are 64-bit only, and SIPE plugin does not work with them, complaining about incompatible architecture.

Last edited 9 years ago by solefald (previous) (diff)

comment:80 Changed 9 years ago by Brad Pitcher

The sipe plugin developers have just managed to make the plugin work with TLS-DSK: http://sourceforge.net/projects/sipe/forums/forum/688534/topic/4705138/index/page/3. Can someone provide an updated Adium build?

comment:81 Changed 9 years ago by Cat Rodery

Another vote for getting a 64-bit compatible version ported over, just downgraded to 1.4 Adium so I could use the plugin until there's a 1.5 compatible version. Excited to find *something* though at this point! Can't wait to see the improvements continue :)

comment:82 in reply to:  63 Changed 9 years ago by Cat Rodery

Replying to nelson_menezes:

@reaperhulk: Using your plugin, when it tries to connect to my company it fails immediately with "Error: Read error". The server name resets itself to "sip.mycompany.com" even if I type in "lync.mycompany.com", although I'm not sure if that has anything to do with the problem. Any ideas on what might be going wrong?

I get the "read error" and it disconnects after claiming to connect for a few seconds. It will just go in a loop like this. My server stays at the correct server though. I already have OCS working fine on the official mac client, trusted certificate and all. I'm on OSX Lion. Any suggestions? UPDATE: I deleted and re-added the account and suddenly I stopped seeing this error, working now!!!

Last edited 9 years ago by Cat Rodery (previous) (diff)

comment:83 Changed 9 years ago by Chad Monroe

I had the same issue as a few above, no 64-bit support. The Xcode project requires a bit of tweaking, but it seemed to compile fine. I've been using this daily for a few weeks with no issues. You can try out the binary here if you'd like:

http://db.tt/2yx5wYNt

Last edited 9 years ago by Chad Monroe (previous) (diff)

comment:84 Changed 9 years ago by solefald

@ cmonroe:

Thank you!! I can confirm this as working with 64-bit Adium 1.5b7

comment:85 Changed 9 years ago by Jon

@cmonroe

I can also confirm this is working with Adium 1.5b7.

Does anyone know how to get the autodiscovery stuff working so that it doesn't cache it? I've got a use case where sometimes I am on the corporate network, sometimes not, and as it stands right now I need to maintain two accounts with different connection strings since it seems like the plugin autodiscovers once and then saves that connect string for future use..

comment:86 Changed 9 years ago by Chad

@cmonroe

I just installed 1.5b7 with your build and I still can not get it to work. I don't know who handles the NAT-PMP portion of the code in libpurple but I think that is what is hanging me up. It looks like I get logged in correct but then it does not resolve a mapping address request, however I AM using a VPN Connection and I'm not sure if that is what is causing the issue because we can not hit our SIP/OCS server externally from our corp network. If I get a chance I will try and test it when I am hard wired in the office this week.

@ Everyone on this ticket:

Here is my setup: MacBookPro: Intel (Core 2 Duo) Snow Leopard: 10.6.8 Adium: 1.5b7 SIP/Simple Plugin: Latest from cmonroe (http://db.tt/2yx5wYNt)

The error to note below: 19:15:02: (Libpurple: nat-pmp) Attempting to retrieve the public ip address for the NAT device at: 192.168.1.1 19:15:02: (Libpurple: nat-pmp) Timeout: 0s 250000us 19:15:02: (Libpurple: nat-pmp) There was an error sending the NAT-PMP public IP request! (Permission denied)

Debug Output:

19:14:42: -[AIPreferenceContainer loadGlobalPrefs]: I read in AccountPrefs with 0 items
19:14:42: Failed to load defaults for PurpleDefaultsSIMPLE
19:15:01: -[AIAccount(Abstract) retrievePasswordThenConnect]: Retrieving <ESPurpleSimpleAccount:36c54a0 1>:user.name@domain.com's password (promptOption 0)
19:15:02: void adiumPurpleCoreDebugInit(): 
19:15:02: (Libpurple: util) Reading file xmpp-caps.xml from directory /var/root/Library/Application Support/Adium 2.0/Users/Default/libpurple
19:15:02: (Libpurple: util) File /var/root/Library/Application Support/Adium 2.0/Users/Default/libpurple/xmpp-caps.xml does not exist (this is not necessarily an error)
19:15:02: (Libpurple: jabber) creating hash tables for data objects
19:15:02: (Libpurple: prefs) /purple/status/scores/offline changed, scheduling save.
19:15:02: (Libpurple: prefs) /purple/status/scores/available changed, scheduling save.
19:15:02: (Libpurple: prefs) /purple/status/scores/invisible changed, scheduling save.
19:15:02: (Libpurple: prefs) /purple/status/scores/away changed, scheduling save.
19:15:02: (Libpurple: prefs) /purple/status/scores/extended_away changed, scheduling save.
19:15:02: (Libpurple: prefs) /purple/status/scores/idle changed, scheduling save.
19:15:02: (Libpurple: prefs) /purple/status/scores/offline_msg changed, scheduling save.
19:15:02: (Libpurple: util) Reading file accounts.xml from directory /var/root/Library/Application Support/Adium 2.0/Users/Default/libpurple
19:15:02: (Libpurple: util) File /var/root/Library/Application Support/Adium 2.0/Users/Default/libpurple/accounts.xml does not exist (this is not necessarily an error)
19:15:02: (Libpurple: util) Reading file status.xml from directory /var/root/Library/Application Support/Adium 2.0/Users/Default/libpurple
19:15:02: (Libpurple: util) File /var/root/Library/Application Support/Adium 2.0/Users/Default/libpurple/status.xml does not exist (this is not necessarily an error)
19:15:02: (Libpurple: certificate) CertificateVerifier x509, singleuse requested but not found.
19:15:02: (Libpurple: certificate) CertificateVerifier singleuse registered
19:15:02: (Libpurple: certificate) CertificatePool x509, ca requested but not found.
19:15:02: (Libpurple: certificate) CertificateScheme x509 requested but not found.
19:15:02: (Libpurple: certificate/x509/ca) Lazy init failed because an X.509 Scheme is not yet registered. Maybe it will be better later.
19:15:02: (Libpurple: certificate/x509/ca) Init failed, probably because a dependency is not yet registered. It has been deferred to later.
19:15:02: (Libpurple: certificate) CertificatePool ca registered
19:15:02: (Libpurple: certificate) CertificatePool x509, tls_peers requested but not found.
19:15:02: (Libpurple: certificate) CertificatePool tls_peers registered
19:15:02: (Libpurple: certificate) CertificateVerifier x509, tls_cached requested but not found.
19:15:02: (Libpurple: certificate) CertificateVerifier tls_cached registered
19:15:02: (Libpurple: prefs) /purple/logging/format changed, scheduling save.
19:15:02: (Libpurple: prefs) /purple/logging/format changed, scheduling save.
19:15:02: (Libpurple: prefs) /purple/proxy/type changed, scheduling save.
19:15:02: (Libpurple: prefs) /purple/proxy/host changed, scheduling save.
19:15:02: (Libpurple: prefs) /purple/proxy/port changed, scheduling save.
19:15:02: (Libpurple: prefs) /purple/proxy/username changed, scheduling save.
19:15:02: (Libpurple: prefs) /purple/proxy/password changed, scheduling save.
19:15:02: (Libpurple: sslconn) Unable to initialize SSL.
19:15:02: (Libpurple: util) Reading file smileys.xml from directory /var/root/Library/Application Support/Adium 2.0/Users/Default/libpurple
19:15:02: (Libpurple: util) File /var/root/Library/Application Support/Adium 2.0/Users/Default/libpurple/smileys.xml does not exist (this is not necessarily an error)
19:15:02: (Libpurple: stun) using server 
19:15:02: (Libpurple: nat-pmp) Found a default gateway
19:15:02: (Libpurple: nat-pmp) Attempting to retrieve the public ip address for the NAT device at: 192.168.1.1
19:15:02: (Libpurple: nat-pmp) 	Timeout: 0s 250000us
19:15:02: (Libpurple: nat-pmp) There was an error sending the NAT-PMP public IP request! (Permission denied)
19:15:02: Setting en as LC_ALL
19:15:02: adiumPurpleCore: load_all_plugins()
19:15:02: adiumPurpleCoreUiInit
19:15:02: adiumPurpleCore: purple_blist_load()...
19:15:02: (Libpurple: util) Reading file blist.xml from directory /var/root/Library/Application Support/Adium 2.0/Users/Default/libpurple
19:15:02: (Libpurple: util) File /var/root/Library/Application Support/Adium 2.0/Users/Default/libpurple/blist.xml does not exist (this is not necessarily an error)
19:15:02: Created PurpleAccount 0x16f6be00 with UID user.name@domain.com and protocolPlugin prpl-simple
19:15:02: Created PurpleAccount 0x16f6be00 with UID user.name@domain.com, protocolPlugin prpl-simple
19:15:02: -[CBPurpleAccount setAccountUserImage:withData:]: <ESPurpleSimpleAccount:36c54a0 1>:user.name@domain.com: Setting icon data of length 0
19:15:02: <ESPurpleSimpleAccount:36c54a0 1>:user.name@domain.com: Updating status for key: User Icon
19:15:02: Adium: Connect: user.name@domain.com initiating connection using status state <AIStatus: 26d0580 [Available]> ((null)).
19:15:02: Setting status on 16f6be00 (user.name@domain.com): ID available, isActive 1, attributes {
}
19:15:02: (Libpurple: account) Connecting to account user.name@domain.com.
19:15:02: (Libpurple: connection) Connecting. gc = 0x116fa3540
19:15:02: Connecting: gc=0x16fa3540 (Connecting) 1 / 2
19:15:02: (Libpurple: dnssrv) querying SRV record for domain.com: _sip._tcp.domain.com
19:15:02: (Libpurple: account) Connecting to account user.name@domain.com.
19:15:02: ************ user.name@domain.com --step-- 1
19:15:02: handleConnectivityForAccount: <ESPurpleSimpleAccount:36c54a0 1>:user.name@domain.com reachable: 1
19:15:02: (Libpurple: dnssrv) found 1 SRV entries
19:15:02: (Libpurple: network) Listening on port: 5060
19:15:02: (Libpurple: nat-pmp) Found a default gateway
19:15:02: (Libpurple: nat-pmp) Attempting to create a NAT-PMP mapping the private port 5060, and the public port 5060
19:15:02: (Libpurple: nat-pmp) 	Timeout: 0s 250000us
19:15:02: (Libpurple: nat-pmp) There was an error sending the NAT-PMP mapping request! (Permission denied)
19:15:03: gboolean adium_source_remove(guint): Source info for 2 not found
19:15:04: gboolean adium_source_remove(guint): Source info for 9 not found
19:15:04: gboolean adium_source_remove(guint): Source info for 11 not found
19:15:04: (Libpurple: network) Couldn't create UPnP mapping
19:15:04: (Libpurple: network) Couldn't create UPnP mapping
19:15:04: (Libpurple: simple) listenfd: 15
19:15:04: (Libpurple: simple) connecting to ocspool.corp.domain.com port 5061
19:15:04: (Libpurple: dnsquery) Performing DNS lookup for ocspool.corp.domain.com
19:15:04: -[AdiumPurpleDnsRequest startLookup]: Performing DNS resolve: ocspool.corp.domain.com:5061
19:15:04: DNS resolve complete for ocspool.corp.domain.com:5061; 1 addresses returned
19:15:04: (Libpurple: dnsquery) IP resolved for ocspool.corp.domain.com
19:15:04: (Libpurple: proxy) Attempting connection to 10.254.170.20
19:15:04: (Libpurple: proxy) Connecting to ocspool.corp.domain.com:5061 with no proxy
19:15:04: (Libpurple: proxy) Connection in progress
19:15:04: (Libpurple: proxy) Connecting to ocspool.corp.domain.com:5061.
19:15:04: (Libpurple: proxy) Connected to ocspool.corp.domain.com:5061.
19:15:04: (Libpurple: stun) using server 
19:15:04: (Libpurple: nat-pmp) Found a default gateway
19:15:04: (Libpurple: nat-pmp) Attempting to retrieve the public ip address for the NAT device at: 192.168.1.1
19:15:04: (Libpurple: nat-pmp) 	Timeout: 0s 250000us
19:15:04: (Libpurple: nat-pmp) There was an error sending the NAT-PMP public IP request! (Permission denied)
19:15:04: (Libpurple: stun) using server 
19:15:04: (Libpurple: simple) 

sending - Tue Dec  6 19:15:04 2011

######
REGISTER sip:domain.com SIP/2.0
Via: SIP/2.0/TCP 192.168.1.129:5060;branch=z9hG4bKDBE2128C3C559898044D
From: <sip:user.name@domain.com>;tag=1415154451;epid=1234567890
To: <sip:user.name@domain.com>
Max-Forwards: 10
CSeq: 1 REGISTER
User-Agent: Purple/2.10.0
Call-ID: 2F43g09FEa8ED8iDAC8mB782t0C2AbACD9x3AF1x
Contact: <sip:user.name@192.168.1.129:5060;transport=tcp>;methods="MESSAGE, SUBSCRIBE, NOTIFY"
Expires: 900
Content-Length: 0

I also tried to run Adium as root and got the same error. Any idea? Maybe the TLS cert is not in my KeyChain store? But if that were the case then the MS Communicator version for Mac would not work (which does work on the VPN BTW).

comment:87 in reply to:  83 ; Changed 8 years ago by mrbucket

Replying to cmonroe:

I had the same issue as a few above, no 64-bit support. The Xcode project requires a bit of tweaking, but it seemed to compile fine. I've been using this daily for a few weeks with no issues. You can try out the binary here if you'd like:

http://db.tt/2yx5wYNt

For the life of me, I have tried every plugin on this page and Office Communicator just wont show up on the 1.4.4 or 1.5b7 or 1.5b8.

Last edited 8 years ago by mrbucket (previous) (diff)

comment:88 in reply to:  87 Changed 8 years ago by carlverge

Replying to mrbucket:

Replying to cmonroe:

I had the same issue as a few above, no 64-bit support. The Xcode project requires a bit of tweaking, but it seemed to compile fine. I've been using this daily for a few weeks with no issues. You can try out the binary here if you'd like:

http://db.tt/2yx5wYNt

For the life of me, I have tried every plugin on this page and Office Communicator just wont show up on the 1.4.4 or 1.5b7 or 1.5b8.

I'm having the exact same issue, and a couple other people at my office are as well. I'm on 10.7.2, and I have tried various combinations of 1.4.2, 1.4.3, 1.4.4, and 1.5b9 with various combinations of the plugin. There is nothing logged in debugging -- it looks like the plugin just never loads, however it does show up in the list of installed plugins.

I have another mac where it is working fine on 1.4.3, but it was installed on snow leopard and upgraded to lion.

Is there anything more we could do to troubleshoot this?

comment:89 Changed 8 years ago by Chris

I am using the 64bit compiled iteration on 1.5b9 with no problems. Initially had some problems when I changed the server to out external server...but I rebooted in debug and it seemed to cure it. Have no problems at all now.

Would like option of internal and external and for address book query to work. If I get time I may work on the latter.

comment:90 Changed 8 years ago by Chris

Just tested on 1.5rc1, again all seems fine.

comment:91 Changed 8 years ago by Sam Rawlins

SIPEAdiumPlugin.AdiumLibpurplePlugin (http://db.tt/2yx5wYNt) _almost_ works against Adium 1.5 RC1 for me. I get the following error when connecting:

You have been rejected by the server: You are currently not using the recommended version of the client

+1 to allowing a custom user-agent. In Pidgin, I have to supply

UCCAPI/3.5.6907.0 OC/3.5.6907.0 (Microsoft Office Communicator 2007 R2)

as the user agent and can then connect successfully.

Thanks everyone for working so hard on this! This is very exciting.

comment:92 Changed 8 years ago by Chris

Just tested on 1.5rc2, again all seems good...except I am not able to launch a group chat. The window is hidden. I can join them but not create successfully. I am not sure when this behaviour started. I will get a log and post it later.

comment:93 Changed 8 years ago by James Frank

I've got the same problem as mentioned earlier. When I try to connect, I get an "Error: read error" and then it says "Reconnecting in... " and counts down from 5 seconds. Repeat.

I'm on Adium 1.4.4 on OS X 10.7.2.

In my console I see the following (I've blanked out my domain with ---):

2/1/12 9:42:20.871 AM Adium: resolving service
2/1/12 9:42:20.871 AM Adium: got jfrank@---.com for email address
2/1/12 9:42:20.872 AM Adium: got ---.com from email address
2/1/12 9:42:20.872 AM Adium: resolving SRV record: _sipinternaltls._tcp.---.com
2/1/12 9:42:20.977 AM Adium: error = Error Domain=kSRVResolverErrorDomain Code=-65554 "(null)"
2/1/12 9:42:20.978 AM Adium: resolving SRV record: _sipinternal._tcp.---.com
2/1/12 9:42:21.071 AM Adium: error = Error Domain=kSRVResolverErrorDomain Code=-65554 "(null)"
2/1/12 9:42:21.071 AM Adium: resolving SRV record: _sip._tls.---.com
2/1/12 9:42:21.072 AM Adium: found this path: sip.---.com
2/1/12 9:42:21.514 AM Adium: Configure account: 2579970
2/1/12 9:42:21.516 AM Adium: AccountName: jfrank@---.com,---\jfrank
2/1/12 9:42:22.136 AM [0x0-0x6b06b].com.adiumX.adiumX: SocketRead: read(5) error 0
2/1/12 9:42:22.136 AM [0x0-0x6b06b].com.adiumX.adiumX: SocketRead err = -9802
2/1/12 9:42:22.142 AM [0x0-0x6b06b].com.adiumX.adiumX: (process:4693): GLib-CRITICAL **: g_hash_table_destroy: assertion `hash_table != NULL' failed

comment:94 Changed 8 years ago by Jon Lundy

I have installed 1.52rc2 and installed the extention.. but it doesn't show up in my list of account types.. am i missing something?

comment:95 Changed 8 years ago by James Frank

Make sure you're looking for the right entry, called "Office Communicator". It took me a few minutes to realize that at first.

comment:96 in reply to:  95 ; Changed 8 years ago by Jon Lundy

Replying to jfrank:

Make sure you're looking for the right entry, called "Office Communicator". It took me a few minutes to realize that at first.

It is very much not there... I tried removing all of my prefs from application support and re-installing the plugin and still nothing.

https://s3.amazonaws.com/xuu/ScreenShot-Adium_Missing_Office.png

comment:97 in reply to:  96 Changed 8 years ago by carlverge

Replying to jonlundy:

It is very much not there... I tried removing all of my prefs from application support and re-installing the plugin and still nothing.

https://s3.amazonaws.com/xuu/ScreenShot-Adium_Missing_Office.png

This is the exact same thing I'm seeing from comment 88.

comment:98 Changed 8 years ago by ni-ka

Using Adium RC5, I get the same error as srawlins.

You have been rejected by the server: You are currently not using the recommended version of the client

+1 to allowing a custom user-agent.

comment:99 Changed 8 years ago by Bob

With the release of the final Adium 1.5, is the SIPE plugin up to date and working? None of the download links in this thread are working for me, so if someone can point me to the most up-to-date download, I'd appreciate it!

comment:100 in reply to:  99 Changed 8 years ago by Jeff

Replying to KatinTX81:

With the release of the final Adium 1.5, is the SIPE plugin up to date and working? None of the download links in this thread are working for me, so if someone can point me to the most up-to-date download, I'd appreciate it!

I used this one and it worked.

http://db.tt/2yx5wYNt

comment:101 Changed 8 years ago by Bob

Doesn't work for me from behind our corporate proxy ... perhaps that site is being blocked for security purposes.

I'll try from home later ...

comment:102 in reply to:  101 Changed 8 years ago by Jeff

Replying to KatinTX81:

Doesn't work for me from behind our corporate proxy ... perhaps that site is being blocked for security purposes.

I'll try from home later ...

I shoved a copy of it here for you

http://users.rcn.com/zer0/SIPEAdiumPlugin.AdiumLibpurplePlugin(64bit).zip

comment:103 Changed 8 years ago by Bob

THANKS!

comment:104 Changed 8 years ago by David Rankin

Does anyone have the Xcode infrastructure needed to recompile SIPE?

I need the SIPE 1.13 version in 64 bit, because I'm using Adium 1.5 and I have to connect to Office 365. Unless someone has already compiled that plugin, I need to compile it myself.

comment:105 in reply to:  104 ; Changed 8 years ago by Evan Kinney

Replying to davidrankin:

Does anyone have the Xcode infrastructure needed to recompile SIPE?

I need the SIPE 1.13 version in 64 bit, because I'm using Adium 1.5 and I have to connect to Office 365. Unless someone has already compiled that plugin, I need to compile it myself.

That's what I'm working on right now. I'm planning on building a fat binary, but it's proving rather difficult given the dependencies that SIPE has (namely NSS; it doesn't like being built as a fat library).

I have a 64-bit version that's working now that I built from the ground up, not using the project in the SIPE repo. I can release that soon if there's significant need, but I'd rather finish it outright.

comment:106 in reply to:  105 Changed 8 years ago by David Rankin

Replying to evan:

That's what I'm working on right now. I'm planning on building a fat binary, but it's proving rather difficult given the dependencies that SIPE has (namely NSS; it doesn't like being built as a fat library).

I have a 64-bit version that's working now that I built from the ground up, not using the project in the SIPE repo. I can release that soon if there's significant need, but I'd rather finish it outright.

Fortunately, my need isn't pressing. Our company is keeping Sametime for the main IM platform, while a few people are starting to use Lync out of our Office 365 implementation. I am using Adium for Sametime, and didn't want to have to run two different programs.

I can tell the black sheep to not expect me on Lync until the Adium plugin is working right.

comment:107 in reply to:  105 Changed 8 years ago by steveheist

Replying to evan:

I have a 64-bit version that's working now that I built from the ground up, not using the project in the SIPE repo. I can release that soon if there's significant need, but I'd rather finish it outright.

I had a go at building a 1.13 64-bit version from the project in the SIPE repo, but it's a bit beyond my expertise. I don't need the fat binary but whatever you're able to contribute and share will be very useful. With Adium 1.5 hoping to get most of my users off of horrid Communicator.

comment:108 Changed 8 years ago by leifeng

I am using the 64 bit binary provided in comment 102 with Adium 1.5 on Lion. It works great with one exception - sometimes when I am instant messaging with someone, I get a message that the other person is offline when they are clearly available as they are responding. I am guessing this is related to my or the other person's free/busy status. Are there error logs I should capture when this happens that will help debug? Or perhaps this is a known issue?

Thanks in advance.

comment:109 Changed 8 years ago by leifeng

To be more precise, the error I see is the following: "This message was not delivered to <recipient name> because one or more recipients are offline"

comment:110 in reply to:  108 ; Changed 8 years ago by Artur Oliveira

Replying to leifeng:

I am using the 64 bit binary provided in comment 102 with Adium 1.5 on Lion. It works great with one exception - sometimes when I am instant messaging with someone, I get a message that the other person is offline when they are clearly available as they are responding. I am guessing this is related to my or the other person's free/busy status. Are there error logs I should capture when this happens that will help debug? Or perhaps this is a known issue?

Thanks in advance.

Have you tried /var/log/system.log ? It's shows some messages from Adium.

comment:111 in reply to:  110 Changed 8 years ago by leifeng

Thanks for your response Arturo. I checked that file and there are no adium related messages that match the timestamp of the error appearing. Any other suggestions?

Have you tried /var/log/system.log ? It's shows some messages from Adium.

comment:112 Changed 8 years ago by ignitus boyone

Testing, the plugin on 10.7.3. I've noticed that I have a group of "Other Contacts" Now which appears to be duplicates of all my stored contacts. Not sure if this is common to the SIPE plugin or something wrong with my setup. I've been following this thread since the start of the year. Hard to believe it is 7 years old. Have to hand it to the ticket submitter for keeping up with it.

Are we still lacking a maintainer for this or is it inline to be main streamed at this point?

comment:113 in reply to:  112 Changed 8 years ago by Jeff

Replying to ignitus:

Testing, the plugin on 10.7.3. I've noticed that I have a group of "Other Contacts" Now which appears to be duplicates of all my stored contacts. Not sure if this is common to the SIPE plugin or something wrong with my setup. I've been following this thread since the start of the year. Hard to believe it is 7 years old. Have to hand it to the ticket submitter for keeping up with it.

Are we still lacking a maintainer for this or is it inline to be main streamed at this point?

I have the issue with "Other" contacts group as well.

comment:114 Changed 8 years ago by fmr

works under Adium 1.5

Downloaded the latest BETA (1.5.1b1), and the plugin crashes on load:

14.05.12 10:56:33,942 Adium: Error loading /Users/frerodla/Library/Application Support/Adium 2.0/PlugIns/SIPEAdiumPlugin 2.AdiumLibpurplePlugin/Contents/MacOS/SIPEAdiumPlugin:  dlopen(/Users/frerodla/Library/Application Support/Adium 2.0/PlugIns/SIPEAdiumPlugin 2.AdiumLibpurplePlugin/Contents/MacOS/SIPEAdiumPlugin, 265): Library not loaded: @executable_path/../Frameworks/libpurple.framework/Versions/0.10.0/libpurple
  Referenced from: /Users/frerodla/Library/Application Support/Adium 2.0/PlugIns/SIPEAdiumPlugin 2.AdiumLibpurplePlugin/Contents/MacOS/SIPEAdiumPlugin
  Reason: image not found
14.05.12 10:56:33,942 Adium: Failed to obtain principal class from plugin "SIPEAdiumPlugin 2.AdiumLibpurplePlugin" ("/Users/frerodla/Library/Application Support/Adium 2.0/PlugIns/SIPEAdiumPlugin 2.AdiumLibpurplePlugin")! infoDictionary: {
    AIMinimumAdiumVersionRequirement = "1.4b12";
    BuildMachineOSBuild = 11C74;
    CFBundleDevelopmentRegion = English;
    CFBundleExecutable = SIPEAdiumPlugin;
    CFBundleExecutablePath = "/Users/frerodla/Library/Application Support/Adium 2.0/PlugIns/SIPEAdiumPlugin 2.AdiumLibpurplePlugin/Contents/MacOS/SIPEAdiumPlugin";
    CFBundleIdentifier = "net.sourceforge.sipe.SIPEAdiumPlugin";
    CFBundleInfoDictionaryVersion = "6.0";
    CFBundleInfoPlistURL = "Contents/Info.plist -- file://localhost/Users/frerodla/Library/Application%20Support/Adium%202.0/PlugIns/SIPEAdiumPlugin%202.AdiumLibpurplePlugin/";
    CFBundleName = SIPEAdiumPlugin;
    CFBundleNumericVersion = 0;
    CFBundlePackageType = BNDL;
    CFBundleSignature = AdIM;
    CFBundleVersion = "";
    DTCompiler = "com.apple.compilers.llvm.clang.1_0";
    DTPlatformBuild = 4D199;
    DTPlatformVersion = GM;
    DTSDKBuild = 11C74;
    DTSDKName = "";
    DTXcode = 0420;
    DTXcodeBuild = 4D199;
    NSBundleInitialPath = "/Users/frerodla/Library/Application Support/Adium 2.0/PlugIns/SIPEAdiumPlugin 2.AdiumLibpurplePlugin";
    NSBundleResolvedPath = "/Users/frerodla/Library/Application Support/Adium 2.0/PlugIns/SIPEAdiumPlugin 2.AdiumLibpurplePlugin";
    NSPrincipalClass = ESSIPELibpurpleServicePlugin;
}
14.05.12 10:56:33,942 Adium: Failed to initialize Plugin "SIPEAdiumPlugin 2.AdiumLibpurplePlugin" ("/Users/frerodla/Library/Application Support/Adium 2.0/PlugIns/SIPEAdiumPlugin 2.AdiumLibpurplePlugin")!

Reinstalled Adium 1.5 and the plugin runs nicely again.

Last edited 8 years ago by fmr (previous) (diff)

comment:115 Changed 8 years ago by Thijs Alkemade

fmr: It will need to be rebuild for the new version of libpurple. It is looking for 2.10.0, but what's included with 1.5.1b1 is 2.10.4.

comment:116 Changed 8 years ago by Evan Kinney

I'm working on getting this integrated into the build.sh stuff so we can take advantage of all the spiffy rtool goodness.

Maybe I could have it link to the symlinked current libpurple/etc. binaries instead of the actual paths. As long as we keep major release versions, I don't think there's going to be too many issues with feature parity.

Right now I'm stuck trying to coerce libnss/libnspr to cross-compile so I can lipo everything together (even the portfile on MacPorts complains that it's a "disaster" trying to make it universal, heh.). Everything else works fine.

/ek

comment:117 Changed 8 years ago by Adam Michel

Cheap hack that makes it work again with the beta:

cd /Applications/Adium.app/Contents/Frameworks/libpurple.framework/Versions
ln -s 0.10.5 0.10.0

Seems to work fine. Obviously there could be some issues I can't see and it isn't a preferred long-term solution, but at least the plugin loads and connects in the beta.

comment:118 Changed 8 years ago by rdleeper

I upgraded to 1.5b1 and applied the Communicator plugin as described above. However, I am still not able to connect and use Adium with Communicator. It appears that Adium is "connected" but the Adium app still spins. Here is my log when attempting to connect to my Exchange account:

10:04:19: <ESPurpleSIPEAccount:3a7ff20 8>:email@xxx.xxx: Updating status for key: isOnline10:04:19: <ESPurpleSIPEAccount:3a7ff20 8>:email@xxx.xxx: Original image of size 480.000000 480.000000
10:04:19: -[CBPurpleAccount setAccountUserImage:withData:]:2717: <ESPurpleSIPEAccount:3a7ff20 8>:email@xxx.xxx: Setting icon data of length 0
10:04:19: <ESPurpleSIPEAccount:3a7ff20 8>:email@xxx.xxx: Updating status for key: User Icon
10:04:19: Adium: Connect: email@xxx.xxx initiating connection using status state <AIStatus: 6e5be70 [Available]> ((null)).
10:04:19: Setting status on ba70850 (email@xxx.xxx,DOMAIN/user): ID available, isActive 1, attributes {
}
10:04:19: (Libpurple: account) Connecting to account email@xxx.xxx,DOMAIN/user.
10:04:19: (Libpurple: connection) Connecting. gc = 0x103a90de0
10:04:19: Connecting: gc=0x3a90de0 (Connecting) 1 / 2
10:04:19: (Libpurple: dnsquery) Performing DNS lookup for oa.xxx.xxx
10:04:19: (Libpurple: account) Connecting to account email@xxx.xxx,DOMAIN/user.
10:04:19: ************ email@xxx.xxx --step-- 1
10:04:19: -[AdiumPurpleDnsRequest startLookup]:194: Performing DNS resolve: oa.xxx.xxx:443
10:04:19: DNS resolve complete for oa.xxx.xxx:443; 1 addresses returned
10:04:19: (Libpurple: dnsquery) IP resolved for oa.xxx.xxx
10:04:19: (Libpurple: proxy) Attempting connection to 204.17.31.208
10:04:19: (Libpurple: proxy) Connecting to oa.xxx.xxx:443 with no proxy 
10:04:19: (Libpurple: proxy) Connection in progress
10:04:19: (Libpurple: proxy) Connecting to oa.xxx.xxx:443.
10:04:19: (Libpurple: proxy) Connected to oa.xxx.xxx:443.

If I wait long enough the follow is seen in the logs:

10:09:20: (Libpurple: connection) Connection error on 0x103a90de0 (reason: 0 description: Server has disconnected)
10:09:20: Connection Disconnected: gc=3a90de0 (Server has disconnected)
10:09:20: <ESPurpleSIPEAccount:3a7ff20 8>:email@xxx.xxx accountConnectionReportDisconnect: Server has disconnected
10:09:20: (Libpurple: account) Disconnecting account email@xxx.xxx,DOMAIN/user (0x10ba70850)
10:09:20: (Libpurple: connection) Disconnecting connection 0x103a90de0
10:09:20: (GLib : GLib): CRITICAL: g_hash_table_destroy: assertion `hash_table != NULL' failed
10:09:20: Disconnected: gc=3a90de0
10:09:20: <ESPurpleSIPEAccount:3a7ff20 8>:email@xxx.xxx: Telling the core we disconnected
10:09:20: -[AIContactObserverManager endListObjectNotificationsDelaysImmediately]:144: 
10:09:20: <ESPurpleSIPEAccount:3a7ff20 8>:email@xxx.xxx: Disconnected ("Server has disconnected"): Automatically reconnecting in 5.000000 seconds (0 attempts performed)
10:09:20: (Libpurple: connection) Destroying connection 0x103a90de

Not sure where the issue lies: my configuration, Adium, Exchange server

comment:119 Changed 8 years ago by Evan Kinney

I'm going to take an (educated) wild guess here and say this is due to the fix in NSS for CVE-2011-3389.

Could you try running Adium from Terminal, but with NSS_SSL_CBC_RANDOM_IV=0 either exported or set on the command line?

i.e.

[evan@midazolam.evanosaurus.lan ~]$ NSS_SSL_CBC_RANDOM_IV=0 /Applications/Adium.app/Contents/MacOS/Adium

comment:120 Changed 8 years ago by rdleeper

I ran as you indicated.

Same problem.

However it appears that I did not copy / paste enough information. Not sure if this is helpful or not.

13:35:18: (Libpurple: proxy) Connecting to oa.xxx.xxx:443 with no proxy 
13:35:18: (Libpurple: proxy) Connection in progress
13:35:19: (Libpurple: proxy) Connecting to oa.xxx.xxx:443.
13:35:19: (Libpurple: proxy) Connected to oa.xxx.xxx:443.
13:35:19: (Libpurple: stun) using server
13:35:19: (Libpurple: nat-pmp) Found a default gateway
13:35:19: (Libpurple: nat-pmp) Attempting to retrieve the public ip address for the NAT device at: 10.147.66.1
13:35:19: (Libpurple: nat-pmp)  Timeout: 0s 250000us
13:35:19: (Libpurple: nat-pmp) Response was not received from our gateway! Instead from: 255.127.0.0

comment:121 Changed 8 years ago by Evan Kinney

Is there anything between the nat-pmp discovery failure and the "Server has disconnected" message?

The full debug log would be helpful to have as opposed to snippets.

comment:122 Changed 8 years ago by rdleeper

Here is the full debug. I turned off all my other accounts first.

14:22:32: <ESPurpleSIPEAccount:39ce4a0 8>:email@xxx.xxx: Original image of size 480.000000 480.000000
14:22:32: -[CBPurpleAccount setAccountUserImage:withData:]:2717: <ESPurpleSIPEAccount:39ce4a0 8>:email@xxx.xxx: Setting icon data of length 0
14:22:32: <ESPurpleSIPEAccount:39ce4a0 8>:email@xxx.xxx: Updating status for key: User Icon
14:22:32: Adium: Connect: email@xxx.xxx initiating connection using status state <AIStatus: 3c57d10 [Available]> ((null)).
14:22:32: Setting status on e33cef0 (email@xxx.xxx,DOMAIN/user): ID available, isActive 1, attributes {
}
14:22:32: (Libpurple: account) Connecting to account email@xxx.xxx,DOMAIN/user.
14:22:32: (Libpurple: connection) Connecting. gc = 0x1064eb690
14:22:32: Connecting: gc=0x64eb690 (Connecting) 1 / 2
14:22:32: (Libpurple: dnsquery) Performing DNS lookup for oa.xxx.xxx
14:22:32: <ESPurpleSIPEAccount:39ce4a0 8>:email@xxx.xxx: Updating status for key: isOnline
14:22:32: ************ email@xxx.xxx --step-- 1
14:22:32: -[AdiumPurpleDnsRequest startLookup]:194: Performing DNS resolve: oa.xxx.xxx:443
14:22:32: DNS resolve complete for oa.xxx.xxx:443; 1 addresses returned
14:22:32: (Libpurple: dnsquery) IP resolved for oa.xxx.xxx
14:22:32: (Libpurple: proxy) Attempting connection to 204.17.31.208
14:22:32: (Libpurple: proxy) Connecting to oa.xxx.xxx:443 with no proxy
14:22:32: (Libpurple: proxy) Connection in progress
14:22:32: (Libpurple: proxy) Connecting to oa.xxx.xxx:443.
14:22:32: (Libpurple: proxy) Connected to oa.xxx.xxx:443.
14:22:32: (Libpurple: stun) using server
14:22:32: (Libpurple: stun) using server
14:22:32: (Libpurple: stun) using server
14:22:33: gboolean adium_source_remove(guint):63: Source info for 434 not found
14:22:34: gboolean adium_source_remove(guint):63: Source info for 438 not found
14:22:34: gboolean adium_source_remove(guint):63: Source info for 440 not found
14:22:37: (Libpurple: util) Writing file accounts.xml to directory /Users/dleeper/Library/Application Support/Adium 2.0/Users/Default/libpurple
14:22:37: (Libpurple: util) Writing file /Users/dleeper/Library/Application Support/Adium 2.0/Users/Default/libpurple/accounts.xml
14:22:37: (Libpurple: util) Writing file blist.xml to directory /Users/dleeper/Library/Application Support/Adium 2.0/Users/Default/libpurple
14:22:37: (Libpurple: util) Writing file /Users/dleeper/Library/Application Support/Adium 2.0/Users/Default/libpurple/blist.xml
14:23:25: -[AIAutomaticStatus notificationHandler:]:279: Idle (end) detected.
14:23:25: <ESPurpleSIPEAccount:39ce4a0 8>:email@xxx.xxx: Updating status for key: idleSince
14:23:32: (Libpurple: stun) using server
14:23:32: (Libpurple: stun) using server
14:24:32: (Libpurple: stun) using server
14:24:32: (Libpurple: stun) using server
14:25:32: (Libpurple: stun) using server
14:25:32: (Libpurple: stun) using server
14:26:32: (Libpurple: stun) using server
14:26:32: (Libpurple: stun) using server
14:27:00: -[AIAutomaticStatus notificationHandler:]:279: Idle (end) detected.
14:27:00: <ESPurpleSIPEAccount:39ce4a0 8>:email@xxx.xxx: Updating status for key: idleSince
14:27:32: (Libpurple: stun) using server
14:27:32: (Libpurple: stun) using server
14:27:33: (Libpurple: connection) Connection error on 0x1064eb690 (reason: 0 description: Server has disconnected)
14:27:33: Connection Disconnected: gc=64eb690 (Server has disconnected)
14:27:33: <ESPurpleSIPEAccount:39ce4a0 8>:email@xxx.xxx accountConnectionReportDisconnect: Server has disconnected
14:27:33: (Libpurple: account) Disconnecting account email@xxx.xxx,DOMAIN/user (0x10e33cef0)
14:27:33: (Libpurple: connection) Disconnecting connection 0x1064eb690
14:27:33: (GLib : GLib): CRITICAL: g_hash_table_destroy: assertion `hash_table != NULL' failed
14:27:33: Disconnected: gc=64eb690
14:27:33: <ESPurpleSIPEAccount:39ce4a0 8>:email@xxx.xxx: Telling the core we disconnected
14:27:33: -[AIContactObserverManager endListObjectNotificationsDelaysImmediately]:144:
14:27:33: <ESPurpleSIPEAccount:39ce4a0 8>:email@xxx.xxx: Disconnected ("Server has disconnected"): Automatically reconnecting in 5.000000 seconds (0 attempts performed)
14:27:33: (Libpurple: connection) Destroying connection 0x1064eb690
14:27:38: (Libpurple: util) Writing file accounts.xml to directory /Users/dleeper/Library/Application Support/Adium 2.0/Users/Default/libpurple
14:27:38: (Libpurple: util) Writing file /Users/dleeper/Library/Application Support/Adium 2.0/Users/Default/libpurple/accounts.xml
14:27:38: <ESPurpleSIPEAccount:39ce4a0 8>:email@xxx.xxx: Original image of size 480.000000 480.000000
14:27:38: -[CBPurpleAccount setAccountUserImage:withData:]:2717: <ESPurpleSIPEAccount:39ce4a0 8>:email@xxx.xxx: Setting icon data of length 0
14:27:38: <ESPurpleSIPEAccount:39ce4a0 8>:email@xxx.xxx: Updating status for key: User Icon
14:27:38: Adium: Connect: email@xxx.xxx initiating connection using status state <AIStatus: 3c57d10 [Available]> ((null)).
14:27:38: Setting status on e33cef0 (email@xxx.xxx,DOMAIN/user): ID available, isActive 1, attributes {
}
14:27:38: (Libpurple: account) Connecting to account email@xxx.xxx,DOMAIN/user.
14:27:38: (Libpurple: connection) Connecting. gc = 0x103cfab50
14:27:38: Connecting: gc=0x3cfab50 (Connecting) 1 / 2
14:27:38: (Libpurple: dnsquery) Performing DNS lookup for oa.xxx.xxx
14:27:38: <ESPurpleSIPEAccount:39ce4a0 8>:email@xxx.xxx: Updating status for key: isOnline
14:27:38: ************ email@xxx.xxx --step-- 1
14:27:38: -[AdiumPurpleDnsRequest startLookup]:194: Performing DNS resolve: oa.xxx.xxx:443
14:27:38: DNS resolve complete for oa.xxx.xxx:443; 1 addresses returned
14:27:38: (Libpurple: dnsquery) IP resolved for oa.xxx.xxx
14:27:38: (Libpurple: proxy) Attempting connection to 204.17.31.208
14:27:38: (Libpurple: proxy) Connecting to oa.xxx.xxx:443 with no proxy
14:27:38: (Libpurple: proxy) Connection in progress
14:27:38: (Libpurple: proxy) Connecting to oa.xxx.xxx:443.
14:27:38: (Libpurple: proxy) Connected to oa.xxx.xxx:443.
14:27:38: (Libpurple: stun) using server
14:27:38: (Libpurple: stun) using server
14:27:38: (Libpurple: stun) using server
14:27:39: gboolean adium_source_remove(guint):63: Source info for 458 not found
14:27:40: gboolean adium_source_remove(guint):63: Source info for 462 not found
14:27:40: gboolean adium_source_remove(guint):63: Source info for 464 not found
14:27:43: (Libpurple: util) Writing file accounts.xml to directory /Users/dleeper/Library/Application Support/Adium 2.0/Users/Default/libpurple
14:27:43: (Libpurple: util) Writing file /Users/dleeper/Library/Application Support/Adium 2.0/Users/Default/libpurple/accounts.xml
14:27:43: (Libpurple: util) Writing file blist.xml to directory /Users/dleeper/Library/Application Support/Adium 2.0/Users/Default/libpurple
14:27:43: (Libpurple: util) Writing file /Users/dleeper/Library/Application Support/Adium 2.0/Users/Default/libpurple/blist.xml
14:28:09: -[AIAutomaticStatus notificationHandler:]:279: Idle (end) detected.
14:28:09: <ESPurpleSIPEAccount:39ce4a0 8>:email@xxx.xxx: Updating status for key: idleSince

comment:123 Changed 8 years ago by Evan Kinney

Thanks.

I still think the NSS bug I mentioned above is the problem. We should be seeing some certificate validation stuff in the debug logs from NSS after the connection attempts.

If I remember correctly, all the connectors get forked off into their own thread, so that environment variable won't carry over I suppose.

One more thing to try:

launchctl setenv NSS_SSL_CBC_RANDOM_IV 1

then completely quit Terminal.app, reopen it, and try running the Adium binary directly again:

/Applications/Adium.app/Contents/MacOS/Adium

Note: this will only affect your current session; as soon as you log off, this will be lost. If it works, you can stick the "setenv" command in ~/.launchd.conf and it'll get set every time you log in.

Not the most elegant fix, but I'll keep track of it and see what they ultimately decide to do in NSS. If nothing else, I guess we can define this at compile time... but I'd rather not go that direction.

comment:124 Changed 8 years ago by rdleeper

I did as you indicated. Appears to be the same issue. However, I noticed in the Terminal app the following when I attempted to connect to my Communicator account. I believe this is what you were looking for. It wasn't in the Adium Debug Log but from the Terminal window:

SocketRead err = -9806
cdsa: SSLHandshake failed with error -9806
2012-05-25 15:04:38.598 Adium[65419:1a03] Configure account: 0x10a583000
2012-05-25 15:04:38.678 Adium[65419:1a03] AccountName: email@xxx.xxx,DOMAIN/user

comment:125 Changed 8 years ago by rdleeper

Now I turned off all accounts upon startup. Started in DEBUG. Set that env var to 0. Then connect to my account. The SSL Handshake error was due to another account. This error is not shown any more.

15:15:04: __34-[AILoggerPlugin _loadDirtyLogSet]_block_invoke_0:1327: (on im.adium.AILoggerPlugin.dirtyLogSetMutationQueue) Loaded dirty log set with 7 logs
15:15:04: Failed to load defaults for PurpleDefaultsSIPE
15:15:04: -[AIListWindowController adiumFrameAutosaveName]:167: My autosave name is Contact List:ROOTJKSHFOEIZNGIOEOP
15:15:22: -[AIAccount(Abstract) retrievePasswordThenConnect]:448: Retrieving <ESPurpleSIPEAccount:388d590 8>:email@xxx.xxx's password (promptOption 0)
15:15:22: void adiumPurpleCoreDebugInit():158: 
15:15:22: (Libpurple: util) Reading file xmpp-caps.xml from directory /Users/dleeper/Library/Application Support/Adium 2.0/Users/Default/libpurple
15:15:22: (Libpurple: jabber) creating hash tables for data objects
15:15:22: (Libpurple: prefs) /purple/status/scores/offline changed, scheduling save.
15:15:22: (Libpurple: prefs) /purple/status/scores/available changed, scheduling save.
15:15:22: (Libpurple: prefs) /purple/status/scores/invisible changed, scheduling save.
15:15:22: (Libpurple: prefs) /purple/status/scores/away changed, scheduling save.
15:15:22: (Libpurple: prefs) /purple/status/scores/extended_away changed, scheduling save.
15:15:22: (Libpurple: prefs) /purple/status/scores/idle changed, scheduling save.
15:15:22: (Libpurple: prefs) /purple/status/scores/offline_msg changed, scheduling save.
15:15:22: (Libpurple: util) Reading file accounts.xml from directory /Users/dleeper/Library/Application Support/Adium 2.0/Users/Default/libpurple
15:15:22: (Libpurple: util) Reading file status.xml from directory /Users/dleeper/Library/Application Support/Adium 2.0/Users/Default/libpurple
15:15:22: (Libpurple: util) File /Users/dleeper/Library/Application Support/Adium 2.0/Users/Default/libpurple/status.xml does not exist (this is not necessarily an error)
15:15:22: (Libpurple: certificate) CertificateVerifier x509, singleuse requested but not found.
15:15:22: (Libpurple: certificate) CertificateVerifier singleuse registered
15:15:22: (Libpurple: certificate) CertificatePool x509, ca requested but not found.
15:15:22: (Libpurple: certificate) CertificateScheme x509 requested but not found.
15:15:22: (Libpurple: certificate/x509/ca) Lazy init failed because an X.509 Scheme is not yet registered. Maybe it will be better later.
15:15:22: (Libpurple: certificate/x509/ca) Init failed, probably because a dependency is not yet registered. It has been deferred to later.
15:15:22: (Libpurple: certificate) CertificatePool ca registered
15:15:22: (Libpurple: certificate) CertificatePool x509, tls_peers requested but not found.
15:15:22: (Libpurple: certificate) CertificatePool tls_peers registered
15:15:22: (Libpurple: certificate) CertificateVerifier x509, tls_cached requested but not found.
15:15:22: (Libpurple: certificate) CertificateVerifier tls_cached registered
15:15:22: (Libpurple: prefs) /purple/logging/format changed, scheduling save.
15:15:22: (Libpurple: prefs) /purple/logging/format changed, scheduling save.
15:15:22: (Libpurple: prefs) /purple/proxy/type changed, scheduling save.
15:15:22: (Libpurple: prefs) /purple/proxy/host changed, scheduling save.
15:15:22: (Libpurple: prefs) /purple/proxy/port changed, scheduling save.
15:15:22: (Libpurple: prefs) /purple/proxy/username changed, scheduling save.
15:15:22: (Libpurple: prefs) /purple/proxy/password changed, scheduling save.
15:15:22: (Libpurple: sslconn) Unable to initialize SSL.
15:15:22: (Libpurple: util) Reading file smileys.xml from directory /Users/dleeper/Library/Application Support/Adium 2.0/Users/Default/libpurple
15:15:22: (Libpurple: util) File /Users/dleeper/Library/Application Support/Adium 2.0/Users/Default/libpurple/smileys.xml does not exist (this is not necessarily an error)
15:15:22: (Libpurple: stun) using server 
15:15:22: (Libpurple: nat-pmp) Found a default gateway
15:15:22: (Libpurple: nat-pmp) Attempting to retrieve the public ip address for the NAT device at: 10.147.66.1
15:15:22: (Libpurple: nat-pmp) 	Timeout: 0s 250000us
15:15:23: (Libpurple: nat-pmp) Response was not received from our gateway! Instead from: 0.0.0.0
15:15:23: Setting en as LC_ALL
15:15:23: adiumPurpleCore: load_all_plugins()
15:15:23: adiumPurpleCoreUiInit
15:15:23: adiumPurpleCore: purple_blist_load()...
15:15:23: (Libpurple: util) Reading file blist.xml from directory /Users/dleeper/Library/Application Support/Adium 2.0/Users/Default/libpurple
15:15:23: Created PurpleAccount 0x9956450 with UID email@xxx.xxx and protocolPlugin prpl-sipe
15:15:23: Created PurpleAccount 0x9956450 with UID email@xxx.xxx, protocolPlugin prpl-sipe
15:15:23: <ESPurpleSIPEAccount:388d590 8>:email@xxx.xxx: Original image of size 480.000000 480.000000
15:15:23: -[CBPurpleAccount setAccountUserImage:withData:]:2717: <ESPurpleSIPEAccount:388d590 8>:email@xxx.xxx: Setting icon data of length 0
15:15:23: <ESPurpleSIPEAccount:388d590 8>:email@xxx.xxx: Updating status for key: User Icon
15:15:23: Adium: Connect: email@xxx.xxx initiating connection using status state <AIStatus: 23e7e50 [Available]> ((null)).
15:15:23: Setting status on 9956450 (email@xxx.xxx,DOMAIN/user): ID available, isActive 1, attributes {
}
15:15:23: (Libpurple: account) Connecting to account email@xxx.xxx,DOMAIN/user.
15:15:23: (Libpurple: connection) Connecting. gc = 0x10996a090
15:15:23: Connecting: gc=0x996a090 (Connecting) 1 / 2
15:15:23: (Libpurple: dnsquery) Performing DNS lookup for oa.xxx.xxx
15:15:23: (Libpurple: account) Connecting to account email@xxx.xxx,DOMAIN/user.
15:15:23: ************ email@xxx.xxx --step-- 1
15:15:23: -[AdiumPurpleDnsRequest startLookup]:194: Performing DNS resolve: oa.xxx.xxx:443
15:15:23: DNS resolve complete for oa.xxx.xxx:443; 1 addresses returned
15:15:23: (Libpurple: dnsquery) IP resolved for oa.xxx.xxx
15:15:23: (Libpurple: proxy) Attempting connection to 204.17.31.208
15:15:23: (Libpurple: proxy) Connecting to oa.xxx.xxx:443 with no proxy
15:15:23: (Libpurple: proxy) Connection in progress
15:15:23: (Libpurple: proxy) Connecting to oa.xxx.xxx:443.
15:15:23: (Libpurple: proxy) Connected to oa.xxx.xxx:443.
15:15:23: (Libpurple: stun) using server 
15:15:23: (Libpurple: stun) using server 
15:15:23: (Libpurple: stun) using server 
15:15:23: gboolean adium_source_remove(guint):63: Source info for 3 not found
15:15:24: gboolean adium_source_remove(guint):63: Source info for 13 not found
15:15:24: gboolean adium_source_remove(guint):63: Source info for 15 not found
15:15:27: (Libpurple: util) Writing file prefs.xml to directory /Users/dleeper/Library/Application Support/Adium 2.0/Users/Default/libpurple
15:15:27: (Libpurple: util) Writing file /Users/dleeper/Library/Application Support/Adium 2.0/Users/Default/libpurple/prefs.xml
15:15:27: (Libpurple: util) Writing file accounts.xml to directory /Users/dleeper/Library/Application Support/Adium 2.0/Users/Default/libpurple
15:15:27: (Libpurple: util) Writing file /Users/dleeper/Library/Application Support/Adium 2.0/Users/Default/libpurple/accounts.xml
15:15:28: (Libpurple: util) Writing file blist.xml to directory /Users/dleeper/Library/Application Support/Adium 2.0/Users/Default/libpurple
15:15:28: (Libpurple: util) Writing file /Users/dleeper/Library/Application Support/Adium 2.0/Users/Default/libpurple/blist.xml


comment:126 Changed 8 years ago by Evan Kinney

Owner: changed from nobody to Evan Kinney
Status: newassigned

comment:127 Changed 8 years ago by leifeng

Is there a build that works with the just released Adium 1.5.1?

comment:128 Changed 8 years ago by Hugh Caley

Adding myself hoping for a new build for Adium 1.5.1. 1.5 continues to work with the SIPE plugin nicely provided above. Personally I'm going to try to build it as well, but I'm new to Mac OSX development, and it's going to be a while. Hopefully someone more experienced will beat me to it.

comment:129 Changed 8 years ago by Adam Michel

The dirty hack I posted above will still make the current plugin function in 1.5.1. I use it daily, so far no ugly side effects have become apparent. You will have to re-do the symlink every time Adium updates itself, but that's just the price you pay, I suppose.

comment:130 Changed 8 years ago by Hugh Caley

@elfurbe, oops, missed your post. Yeah, works for me too.

comment:131 Changed 8 years ago by leifeng

Works for me as well. Thank you very much indeed.

comment:132 Changed 8 years ago by Adam

I'm trying to get connected to Office 365 using Adium 1.5.1 and the SIPE plugin attached to post #102. I also ran the 'Dirty hack' in post #117 above. When I try to connect, i get this in the logs:

11:43:42: (Libpurple: account) Connecting to account xxxx@xxxxxx.xxx.
11:43:42: (Libpurple: connection) Connecting. gc = 0x10c01d860
11:43:42: Connecting: gc=0xc01d860 (Connecting) 1 / 2
11:43:42: (Libpurple: dnsquery) Performing DNS lookup for sipdir.online.lync.com
11:43:42: ************ xxxx@xxxxxx.xxx --step-- 1
11:43:42: -[AdiumPurpleDnsRequest startLookup]:194: Performing DNS resolve: sipdir.online.lync.com:443
11:43:42: DNS resolve complete for sipdir.online.lync.com:443; 1 addresses returned
11:43:42: (Libpurple: dnsquery) IP resolved for sipdir.online.lync.com
11:43:42: (Libpurple: proxy) Attempting connection to 65.55.127.25
11:43:42: (Libpurple: proxy) Connecting to sipdir.online.lync.com:443 with no proxy
11:43:42: (Libpurple: proxy) Connection in progress
11:43:42: (Libpurple: proxy) Connecting to sipdir.online.lync.com:443.
11:43:42: (Libpurple: proxy) Connected to sipdir.online.lync.com:443.
11:43:42: (Libpurple: cdsa) Connecting
11:43:42: (Libpurple: cdsa) Connecting
11:43:42: (Libpurple: cdsa) Connecting
11:43:42: (Libpurple: cdsa) Connecting
11:43:43: (Libpurple: cdsa) Connecting
11:43:43: (Libpurple: cdsa) SSL_connect: verifying certificate
11:43:43: (Libpurple: cdsa) SSL_connect complete
11:43:43: (Libpurple: stun) using server 
11:43:43: (Libpurple: nat-pmp) Found a default gateway
11:43:43: (Libpurple: nat-pmp) Attempting to retrieve the public ip address for the NAT device at: 192.168.102.254
11:43:43: (Libpurple: nat-pmp) 	Timeout: 0s 250000us
11:43:43: (Libpurple: nat-pmp) Response was not received from our gateway! Instead from: 255.127.0.0
11:43:43: (Libpurple: stun) using server 
11:43:43: (Libpurple: stun) using server 
11:43:43: (Libpurple: stun) using server 
11:43:43: (Libpurple: stun) using server 
11:43:44: (Libpurple: stun) using server 
11:43:44: (Libpurple: stun) using server 
11:43:44: gboolean adium_source_remove(guint):63: Source info for 70 not found
11:43:45: gboolean adium_source_remove(guint):63: Source info for 78 not found
11:43:45: gboolean adium_source_remove(guint):63: Source info for 80 not found
11:43:47: (Libpurple: util) Writing file accounts.xml to directory /Users/xxxxx/Library/Application Support/Adium 2.0/Users/Default/libpurple
11:43:47: (Libpurple: util) Writing file /Users/xxxxx/Library/Application Support/Adium 2.0/Users/Default/libpurple/accounts.xml
11:43:47: (Libpurple: util) Writing file blist.xml to directory /Users/xxxxx/Library/Application Support/Adium 2.0/Users/Default/libpurple
11:43:47: (Libpurple: util) Writing file /Users/xxxxx/Library/Application Support/Adium 2.0/Users/Default/libpurple/blist.xml
11:43:47: (Libpurple: connection) Connection error on 0x10c01d860 (reason: 2 description: Authentication failed)
11:43:47: Connection Disconnected: gc=c01d860 (Authentication failed)
11:43:47: -[AIAccount(Abstract) serverReportedInvalidPassword]:774: <ESPurpleSIPEAccount:a681670 31>:xxxx@xxxxxx.xxx
11:43:47: <ESPurpleSIPEAccount:a681670 31>:xxxx@xxxxxx.xxx accountConnectionReportDisconnect: Authentication failed
11:43:47: (Libpurple: account) Disconnecting account xxxx@xxxxxx.xxx (0x1039b4f70)
11:43:47: (Libpurple: connection) Disconnecting connection 0x10c01d860
11:43:47: (GLib : GLib): CRITICAL: g_hash_table_destroy: assertion `hash_table != NULL' failed
11:43:47: Disconnected: gc=c01d860
11:43:47: <ESPurpleSIPEAccount:a681670 31>:xxxx@xxxxxx.xxx: Telling the core we disconnected
11:43:47: -[AIContactObserverManager endListObjectNotificationsDelaysImmediately]:144: 
11:43:47: <ESPurpleSIPEAccount:a681670 31>:xxxx@xxxxxx.xxx: Disconnected ("Authentication failed"): Automatically reconnecting immediately
11:43:47: -[AIAccount(Abstract) retrievePasswordThenConnect]:448: Retrieving <ESPurpleSIPEAccount:a681670 31>:adamh@energycap.com's password (promptOption 1)
11:43:47: <ESPurpleSIPEAccount:a681670 31>:xxxx@xxxxxx.xxx: Updating status for key: isOnline
11:43:47: (Libpurple: connection) Destroying connection 0x10c01d860
11:43:52: (Libpurple: util) Writing file accounts.xml to directory /Users/xxxxx/Library/Application Support/Adium 2.0/Users/Default/libpurple
11:43:52: (Libpurple: util) Writing file /Users/xxxxx/Library/Application Support/Adium 2.0/Users/Default/libpurple/accounts.xml

Any suggestions on things I can try? I should note that we are using federated logins. I suspect that could be the problem, but I thought that MS would handle that on their end, and it would be transparent to adium.

Thanks for the help!

comment:133 in reply to:  60 Changed 8 years ago by ignitus boyone

Replying to reaperhulk:

Replying to joelstein:

2) Adding a contact... I tried adding a contact like with a username of "first.last@…" (which is the format of this company), and if I contact them, it says they may not get the message. I proceed with sending it. Then they respond back, and it appears in a new chat window. When looking at their new chat, their account name is "sip:first.last@companyname.net". So, I delete the first contact and use the second. That seems to work fine. But if I create a new contact with the username of "sip:first.last@companyname.net", Adium stores that as ""sipfirst.last@…" (no colon), and that contact won't work because that username doesn't exist in the system.

I've fixed this bug in the latest build. You will need to still define your contact as sip:email@domain.com but it will add properly now. http://langui.sh/downloads/SIPEAdiumPlugin.AdiumLibpurplePlugin-20110914.zip

I noticed this issue today. I have been logging in to my work box to add contacts and then logging in to the system with Adium. Should this be fixed in the core code for the plugin or did you only fix it in a private branch? I seem to still be experiencing the bug and was having trouble deciding what actions to take to correct it.

Replying to mlamb:

Have you checked your changes into the SIPE project's git repo? I think adding the SVR record resolution would be a welcome addition for everyone (not just the ones who have been lucky enough to find this thread). :)

I have not at this time, but that's mostly because the code as currently constituted doesn't use libpurple's DNS SRV code. I haven't been able to sort out how that works so I'm using Apple's dns_sd frameworks. Seems like the wrong long-term approach, but works for now.

comment:134 in reply to:  132 ; Changed 8 years ago by David Rankin

Replying to achegedus:

I'm trying to get connected to Office 365 using Adium 1.5.1 and the SIPE plugin attached to post #102. I also ran the 'Dirty hack' in post #117 above. When I try to connect, i get this in the logs:

... Deleted

Any suggestions on things I can try? I should note that we are using federated logins. I suspect that could be the problem, but I thought that MS would handle that on their end, and it would be transparent to adium.

Thanks for the help!

Looking over at the SIPE pages, we may have an issue where SIPE has to fake the user agent field in order to get TLS-DSK authentication. Pidgin appears to give that in an advanced option. Any ideas how we can set that ourselves?

Thanks, David

comment:135 Changed 8 years ago by Nathan Toone

Has there been any progress on making this an "official" plugin (listed in adiumxtras, or putting it at least in some kind of public repository)? I've downloaded it, and it works great, as it exists in this thread (with the need to create the symbolic link for the library every time Adium updates).

comment:136 Changed 8 years ago by CaptWiggum

I installed SIPEAdiumPlugin.AdiumLibpurplePlugin-20110914.zip on my Macbook Pro 5,5 (x86) running Mountain Lion (OSX 10.8) with Audium 1.5.3.

When I restarted Audium to pickup the new plug-in, it said: "Plugin SIPEAudiumPlugin Will be Disabled. The plugin does not support your native architecture."

Is there another download that will support x86 Mountain Lion?

Thank you for all this great work to support SIPE!

comment:137 in reply to:  136 ; Changed 8 years ago by Hugh Caley

Replying to CaptWiggum:

I installed SIPEAdiumPlugin.AdiumLibpurplePlugin-20110914.zip on my Macbook Pro 5,5 (x86) running Mountain Lion (OSX 10.8) with Audium 1.5.3.

When I restarted Audium to pickup the new plug-in, it said: "Plugin SIPEAudiumPlugin Will be Disabled. The plugin does not support your native architecture."

Is there another download that will support x86 Mountain Lion?

Thank you for all this great work to support SIPE!

Did you try creating the symlink as shown in comment:117?

Last edited 8 years ago by Frank (previous) (diff)

comment:138 in reply to:  137 ; Changed 8 years ago by CaptWiggum

Replying to hcaley:

Replying to CaptWiggum: Did you try creating the symlink as shown in comment:117?

Yes I did make the sym-link, and no change. Any tips appreciated. Is anyone using with Mountain Lion?

comment:139 in reply to:  138 Changed 8 years ago by Hugh Caley

Replying to CaptWiggum:

Replying to hcaley:

Replying to CaptWiggum: Did you try creating the symlink as shown in comment:117?

Yes I did make the sym-link, and no change. Any tips appreciated. Is anyone using with Mountain Lion?

Yes, I am using it with Mountain Lion. Works fine, as long as I used that symlink.

comment:140 Changed 8 years ago by CaptWiggum

Wish I knew what I was doing differently.

lisa:0:jmasinter:/Applications/Adium.app/Contents/Frameworks/libpurple.framework/Versions:$ ls -al
total 16
drwxr-xr-x@ 5 jmasinter  admin  170 Sep  7 18:10 .
drwxr-xr-x@ 6 jmasinter  admin  204 Aug 12 17:10 ..
lrwxr-xr-x  1 jmasinter  admin    6 Sep  7 18:10 0.10.0 -> 0.10.5
drwxr-xr-x@ 5 jmasinter  admin  170 Sep  7 18:10 0.10.5
lrwxr-xr-x  1 jmasinter  admin    6 Sep  7 18:09 Current -> 0.10.5
lisa:0:jmasinter:/Applications/Adium.app/Contents/Frameworks/libpurple.framework/Versions:$ 

Last edited 8 years ago by CaptWiggum (previous) (diff)

comment:141 in reply to:  140 Changed 8 years ago by Peter

I figured out the issue with the latest compile of the plugin.

prydain:PlugIns plewis$ file SIPEAdiumPlugin.AdiumLibpurplePlugin/Contents/MacOS/SIPEAdiumPlugin
SIPEAdiumPlugin.AdiumLibpurplePlugin/Contents/MacOS/SIPEAdiumPlugin: Mach-O 64-bit bundle x86_64
prydain:PlugIns plewis$ file ../PlugIns\ \(Disabled\)/SIPEAdiumPlugin.AdiumLibpurplePlugin//Contents/MacOS/SIPEAdiumPlugin
../PlugIns (Disabled)/SIPEAdiumPlugin.AdiumLibpurplePlugin//Contents/MacOS/SIPEAdiumPlugin: Mach-O bundle i386

It looks like the last compile it was for 32bit platform only. Those of us on 64bit, the latest won't run. If you have instructions on the compile process, I'd be happy to give you a hand with this. I'm not strong in C++, but know enough to be dangerous.

Replying to CaptWiggum:

Wish I knew what I was doing differently.

Last edited 8 years ago by Peter (previous) (diff)

comment:142 in reply to:  134 Changed 8 years ago by zwise

Replying to davidrankin:

Any suggestions on things I can try? I should note that we are using federated logins. I suspect that could be the problem, but I thought that MS would handle that on their end, and it would be transparent to adium.

Looking over at the SIPE pages, we may have an issue where SIPE has to fake the user agent field in order to get TLS-DSK authentication. Pidgin appears to give that in an advanced option. Any ideas how we can set that ourselves?

davidrankin or achegedus:
Have you had any success in getting around this error yet?

comment:143 Changed 8 years ago by CaptWiggum

Oh yes, good catch. When it said "Plugin SIPEAudiumPlugin Will be Disabled. The plugin does not support your native architecture." my first thought was that is was for PPC. But yes I'm running latest Adium 1.5.3 (8/12/12) native 64-bit. So mixing i386 libs would be a problem. Thank you for any help in getting this rebuilt.

comment:144 Changed 8 years ago by benw

I got this plugin working under OSX 10.7.5, Adium Version 1.5.4b4 (5a20bccaab6f, 17/10/12). For the sake of anyone reading this and trying to get it running, I did:

  1. Quit Adium
  2. Download the Adium SIPE Plugin mentioned in comment:102 from http://users.rcn.com/zer0/SIPEAdiumPlugin.AdiumLibpurplePlugin(64bit).zip
  3. Unzip that and copy SIPEAdiumPlugin.AdiumLibpurplePlugin to ~/Library/Application Support/Adium 2.0/PlugIns/
  4. Create some symlinks in Adium's app folder:
    ln -s Current /Applications/Adium.app/Contents/Frameworks/libpurple.framework/Versions/0.10.0
    ln -s Current /Applications/Adium.app/Contents/Frameworks/libglib.framework/Versions/2.0.0
    ln -s Current /Applications/Adium.app/Contents/Frameworks/libintl.framework/Versions/8
    
  5. in Terminal.app, run:
    launchctl setenv NSS_SSL_CBC_RANDOM_IV 1
    
    Then quit Terminal.app.

You should now be able to launch Adium and add an account with the type "Office Communicator".

comment:145 Changed 8 years ago by Chad Monroe

Here's an updated version of the plugin that works with 1.5.4 without modification. I compiled it for 32 and 64 bit but only tested 64 bit.

http://goo.gl/Frl4j

Before installation, make sure you have gettext, nspr, and nss installed. I recommend doing this via MacPorts. Follow the instructions here:

http://www.macports.org/install.php

Then from terminal run:

sudo port install gettext nspr nss

After that install the plugin and you should be set. If you've made the changes in comment #144 to your Adium binary, delete it and re-download. So far it seems to be working well in my setup. I have a working build environment and will try to keep up with Adium releases as things change.

comment:146 in reply to:  145 Changed 8 years ago by JMcLeod

Replying to cmonroe:

Here's an updated version of the plugin that works with 1.5.4 without modification. I compiled it for 32 and 64 bit but only tested 64 bit.

http://goo.gl/Frl4j

Before installation, make sure you have gettext, nspr, and nss installed. I recommend doing this via MacPorts. Follow the instructions here:

http://www.macports.org/install.php

Thanks cmonroe! I just had to make one tweak.

If you're using Homebrew instead of macports, http://mxcl.github.com/homebrew/

You'll need to make a link for libnss3.dylib : ln -s /usr/local/lib /opt/local/lib

This particular build looks for the dylib in /opt/local/lib

Last edited 8 years ago by JMcLeod (previous) (diff)

comment:147 Changed 8 years ago by Chad Monroe

Good call, thanks for the info. I used MacPorts for compilation as I didn't see nss included with Adium anywhere. I wonder why it's hard coded? Usually the library path only matters at compile time; at run time if the app can find the lib anywhere it will use it. Another thought would be to add the library path to your environment. Try removing your symlink and adding something like this:

First check if LD_LIBRARY_PATH is set:

cmonroe@alpental: ~ # launchctl getenv LD_LIBRARY_PATH
cmonroe@alpental: ~ # 

Nope, ok:

launchctl setenv LD_LIBRARY_PATH /usr/local/lib

If you do have LD_LIBRARY_PATH set, use:

launchctl setenv LD_LIBRARY_PATH /usr/local/lib:${LD_LIBRARY_PATH}

instead. This works on linux for shared libraries, I'm not sure if it will work on OS X, but it's worth a shot. Not saying your symlink is at all wrong, this method just tells all applications to also check /usr/local/lib for shared libs.

If I hard compiled in /opt/local/lib then bad me, I will try to find a way around it. Basically the app should just be looking for libnss3.dylib anywhere, not in a specific dir.

Last edited 8 years ago by Chad Monroe (previous) (diff)

comment:148 Changed 8 years ago by CaptWiggum

Ka'ching! It works! Thank you all for your help! I love it when the community comes together.

Is it possible to add this current plugin build to http://www.adiumxtras.com so that others may find it in the future?

Thanks again!

comment:149 Changed 8 years ago by Chad Monroe

Done, I didn't realize it was that easy. You may or may not be able to see it here, it's awaiting moderator approval. I would like to eliminate the LD_LIBRARY_PATH step for HomeBrew users somehow but for now at least we have a working solution. I'll do my best to keep up with Adium releases going forward now that I have a working build environment.

comment:150 Changed 8 years ago by Nathan Toone

Any chance of getting a build that doesn't have the third-party dependencies? It would be nice if the needed libraries were included in the plugin bundle, or were statically linked with the binaries. That would make it a lot easier to install for people who may not have (or want) a full development environment or to install macports.

comment:151 Changed 8 years ago by Chad Monroe

Yes, that's definitely on the to-do list but for now it is what it is.

comment:152 Changed 8 years ago by Nathan Toone

Is the source somewhere? I'd be willing to help out, but from what I've read in this thread not everything is available?

comment:153 Changed 8 years ago by Chad Monroe

Everything is available by building Adium, then The SIPE project. Once you pull this code down, look in siplcs/src/adium/, there's a xcodeproj file in there. I found some options to make it static I'll try to get it going in the next few days.

Last edited 8 years ago by Chad Monroe (previous) (diff)

comment:154 Changed 8 years ago by Harris

You should be able to include it in the bundle. Looks like right now the libraries are being copied into Resources when they need to go into MacOS. That's how firefox packages them up (NSS is used for TLS/SSL in Firefox as well).

comment:155 Changed 8 years ago by Harris

We should also look at implementing all the GUI options the plugin offers in pidgin as well. I need the User-Agent field at the very least for myself.

comment:156 Changed 8 years ago by Nathan Toone

So - it looks like however you built the package at http://goo.gl/Frl4j, the libraries for libnspr4.dylib, libnss3.dylib, and libsmime3.dylib are all copied into the bundle (in the Frameworks directory)... I *think* all you need to do is update the binary to point to them instead (and copy in any other dependent libraries).

comment:157 Changed 8 years ago by Harris

I was able to get the NSS working inside of a redistributable bundle. I added the NSS libraries, NSPR libraries and prereqs (zlib and sqlite) to the copy phase placing them in the same directory as the plugin. Then have to add a "run script" phase to the build that uses the install_name_tool to change the path.

comment:158 Changed 8 years ago by Chad Monroe

@ toonetown and @hpk104: nice finds, I had no idea XCode did this. I will look into updating the paths to make the Plugin self contained.

comment:159 Changed 8 years ago by twasson

Replying to cmonroe:

Here's an updated version of the plugin that works with 1.5.4 without modification. I compiled it for 32 and 64 bit but only tested 64 bit.

http://goo.gl/Frl4j

Unfortunately, I'm stuck on a 10.6.8 machine at work and when I try to use the plugin, I get errors like:

2012-11-27 15:46:16.563 Adium[91704:903] Error loading /Users/twasson/Library/Application Support/Adium 2.0/PlugIns/SIPEAdiumPlugin.AdiumLibpurplePlugin/Contents/MacOS/SIPEAdiumPlugin:  dlopen(/Users/twasson/Library/Application Support/Adium 2.0/PlugIns/SIPEAdiumPlugin.AdiumLibpurplePlugin/Contents/MacOS/SIPEAdiumPlugin, 265): Symbol not found: _OBJC_METACLASS_$_NSObject
  Referenced from: /Users/twasson/Library/Application Support/Adium 2.0/PlugIns/SIPEAdiumPlugin.AdiumLibpurplePlugin/Contents/MacOS/SIPEAdiumPlugin
  Expected in: /usr/lib/libobjc.A.dylib
 in /Users/twasson/Library/Application Support/Adium 2.0/PlugIns/SIPEAdiumPlugin.AdiumLibpurplePlugin/Contents/MacOS/SIPEAdiumPlugin
2012-11-27 15:46:16.564 Adium[91704:903] Failed to obtain principal class from plugin "SIPEAdiumPlugin.AdiumLibpurplePlugin" ("/Users/twasson/Library/Application Support/Adium 2.0/PlugIns/SIPEAdiumPlugin.AdiumLibpurplePlugin")! infoDictionary: {
    AIMinimumAdiumVersionRequirement = "1.4b12";
    BuildMachineOSBuild = 12C3006;
    CFBundleDevelopmentRegion = English;
    CFBundleExecutable = SIPEAdiumPlugin;
    CFBundleExecutablePath = "/Users/twasson/Library/Application Support/Adium 2.0/PlugIns/SIPEAdiumPlugin.AdiumLibpurplePlugin/Contents/MacOS/SIPEAdiumPlugin";
    CFBundleIdentifier = "net.sourceforge.sipe.SIPEAdiumPlugin";
    CFBundleInfoDictionaryVersion = "6.0";
    CFBundleInfoPlistURL = "Contents/Info.plist -- file://localhost/Users/twasson/Library/Application%20Support/Adium%202.0/PlugIns/SIPEAdiumPlugin.AdiumLibpurplePlugin/";
    CFBundleName = SIPEAdiumPlugin;
    CFBundleNumericVersion = 0;
    CFBundlePackageType = BNDL;
    CFBundleSignature = AdIM;
    CFBundleVersion = "";
    DTCompiler = "";   
    DTPlatformBuild = 4G2008a;
    DTPlatformVersion = GM;
    DTSDKBuild = 12C3006;
    DTSDKName = "";
    DTXcode = 0452;
    DTXcodeBuild = 4G2008a;
    NSBundleInitialPath = "/Users/twasson/Library/Application Support/Adium 2.0/PlugIns/SIPEAdiumPlugin.AdiumLibpurplePlugin";
    NSBundleResolvedPath = "/Users/twasson/Library/Application Support/Adium 2.0/PlugIns/SIPEAdiumPlugin.AdiumLibpurplePlugin";
    NSPrincipalClass = ESSIPELibpurpleServicePlugin;
}
2012-11-27 15:46:16.564 Adium[91704:903] Failed to initialize Plugin "SIPEAdiumPlugin.AdiumLibpurplePlugin" ("/Users/twasson/Library/Application Support/Adium 2.0/PlugIns/SIPEAdiumPlugin.AdiumLibpurplePlugin")!

Sorry for the lengthy message, but I didn't want to omit anything potentially important. From some initial googling, it seems that the problem might be that the plugin is being built for a 10.7 or 10.8 target and not a 10.6 target. Maybe I can work around this with some symlinking? Maybe it needs to be completely recompiled? I'm willing to try either, particularly if I can get the xcode project and some instructions to build it, hehe, as I'm much more familiar with makefiles. Regardless, thanks for any input!

comment:160 Changed 8 years ago by Harris

You can try using my plugin. I started a new xcode project, it isnt based on the one currently in the SIPE git repo so I dont really have tips on how to make that one compile: https://docs.google.com/uc?export=download&id=0B9PYaxMtmDKfS1BGSGxKNktZZDA

comment:161 in reply to:  160 ; Changed 8 years ago by twasson

Replying to hpk104:

You can try using my plugin. I started a new xcode project, it isnt based on the one currently in the SIPE git repo so I dont really have tips on how to make that one compile: https://docs.google.com/uc?export=download&id=0B9PYaxMtmDKfS1BGSGxKNktZZDA

Well, the good news is that the plugin loads without errors. The bad news is that when I try to add an Office Communicator account, I fill out fields in the config menu and hit OK and it dumps stuff like this to the console:

2012-11-30 16:04:26.870 Adium[8390:1d03] Exception was raised: *** -[__NSArrayM 
objectAtIndex:]: index 18446744073709551615 beyond bounds [0 .. 2]
2012-11-30 16:04:27.175 Adium[8390:1d03] *** -[__NSArrayM objectAtIndex:]: index
 18446744073709551615 beyond bounds [0 .. 2]
2012-11-30 16:04:27.254 Adium[8390:1d03] (
        0   CoreFoundation                      0x00007fff85e07f56 __exceptionPr
eprocess + 198
        1   libobjc.A.dylib                     0x00007fff91740d5e objc_exceptio
n_throw + 43
        2   CoreFoundation                      0x00007fff85d95392 -[__NSArrayM 
objectAtIndex:] + 274
        3   AdiumSIPE                           0x000000010684b942 -[SIPEAccount
ViewController saveConfiguration] + 2114
        4   Adium                               0x000000010006897c Adium + 42841
2

...and it goes on much further down the stack from there, generally about 16 levels deep. The immediate thought is that maybe I'm leaving some fields empty that I shouldn't be? I don't have info for a lot of the fields (like all of the email services stuff) and maybe this is non-graceful error handling. I have to eventually hit Cancel and no account is created. Ugh.

Anyway, thanks for at least getting it this far!

comment:162 in reply to:  161 ; Changed 8 years ago by Harris

Replying to twasson:

Replying to hpk104:

...and it goes on much further down the stack from there, generally about 16 levels deep. The immediate thought is that maybe I'm leaving some fields empty that I shouldn't be? I don't have info for a lot of the fields (like all of the email services stuff) and maybe this is non-graceful error handling. I have to eventually hit Cancel and no account is created. Ugh.

Anyway, thanks for at least getting it this far!

Make sure the connection type and authentication scheme are both selected in the drop downs. Those are the only places that arrays are used. Let me make sure the code that sets the selection and reads the selection has some sane default values.

comment:163 in reply to:  162 ; Changed 8 years ago by twasson

Replying to hpk104:

Make sure the connection type and authentication scheme are both selected in the drop downs. Those are the only places that arrays are used. Let me make sure the code that sets the selection and reads the selection has some sane default values.

Ok, you were spot on: while I had chosen a connection type, I hadn't chosen an authentication scheme, and both of those defaulted to no selection. Hence, breakage. So, that fixed it.

Furthermore, it subsequently actually connected to the server and everything looks like it's actually working. Hooray! Thanks a ton to you and everyone else for your hard work!

comment:164 in reply to:  163 Changed 7 years ago by zwise

Replying to twasson:

Ok, you were spot on: while I had chosen a connection type, I hadn't chosen an authentication scheme, and both of those defaulted to no selection. Hence, breakage. So, that fixed it.

Furthermore, it subsequently actually connected to the server and everything looks like it's actually working. Hooray! Thanks a ton to you and everyone else for your hard work!

What settings did you have to use to get this to work? I've tried setting the authentication method to TLS-DSK, but I keep getting an error that seems like it's still using NTLM... It's like the selected dropdown value isn't taking...

12:40:04: (Libpurple: cdsa) SSL_connect: verifying certificate
12:40:04: (Libpurple: cdsa) SSL_connect complete
12:40:04: (Libpurple: stun) using server 
12:40:04: (Libpurple: stun) using server 
12:40:04: (Libpurple: stun) using server 
12:40:04: (Libpurple: connection) Connection error on 0x105d2c200 (reason: 3 description: Incompatible authentication scheme chosen: NTLM)
12:40:04: Connection Disconnected: gc=5d2c200 (Incompatible authentication scheme chosen: NTLM)
12:40:04: <SIPEAccount:8348370 9>:username@domain accountConnectionReportDisconnect: Incompatible authentication scheme chosen: NTLM
12:40:04: (Libpurple: account) Disconnecting account username@domain (0x105de7be0)
12:40:04: (Libpurple: connection) Disconnecting connection 0x105d2c200
12:40:04: (GLib : GLib): CRITICAL: g_hash_table_destroy: assertion `hash_table != NULL' failed
12:40:04: Disconnected: gc=5d2c200

comment:165 Changed 7 years ago by Harris

I havent had a whole lot of time to play with this lately, but i just updated the build i have on google drive. Trying that one out.

Also, after making changes to your account try toggling the account offline/online in the accounts screen (dont exit adium).

You can always view (and manually edit) the settings in ~/Library/Application Support/Adium 2.0/Users/Default/libpurple/accounts.xml

For TLS-DSK you want a line like this (in lower case):

<setting name='authentication' type='string'>tls-dsk</setting>

comment:166 in reply to:  165 Changed 7 years ago by zwise

Replying to hpk104:

Thanks hpk104 That's all working, now my only problem is that I'm getting an error back for authentication:

15:29:35: (Libpurple: proxy) Connecting to login.microsoftonline.com:443.
15:29:35: (Libpurple: proxy) Connected to login.microsoftonline.com:443.
15:29:35: (Libpurple: cdsa) Connecting
15:29:35: (Libpurple: cdsa) Connecting
15:29:35: (Libpurple: cdsa) Connecting
15:29:35: (Libpurple: cdsa) Connecting
15:29:36: (Libpurple: cdsa) Connecting
15:29:36: (Libpurple: cdsa) SSL_connect: verifying certificate
15:29:36: (Libpurple: cdsa) SSL_connect complete
15:29:36: (Libpurple: cdsa) receive failed (-9802): Undefined error: 0
15:29:36: (Libpurple: connection) Connection error on 0x10dade500 (reason: 2 description: Web ticket request to https://webdir0b-ext.online.lync.com:443/CertProv/CertProvisioningService.svc failed)
15:29:36: Connection Disconnected: gc=dade500 (Web ticket request to https://webdir0b-ext.online.lync.com:443/CertProv/CertProvisioningService.svc failed)
15:29:36: -[AIAccount(Abstract) serverReportedInvalidPassword]:774: <SIPEAccount:33192d0 11>:user@domain
15:29:36: <SIPEAccount:33192d0 11>:user@domain accountConnectionReportDisconnect: Web ticket request to https://webdir0b-ext.online.lync.com:443/CertProv/CertProvisioningService.svc failed
15:29:36: (Libpurple: account) Disconnecting account user@domain (0x102427100)
15:29:36: (Libpurple: connection) Disconnecting connection 0x10dade500

Strangely enough, if I use what I know to be the incorrect password, I get an error telling me that my passwords do not match, so I suspect this may be a server error... I don't have this problem using the SIPE plugin for Pidgin on Windows though. Very curious.

comment:167 Changed 7 years ago by Harris

Unfortunately i dont really have any experience with tls-dsk. My company just uses ntlm. The SIPE code is a fresh pull from git, using this morning's source.

If you havent already you can try enabling the NSS workaround for SSL connections:

launchctl setenv NSS_SSL_CBC_RANDOM_IV 0

Also, i havent spent time writing seperate username vs login textboxes like the SIPE Plugin GUI has, but it just appends them together seperated by a comma in the backend (username,login). That is why the username shows up that way in the pidgin accounts window. So you can just input that your username & login into the Adium username textbox like that if they are two separate values.

comment:168 in reply to:  167 Changed 7 years ago by zwise

Thanks again, hpk104. I'll play around with the usernames a bit to see if that will fix it. I'll post an update if I get it working. Thank you to everyone for your hard work on porting this plugin over!

comment:169 Changed 7 years ago by robinwit

For anyone that's at a company where they block third-party clients, you can set the user agent in ~/Library/Application Support/Adium 2.0/Users/Default/AccountPrefs.plist.

Just add a string value to your SIPE account, for example:

"SIPE:User Agent" = "UCCAPI/4.0.7577.0 OC/4.0.7577.0 (Microsoft Lync 2010)";
Last edited 7 years ago by robinwit (previous) (diff)

comment:170 Changed 7 years ago by zwise

After doing some more diggin on this, I've come to the conclusion that I must have a problem with certs. Using identical settings, I am able to connect with the pidgin SIPE plugin, but not with the Adium SIPE plugin, both compiled from exactly the same source. Has anyone else had problems with certs for Office 365?

I'm using tls-dsk authentication.

Successful Pidgin logs: http://pastebin.com/pTjGpiDA

Unsuccessful Adium logs: http://pastebin.com/g1hCABeW

comment:171 Changed 7 years ago by DarkHelmet

FYI, I'm running the latest version of adium 1.5.4 on osx 10.8.2. I've installed the newest version of the plugin from http://trac.adium.im/ticket/1541#comment:160

I kept seeing authentication errors, but my user name and password was correct. I had Pidgin working with this before, so I looked at the config in pidgin.

Pidgin has an additional field for the login where you put the domain and password, but the adium plugin lacks this. This is able to be worked around, as my server needs the domain\csl info.

Simply use your full email, domain\csl i.e. "fake.name@…,domain02\fname". This and the server are the only two things you should need to get this working.

Let me know if this helps

comment:172 in reply to:  171 Changed 7 years ago by zwise

Replying to DarkHelmet:

Simply use your full email, domain\csl i.e. "fake.name@…,domain02\fname". This and the server are the only two things you should need to get this working.

I've tried this before, but I tried again just to be sure. Still no luck. Are you using Office 365?

It's possible that this is related to comment:71 or comment:76

comment:173 Changed 7 years ago by DarkHelmet

No, we're still running office 2003 and XP in the company. I hear we may upgrade once we roll out windows 7, but I try not to _ever_ talk to IT, they are there to impede work.

Good luck, all I can say is I'm happy it's working for me :)

comment:174 Changed 7 years ago by edwardt

Still having issues connecting with Adium using Office 365. Anyone have any luck with this?

comment:175 in reply to:  174 Changed 7 years ago by zwise

Replying to edwardt:

Still having issues connecting with Adium using Office 365. Anyone have any luck with this?

No luck on my side yet.

comment:176 Changed 7 years ago by wegotoeleven

Hey guys,

I'm having an issue attempting to connect Adium 1.5.4 with the SIPE plugin (mentioned in comment 160 http://trac.adium.im/ticket/1541#comment:160) to my corporate OCS 2007 server on Mountain Lion, and i'm getting the following error. Can anyone take a look at the log and see if anything jumps out at them as to what I'm doing wrong?

18:02:47: Adium: Connect: stephen.bygrave@global.com initiating connection using status state <AIStatus: 900a3a0 [Available]> ((null)).
18:02:47: Setting status on ba2c3c0 (stephen.bygrave@global.com,global\stephen.bygrave): ID available, isActive 1, attributes {
}
18:02:47: (Libpurple: account) Connecting to account stephen.bygrave@global.com,global\stephen.bygrave.
18:02:47: (Libpurple: connection) Connecting. gc = 0x10300fa40
18:02:47: Connecting: gc=0x300fa40 (Connecting) 1 / 2
18:02:47: (Libpurple: dnsquery) Performing DNS lookup for ocspool.usiomg.com
18:02:47: <ESPurpleSIPEAccount:3063560 2>:stephen.bygrave@global.com: Updating status for key: isOnline
18:02:47: ************ stephen.bygrave@global.com --step-- 1
18:02:47: -[AdiumPurpleDnsRequest startLookup]:194: Performing DNS resolve: ocspool.usiomg.com:443
18:02:47: DNS resolve complete for ocspool.usiomg.com:443; 1 addresses returned
18:02:47: (Libpurple: dnsquery) IP resolved for ocspool.usiomg.com
18:02:47: (Libpurple: proxy) Attempting connection to 10.193.14.19
18:02:47: (Libpurple: proxy) Connecting to ocspool.usiomg.com:443 with no proxy
18:02:47: (Libpurple: proxy) Connection in progress
18:02:47: (Libpurple: proxy) Connecting to ocspool.usiomg.com:443.
18:02:47: (Libpurple: proxy) Connected to ocspool.usiomg.com:443.
18:02:47: (Libpurple: cdsa) Connecting
18:02:47: (Libpurple: cdsa) Connecting
18:02:47: (Libpurple: cdsa) Connecting
18:02:47: (Libpurple: cdsa) Connecting
18:02:48: (Libpurple: cdsa) Connecting
18:02:48: (Libpurple: cdsa) SSL_connect: verifying certificate
18:02:48: (Libpurple: cdsa) SSL_connect complete
18:02:48: (Libpurple: stun) using server 
18:02:48: (Libpurple: stun) using server 
18:02:48: (Libpurple: stun) using server 
18:02:48: (Libpurple: cdsa) receive failed (-9802): Undefined error: 0
18:02:48: (Libpurple: connection) Connection error on 0x10300fa40 (reason: 0 description: Read error)
18:02:48: Connection Disconnected: gc=300fa40 (Read error)
18:02:48: <ESPurpleSIPEAccount:3063560 2>:stephen.bygrave@global.com accountConnectionReportDisconnect: Read error
18:02:48: (Libpurple: cdsa) receive failed (-9806): Undefined error: 0
18:02:48: (Libpurple: account) Disconnecting account stephen.bygrave@global.com,global\stephen.bygrave (0x10ba2c3c0)
18:02:48: (Libpurple: connection) Disconnecting connection 0x10300fa40
18:02:48: (GLib : GLib): CRITICAL: g_hash_table_destroy: assertion `hash_table != NULL' failed
18:02:48: Disconnected: gc=300fa40
18:02:48: <ESPurpleSIPEAccount:3063560 2>:stephen.bygrave@global.com: Telling the core we disconnected
18:02:48: -[AIContactObserverManager endListObjectNotificationsDelaysImmediately]:144: 
18:02:48: <ESPurpleSIPEAccount:3063560 2>:stephen.bygrave@global.com: Disconnected ("Read error"): Automatically reconnecting in 50.265076 seconds (7 attempts performed)
18:02:48: (Libpurple: connection) Destroying connection 0x10300fa40
18:02:52: (Libpurple: util) Writing file accounts.xml to directory /Users/stephen.bygrave/Library/Application Support/Adium 2.0/Users/Default/libpurple
18:02:52: (Libpurple: util) Writing file /Users/stephen.bygrave/Library/Application Support/Adium 2.0/Users/Default/libpurple/accounts.xml
18:02:52: (Libpurple: util) Writing file blist.xml to directory /Users/stephen.bygrave/Library/Application Support/Adium 2.0/Users/Default/libpurple
18:02:52: (Libpurple: util) Writing file /Users/stephen.bygrave/Library/Application Support/Adium 2.0/Users/Default/libpurple/blist.xml

Isolating the part that I can see as the error:

18:02:48: (Libpurple: cdsa) receive failed (-9802): Undefined error: 0
18:02:48: (Libpurple: connection) Connection error on 0x10300fa40 (reason: 0 description: Read error)
18:02:48: Connection Disconnected: gc=300fa40 (Read error)
18:02:48: <ESPurpleSIPEAccount:3063560 2>:stephen.bygrave@global.com accountConnectionReportDisconnect: Read error
18:02:48: (Libpurple: cdsa) receive failed (-9806): Undefined error: 0

Thanks in advance!

comment:177 in reply to:  158 ; Changed 7 years ago by Nathan Toone

Replying to cmonroe:

@ toonetown and @hpk104: nice finds, I had no idea XCode did this. I will look into updating the paths to make the Plugin self contained.

Any progress on this? I am willing to build and try things out, but I don't know what the build process is. I've downloaded the code from sipe.sourceforge.net (version 1.14.1), but it won't build in xcode (apparently, requires glib - "glib.h not found")...but what other dependencies are there, and how do you go about getting them installed? (macports, native glib, etc)

comment:178 Changed 7 years ago by Robert

Someone who managed to get the plugin working, posted to our forum: http://forums.cocoaforge.com/viewtopic.php?f=13&t=21654&p=136326#p136326. He linked to a compiled plugin, obviously we cannot vouch for it being safe.

With so many people interested in testing and developing the plugin I think if somebody were to put their code in a repo on Bitbucket or Github the project could really take off. :)

comment:179 in reply to:  177 Changed 7 years ago by Harris

Replying to toonetown:

Any progress on this? I am willing to build and try things out, but I don't know what the build process is. I've downloaded the code from sipe.sourceforge.net (version 1.14.1), but it won't build in xcode (apparently, requires glib - "glib.h not found")...but what other dependencies are there, and how do you go about getting them installed? (macports, native glib, etc)

glib and the majority of the non-system libraries that are needed are all included in the Adium source code, which you must download and compile before attempting to build a plugin.

The only truly external libraries needed are nss and nspr, which you can get from macports, homebrew or compile on your own.

The plugin i posted is self-contained... i just have not updated it recently. It only supports 64-bit though because the macports version of nss will not properly build a universal library.

Last edited 7 years ago by Harris (previous) (diff)

comment:180 in reply to:  178 ; Changed 7 years ago by Harris

Replying to Robby:

With so many people interested in testing and developing the plugin I think if somebody were to put their code in a repo on Bitbucket or Github the project could really take off. :)

The SIPE plugin source is in available in a world writable git repo and includes an Xcode project. I didnt like it so i started a new project; my intention was to replace the existing code in their project. However, enough people seem to download and make use of the code that i dont feel entirely comfortable removing it. I can probably clean up my code and put it on github, but i still feel like fixing or enhancing the official distribution is the correct path to go down.

comment:181 in reply to:  180 ; Changed 7 years ago by Michael Lamb

Since we still don't seem to have an official maintainer, I'm going step in as an interim one.

I just checked in a change to the repo.or.cz git repository that should allow everyone to build this cleanly. It requires setting up a few "Source Tree" variables in Xcode (which seems to be the "right" way to refer to external projects - the project had hardcoded home dirs before). Check the README.Adium for details. I'm going to work on fixing a few things that I investigated earlier.

Replying to hpk104:

Replying to Robby:

With so many people interested in testing and developing the plugin I think if somebody were to put their code in a repo on Bitbucket or Github the project could really take off. :)

The SIPE plugin source is in available in a world writable git repo and includes an Xcode project. I didnt like it so i started a new project; my intention was to replace the existing code in their project. However, enough people seem to download and make use of the code that i dont feel entirely comfortable removing it. I can probably clean up my code and put it on github, but i still feel like fixing or enhancing the official distribution is the correct path to go down.

comment:182 in reply to:  181 ; Changed 7 years ago by Harris

I went ahead and updated my posted plugin with the latest sources from sipe's git repo & the latest version of libraries available from macports (updated nss and nspr).

I can try and get my xcode project into github or even just share it by email or google drive (like the plugin) if people still want to see it.

comment:183 in reply to:  182 ; Changed 7 years ago by Nathan Toone

Replying to hpk104:

I went ahead and updated my posted plugin with the latest sources from sipe's git repo & the latest version of libraries available from macports (updated nss and nspr).

I can try and get my xcode project into github or even just share it by email or google drive (like the plugin) if people still want to see it.

I'd be interested in seeing it on github or something

comment:184 in reply to:  183 ; Changed 7 years ago by Jeff

Replying to toonetown:

Replying to hpk104:

I went ahead and updated my posted plugin with the latest sources from sipe's git repo & the latest version of libraries available from macports (updated nss and nspr).

I can try and get my xcode project into github or even just share it by email or google drive (like the plugin) if people still want to see it.

I'd be interested in seeing it on github or something

Github please!!!!

comment:185 in reply to:  184 Changed 7 years ago by Harris

Replying to jvoitek:

Replying to toonetown:

Replying to hpk104:

I went ahead and updated my posted plugin with the latest sources from sipe's git repo & the latest version of libraries available from macports (updated nss and nspr).

I can try and get my xcode project into github or even just share it by email or google drive (like the plugin) if people still want to see it.

I'd be interested in seeing it on github or something

Github please!!!!

Its up at https://github.com/hkauffman/AdiumSIPE

I didnt create a README yet. On my machine I have my project, SIPE and adium all at the same level in the directory tree:

/src/AdiumSIPE /src/adium /src/siplcs

I'm using the adium-1.5.4 sources. Make sure that you've built a debug version of adium. If you have macports just install nss (sudo port install nss) and you should have everything you need.

comment:186 Changed 7 years ago by kaychaks

I installed the latest SIPE plugin mentioned in comment 160 in version 1.5.4. I need to know how to have the auto-discovery thing in it. Thanks

comment:187 in reply to:  186 Changed 7 years ago by Harris

Replying to kaychaks:

I installed the latest SIPE plugin mentioned in comment 160 in version 1.5.4. I need to know how to have the auto-discovery thing in it. Thanks

Set the server to adium.im and it'll use autodiscovery instead to find the real server

comment:188 Changed 7 years ago by John

Is there a binary download location for the plugin on Mac OS X?

comment:189 in reply to:  188 ; Changed 7 years ago by Harris

Replying to jhart:

Is there a binary download location for the plugin on Mac OS X?

I keep the link I posted 160 updated fairly regularly. It looks like Mike Lamb has started pushing his changes to the sipe git repo, so maybe once he gets things stabilized to his liking he'll get his binary added to the official xtras.

comment:190 in reply to:  189 Changed 7 years ago by Nathan Toone

So - in a previous version of the plugin (not yours, hpk104 - I think it was another one), there was an option on the first page for both "User Name" and "Windows Login"...the issue being my company requires us to pass in the Windows Login of the form DOMAIN\user.name.

Is that option no longer available, and if not, is it possible to get it back?

comment:191 Changed 7 years ago by Harris

On mine just put a comma and then the login after your email address:

user@…,DOMAIN\username

That is how it is stored in the config file by the plugin and i just never put in the work to have the GUI split it into two fields for display (and then recombine it for storage in the other direction).

It's been a while since i've looked but i think the stuff mlamb is working on has that feature done

comment:192 Changed 7 years ago by Nathan Toone

Nevermind - I found it. Apparently, you can achieve that by doing email@…,DOMAIN\user.name as the login. (Makes for an ugly account name, though...hopefully, it will come back as a separate option at some point in the future...)

comment:193 in reply to:  191 ; Changed 7 years ago by edwardt

Replying to hpk104:

I'm using your plugin and im getting this error:

Error: Web ticket request to https://webdir0a-ext.online.lync.com:443/CertProv/CertProvisioningService.svc failed

I've confirmed that my credentials are correct, I'm trying to connect to an Office 365 account.

comment:194 in reply to:  193 Changed 7 years ago by Harris

Replying to edwardt:

Replying to hpk104:

I'm using your plugin and im getting this error:

Error: Web ticket request to https://webdir0a-ext.online.lync.com:443/CertProv/CertProvisioningService.svc failed

I've confirmed that my credentials are correct, I'm trying to connect to an Office 365 account.

I would try posting over in the SIPE help forums . All i've done is compile their plugin for adium, i havent touched any of the connection or backend logic.

comment:195 Changed 7 years ago by Robert

For anyone wanting to follow development, look here: http://repo.or.cz/w/siplcs.git/shortlog/refs/heads/mob. It took me a while to find out that this work is happening in a branch the commits of which are not shown on the front page. ;)

mlamb, hpk104: thanks for your work. http://repo.or.cz/w/siplcs.git/blob/HEAD:/TODO has a typo ("telepahty").

Last edited 7 years ago by Robert (previous) (diff)

comment:196 Changed 7 years ago by Doug

This plugin is awesome. One issue I am having is that the Office Communicator account is the only one that will not automatically connect or re-connect. All my others (Google, AOL, MSN, Yahoo) will connect at startup and when internet activity is detected. Office Communicator will not, but it will connect if I manually click connect. Any help would be appreciated.

comment:197 Changed 7 years ago by knaledge

I'm still running into the "NTLM" issue on login. While the xml shows that I have the setting for TLS-DSK configured, the login error states that "NTLM is not supported".

We are using Office 365 and I have this working in Pidgin.

Is there anything else I can do?

ERROR: Incompatible authentication scheme chosen: NTLM

Plugin UI configured as follows: UN: username@… PW: ......

SERVER: sipdir.online.lync.com:443 CONN TYPE: Auto USER AGENT: UCCAPI/4.0.7577.0 OC/4.0.7577.0 (Microsoft Lync 2010) AUTH SCHEME: TLS-DSK

Nothing else defined

Last edited 7 years ago by knaledge (previous) (diff)

comment:198 in reply to:  193 Changed 7 years ago by Harris

Replying to edwardt:

Replying to hpk104:

I'm using your plugin and im getting this error:

Error: Web ticket request to https://webdir0a-ext.online.lync.com:443/CertProv/CertProvisioningService.svc failed

I've confirmed that my credentials are correct, I'm trying to connect to an Office 365 account.

Also, make sure that "Single Sign-On" is NOT checked.

comment:199 in reply to:  197 Changed 7 years ago by Harris

Replying to knaledge:

I'm still running into the "NTLM" issue on login. While the xml shows that I have the setting for TLS-DSK configured, the login error states that "NTLM is not supported".

We are using Office 365 and I have this working in Pidgin.

Is there anything else I can do?

ERROR: Incompatible authentication scheme chosen: NTLM

Plugin UI configured as follows: UN: username@… PW: ......

SERVER: sipdir.online.lync.com:443 CONN TYPE: Auto USER AGENT: UCCAPI/4.0.7577.0 OC/4.0.7577.0 (Microsoft Lync 2010) AUTH SCHEME: TLS-DSK

Nothing else defined

Try copying the pidgin accounts.xml file directly into your adium profile and see if that helps. Also, make sure Single Sign-On is not checked in your preferences.

comment:200 in reply to:  196 Changed 7 years ago by Harris

Replying to dathomsen:

This plugin is awesome. One issue I am having is that the Office Communicator account is the only one that will not automatically connect or re-connect. All my others (Google, AOL, MSN, Yahoo) will connect at startup and when internet activity is detected. Office Communicator will not, but it will connect if I manually click connect. Any help would be appreciated.

I'm going to guess you're putting in a server & port. Here are my suggestions:

1) Use adium.im if possible (for server autodiscovery) 2) If you cant rely on that try just the server 3) If you absolutely need to use the full "server:port" add it to /etc/hosts (including the colon and port #):

10.10.10.10 server:port

I think that Adium does a DNS lookup on the server and marks the network "down" if it cant resolve; unfortunately it includes the :port in the DNS lookup so its always going to fail... unless you have a host entry that resolves it.

comment:201 Changed 7 years ago by knaledge

Thanks for the insight HP but I'm still having issues.

What is the directory for the "profile" you refer to? Also, I took a chance and copied accounts.xml to every directory in the adium 2.0 folder.

Now, when I log in, the password prompt appears over and over - as if it is wrong, but it most certainly isn't. Single Sign-On is not enabled.

Anything else you can try?

comment:202 Changed 7 years ago by knaledge

Is there a straight walk-through of exactly what to configure? Which things are needed for this to work? Something about NSS?

Also, how do I revert the terminal commands that are floating around out there? (like in comment 144 https://trac.adium.im/ticket/1541#comment:144)

Are those commands necessary anymore?

I just want to get this working and appreciate all of the help thus far. I feel like I have everything I need but we're getting password prompts, the occasional "web error/certprovisioning" issue (described by another user above).

comment:203 Changed 7 years ago by halfpasttense

I kept getting password prompts over and over too, even though the login information was correct. I updated to Adium 1.5 and the new plugin because I was no longer able to connect with my old version. However that turned out to be a temporary server issue. After upgrading though I could not connect even after the server issue was fixed. I downgraded back to Adium 1.4.5 and installed the old plugin and everything worked again. Logging in at my company also requires both the user@ and DOMAIN\user usernames. So I have a feeling that failure to log in might have something to do with not being able to specify both of those in separate fields anymore. I tried separating them with a comma but that did not work. Can anyone verify that they've been able to successfully log in when they require both user@ and DOMAIN\user to be specified?

comment:204 Changed 7 years ago by knaledge

We use Office365, so I don't think we're going to need our domain\user configured

comment:205 in reply to:  201 Changed 7 years ago by Harris

Replying to knaledge:

The accounts.xml file lives in:

~/Library/Application Support/Adium 2.0/Users/Default/libpurple

You can try setting the NSS variable:

launchctl setenv NSS_SSL_CBC_RANDOM_IV 0

Whether or not that is needed depends on if the server has been patched yet. If it has not been patched then it needs the value set to 0. If it has been patched then the connection should work with either 0 or 1.

The setting rolls back a security fix made to NSS starting in 3.13.1; this affects all platforms (linux, mac and windows). However, the Windows version of Pidgin did not start bundling a newer NSS dll until 2.10.7 (so it is affected but older versions are not)

Replying to halfpasttense:

The single account string is how it is stored in the backend. If you have a working install on windows or linux you can try comparing your accounts.xml file. You're looking for the name field:

<account>
                <protocol>prpl-sipe</protocol>
                <name>user@company.com,DOMAIN\user</name>

You can also verify that single sign on is disabled. You're looking for this line (value of zero):

<setting name='sso' type='bool'>0</setting>

My company has a 2010 server which supports all 3 auth types. I can successfully login TLS-DSK, however i do not have an Office365 account to try.

comment:206 Changed 7 years ago by knaledge

Do we need to "download" NSS?

Picture us literally starting from scratch. We just need to know what to download (if we are missing everything)

Here's what we've done so far:

  • Downloaded Adium 1.5.4
  • Installed one of the older versions of the SIPE plugin (that had a separate field for Domain, etc.)
  • Ran the terminal commands for Adium.app sym links
  • Ran the terminal command for NSS - both 1 and 0 (never downloaded NSS or whatever)
  • Configured user per above in comment 197 (https://trac.adium.im/ticket/1541#comment:197)
  • Ran into errors, posted here
  • Updated SIPE plugin via comment 160
  • decided to start over......

START OVER

  • Deleted Adium 1.5.4 (via App Cleaner; so all cache, all files, folders, etc.)
  • Installed Adium 1.5.4 (straight from Adium site, fresh download)
  • Downloaded SIPE plugin via comment 160
  • Installed SIPE plugin
  • Adium launch; configured user per comment 197
  • Running into constant "Password" prompts, and the following error:

Error: Web ticket request to ​https://webdir0a-ext.online.lync.com:443/CertProv/CertProvisioningService.svc failed

We're running Office 365, OSX 10.8.2, MacBook Air (2012)

We're no longer getting the NTLM prompt over and over. What else might we try? Am I missing something?

comment:207 Changed 7 years ago by knaledge

We've never downloaded or used the original Lync/Communicator client for OSX, if that makes any difference.

comment:208 Changed 7 years ago by Harris

You only need to download the NSS source code if you are compiling everything from source (adium, nss, sipe). If you just want to install and run the application all you need is adium and the plugin.

I'm running OS X 10.8.2 on all of my machines. i do my development on a macbook pro but also install and test on 2 "non-development" machines: a macbook air and a mac mini. (Where non-development means no XCode installation or source compiles/installs).

All you should have to do is download & install adium 1.5.4 and then download & install the plugin from Comment 160 (i actually just put up a new compile today).

It could also be something specific to Office365 since i've never used it.

You can try running Adium in debug mode and see if there is anything useful logged in the debug window. See https://trac.adium.im/wiki/CurrentAdiumDebug for details.

comment:209 Changed 7 years ago by Nathan Toone

I know that I am one of the offenders (I've asked my share of questions on this ticket), but I'm starting to wonder if there isn't a better forum for managing questions about the plugin. It's starting to get a bit hairy to follow what's going on with the status of the plugin, etc...

comment:210 Changed 7 years ago by Nathan Toone

Perhaps tracking issues and questions on the github page (https://github.com/hkauffman/AdiumSIPE) would work...

comment:211 in reply to:  208 ; Changed 7 years ago by knaledge

We'll set you up with an Office 365 account if you like, HPK.

I'll need your name and email address. We'll send the account credentials over as soon as we have that and you've confirmed you'd like to give it a shot. Hope it helps!

Replying to hpk104:

You only need to download the NSS source code if you are compiling everything from source (adium, nss, sipe). If you just want to install and run the application all you need is adium and the plugin.

I'm running OS X 10.8.2 on all of my machines. i do my development on a macbook pro but also install and test on 2 "non-development" machines: a macbook air and a mac mini. (Where non-development means no XCode installation or source compiles/installs).

All you should have to do is download & install adium 1.5.4 and then download & install the plugin from Comment 160 (i actually just put up a new compile today).

It could also be something specific to Office365 since i've never used it.

You can try running Adium in debug mode and see if there is anything useful logged in the debug window. See https://trac.adium.im/wiki/CurrentAdiumDebug for details.

comment:212 in reply to:  211 Changed 7 years ago by Harris

Replying to knaledge:

We'll set you up with an Office 365 account if you like, HPK.

I'll need your name and email address. We'll send the account credentials over as soon as we have that and you've confirmed you'd like to give it a shot. Hope it helps!

We'll take this conversation off the main ticket...

Last edited 7 years ago by Harris (previous) (diff)

comment:213 Changed 7 years ago by Harris

FYI.. thanks to access provided by Knaledge i believe my most current build will connect successfully to Office365 accounts.

comment:214 Changed 7 years ago by tvandegr

I am trying to get a latest code working with 1.5.6 (I compiled things myself) and everything starts up, but I cannot connect my SPIE. I my account.xml has the port as 5060, but looking at the debug log it looks like it is trying to connect on port 5061. The transport setting is <setting name='transport' type='string'>tcp</setting>. The port is set to 5060 in both the port setting and the end of the url

I also tried with the latest one listed in comment 213, and it has the same behavior.

the exact error I am seeing is (Libpurple: proxy) Connection attempt failed: Connection refused (Libpurple: connection) Connection error on 0x111173530 (reason: 0 description: SSL Connection Failed)

When I use my working 1.5.4 setup it properly tries to connect via port 5060

comment:215 Changed 7 years ago by Michael Lamb

There was a recent change to the sipe core code (http://repo.or.cz/w/siplcs.git/commit/40182ee80ef2698e3ff4d73cbc138401862cfe42?f=src/core/sip-transport.c) to account for this Microsoft KB (http://support.microsoft.com/kb/2619522)

The host/port combination is specified when the resolver finds the A record.

Can you provide the full debug output? I believe it shows the parts where it's going through the name resolution, and we can determine if something is wrong from that.

comment:216 Changed 7 years ago by Michael Lamb

Actually since I've now been assigned privileges to the SF.net project... and rather than continuing to grow this thread, let's move further bug reports on the Adium port there.

I've gone ahead and created a bug: https://sourceforge.net/p/sipe/bugs/188/. Please paste in the full debug there.

I vote that this thread be officiall marked closed (SIPE for Adium is now supported as the OCS/Lync solution).

comment:217 Changed 7 years ago by Evan Schoenberg

Description: modified (diff)
Resolution: notadiumcode
Status: assignedclosed

comment:218 Changed 7 years ago by Robert

Milestone: Good ideas for later

comment:219 Changed 7 years ago by Robert

Description: modified (diff)
Patch Status: Needs Changes by AuthorRejected

The third-party SIPE plugin is to be found here: http://sourceforge.net/projects/sipe/files/

Last edited 7 years ago by Robert (previous) (diff)
Note: See TracTickets for help on using tickets.