U.S. patent application number 12/970020 was filed with the patent office on 2012-06-21 for augmenting personal availability using a mobile device.
This patent application is currently assigned to Microsoft Corporation. Invention is credited to Juan V. Esteve Balducci, Quentin S. Miller.
Application Number | 20120158943 12/970020 |
Document ID | / |
Family ID | 46235892 |
Filed Date | 2012-06-21 |
United States Patent
Application |
20120158943 |
Kind Code |
A1 |
Esteve Balducci; Juan V. ;
et al. |
June 21, 2012 |
Augmenting Personal Availability Using a Mobile Device
Abstract
An online presence may be augmented by leveraging mobile
computing device sensors in a mobile computing device. State change
and/or rate of change data measured by the mobile computing device
sensors may be received. The state change and/or rate of change
data may be compared with a set of rules to determine a matching
online presence state for the mobile computing device. The set of
rules may describe different online presence states associated with
a user of the mobile computing device. A current online presence
associated with the user of the mobile computing device may then be
updated to the matching online presence state.
Inventors: |
Esteve Balducci; Juan V.;
(Mercer Island, WA) ; Miller; Quentin S.;
(Sammamish, WA) |
Assignee: |
Microsoft Corporation
Redmond
WA
|
Family ID: |
46235892 |
Appl. No.: |
12/970020 |
Filed: |
December 16, 2010 |
Current U.S.
Class: |
709/224 |
Current CPC
Class: |
H04L 51/043 20130101;
H04L 67/24 20130101 |
Class at
Publication: |
709/224 |
International
Class: |
G06F 15/173 20060101
G06F015/173 |
Claims
1. A method of augmenting an online presence by leveraging mobile
computing device sensors, comprising: receiving, by the mobile
computing device, at least one of state change data and rate of
change data measured by the mobile computing device sensors;
comparing, by the mobile computing device, the at least one of
state change data and rate of change data with a set of rules to
determine a matching online presence state, the set of rules
describing a plurality of online presence states associated with a
user of the mobile computing device; and updating, by the mobile
computing device, an online presence associated with the user of
the mobile computing device with the matching online presence
state.
2. The method of claim 1, wherein receiving, by the mobile
computing device, at least one of state change data and rate of
change data using the mobile computing device sensors comprises
receiving at least one of: a change in ambient light received by
the mobile computing device; a change in a position of the mobile
computing device; a change in a rate of acceleration of the mobile
computing device; a change in a current communication state of the
mobile computing device; a change in a current orientation of the
mobile computing device; a change in a current environment
surrounding the mobile computing device; and a detection of one or
more other mobile computing devices.
3. The method of claim 1, wherein updating, by the mobile computing
device, an online presence associated with the user of the mobile
computing device with the matching online presence state comprises
passively using the mobile computing device sensors to update the
online presence.
4. The method of claim 1, wherein updating, by the mobile computing
device, an online presence associated with the user of the mobile
computing device with the matching online presence state comprises
actively using the mobile computing device sensors to update the
online presence.
5. The method of claim 4, further comprising restoring a previous
online presence state associated with the user of the mobile
computing device in response to actively using the mobile computing
device sensors to update the online presence.
6. The method of claim 1, wherein updating, by the mobile computing
device, an online presence associated with the user of the mobile
computing device with the matching online presence state comprises:
automatically setting the online presence to an unavailable state
based on at least one of an acceleration rate, a location and a
time threshold associated with the matching online presence state;
restricting at least one communication method for communicating
with the user of the mobile computing device; and suggesting an
alternative communication method to a communication initiating
party for communicating with the user of the mobile computing
device.
7. The method of claim 1, further comprising changing at least one
communication preference for the user of the mobile computing
device based on the at least one of state change data and rate of
change data measured by the mobile computing device sensors.
8. A server for augmenting an online presence by leveraging mobile
computing device sensors, comprising: a memory for storing
executable program code; and a processor, functionally coupled to
the memory, the processor being responsive to computer-executable
instructions contained in the program code and operative to:
receive at least one of state change data and rate of change data
measured by mobile computing device sensors in a mobile computing
device in communication with the server; comparing the at least one
of a state change and a rate change with a set of rules to
determine a matching online presence state, the set of rules
describing a plurality of online presence states associated with a
user of the mobile computing device; and update an online presence
associated with the user of the mobile computing device with the
matching online presence state.
9. The server of claim 8, wherein the processor, in receiving at
least one of state change data and rate of change data measured by
mobile computing device sensors in communication with the server,
is operative to receive data associated with at least one of: a
change in ambient light received by the mobile computing device; a
change in a position of the mobile computing device; a change in a
rate of acceleration of the mobile computing device; a change in a
current communication state of the mobile computing device; and a
change in a current orientation of the mobile computing device; a
change in a current environment surrounding the mobile computing
device; and a detection of one or more other mobile computing
devices.
10. The server of claim 8, wherein the processor, in updating an
online presence associated with the user of the mobile computing
device with the matching online presence state, is operative to
passively use the mobile computing device sensors to update the
online presence.
11. The server of claim 8, wherein the processor, in wherein
updating an online presence associated with the user of the mobile
computing device with the matching online presence state, is
operative to actively use the mobile computing device sensors to
update the online presence.
12. The server of claim 11, wherein the processor is further
operative to restore a previous online presence state associated
with the user of the mobile computing device in response to
actively use the mobile computing device sensors to update the
online presence.
13. The server of claim 9, wherein the processor, in updating an
online presence associated with the user of the mobile computing
device with the matching online presence state, is operative to:
automatically set the online presence to an unavailable state based
on at least one of an acceleration rate, a distance and a time
threshold associated with the matching online presence state;
restrict at least one communication method for communicating with
the user of the mobile computing device; and suggest an alternative
communication method to a communication initiating party for
communicating with the user of the mobile computing device.
14. The server of claim 9, wherein the processor is further
operative to: change at least one communication preference for the
user of the mobile computing device based on the at least one of
state change data and rate of change data received from the mobile
computing device sensors in the mobile computing device.
15. A computer-readable storage medium comprising computer
executable instructions which, when executed by a mobile computing
device, will cause the mobile computing device to perform a method
of augmenting an online presence by leveraging mobile computing
device sensors, the method comprising: receiving at least one of
state change data and rate of change data measured by the mobile
computing device sensors; comparing the at least one of state
change data and rate of change data with a set of rules to
determine a matching online presence state, the set of rules
describing a plurality of online presence states associated with a
user of the mobile computing device; updating an online presence
associated with the user of the mobile computing device with the
matching online presence state; and changing at least one
communication preference for the user of the mobile computing
device based on the at least one of state change data and rate of
change data measured by the mobile computing device sensors.
16. The computer-readable storage medium of claim 15, wherein
receiving at least one of state change data and rate of change data
using the mobile computing device sensors comprises determining at
least one of: a change in ambient light received by the mobile
computing device; a change in a position of the mobile computing
device; a change in a rate of acceleration of the mobile computing
device; a change in a current communication state of the mobile
computing device; a change in a current orientation of the mobile
computing device; a change in a current environment surrounding the
mobile computing device; and a detection of one or more other
mobile computing devices.
17. The computer-readable storage medium of claim 15, wherein
updating an online presence associated with the user of the mobile
computing device with the matching online presence state comprises
passively using the mobile computing device sensors to update the
online presence.
18. The computer-readable storage medium of claim 15, wherein
updating an online presence associated with the user of the mobile
computing device with the matching online presence state comprises
actively using the mobile computing device sensors to update the
online presence.
19. The computer-readable storage medium of claim 18, further
comprising restoring a previous online presence state associated
with the user of the mobile computing device in response to
actively using the mobile computing device sensors to update the
online presence.
20. The computer-readable storage medium of claim 15, wherein
updating an online presence associated with the user of the mobile
computing device with the matching online presence state comprises:
automatically setting the online presence to an unavailable state
based on at least one of an acceleration rate, a distance and a
time threshold associated with the matching online presence state;
restricting at least one communication method for communicating
with the user of the mobile computing device; and suggesting an
alternative communication method to a communication initiating
party for communicating with the user of the mobile computing
device.
Description
COPYRIGHT NOTICE
[0001] A portion of the disclosure of this patent document contains
material which is subject to copyright protection. The copyright
owner has no objection to the facsimile reproduction by anyone of
the patent document or the patent disclosure, as it appears in the
Patent and Trademark Office patent file or records, but otherwise
reserves all copyright rights whatsoever.
BACKGROUND
[0002] Computer users utilize network-based messaging applications,
such as Instant messaging ("IM") applications, for conveying text,
voice and video communication between two or more users (in
real-time), over a network, such as the Internet. Network-based
messaging applications may further enable the updating of an online
availability state to other users in their network. Currently,
online availability is determined via the use (or lack of use) of a
user's computer or via a user manually setting their online
availability to one of a number of states (e.g., busy, do not
disturb, etc.) through a network-based messaging application as
their states change throughout the day. One drawback associated
with determining online availability using current network-based
messaging applications is that a user's attention is required to
keep one's online availability state up to date. Another drawback
with current network-based messaging applications is that they do
not allow a user to passively change their online availability when
the user is in situations where actively changing their state may
not be socially acceptable (such as when the user is driving or in
a business meeting, for example). It is with respect to these
considerations and others that the various embodiments of the
present invention have been made.
SUMMARY
[0003] This summary is provided to introduce a selection of
concepts in a simplified form that are further described below in
the Detailed Description. This summary is not intended to identify
key features or essential features of the claimed subject matter,
nor is it intended as an aid in determining the scope of the
claimed subject matter.
[0004] Embodiments are provided for augmenting an online presence
by leveraging mobile computing device sensors. State change and/or
rate of change data measured by the mobile computing device sensors
may be received. The state change and/or rate of change data may be
compared with a set of rules to determine a matching online
presence state for the mobile computing device. The set of rules
may describe different online presence states associated with a
user of the mobile computing device. A current online presence
associated with the user of the mobile computing device may then be
updated to the matching online presence state.
[0005] These and other features and advantages will be apparent
from a reading of the following detailed description and a review
of the associated drawings. It is to be understood that both the
foregoing general description and the following detailed
description are illustrative only and are not restrictive of the
invention as claimed.
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] FIG. 1 is a block diagram illustrating a network
architecture for augmenting an online presence by leveraging mobile
computing device sensors, in accordance with various
embodiments;
[0007] FIG. 2 is a block diagram illustrating server computing
environment which may be utilized for augmenting an online presence
by leveraging mobile computing device sensors, in accordance with
various embodiments; and
[0008] FIG. 3 is a flow diagram illustrating a routine for
augmenting an online presence by leveraging mobile computing device
sensors, in accordance with various embodiments.
DETAILED DESCRIPTION
[0009] Embodiments are provided for augmenting an online presence
by leveraging mobile computing device sensors. State change and/or
rate of change data measured by the mobile computing device sensors
may be considered. The state change and/or rate of change data may
be compared with a set of rules to determine a matching online
presence state for the mobile computing device. The set of rules
may describe different online presence states associated with a
user of the mobile computing device. A current online presence
associated with the user of the mobile computing device may then be
updated to the matching online presence state.
[0010] In the following detailed description, references are made
to the accompanying drawings that form a part hereof, and in which
are shown by way of illustrations specific embodiments or examples.
These embodiments may be combined, other embodiments may be
utilized, and structural changes may be made without departing from
the spirit or scope of the present invention. The following
detailed description is therefore not to be taken in a limiting
sense, and the scope of the present invention is defined by the
appended claims and their equivalents.
[0011] Referring now to the drawings, in which like numerals
represent like elements through the several figures, various
aspects of the present invention will be described.
[0012] FIG. 1 is a block diagram illustrating a network
architecture for augmenting an online presence by leveraging mobile
computing device sensors. The network architecture includes a
mobile computing device 2 in communication with a client computing
device 6, an availability and communication preference service
server 70 (hereinafter, referred to as the availability server 70),
a messaging service server 80 and a telephone switch 90. In
accordance with various embodiments, the network 4 may comprise a
local network or a wide area network (e.g., the Internet). It
should be understood that the network 4 may represent a single
network or, alternatively, multiple disparate networks associated
with each of the servers 70 and 80. It should be appreciated by
those skilled in the art that, in accordance with an embodiment,
the servers 70 and 80 may represent services hosted on multiple
servers or other complex computer systems.
[0013] The mobile computing device 2 may include a messaging
application 34, sensors 40, rules 50, mobile device state change
data 60 and mobile device rate of change data 62. In accordance
with various embodiments, the mobile computing device 2 may
comprise a mobile telephone or other portable device (such as a
tablet) having computer functionality and which is capable of
executing one or more application programs including, but not
limited to, a laptop computer and a "smartphone" (i.e., a mobile
phone having computer functionality and/or which is capable of
running operating system software to provide a standardized
interface and platform for application developers). In accordance
with an embodiment, the messaging application 34 may comprise a
client application program which is configured for conveying text,
voice and video communication between two or more computers (such
as the client computing device 6), over the network 4, such as the
Internet. The messaging application 34 may be further configured to
communicate with the availability server 70 for updating an online
availability state to other client computing devices in a network.
Moreover, as will be described in greater detail herein, the
messaging application 34 may also be configured to augment an
online presence by leveraging mobile computing device sensors
(i.e., the sensors 40). In accordance with an embodiment, the
messaging application 34 may comprise any number of messaging
applications including, but not limited to the LYNC and LIVE
MESSENGER instant messenger ("IM") client applications from
MICROSOFT CORPORATION of Redmond, Wash. It should be appreciated
that other messaging applications from other manufacturers may be
utilized in accordance with the various embodiments described
herein.
[0014] The sensors 40 in the mobile computing device 2 may comprise
one or more sensors for measuring data attributes associated with
the mobile computing device 2 including, but not limited to,
location, direction, speed of travel, time of day, day of week,
amount of light, device orientation, temperature and pressure. The
sensors 40 may also comprise the ability to detect the presence of
a wireless network (e.g., a "Wi-Fi" network) or other mobile
computing devices (e.g., via BLUETOOTH wireless technology) without
actually making a network or a device connection). Thus, in
accordance with an embodiment, the sensors 40, which should be
known to those skilled in the art, may include a light sensor, a
position sensor, an accelerometer, a temperature sensor, a pressure
sensor and a wireless network interface device (for detecting and
connecting to other wireless networks/devices) and a gyroscope. In
addition, the sensors 40 may also be capable of detecting
communication usage data associated with the mobile computing
device 2. For example, the communication usage data may indicate
whether the mobile computing device 2 is currently being used on a
telephone call, receiving data, or both. As will be described in
greater detail herein with respect to FIG. 3, the messaging
application 34, in accordance with an embodiment, may be utilized
to receive mobile device state change data 60 and mobile device
rate of change data 62 relating to any change and/or rate of change
of the data attributes and communication usage data measured by the
sensors 40.
[0015] In accordance with an embodiment, the rules 50 may comprise
various settings associated with mobile device state change data 60
and/or the mobile device rate of change data 62 measured by the
sensors 40. In particular, the rules 50 may include a library of
online presence states 52 associated with the online presence or
availability of a user of the mobile computing device 2. In
accordance with an embodiment, the online presence states 52 may
include, without limitation, the following states: "available,"
"busy," "do not disturb," "be right back," "off work," "free" and
"away." The rules 50 may be configured to associate the online
presence states 52 with specific instances of measured sensor data.
For example, a user wishing to change his or her online presence
may flip over the mobile computing device 2, thereby causing the
sensors 40 to detect a change in orientation. A rule in the rules
50 may be defined such that a change in orientation (such as the
aforementioned "flip") is associated with an online presence state
52 identified as "do not disturb." In response to the detected
change in orientation, the messaging application 34 may be
configured to access the rules 50 and determine the matching online
presence state. The messaging application 34, upon determining the
matching online presence state, may then be configured to compare
the change in orientation to the rules 50 and determine the
aforementioned corresponding "do not disturb" presence state. The
messaging application 34 may then communicate the change in state
to the availability server 70 so that the user's current online
presence will be established as "do not disturb."
[0016] The client computing device 6 may comprise any type of
computer or computing device capable of executing one or more
application programs. In accordance with an embodiment, the client
computing device 6 may be utilized to execute a messaging
application (not shown) for conveying text, voice and video
communication to a user of the mobile computing device 2 over the
network 4.
[0017] The availability server 70 may comprise the rules 52, a user
online presence 72, a messaging application 74, and communication
preferences 76. As discussed above with respect to the mobile
computing device 2, the rules 50 may comprise various settings
associated with mobile device state change data 60 and/or the
mobile device rate of change data 62, measured by the sensors 40,
and communicated from the mobile computing device 2 to the
availability server 70. In particular, the rules 50 may include a
library of online presence states 52 associated with the online
presence or availability of a user of the mobile computing device
2.
[0018] The user online presence data 72 may comprise a current user
online presence state associated with the user of the mobile
computing device 2. As will be described in greater detail herein,
the user online presence 72 may be updated by either the messaging
application 34 (executing on the mobile computing device 2) or the
messaging application 74 (executing on the availability server 70)
to publish a user's (i.e., the user of the mobile computing device
2) current online availability to other users in a network based on
the mobile device state change data 60 and/or the mobile device
rate of change data 62 received (by either the mobile computing
device 2 or the availability server 70) from the sensors 40.
[0019] In accordance with an embodiment, the messaging application
74 may comprise a server application program which is configured
for managing availability and communication preferences for users
of messaging client applications such as the messaging application
34. In accordance with an embodiment, the messaging application 74
may be configured to update an online availability state for a user
of the mobile computing device 2. Furthermore, as will be described
in greater detail herein, the messaging application 74 may also be
configured to augment an online presence by leveraging mobile
computing device sensors (i.e., the sensors 40). In accordance with
an embodiment, the messaging application 74 may comprise a
collaborative server application such as the EXCHANGE SERVER
collaborative application, the LYNC SERVER application or the
MESSENGER service from MICROSOFT CORPORATION of Redmond, Wash. It
should be appreciated that other collaborative server applications
from other manufacturers may be utilized in accordance with the
various embodiments described herein.
[0020] The communication preferences 76 may comprise user
preferences for a number of communication methods which may be
utilized with respect to messages sent and received between a user
of the mobile computing device 2 and other network users (such as a
user of the client computing device 6). The communication
preferences 76 may include, without limitation, the following
preferences: IM text messages, electronic mail (e.g., "e-mail in
lieu of IM"), voice calls (e.g., "voice call in lieu of IM"), video
conferencing, voicemail (for directing voice calls received), and a
restriction preference which may be associated with one or more of
the aforementioned communication preferences (such as restricting
voice conferencing, for example). In accordance with an embodiment,
and as will be described in greater detail below with respect to
FIG. 3, the communication preferences 76 may be changed (by either
the messaging application 34 or the messaging application 74) based
on sensor data received from the sensors 40. For example, if it is
determined (based on the mobile device state change data 60 and/or
mobile device rate of change data 62) that the user of the mobile
computing device 2 is moving (e.g., the user is driving), then the
messaging applications 34 or 74 may change the user's preferred
communication method in the communication preferences 76 to "voice
call in lieu of IM" while the user is driving.
[0021] The messaging service server 80 may provide an
infrastructure for enterprise instant messaging, presence, file
transfer, peer-to-peer and multiparty voice and video calling, ad
hoc and structured conferences (audio, video and web) and Public
Switched Telephone Network ("PSTN") connectivity for users in the
network architecture of FIG. 1. In accordance with an embodiment,
the messaging service server 80 may comprise the LYNC SERVER
real-time communications server from MICROSOFT CORPORATION of
Redmond Wash. It should be appreciated that other communication
server applications from other manufacturers may be utilized in
accordance with the various embodiments described herein.
[0022] The telephone switch 90 may comprise a conventional
telephony switch connected to the PSTN. In accordance with various
embodiments, the messaging service server 80 may be utilized to
provide PSTN connectivity to users of the mobile computing device 2
and the client computing device 6 for making and receiving voice
calls as well as for generating and accessing voicemail
messages.
Exemplary Operating Environment
[0023] Referring now to FIG. 2, the following discussion is
intended to provide a brief, general description of a suitable
computing environment in which various illustrative embodiments may
be implemented. While various embodiments will be described in the
general context of program modules that execute in conjunction with
program modules that run on an operating system on a computing
device, those skilled in the art will recognize that the various
embodiments may also be implemented in combination with other types
of computer systems and program modules.
[0024] Generally, program modules include routines, programs,
components, data structures, and other types of structures that
perform particular tasks or implement particular abstract data
types. Moreover, those skilled in the art will appreciate that the
various embodiments may be practiced with a number of computer
system configurations, including hand-held devices, multiprocessor
systems, microprocessor-based or programmable consumer electronics,
minicomputers, mainframe computers, and the like. The various
embodiments may also be practiced in distributed computing
environments where tasks are performed by remote processing devices
that are linked through a communications network. In a distributed
computing environment, program modules may be located in both local
and remote memory storage devices.
[0025] FIG. 2 shows the availability server 70 which may include a
computer capable of executing one or more application programs. The
availability server 70 includes at least one central processing
unit 8 ("CPU"), a system memory 12, including a random access
memory 18 ("RAM") and a read-only memory ("ROM") 20, and a system
bus 10 that couples the memory to the CPU 8. A basic input/output
system containing the basic routines that help to transfer
information between elements within the computer, such as during
startup, is stored in the ROM 20.
[0026] The availability server 70 may further include a mass
storage device 14 for storing an operating system 32, the rules 50
(include the library of online presence states 52), the user online
presence 72, the messaging application 74 and the communication
preferences 76. In accordance with various embodiments, the
operating system 32 may be suitable for controlling the operation
of a networked computer, such as the WINDOWS operating systems from
MICROSOFT CORPORATION of Redmond, Wash. The mass storage device 14
is connected to the CPU 8 through a mass storage controller (not
shown) connected to the bus 10. The mass storage device 14 and its
associated computer-readable media provide non-volatile storage for
the availability server 70. The term computer-readable media as
used herein may include computer storage media. Computer storage
media may include volatile and nonvolatile, removable and
non-removable media implemented in any method or technology for
storage of information, such as computer readable instructions,
data structures, program modules, or other data. Computer storage
media may include, but is not limited to, RAM, ROM, electrically
erasable read-only memory (EEPROM), flash memory or other memory
technology, CD-ROM, digital versatile disks (DVD) or other optical
storage, magnetic cassettes, magnetic tape, magnetic disk storage
or other magnetic storage devices, or any other medium which can be
used to store information and which can be accessed by the
availability server 70. Any such computer storage media may be part
of the availability server 70.
[0027] The term computer-readable media as used herein may also
include communication media. Communication media may be embodied by
computer readable instructions, data structures, program modules,
or other data in a modulated data signal, such as a carrier wave or
other transport mechanism, and includes any information delivery
media. The term "modulated data signal" may describe a signal that
has one or more characteristics set or changed in such a manner as
to encode information in the signal. By way of example, and not
limitation, communication media may include wired media such as a
wired network or direct-wired connection, and wireless media such
as acoustic, radio frequency (RF), infrared, and other wireless
media.
[0028] According to various embodiments of the invention, the
availability server 70 may operate in a networked environment using
logical connections to remote computers through the network 4. The
availability server 70 may connect to the network 4 through a
network interface unit 16 connected to the bus 10. It should be
appreciated that the network interface unit 16 may also be utilized
to connect to other types of networks (including wireless networks)
and remote computing systems. The availability server 70 may also
include an input/output controller 22 for receiving and processing
input from a number of input types, including a keyboard, mouse,
pen, stylus, finger, and/or other means (not shown). Similarly, the
input/output controller 22 may provide output to a display device
85 as well as a printer, or other type of output device (not
shown). It should be appreciated that the mobile computing device 2
and the client computing device 6, shown in FIG. 1, may include
many of the conventional components shown and discussed above with
respect to the availability server 70. In accordance with various
embodiments, the mobile computing device 2 may also include
additional conventional components (not shown) such as a wireless
radio, a power supply (e.g., a removable or non-removable battery)
and a real-time clock.
[0029] FIG. 3 is a flow diagram illustrating a routine 300 for
augmenting an online presence by leveraging mobile computing device
sensors, in accordance with various embodiments. When reading the
discussion of the routines presented herein, it should be
appreciated that the logical operations of various embodiments of
the present invention are implemented (1) as a sequence of computer
implemented acts or program modules running on a computing system
and/or (2) as interconnected machine logical circuits or circuit
modules within the computing system. The implementation is a matter
of choice dependent on the performance requirements of the
computing system implementing the invention. Accordingly, the
logical operations illustrated in FIG. 3 and making up the various
embodiments described herein are referred to variously as
operations, structural devices, acts or modules. It will be
recognized by one skilled in the art that these operations,
structural devices, acts and modules may be implemented in
software, in firmware, in special purpose digital logical, and any
combination thereof without deviating from the spirit and scope of
the present invention as recited within the claims set forth
herein.
[0030] The routine 300 begins at operation 305, where the messaging
application 34, executing on the mobile computing device 2,
receives the mobile device state change data 60 and/or the mobile
device rate of change data 62 which has been measured by the
sensors 40. It should be appreciated that according to an
alternative embodiment, the messaging application 74, executing on
the availability server 70 may also be utilized to receive the
mobile device state change data 60 and/or the mobile device rate of
change data 62. In particular, the received mobile device state
change data 60 and the mobile device rate change data 62 may
include one or more of the following: a change in ambient light
received by the mobile computing device 2, a change in a position
of the mobile computing device 2, a change in a rate of
acceleration of the mobile computing device 2, a change in a
current communication state of the mobile computing device 2 (e.g.,
a change in communication from a data being received on the mobile
computing device 2 to a telephone call being made on the mobile
computing device 2) and a change in a current orientation of the
mobile computing device 2 (e.g., a measured change in the angular
momentum of the mobile computing device 2 including when the mobile
computing device 2 is being rotated or spun), a change in a current
environment surrounding the mobile computing device (e.g., changes
in temperature, pressure, etc.) and a detection of one or more
other mobile computing devices. It should be appreciated that the
detection of other mobile computing devices may be accomplished
without actually establishing a network connection (such as a
"Wi-Fi" or BLUETOOTH wireless technology connection) with the other
mobile computing devices.
[0031] From operation 305, the routine 300 continues to operation
310, where the messaging application 34, executing on the mobile
computing device 2, compares the received mobile device state
change data 60 and/or the mobile device rate of change data 62
(which has been measured by the sensors 40) to the rules 50 to
determine a matching online presence state 52. It should be
appreciated that according to an alternative embodiment, the
messaging application 74, executing on the availability server 70
may also be utilized to make the aforementioned comparison. For
example, received mobile device state change data 60 and/or the
mobile device rate of change data 62 may indicate, from the sensors
40, that the mobile computing device 2 has been flipped (i.e.,
turned over), then the messaging applications 34 or 74 may access
the rules 50 and find a matching or appropriate rule for the
present state of the mobile computing device 2. For example, the
rules 50 may contain a rule which states that if the mobile
computing device 2 is upside down, then a matching online presence
state 52 is "Do Not Disturb," (i.e., the online presence should be
set to "Do Not Disturb") but if the mobile computing device 2 is
right side up and the lights are turned off (e.g., the light sensor
in the mobile computing device 2 detects an absence of ambient
light), then a matching online presence state 52 is "Unavailable,"
(i.e., the online presence should be set to "Unavailable") but if
the mobile computing device 2 is right side up and the lights are
turned on, then the matching online presence state is "Available"
(i.e., the online presence should be set to "Available"). It should
be understood that the aforementioned rule examples are
non-exhaustive and that other rules may also be utilized in
determining online presence states based on received sensor data.
It should also be appreciated that these rules may be preset by the
system, may be created by the user or may be learned from the
user's communication behavior and device usage.
[0032] From operation 310, the routine 300 continues to operation
315, where the messaging application 34, executing on the mobile
computing device 2, updates the user online presence 72 with a
matching online presence state 52. It should be appreciated that
according to an alternative embodiment, the messaging application
74, executing on the availability server 70, may also be utilized
to make the aforementioned update. For example, using the previous
example discussed at operation 310, if the mobile computing device
2 is upside down, then the online presence 72 would be updated to
"Do Not Disturb." In accordance with an embodiment, the online
presence 72 may be updated by either active or passive use of the
sensors 40 in the mobile computing device 2. For example, as
discussed above, a user may physically change a state of the mobile
computing device 2 by flipping, turning, or spinning the device to
initiate the matching of the online presence states 52 and the
updating of the online presence 72. Conversely, the messaging
applications 34 or 74 may passively update the online presence 52
based on received location data received by the sensors 40 based on
the assumption that the mobile computing device is currently on the
user's person or within reach of the user. For example, a current
geographical location of the mobile computing device 2 may
determined by position data measured by the sensors 40.
Furthermore, a rule 50 may store a geographical location associated
with a user's workplace and state that if the mobile computing
device 2 is a predetermined distance away from the stored
geographical location, then the user's online presence should be
set to "Unavailable or Away." The online presence 72 would be thus
be passively updated to "Unavailable or Away" by the messaging
applications 34 or 74 based on the aforementioned rule. In
accordance with an embodiment, the online presence 72 may also be
updated by automatically setting the online presence 72 to an
unavailable state based on an acceleration rate, a distance and/or
a time threshold associated with a matching online presence state
52 in a rule 50. For example, a rule 50 may be based on a user
preference that the user is often driving and state that if the
mobile computing device 2 is moving (i.e., a rate of acceleration
is detected by the sensors 40), then the user's online presence
should be set to "Busy, Unavailable or Driving." The messaging
applications 34 or 74 may then automatically update the online
presence 72 based on the aforementioned rule. As another example,
the rules 50 may utilize heuristics based on historical presence
information to determine that a user his on his or her way home
from work and state that an online presence should only be updated
once the user has reached home or other location (i.e., the mobile
computing device 2 has reached a geographical location
corresponding to the user's home or other location) or that the
online presence should only be updated once the user has stayed at
home or another location for more than a certain threshold of time.
The messaging applications 34 or 74 may then automatically update
the online presence 72 based on the aforementioned rules. As
another example, a rule 50 may include a restriction of one or more
communication methods for communicating with the user of the mobile
computing device 2. In particular, a rule 50 may instruct the
messaging applications 34 or 74 to restrict certain communication,
such as not enabling voice conferencing (even though this
functionality may be supported by the mobile computing device 2).
Alternatively, a rule 50 may instruct the messaging applications 34
or 74 to automatically restrict communication to a certain mode of
communication based on received sensor location data. Thus, a
communication preference 76 may be updated to favor certain modes
of communication over others, such as "e-mail in lieu of IM" while
the user is at home. As another example, a rule 50 may include
suggesting an alternative communication method to a communication
initiating party (e.g., the client computing device 6) for
communicating with the user of the mobile computing device 2. In
particular, a rule 50 may instruct the messaging applications 34 or
74 to suggest, to a communication initiating party (e.g., by
sending an e-mail to a user of the client computing device 6),
"voice call in lieu of IM" as a preferred means of communication
when a user of the mobile computing device 2 is driving (based on
received sensor acceleration data).
[0033] From operation 315, the routine 300 continues to operation
320, where the messaging application 34, executing on the mobile
computing device 2, may restore a previous user online presence in
response to receiving the mobile device state change data 60 and/or
the mobile device rate of change data 62. It should be appreciated
that according to an alternative embodiment, the messaging
application 74, executing on the availability server 70, may also
be utilized to perform the aforementioned operation. In particular,
a user may initiate the switching of a user online presence 76 from
"Unavailable" to "Available" by undoing a previous action (e.g.,
flipping, turning or spinning) made with respect to the mobile
computing device 2. For example, a user may restore a previous
online presence 76 by turning the mobile computing device 2 so that
it is now right side up instead of upside down. It should be
appreciated that the right side up state of the mobile computing
device 2 may also have an "Available" matching online presence
state 52 in the rules 50.
[0034] From operation 320, the routine 300 continues to operation
325, where the messaging application 34, executing on the mobile
computing device 2, may change a user communication preference
based on the mobile device state change data 60 and/or the mobile
device rate of change data 62. It should be appreciated that
according to an alternative embodiment, the messaging application
74, executing on the availability server 70, may also be utilized
to perform the aforementioned operation. For example, the messaging
applications 34 and 74 may be configured to automatically set a
communication preference 76 for a user of the mobile computing
device 2 so that an automated response consisting of an "out of
office" or "on vacation" message is generated, so that other users
would know that the user of the mobile computing device 2 is out of
town or on vacation and thus may send e-mail to other coworkers if
expecting a prompt answer. The automatic setting of a communication
preference 76 may be initiated in response to determining, from the
mobile device state change data 60 and/or the mobile device rate of
change data 62, as measured by the sensors 40, that a position of
the mobile computing device 2 is beyond a certain threshold away
from the user's office. The setting of the communication preference
76 may also be initiated in response to generating and receiving
feedback from the user to approve a communication preference change
and may optionally include a message from the user within the
automated response. From operation 325, the routine 300 then
ends.
[0035] Although the invention has been described in connection with
various illustrative embodiments, those of ordinary skill in the
art will understand that many modifications can be made thereto
within the scope of the claims that follow. Accordingly, it is not
intended that the scope of the invention in any way be limited by
the above description, but instead be determined entirely by
reference to the claims that follow.
* * * * *