Ver en Español





Instant Messaging Presence Control      

Oscar Deniz, Modesto Castrillón
Universidad de Las Palmas de Gran Canaria



         IM Presence Control                                       English     
Download IM Presence Control (.msi file, 7.4MB)
Download video (212KB) requires DivX codec

The widespread availability of digital video cameras is opening new human-computer interaction possibilities. Today, most laptopts are equipped with an standard webcam. Advances in face detection allow new possibilities of presence control. The 'IM Presence Control' application allows an Instant Messaging user (Microsoft Messenger, Yahoo Messenger, ...) to control two features of the IM client:
The application developed is able to detect when the user is in front of the laptop or away. This is achieved using face detection (the ENCARA2 real-time face detection system, see http://mozart.dis.ulpgc.es/Gias/modesto_eng.html). A smile detector (based on a cascade of Haar classifiers) automatically inserts smileys or other emoticons in the conversation window when the user is smiling. The character string of the emoticon and the exact form of the insertion can be adjusted by the user. Keystroke insertion is achieved with a modified version of Mustafa Demirhan's Keystroke Engine (http://www.codeguru.com/cpp/misc/misc/applicationcontrol/article.php/c3743/).  An example insertion string is:
Hello World!<ENTER><REPEAT 10>I love open source<ENTER><END_REPEAT>
Mustafa Demirhan

All special keys are put between '<' and '>' characters. For example, to simulate an Enter key, you should use <ENTER>. Or, to press the Shift key, use <SHIFT>. Here are some more examples:

The engine is used to send keystroke strings to a specified window. The window is specified by the title (it is sufficient to enter a part of it is sufficient, though comparison is case sensitive). Thus, keystrokes can be sent to the IM client conversation window, or the the IM client main window, to insert emoticons or change status. For example, the keystroke string for inserting a smiley could be:

" :-) "

That keystroke would insert a smiley at the cursor position in the conversation window. For inserting the smiley at the beginning of the current text line of the conversation window one may use:

"<HOME> <HOME>)<HOME>-<HOME>:<END>"

Note in this case that a <HOME> must be sent before each character because the conversation window is continuously placing the cursor at the end of the line. Other options are possible.

To change a status, a typical string would be:

"<ALT>ade" (example for Windows Live Messenger, Spanish version, this changes user status to 'Away'). Smile strings are only sent if the specified window is currently the foreground window on the desktop. Status strings are only sent if the specified window has not been minimized to the tray.

The options of the application are:

IM Presence Control allows to see a window with the live video input, though the default behavior is to kept it hidden. The application can be executed with the argument "-s", which makes it start automatically and remain minimized in the tray.

The application is distributed under this license. Basically, you can use it or redistribute it for non-commercial purposes, as long as the authors are acknowledged. Enjoy!

Download IM Presence Control (.msi file, 7.4MB)
Download video (212KB) requires DivX codec