I like the feature that sets my status according to my calendar, but I have two open questions on that:
1) Pidgin seemingly does not reset my status from busy to available when the meeting is over unless I restart it. Is that maybe only a UI flaw? It would be kind of unfortunate if it were not.
2) I would like all my accounts' status to be set to busy in case I have an entry in my calendar. Is that possible?
Thanks a lot!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
(1) has been a long-standing issue with SIPE. Luckily last week someone submitted a change which fixed an obvious oversight by the original implementor of the OCS2007 enhanced presence feature. At least for the last 2 meetings it has worked correctly for me.
(2) I have no idea what your are talking about. libpurple has AFAIK no separate status per account. If the user sets Pidgin to busy, all accounts go to busy. Well at least if the protocol supports a busy state, AFAIR for the others it goes to away state.
Last edit: Stefan Becker 2014-09-22
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
For the second point, I think the problem might be that Jabber has no Busy state. My colleagues constantly report me as being online. Are you sure that the default fallback status is "Away"?
edit: My actual question is: Can I change the status for a meeting from "Busy" to "Do not disturb" somehow?
Last edit: Martin Unzner 2014-09-23
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I do not understand your first question. What "upstream" are you referring to? SIPE project has only one git repository and does not support forks.
When I look at my Pidgin I only see "Do not disturb". I just added my Jabber account as buddy. It shows "Do not disturb" when I switch to "Do not disturb". But this of course only works if only one client accesses that account, i.e. my other client just went to "idle" and overrode the "Do not disturb" from Pidgin.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
What I am going at is this: If there is a meeting scheduled in the calendar, the Office Communicator account will automatically change Pidgin's status to "Busy".
Jabber has no "Busy" status, so it remains in the "Available" status and does not change to "Away" or something (at least not for me).
If the Office Communicator status in a meeting were "Do not disturb", that status would also be registered with Jabber, which is what I am trying to achieve.
Hence, can I change the default SIPE meeting status to "Do not disturb" instead of "Busy"?
Thanks!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
If SIPE is the only account, then there are more states visible on the user status combo box. With multiple accounts active Pidgin seems to only offer the union, i.e. what all protocols support. In my case I see "Do not disturb" when SIPE and XMPP accounts are active.
I can not reproduce what you describe. When a meeting starts, my XMPP account correctly switches to "Do not disturb" too. Only my IRC account stays on "Available". After the meeting all accounts switch back to "Available".
Changing from "Do not disturb" to "Busy" will not help, because they share the same primary status PURPLE_STATUS_UNAVAILABLE, i.e. excerpt from the code src/purple/purple-plugin.c:
When I scan the Pidgin source code I see that jabber/jabber.c adds PURPLE_STATUS_UNAVAILABLE, whereas irc/*.c doesn't. That concurs with the behavior I have observed.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Unfortunately the change I mentioned wasn't enough to fix the problem, i.e. Pidgin was still stuck in "Busy" after the meeting ended. But now I was able to narrow down the problem and was able to root cause it.
Please make sure to test git HEAD. I removed a check, introduced by the original author of the presence implementation, which caused all SIPE core status change events to be ignored by the libpurple backend when the user was "idle away". I.e. when you left your desktop to go to the meeting, then Pidgin goes to "idle away" internally after some time. If you returned to your desktop after the meeting ended the status change to "available" had simply been ignored.
I looked up the original git commit that introduced the change and can't understand why the check was added. It could be that whatever it tried to fix had another root cause that has been fixed since then.
The status change has now worked correctly for me for the last 3 meetings.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Now i am having another problem. If pidgin goes into internal away state and sets my status to away (based on keyboard and mouse movements) I can never unset my away status when I come back from away status.
Last edit: Good_Newz 2014-10-31
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
I like the feature that sets my status according to my calendar, but I have two open questions on that:
1) Pidgin seemingly does not reset my status from busy to available when the meeting is over unless I restart it. Is that maybe only a UI flaw? It would be kind of unfortunate if it were not.
2) I would like all my accounts' status to be set to busy in case I have an entry in my calendar. Is that possible?
Thanks a lot!
(1) has been a long-standing issue with SIPE. Luckily last week someone submitted a change which fixed an obvious oversight by the original implementor of the OCS2007 enhanced presence feature. At least for the last 2 meetings it has worked correctly for me.
(2) I have no idea what your are talking about. libpurple has AFAIK no separate status per account. If the user sets Pidgin to busy, all accounts go to busy. Well at least if the protocol supports a busy state, AFAIR for the others it goes to away state.
Last edit: Stefan Becker 2014-09-22
That's great. When will this change be upstream?
For the second point, I think the problem might be that Jabber has no Busy state. My colleagues constantly report me as being online. Are you sure that the default fallback status is "Away"?
edit: My actual question is: Can I change the status for a meeting from "Busy" to "Do not disturb" somehow?
Last edit: Martin Unzner 2014-09-23
I do not understand your first question. What "upstream" are you referring to? SIPE project has only one git repository and does not support forks.
When I look at my Pidgin I only see "Do not disturb". I just added my Jabber account as buddy. It shows "Do not disturb" when I switch to "Do not disturb". But this of course only works if only one client accesses that account, i.e. my other client just went to "idle" and overrode the "Do not disturb" from Pidgin.
When I disable all accounts except the SIPE account, I can choose between "Do not disturb" and "Busy". Can you reproduce that?
What I am going at is this: If there is a meeting scheduled in the calendar, the Office Communicator account will automatically change Pidgin's status to "Busy".
Jabber has no "Busy" status, so it remains in the "Available" status and does not change to "Away" or something (at least not for me).
If the Office Communicator status in a meeting were "Do not disturb", that status would also be registered with Jabber, which is what I am trying to achieve.
Hence, can I change the default SIPE meeting status to "Do not disturb" instead of "Busy"?
Thanks!
If SIPE is the only account, then there are more states visible on the user status combo box. With multiple accounts active Pidgin seems to only offer the union, i.e. what all protocols support. In my case I see "Do not disturb" when SIPE and XMPP accounts are active.
I can not reproduce what you describe. When a meeting starts, my XMPP account correctly switches to "Do not disturb" too. Only my IRC account stays on "Available". After the meeting all accounts switch back to "Available".
Changing from "Do not disturb" to "Busy" will not help, because they share the same primary status
PURPLE_STATUS_UNAVAILABLE, i.e. excerpt from the code src/purple/purple-plugin.c:When I scan the Pidgin source code I see that jabber/jabber.c adds
PURPLE_STATUS_UNAVAILABLE, whereas irc/*.c doesn't. That concurs with the behavior I have observed.OK, apparently everything works as expected. I will have to check my setup, then -- if it remains broken I will post here again. Thanks a lot!
Unfortunately the change I mentioned wasn't enough to fix the problem, i.e. Pidgin was still stuck in "Busy" after the meeting ended. But now I was able to narrow down the problem and was able to root cause it.
Please make sure to test git HEAD. I removed a check, introduced by the original author of the presence implementation, which caused all SIPE core status change events to be ignored by the libpurple backend when the user was "idle away". I.e. when you left your desktop to go to the meeting, then Pidgin goes to "idle away" internally after some time. If you returned to your desktop after the meeting ended the status change to "available" had simply been ignored.
I looked up the original git commit that introduced the change and can't understand why the check was added. It could be that whatever it tried to fix had another root cause that has been fixed since then.
The status change has now worked correctly for me for the last 3 meetings.
Now i am having another problem. If pidgin goes into internal away state and sets my status to away (based on keyboard and mouse movements) I can never unset my away status when I come back from away status.
Last edit: Good_Newz 2014-10-31
Try git HEAD which has a proposed fix for [bugs:#269].
When OCS status is out of sync the menu entry "Reset status" usually helps.
Related
Bugs:
#269