Making yourself always “Available” + Auto Reply on Microsoft Office Communicator, Outlook Web App and Live Meeting

A lot of companies force their employees to use Office Communicator at work because people get instant reply like the Blackberry. They call this new strategy “unified messaging” basically slowly replacing regular phone via VOIP using communicator. I don’t like it, but what can you do? Especially if you are working from home, sometimes you want to do your own thing while leaving the work laptop on. At the same time, you want to let your teammates/boss know that you are always “Available” on Office Communicator, how can you do that? Problem with the Office Communicator is that, it will go to “Away” mode after certain time interval. It does not look good on you.

Analysis of problem

Microsoft actually hides the OPTION menu pretty well, see the picture below actually you have to click on the very small icon on the TOP-LEFT corner. Then you can bring up the option menu and “can” change the “idle time” and the “inactive” time. In my test, I changed mine to 60 min. However, this has no effect at all and it doesn’t work! There must be something else like group policy that overrides this value. A lot of companies actually lock down this option for general users, you may not even able to see this option at all.

Solution 1: Low-tech 5 min solution

This solution is good for those who are not that technical, especially for those don’t have Administrator privileges to install any software on the laptop. In my proof of concept, I got a very old solar powered head nodding desktop toy from basement (Only $5 on ebay if you don’t have it). Then, I cut a small piece of aluminum foil tape and taped it on the back of the head. Since I have an optical mouse, the head nodding action generates enough movement for the mouse to move due to reflection! It works like a charm – I am always Available on Communicator.

Solution 2: Simulate mouse/keyboard movement

There are APIs in Windows that you can call to smiluate the mouse/keyboard movement, using User32.dll. I wrote a simple Windows Form application but it just didn’t work for Office Communicator for some reasons. I think it is becuase of .NET which is not low level enough.

Next, my friend Michael suggested me to use a tool called AutoIt v3, I read the documentation and found that it is an extremely powerful automation scripting tool. Probably QA/Admin people use this a lot, the syntax is BASIC alike, so anyone can start writing scripts right away.

Always Available and Auto Reply to messages

After playing with it for few hours, I created a script not only can make you always available, but it can also auto reply to your coworkers!

To use it, download and install AutoIt v3 (freeware) on your laptop, then save the following source code as “AlwaysOnOfficeCommunicator.au3″. Everytime you want it to run, simply double click the .au3 file and it should appear on your system tray. To pause/stop the script, do it on the system tray.

You need to configure the script for the names of your coworkers to be replied automatically, I made it easier so that it accepts partial name that matches the communicator name list (e.g. Peter Laboska, you can use “Peter” or “Laboska”). Note that Auto Reply uses the name you choose as greeting, if you use first name, it will reply as “Peter, I am on the phone now, I will get back to you ASAP.” Otherwise, it will use last name and it may sound odd. Of course, you can modify the script and take away the greeting if you like.

Download: AlwaysOnOfficeCommunicator.au3 (Right-click, Save Target As)

Source Code: (The script is totally free to use/distribute as long as you keep the copyright line)

; Always available and Auto-Reply on Microsoft Communicator
;
; (1) Simulate mouse movement to make status always available
; (2) Auto-Reply for specific coworkers when they message you
;
; Written and Copyrighted by: Mythos and Rini
; Created on: 2010-03-03
;
; Required: AutoIt Version: 3.0
; Tested on: Windows XP SP3, Windows Vista SP1 with
;            Office Communicator 2007 R2
;
 
#include 
 
; This script requires full Administrative rights (Windows Vista)
#requireadmin
 
; ** Setup your name of your coworkers in array below **
; Array of coworkers, AutoIt has no class/type/list, so use Array
;
; [x] - Name of your coworker matches Communicator's Window
; [y] - Flag 0/1 indicating if this has been replied or not
;
; One message is supported here but it is very easy for you to
; modify this to have personalized message for each person
 
Dim $num = 3
Dim $coworkers[$num][2] = [["Peter",0], ["Ken",0], ["Michael",0]]
Dim $message = "I am on the phone now, I will get back to you ASAP."
 
; Use AutoIt WindowsInfo or Microsoft Spy++ to get the class name
$IMClassName="[CLASS:IMWindowClass]"
 
; Move Mouse to 0,0
MouseMove(0, 0, 0)
 
; Loop forever until being stopped manually
While 1=1
 
  ; Random coordinates
  $x=Random(0,800)
  $y=Random(0,600)
  MouseMove($x, $y, 50)
 
  ; Get all the active/minimized communciator windows
  $winList = WinList($IMClassName)
 
  For $a = 0 to $winList[0][0]
     ; Debug
     ; MsgBox(0, "Title", $winList[$a][0])
 
     ; Activate Communicator window if there is any
     If WinActivate($winList[$a][0]) <> 0 Then
 
        ; Get title from IM
        $title = WinGetTitle($winList[$a][0], "")
 
        ; Loop thro all coworkers
        For $r = 0 to UBound($coworkers) - 1
	   ; Debug
	   ; MsgBox(0, "Title",  $coworkers[$r][0])
 
	   ; Send message if name matches + message hasn't been sent
	   If StringInStr($title, $coworkers[$r][0])>0 And $coworkers[$r][1]=0 Then
	      Sleep(1000)
	      Send($coworkers[$r][0] & ", " & $message)
	      Send("{Enter}")
	      $coworkers[$r][1] = 1
	   EndIf
	Next
     ENdIf
  Next
 
  ; Sleep for 20 seconds
  Sleep(20000) 
 
WEnd

Solution 3: Registry Change

Thanks to Stefan leaving the comment to suggest this solution. In Microsoft TechNet forum, there is an thread talks about that. Quote: “You can set this via the MOC client (Tools \ Options \ Personal Tab \ Status Section) and you can also set the registry entries:

HKCU\Software\Microsoft\Communicator\AwayThreshold
HKCU\Software\Microsoft\Communicator\IdleThreshold

” End Quote.

If you have read the beginning of this article, I tested similar value change in Communicator Options > Status and it didn’t work. This MAY work for some of you because not all companies have group policy set. In my case, it didn’t work for me because of possible Group Policy overrides the values. Even without group policy, a smart network administrator can also reset these values every time you login to your computer via login script.

Other Alternatives

In fact, Microsoft has released the API, search for “Microsoft Office Communicator 2007 SDK” and “Microsoft Unified Communicator Client API SDK”. In theory, you can write your own communicator client and do whatever automation you want. Even without the API you can send fake status to the Communicator server via HTTP on raw socket, however you need to gain the server’s trust by SSL negotiation with encrypted messages. Well, I wouldn’t waste my time on either of these.

Related Useful Files for AutoIt

(1)  Always On Mouse Only: If you don’t want the over complicated auto-reply solution, here is the simple solution that simply  simulates the mouse moment randomly on the screen to make the status always available:

Download: AlwaysOnMouseOnly.au3 (Right-click, Save Target As)

(2) Always On Outlook Web App: In my “work from home” cases, sometimes I don’t want to connect to corporate VPN (I don’t want them to track my web surfing) . The downside is that I lose my Outlook connection.  In order to have quick reply to coworkers and pretend you are working very hard (iPhone/Blackberry is not convenient especially if you want to attach files),  I want to keep Outlook Web App opened and this script makes the session never expired by sending “F5″ contineously to the browser:

Download: AlwaysOnOutlookWebApp.au3 (Right-click, Save Target As)

(3) Shut Down Live Meeting after X minutes: In the office, sometimes I am  being forced to participate in Live Meetings.  I use this script to pretend I am attending the meeting but physically I am not there and gone out for a walk on the street. For example, the meeting is scheduled to be 1 hour, usually last 10 minutes will be Q&A, so I set the delay variable to be 50-55 minutes and it will shut down around Q&A time.  You have to make sure that you are NOT the key person where questions will be asked, otherwise you will be screwed.

Download: ShutDownLiveMeeting.au3 (Right-click, Save Target As)

Urban Legend: Americans spent millions of dollars developing a pen that works in Space (zero gravity), while on the other hand, Russians didn’t have that money. So, how did they solve the problem? The answer is: using pencil.

This entry was posted in Development - .NET, Network/Hardware and tagged , , . Bookmark the permalink.

28 Responses to Making yourself always “Available” + Auto Reply on Microsoft Office Communicator, Outlook Web App and Live Meeting

  1. Stefan says:

    or just increase the idolthreashhold and awaythreshhold to 100 minutes within the registry. Ok, does not send messages but easier than installing apps….

  2. will says:

    hey do you if there is anyway to have an auto reply setup based on the instant message received. e.g. someone sends me a message saying LOL and i auto respond with what LOL stands for. i want to setup my account to be an “acronym bot” so that people can instant message me a certain acronym and my response will be the possible meanings of the acronym. email me if you know of any way to do this thanks!

  3. alin says:

    great work… looking for this for a couple of months

  4. bc says:

    works brilliantly! Excellent job!

  5. Nithesh says:

    Hey how to run this .au3 file?? any idea??? i tried with notepad it justs displays the script….

  6. Andrew says:

    Your manual solution was hell funny, Brilliant! You have obviously given this some thought :)

  7. tekman says:

    Based on solution #1 (low tech) you may like mine solution # 1.1 you can see it right here: http://www.taringa.net/posts/ebooks-tutoriales/9478261/Como-aparecer-simpre-visible-y-ACTIVO-en-office-COMMUNICATOR.html
    It’s in spanish bue well illustrated.

    Fuck the system !!

  8. Admin says:

    Tekman, I LOVE YOUR SOLUTION!!!!! That’s extremely clever using paper clip and post-it notes on the laptop fan. I will try it later, that’s really cool.

  9. belinha says:

    This is awesome! Thankssss

  10. san says:

    Great work and thinking.
    I would like to know when contact is available from offline to online. Not the built in alert because it just flashes for few seconds. It would be good if I get auto message or email.

  11. Redterp says:

    The mouse troll was pretty funny. Also, I’ve used Pidgin to unify all my IM protocols including communicator. Pidgin requires a plugin for Communicator to work. I used SIPE Project on my Ubuntu netbook along with Pidgin and it worked great. It’s not perfect but worth a shot.

  12. YesYouCan says:

    Would running an infinite looping macro in Excel simulate keyboard activity that would keep the Inactive status from appearing in Office Communicator?

  13. anna says:

    hi Tekman, can you please re-post your solution, the weblink is no longer available. thanks!

  14. Terry says:

    Outstanding – thanks.

  15. darkbishop says:

    how can i make the auto-reply just say hi rather then name. i got thousand of people oc me everyday. i can be adding their name in the script. it would be batter if its just respond to anyone that oc me.

  16. JH says:

    Just awesome. I can verify that the low-tech method works! I just used regular foil. I may try installing autoIT at some point for those cloudy days. Thank you thank you thank you

  17. OCS says:

    I notice if I lock my PC it goes to “Away” even if the script is running. Is there anything that works with locking your PC?

  18. Vtr says:

    Same problem. I have to lock my computer and that causes the status to be “Away” even if the script is running.

  19. Vtr says:

    This document explains that Communicator reacts to locking the computer by setting the status to “Away”

  20. Admin says:

    Unfortunately, this only works when your computer is not locked.

  21. Kay says:

    Let me first thank you for your great solution pretending to be available on communicator. Our company forced us to use it and I uninstalled it first. But now we have also to use our headset instead of our old telephone and this forced me again to use it :-(.

    The problem is that if you lock your PC your status chenge to “away” and there is nothing you can do about it (script will not work anymore).

    Here my solution: Minimize all your open windows. Open your task manager, find the process “explorer.exe” and end it. Don’t worry, it’s just temporable gone. Now your sceen is “clean” and the script can run as it should.

    To get back to work press “Alt” and “Tab” to get to your task manager again. Execute a new task (button in the lower right corner) and type in “explorer.exe”.

    Hint: I know this will not protect you of some nerds hacking in your PC but for the ordinary co-worker it’s enough protection

  22. Sergei says:

    Today “always on the mouse” script was running for the whole day on my laptop. The script is a must if you want to spare 2 extra hours for sleeping.

    But I have to admit solution #1 is genious!

    Many thank from P&G.

  23. Joe says:

    If you have one of those vintage vibrating football games (from the 60s. Young people will have to Google them because they were not handheld video games.) you can plug it in and put your cordless mouse on it. Problem solved all day long except if someone messages you.

  24. Davi Briane says:

    hi, whenever i lock my PC, communicator says “AWAY (5 mins)”, AWAY is fine for me, i just want to hide out this time..that nobody will come to know for how much time i am away…or in case of offline…..OFFLINE (1 day)..for how many days i am offline.. can you please help me with this…

  25. Sandeep says:

    Sweet.. I even tried it and the autoit script works really well.
    2 points for improvement.

    1. Script should be able to capture who’s pinging from the chat message header and use the same name in your reply.. thus making the script making more dynamic.

    2. Script should be able to read the content out of the communicator and based on a the keywords in the message the reply can change dynamically.. E.g. if someone says “hi”, u’r reply can be “hi, how r u?” but if your boss says “where is the hudson file??” with the word “hudson”, your reply should be .. “working on it.. i’ll get back to you asap.”
    2.1 All these keywords and related replies should be kept in a external location.. like an excel .. not in the script.. thus making it more accessible.

  26. mythosrini says:

    This is a test

  27. madhusudanlm says:

    Well… Low Tech solution is awesome…

    Here’s a simplest solution from me…
    1. Open Notepad application
    2. Just keep an heavy object on your Keyboard Space bar key. -> This keeps entering space in notepad
    3. Now turn off monitor and go any where :)

    Note: You cannot lock the computer.
    -LMM

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>