Since 1.18.4 the purple backend now longer ignores status changes when the user is idle-away. It can now happen that the our OCS status gets updated to "Away" and that converts the idle-away, which is dynamic, to "Away". The user now has to manually switch back to "Available". I think this is the problem is what git commit 74820ce888af76c76c89e05d229aece0de33f443 tried to fix.
(probable) work around: select "Don't publish my calendar data", which should tell SIPE to never touch the user status at all.
proposed fix: update sipe_backend_status_and_note() to ignore updating to "Away" when current user status is idle-away.
Forums: Pidgin does not switch back to available when Meeting has ended
Release Notes: 2014/12/pidgin-sipe-release-1185
git commit 13857d50eee71de371e05706fd402686e4d4370d seems to fix the problem in my setup.
My Pidgin was set to go idle-away only after 60 minutes. That's why I didn't really notice the problem before releasing 1.18.4.
The problem does still show up, but rarely. Today I have been able to catch it in my debug log:
At 10:45:39 we send availability == 3500 (online) but the resulting response is interpreted by us as "away". As Pidgin status is already switched to "available" the idle-away check returns FALSE and doesn't prevent switching to "away".
Using pidgin 2.10.10 and SIPE plugin 1.18.4 on Windows 7 64-bit I noticed a likely related problem. After the idle timeout, my status would change to away, but mouse/keyboard activity would not cause it to switch back to Available, despite Pidgin being configured to report idle time 'Based on keyboard or mouse use'. Even more problematic is the fact that manually changing my status back to Available does not update my status on the server (I still appeared as away in the buddylist, where I had added my own account as a buddy). The only way I could make myself Available again was to disconnect and reconnect. I reverted SIPE back to version 1.18.0 which does not have this problem. I haven't tried any of the versions in between, but I could if requested. Server is some kind of Microsoft server but I don't know how to tell which one (other coworkers use Microsoft Office Communicator 2007 R2 as their client). I tried enabling the "Don't publish my calendar data" option but it didn't help.
Last edit: Patrick McCarty 2014-12-13
Second attempt to fix this uploaded as git commit dc2e0d1.
This is basically like the original check that got removed. But we only perform it when OCS wants to switch our state to "Away" while Pidgin is in Idle-Away state.
FYI: if your account is stuck in a state then use the account context menu "Reset status".
With the second change I haven't seen the problem for at least a week in normal office use. Fix released in 1.18.5.
Closing as FIXED.