The Automated Busy Discovery system is used to detect the current activity of a user. It is made of various modules which collect information about the activities the user may be involved in. This collected information is sent to a presence server where messages from multiple sources can be composed into a single message, reflecting the user's activity. The modules designed and developed in this project are the RFID module, the Calendar Module, and the Webcam Module.
The motivation behind building the Automated Busy Discovery system is the growing need to contact people efficiently. Using a system of this nature would make it easier for people to communicate since you would know what their current activity is and whether they are willing to communicate with you at that given moment or if they are physically available at a particular location. For example it would be easier for a user to find out if their co-worker has time to discuss another project, or if they are involved in a meeting or other activity.
The system developed in this project encompasses multiple areas from which user activity information can be gathered. The Calendar sub-module monitors a user's calendar to check if they have meetings or other activities which would make they inaccessible. On the other hand the RFID-module monitors the location of the user. Given an adequate placement of the receivers used in this system, it would be possible to track the location of a user at a given moment. The final module the webcam module is responsible for monitors the users office, to determine if they are presently there, or if they are involved in a meeting.
The modules each have different requirements; for example the RFID-module and webcam-module have both hardware and software requirements, whereas the calendar module has only software requirements.
The layout of the document is as follows:
Setup of the Modules used in the project.
RFID Subsystem
The RFID subsystem is used to monitor a persons motion around an area which is covered by multiple network receiver's fields. This module consists of both hardware components and software. The hardware used by the system consists of a network receiver, activator, lantronix unit, antenna and RFID tags. These elements of the system are discussed in detail in the RFID program documentation.
A user's progress can monitored if they carry an RFID tag. Each tag is associated with a unique tag ID. A tag is activated when it passes an RFID activator, and its tag ID information is transmitted to the user program whenever it passes a network receiver. The tag ID information and network receiver information can be used to calculate the users location at a given moment. Location and user information is then converted into a PUBLISH message which is transmitted to a presence server. The publish message details are discussed in the Publish program Documentation.
Webcam Module
The Webcam Module is used to monitor a user's activity in their office, where the activity may be a meeting. The system takes snapshots of the room at particular moments in time. It then compares these images against a fixed image which depicts the room and user in normal circumstances. The main purpose of the system is to be able to inform users when the room's occupant is in a meeting and when they are physically absent from the room.
The Webcam module calculates that there is an additional person in the room, when there is a significant difference between the fixed picture and the snapshot taken. This decision is made on the basis of threshold values which are calculated experimentally. The webcam module is discussed in greater detail in the Webcam Program Documentation. The information gathered from the webcam is then converted into a PUBLISH message which is sent to the presence server.
Calendar Module
The purpose of the calendar module is to monitor a user's calendar for appointments. The calendar can be used to to find out when a user is busy in a meeting or involved in some other activity, and when they can be disturbed. The calendar monitoring program is setup to run periodically and check for appointments in a particular time range.
The calendar module uses the Google Calendar to get schedule information of a user by sending in a range of dates and times during which it should search for activities the user may be involved in. Access to a user's Google calendar requires certain identifying information about the person's Google calendar. The required information consists of a private id and the email address under which the calendar stored. The calendar sub-module is discussed in greater detail under the Calendar Program Documentation. The information gathered from the calendar is sent to the presence server using PUBLISH messages.
Publish Subsystem
The publish subsystem is
responsible for sending correctly formed PUBLISH messages to the presence server. It is
the system used by all the modules to send their presence information to the server. The
PUBLISH messages are created using the parameters sent in from the modules. The parameters
include username, hostname, destination port, user location and activity information.
Presence server information can be setup using the config file of the sip stack. The PUBLISH message and the responses received are written into a log file which can be viewed by the user.
Automated Busy Discovery system is made up of many more modules, than discussed in the project. The other modules are Skype module, GoogleTalk module, and the voice module. Sangwoo is working on these other modules.
Calendar Program Documentation.
MJSIP an open source Java SIP stack was used for the project.
Publish capability was added to MJSIP.
RFID tag and receiver information was matched with predefined information to convert numerical tag information into user identification and location information used for generating the PUBLISH messages.
The webcam module was developed to analyze the snapshots to calculate if more than one person is present in the room.
The Google calendar module was developed to read the schedule of the user and pass the information on to a presence server.
A. Niemi, Ed., "Session Initiation Protocol (SIP) Extension for Event State Publication", RFC 3903, October 2004.
H. Sugano, S. Fujimoto, G. Klyne,A. Bateman, W. Carr, J. Peterson, " Presence Information Data Format (PIDF)",