Menu

#269 purple: idle-away converted to Away

OBSOLETE_(1.18.x)
closed-fixed
None
Pidgin
1
2016-04-23
2014-10-29
No

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.

Related

Forums: Pidgin does not switch back to available when Meeting has ended
Release Notes: 2014/12/pidgin-sipe-release-1185

Discussion

  • Stefan Becker

    Stefan Becker - 2014-10-30

    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.

     
  • Stefan Becker

    Stefan Becker - 2014-12-09

    The problem does still show up, but rarely. Today I have been able to catch it in my debug log:

    :::txt
    (10:34:54) sipe: sipe_status_and_note: switch to 'available' for the account
    (10:34:54) sipe: sipe_backend_status_changed: 1/'available' == 'available'?
    ...
    (10:45:17) sipe: sipe_status_and_note: switch to 'away' for the account
    (10:45:17) sipe: sipe_backend_status_changed: 8/'away' == 'away'?
    (10:45:17) sipe: sipe_status_and_note: do_not_publish[away]=1418114717 [now]
    (10:45:17) sipe: sipe_backend_status_and_notes: user is already idle-away
    (10:45:17) sipe: sipe_status_and_note: switch to 'away' for the account
    (10:45:17) sipe: sipe_backend_status_changed: 8/'away' == 'away'?
    (10:45:17) sipe: sipe_status_and_note: do_not_publish[away]=1418114717 [now]
    (10:45:17) sipe: sipe_backend_status_and_notes: user is already idle-away
    ...
    (10:45:39) idle: Setting stefanb@company.com, unidle
    (10:45:39) sipe: sipe_purple_set_idle[CB]: interval=0
    (10:45:39) sipe: sipe_core_status_idle: sipe_private->idle_switch : Tue Dec  9 10:45:39 2014
    ...
    <publish xmlns="http://schemas.microsoft.com/2006/09/sip/rich-presence"><publications uri="sip:stefanb@company.com"><publication categoryName="state" instance="1002182572" container="2" version="6" expireType="endpoint"><state xmlns="http://schemas.microsoft.com/2006/09/sip/state" manual="false" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="machineState"><availability>3500</availability><endpointLocation/></state></publication><publication categoryName="state" instance="1002182572" container="3" version="6" expireType="endpoint"><state xmlns="http://schemas.microsoft.com/2006/09/sip/state" manual="false" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="machineState"><availability>3500</availability><endpointLocation/></state></publication><publication categoryName="note" instance="0" container="200" version="1" expireType="static" expires="0"/><publication categoryName="note" instance="0" container="300" version="1" expireType="static" expires="0"/><publication categoryName="note" instance="0" container="400" version="1" expireType="static" expires="0"/></publications></publish>
    ...
    (10:45:41) sipe: sipe_status_and_note: switch to 'away' for the account
    (10:45:41) sipe: sipe_backend_status_changed: 8/'away' == 'available'?
    (10:45:41) sipe: sipe_status_and_note: do_not_publish[away]=1418114741 [now]
    (10:45:41) sipe: sipe_status_and_note: switch to 'away' for the account
    (10:45:41) sipe: sipe_backend_status_changed: 8/'away' == 'away'?
    

    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".

     
  • Patrick McCarty

    Patrick McCarty - 2014-12-13

    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
  • Stefan Becker

    Stefan Becker - 2014-12-14

    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".

     
  • Stefan Becker

    Stefan Becker - 2014-12-29

    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.

     
  • Stefan Becker

    Stefan Becker - 2014-12-29
    • status: open --> closed-fixed
     

Log in to post a comment.

MongoDB Logo MongoDB