U.S. patent application number 10/068590 was filed with the patent office on 2002-08-22 for method and device for displaying contact information in a presence and availability management system.
Invention is credited to Cohen, Daniel R., Diacakis, Athanassios.
Application Number | 20020116336 10/068590 |
Document ID | / |
Family ID | 23015076 |
Filed Date | 2002-08-22 |
United States Patent
Application |
20020116336 |
Kind Code |
A1 |
Diacakis, Athanassios ; et
al. |
August 22, 2002 |
Method and device for displaying contact information in a presence
and availability management system
Abstract
A method and device of displaying contact information of a
plurality of individuals for a subscriber of the contact
information. According to one embodiment, the method includes, for
each individual, receiving one or more addresses of the individual
for each communication network for which the individual is
available to the subscriber. The method also includes, for each
individual, generating a single summary indicator that identifies
the individual and summarizes whether the individual is capable of
receiving certain data content types, whether the individual is
available on certain network types or device types, and/or whether
certain groups of people are available. In addition, the method
includes displaying the single summary indicator for each
individual to the subscriber.
Inventors: |
Diacakis, Athanassios;
(Pittsburgh, PA) ; Cohen, Daniel R.; (Pittsburgh,
PA) |
Correspondence
Address: |
KIRKPATRICK & LOCKHART LLP
535 SMITHFIELD STREET
PITTSBURGH
PA
15222
US
|
Family ID: |
23015076 |
Appl. No.: |
10/068590 |
Filed: |
February 5, 2002 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
60266559 |
Feb 5, 2001 |
|
|
|
Current U.S.
Class: |
705/51 |
Current CPC
Class: |
G06Q 10/10 20130101;
H04L 51/214 20220501; G06Q 10/087 20130101; H04L 9/40 20220501;
H04L 67/51 20220501; H04L 51/56 20220501; H04L 69/329 20130101;
H04L 67/52 20220501; H04L 67/306 20130101; H04L 61/5038 20220501;
G06Q 10/107 20130101; H04L 67/54 20220501; H04L 51/48 20220501;
H04L 51/043 20130101; H04L 61/4511 20220501 |
Class at
Publication: |
705/51 |
International
Class: |
G06F 017/60 |
Claims
What is claimed is:
1. A method of displaying contact information of a plurality of
individuals for a subscriber of the contact information,
comprising: for each individual, receiving one or more addresses of
the individual for each communication network for which the
individual is available to the subscriber; for each individual,
generating a single summary indicator that identifies the
individual and summarizes whether the individual is capable of
receiving certain data content types; and displaying the single
summary indicator for each individual to the subscriber.
2. The method of claim 1, wherein generating a single summary
indicator includes generating a single summary indicator that
identifies whether the individual is capable of receiving a data
content type selected from a group consisting of a telephone
communication, a text message, a video file, an audio file, and a
graphics file.
3. The method of claim 2, wherein displaying the single summary
indicator includes displaying the single summary indicator for each
individual via a user interface.
4. A computer readable medium having stored thereon instructions
which, when executed by a processor, cause the processor to:
receive, for a plurality of individuals, one or more addresses of
each individual for each communication network for which the
individual is available to a subscriber the contact information;
generate, for each individual, a single summary indicator that
identifies the individual and whether the individual is capable of
receiving certain data content types; and display the single
summary indicator for each individual to the subscriber.
5. The computer readable medium of claim 4, having further stored
thereon instructions which, when executed by the processor, cause
the process to generate a single summary indicator that identifies
whether the individual is capable of receiving a data content type
selected from a group consisting of a telephone communication, a
text message, a video file, an audio file, and a graphics file.
6. A device for displaying contact information of a plurality of
individuals for a subscriber of the contact information,
comprising: an indicator module for receiving, for each individual,
one or more addresses of the individual for each communication
network for which the individual is available to the subscriber and
generating, for each individual, a single summary indicator that
identifies the individual and whether the individual is capable of
receiving certain data content types; and a user interface in
communication with the indicator module.
7. The device of claim 6, wherein the data content types are
selected from the group consisting of a telephone communication, a
voice communication, a video file, a streaming video file, an audio
file, a streaming audio file, a text file, a graphics file, and a
streaming graphics file.
8. A device for displaying contact information of a plurality of
individuals for a subscriber of the contact information,
comprising: first means for receiving, for each individual, one or
more addresses of the individual for each communication network for
which the individual is available to the subscriber and generating,
for each individual, a single summary indicator that identifies the
individual and whether the individual is capable of receiving
certain data content types; and second means for displaying the
single summary indicator to the subscriber.
9. The device of claim 8, wherein the first means is further for
generating a single summary indicator that identifies whether the
individual is capable of receiving a data content type selected
from a group consisting of a telephone communication, a voice
communication, a text file, a text message, a video file, a
streaming video file, an audio file, a steaming audio file and a
graphics file.
10. A method of displaying contact information of a plurality of
individuals for a subscriber of the contact information,
comprising: for each individual, receiving one or more addresses of
the individual for each communication network for which the
individual is available to the subscriber; for each individual,
generating a single summary indicator that identifies the
individual and summarizes whether the individual is capable of
receiving a communication via certain network types; and displaying
the single summary indicator for each individual to the
subscriber.
11. The method of claim 10, wherein generating a single summary
indicator includes generating a single summary indicator that
identifies whether the individual is capable of receiving a
communication via a network type selected from the group consisting
of an IM network, a telephone network, a computer network, a SMS
network, a VoIP network, a paging network, and a two-way paging
network.
12. A computer readable medium having stored thereon instructions
which, when executed by a processor, cause the processor to:
receive, for a plurality of individuals, one or more addresses of
each individual for each communication network for which the
individual is available to a subscriber the contact information;
generate, for each individual, a single summary indicator that
identifies the individual and whether the individual is capable of
receiving a communication via certain network types; and display
the single summary indicator for each individual to the
subscriber.
13. The computer readable medium of claim 12, having further stored
thereon instructions which, when executed by the processor, cause
the process to generate a single summary indicator that identifies
whether the individual is capable of receiving a communication via
a network type selected from a group consisting of an IM network, a
telephone network, a computer network, a SMS network, a VoIP
network, a paging network, and a two-way paging network.
14. A device for displaying contact information of a plurality of
individuals for a subscriber of the contact information,
comprising: an indicator module for receiving, for each individual,
one or more addresses of the individual for each communication
network for which the individual is available to the subscriber and
generating, for each individual, a single summary indicator that
identifies the individual and whether the individual is capable of
receiving a communication via certain network types; and a user
interface in communication with the indicator module.
15. The device of claim 14, wherein the network types are selected
from the group consisting of an IM network, a telephone network, a
computer network, a SMS network, a VoIP network, a paging network,
and a two-way paging network.
16. A device for displaying contact information of a plurality of
individuals for a subscriber of the contact information,
comprising: first means for receiving, for each individual, one or
more addresses of the individual for each communication network for
which the individual is available to the subscriber and generating,
for each individual, a single summary indicator that identifies the
individual and whether the individual is capable of receiving a
communication via certain network types; and second means for
displaying the single summary indicator to the subscriber.
17. The device of claim 16, wherein the first means is further for
generating a single summary indicator that identifies whether the
individual is capable of receiving a communication via a network
type selected from a group consisting of an IM network, a telephone
network, a computer network, a SMS network, a VoIP network, a
paging network, and a two-way paging network.
18. A method of displaying contact information of a plurality of
individuals for a subscriber of the contact information,
comprising: for each individual, receiving one or more addresses of
the individual for each communication network for which the
individual is available to the subscriber; for each individual,
generating a single summary indicator that identifies the
individual and summarizes whether the individual is capable of
receiving a communication via certain device types; and displaying
the single summary indicator for each individual to the
subscriber.
19. The method of claim 18, wherein generating a single summary
indicator includes generating a single summary indicator that
identifies whether the individual is capable of receiving a
communication via a device type selected from the group consisting
of a wireless telephone, a landline telephone, a PDA, a computer, a
SMS phone, a pager, a two-way pager, a wireless PDA, a WAP phone,
and a GPRS phone.
20. A computer readable medium having stored thereon instructions
which, when executed by a processor, cause the processor to:
receive, for a plurality of individuals, one or more addresses of
each individual for each communication network for which the
individual is available to a subscriber the contact information;
generate, for each individual, a single summary indicator that
identifies the individual and whether the individual is capable of
receiving a communication via certain device types; and display the
single summary indicator for each individual to the subscriber.
21. The computer readable medium of claim 20, having further stored
thereon instructions which, when executed by the processor, cause
the process to generate a single summary indicator that identifies
whether the individual is capable of receiving a communication via
a device type selected from a group consisting of a wireless
telephone, a landline telephone, a PDA, a computer network, a SMS
phone, a pager, a two-way pager, a wireless PDA, a WAP phone, and a
GPRS phone.
22. A device for displaying contact information of a plurality of
individuals for a subscriber of the contact information,
comprising: an indicator module for receiving, for each individual,
one or more addresses of the individual for each communication
network for which the individual is available to the subscriber and
generating, for each individual, a single summary indicator that
identifies the individual and whether the individual is capable of
receiving a communication via certain device types; and a user
interface in communication with the indicator module.
23. The device of claim 22, wherein the device types are selected
from the group consisting of a wireless telephone, a landline
telephone, a PDA, a computer network, a SMS phone, a pager, a
two-way pager, a wireless PDA, a WAP phone, and a GPRS phone.
24. A device for displaying contact information of a plurality of
individuals for a subscriber of the contact information,
comprising: first means for receiving, for each individual, one or
more addresses of the individual for each communication network for
which the individual is available to the subscriber and generating,
for each individual, a single summary indicator that identifies the
individual and whether the individual is capable of receiving a
communication via certain device types; and second means for
displaying the single summary indicator to the subscriber.
25. The device of claim 24, wherein the first means is further for
generating a single summary indicator that identifies whether the
individual is capable of receiving a communication via a device
type selected from a group consisting of a wireless telephone, a
landline telephone, a PDA, a computer network, a SMS phone, a
pager, a two-way pager, a wireless PDA, a WAP phone, and a GPRS
phone.
26. A method of displaying contact information of a group of
individuals for a subscriber of the contact information,
comprising: for each individual of the group, receiving one or more
addresses of the individual for each communication network for
which the individual is available to the subscriber; generating a
single summary indicator that summarizes whether the group is
available based on whether at least one individual of the group is
available; and displaying the single summary indicator for the
group to the subscriber.
27. The method of claim 26, wherein the group provides a
service.
28. The method of claim 27, wherein the service is selected from a
group consisting of technical support, customer service, and
sales.
29. The method of claim 26, wherein the group is selected from a
group consisting of employees of a company, employees of a
department, field sales employees, customer relationship management
employees, volunteers, club members, and social group members.
30. A computer readable medium having stored thereon instructions
which, when executed by a processor, cause the processor to:
receive, for a plurality of individuals of a group, one or more
addresses of each individual for each communication network for
which the individual is available to a subscriber the contact
information; generate a single summary indicator that summarizes
whether the group of the is available based on whether at least one
individual of the group is available; and display the single
summary indicator for group to the subscriber.
31. The computer readable medium of claim 30, wherein the group
provides a service.
32. The computer readable medium of claim 31, wherein the service
is selected from a group consisting of technical support, customer
service, and sales.
33. The computer readable medium of claim 30, wherein the group is
selected from a group consisting of employees of a company,
employees of a department, field sales employees, customer
relationship management employees, volunteers, club members, and
social group members.
34. A device for displaying contact information of a group of
individuals providing a service for a subscriber of the contact
information, comprising: an indicator module for receiving, for
each individual, one or more addresses of the individual for each
communication network for which the individual is available to the
subscriber and generating a single summary indicator that
summarizes whether the group is available based on whether at least
one individual of the group is available; and a user interface in
communication with the indicator module.
35. The device of claim 34, wherein the group provides a
service.
36. The device of claim 35, wherein the service is selected from a
group consisting of technical support, customer service, and
sales.
37. The device of claim 34, wherein the group is selected from a
group consisting of employees of a company, employees of a
department, field sales employees, customer relationship management
employees, volunteers, club members, and social group members.
38. A device for displaying contact information of a group of
individuals providing a service for a subscriber of the contact
information, comprising: first means for receiving, for each
individual, one or more addresses of the individual for each
communication network for which the individual is available to the
subscriber and generating a single summary indicator that
summarizes whether the group is available based on whether at least
one individual of the group is available; and second means for
displaying the single summary indicator to the subscriber.
39. The device of claim 38, wherein the group provides a
service.
40. The device of claim 39, wherein the service is selected from a
group consisting of technical support, customer service, and
sales.
41. The device of claim 38, wherein the group is selected from a
group consisting of employees of a company, employees of a
department, field sales employees, customer relationship management
employees, volunteers, club members, and social group members.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority under 35 U.S.C. .sctn.119
to U.S. provisional patent application Serial No. 60/266,559, filed
Feb. 5, 2001, which is incorporated herein by reference.
BACKGROUND OF INVENTION
[0002] 1. Field of Invention
[0003] The present invention relates generally to communications
and, more particularly, to presence and availability management
systems.
[0004] 2. Description of the Background
[0005] A presence and availability management system enables users
to control their availability and how that is displayed to other
users. Accordingly, users may select if they want to be available
to any given person (or group of people) or not, as well as how
that person (or group of people) may or may not contact them. In
addition, a presence and availability management service enables
users to view the availability of their contacts and use that
information to determine whether or not and how to initiate
communications.
[0006] Presence and availability management services have two
primary functions. First, to collect information from multiple
sources to determine the presence and, according to user-defined
preferences, the availability of a given person. For example, a
presence and availability management service needs information on
what communications network a user is on, and whether or not the
user is reachable for each of the networks. Second, a presence and
availability management service must distribute the availability
information of a given person to interested individuals on a
selective basis, according to a variety of user-defined preferences
and settings.
[0007] In addition to those functions, conventional presence and
availability management services have two secondary functions.
First, to configure access control settings. A presence and
availability management service provides users with the ability to
configure an observer's access settings, thereby giving users the
ability to control what contact information observers are allowed
to view. Thus, users have the choice of what information is
published to each of their observers. Second, to store user
information to enable the use of the presence and availability
management service regardless of the user's network device. By
storing user information on the back-end of the presence and
availability management system, the presence and availability
management service enables users to utilize its services regardless
of the user's network device as long as they have a device that is
within a communications network. Thus, users can access the
presence and availability management service if they are on a
cellular phone, a handheld device or a computer workstation.
[0008] In a conventional presence and availability management
enabled communications system, individuals must request the
appropriate presence and availability information from the presence
and availability management sub-system when they want to
communicate with other individuals on the communications network.
However, this model poses two issues. First, such systems do not
make the presence and availability information about an individual
continuously available to others. Thus, the user's interface cannot
display the individual's presence and availability information on a
continuous basis. Accordingly, users cannot simply quickly glance
at a contact list to see who is available. Second, having to
retrieve presence and availability information only when it is
needed creates a delay at a critical point in time where user
tolerance for it is low.
BRIEF SUMMARY OF THE INVENTION
[0009] In one general respect, the present invention is directed to
a method and device of displaying contact information of a
plurality of individuals for a subscriber of the contact
information. According to one embodiment, the method includes, for
each individual, receiving one or more addresses of the individual
for each communication network for which the individual is
available to the subscriber. The method also includes, for each
individual, art; generating a single summary indicator that
identifies the individual and summarizes whether the individual is
capable of receiving certain data content types. In addition, the
method includes displaying the single summary indicator for each
individual to the subscriber.
[0010] According to another embodiment, rather than generating a
single summary indicator that identifies the individual and
summarizes whether the individual is capable of receiving certain
data content types, or in conjunction with such a step, the method
may include generating a single summary indicator that summarizes
whether the individual is available on certain network types or
device types. According to another embodiment, the method may
include generating a single indicator that summarizes whether a
group of individuals is available.
BRIEF DESCRIPTION OF THE FIGURES
[0011] Embodiments of the present invention are described in
conjunction with the following figures, wherein:
[0012] FIG. 1 is a block diagram of a presence and availability
(P&A) management system according to one embodiment of the
present invention;
[0013] FIG. 2 is an example of an availability profile according to
one embodiment of the present invention;
[0014] FIG. 3 is a diagram depicting what information subscribers
at various access levels receive for the profile of FIG. 2;
[0015] FIG. 4 is a diagram of a P&A management server according
to one embodiment of the present invention;
[0016] FIG. 5 is a diagram illustrating the process flow through
the P&A management server of FIG. 4 according to one embodiment
of the present invention;
[0017] FIG. 6 is a diagram of the P&A management server
according to one embodiment of the present invention;
[0018] FIG. 7 is a diagram illustrating the process flow through
the P&A management server of FIG. 6 according to one embodiment
of the present invention;
[0019] FIG. 8 is a screen shot of a subscriber according to one
embodiment of the present invention;
[0020] FIG. 9 is a diagram of a client terminal according to one
embodiment of the present invention;
[0021] FIG. 10 is a diagram of the process flow through the client
terminal of FIG. 9 according to one embodiment of the present
invention; and
[0022] FIG. 11 is a diagram of a system with a secondary domain
name server according to one embodiment of the present
invention.
DETAILED DESCRIPTION OF THE INVENTION
[0023] It is to be understood that the figures and descriptions of
the following embodiments have been simplified to illustrate
elements that are relevant for a clear understanding of the present
invention, while eliminating, for purposes of clarity, other
elements. For example, certain operating system details and modules
of computer processing devices are not described herein. Those of
ordinary skill in the art will recognize, however, that these and
other elements may be desirable in a typical communications
network. However, because such elements are well known in the art,
and because they do not facilitate a better understanding of the
present invention, a discussion of such elements is not provided
herein.
[0024] FIG. 1 is a diagram of a presence and availability (P&A)
management system 10 according to one embodiment of the present
invention. The system includes a P&A management server 12 in
communication with a client terminal 22 via a network 16. The
client terminal 22 is sometimes referred to herein as "a client."
The P&A management server 12 include a presence detection
engine 18 and an availability management engine 20. Profile
information, as described further herein, may be stored in a
database 24 of the server 12. The P&A management server 12 is
in communication with at least one client terminal 22. In FIG. 1,
only one client terminal 22 is illustrated, although a number of
other client terminals may also be in communication with the
P&A management server 12 via the network 16. The client
terminal 22 is illustrated as a personal computer in FIG. 1,
although according to other embodiments the client terminal may be
another type of communication device such as, for example, a
wireless telephone (such as a WAP (Wireless Application
Protocol)-enabled phone) or a wireless or connected personal
digital assistant (PDA).
[0025] The network 16 may be any connected system of, for example,
communication lines, channels, and radio interfaces, used to
exchange information between the P&A management server 12 and
the client 22. According to one embodiment, the network 16 may
include, for example, the Internet, an intranet, the public
switched telephone network (PSTN), or a wireless telephone or radio
network. According to one embodiment, the P&A management server
12 and client 22 may communicate via the network 16 using an open
draft TCP/IP based protocol.
[0026] As used herein, the term "presence" is defined as the
ability of an individual to access a particular communications
network. For example, if a person is near a landline telephone or
wireless telephone that is switched on, that person is "present" on
a telephone network, i.e., the person is able to use the telephone
network to communicate with other people also on the network.
Conversely, if a person is not near a landline telephone or
wireless telephone, or the wireless telephone is switched off, then
that person is not present on a telephone network, and thus unable
to communicate with others on the telephone network. Similarly, if
a person uses an instant messaging (IM) application at a given
point in time, the person is present on that instant messaging
network.
[0027] In addition, as used herein the term "availability" is
defined as the willingness of an individual who is present on one
or more communications networks to be reached by one or more
persons. Following the telephone network example above, if a person
is near a landline or wireless telephone and has the intention or
willingness to answer the phone when a particular person calls, the
person is not only present but available on the telephone network.
However, if the person is unwilling or unable to answer either
phone when it rings, although present, the person is not
available.
[0028] It should be noted that a person needs to be present on a
network in order to be available, yet the opposite is not
necessarily true. In addition, presence is absolute. That is, a
person is either present or not on a given network. However,
availability depends on, e.g., other people, situations,
circumstances, personal preferences, etc. For example, a person can
be available to a first group of people, but unavailable to a
separate group.
[0029] According to one embodiment, the system 10 employs a
publisher-subscriber model. According to such an embodiment, an
individual defines a P&A profile set, which is stored on the
P&A management server 12. When the individual transmits a
change in profile to the server 12, the server publishes the change
to each of the connected clients 22 that are subscribers of the
individual's information. The publisher-subscriber model enables
subscribers to observe a particular individual's P&A
information instantly.
[0030] Hereinafter, a user of the client terminal 22 is typically
referred to as "subscriber." Unless noted otherwise, the term
"subscriber" is used synonymously with the term "observer." One
instance, however, in which an observer is not the same as a
subscriber is if someone requests an individual's P&A
information just once, without placing a subscription for it. In
FIG. 1, the system 10 is illustrated as including only one server
12 and one client 22, although other embodiments of the present
invention contemplate a distributed architecture including multiple
management servers and multiple clients.
[0031] An individual user of the system 10 may initially configure
his P&A profile settings in order to instruct the system 12 how
his information is to be distributed. According to one embodiment,
the individual may configure their P&A management profile set
according to the following steps. First, the individual is
requested to enter information regarding each of the communication
devices that the individual uses and a corresponding address for
each of those devices. For example, the individual may have a
landline telephone with a phone number and a computer workstation
with an e-mail address. Second, the individual identifies and
categorizes the people to whom he wants his information published.
This allows individuals to select the "more important" people and
to give them easier access, whereas the "less important" people are
given minimum access, and undesirable groups of people are
restricted from access altogether. These different group levels may
be referred to as "access levels." Third, the individual may define
a series of profiles that describe a situation that the individual
may be in such as, for example, "at home," "at office," or "on the
road." Further, the individual may identify how he wishes to be
communicated with for each profile and for each access level. In
addition, where several modes of communication over one medium are
possible, the individual may identify which mode is preferable.
[0032] For example, an individual may have an office profile as
indicated in FIG. 2. Thus, a subscriber with an access level of
"Important" would receive the items marked "Yes" in the "Important"
column, with the preference indicated (where appropriate), thereby
making it very easy for "important" subscribers to communicate with
the individual. Persons in the "Normal" access level would receive
less contact information than persons in the "Important" access
level, and persons in the "Restricted" access level would receive
even less contact information. Persons in the "Blocked" access
level would receive not contact information at all. The individual
may specify which persons belong to each access level for each
profile.
[0033] Accordingly, as illustrated in FIG. 3, subscribers in
various access groups would have access to different information
regarding the individual. Similarly, the individual may define
other profiles for different situations such as, for example, "at
home," "on the road," "meeting" and "vacation." Collectively, the
individual's profile for each of these situations may define a
profile set.
[0034] As discussed, an individual may configure his profile such
that subscribers at certain access levels have access to the
individual's P&A information at certain times. For example, the
individual may configure his profile such that his boss has access
to the individual's P&A while the individual is at work; his
wife has access all the time; and his parents have access only on
weekends while not at work. Accordingly, when the P&A
management server 12 detects a change in, for example, the
individual's situation, the P&A management server 12 consults
the individual's defined rules and preferences (which may be stored
by the P&A management server 12), and transmits the appropriate
information to the clients 22 for subscribers to the individual's
information based on the subscriber's access groups. The presence
detection engine 18 may detect a change in the individual's
situation, as described further hereinafter, or the individual may
communicate the change to the management server 12 directly.
[0035] Thus, with reference to the example mentioned previously,
when the P&A management server 12 detects that the individual
is at work, the server 12 transmits the individual's updated
P&A information to the clients 22 for the individual's boss and
spouse. The information that the boss and spouse receive, however,
may be different based on their access levels, as discussed
previously. For example, the boss may be informed of the
individual's instant messaging information, but the individual's
wife may not. When the individual returns home, the wife's
information may be updated and the individual's parent may begin
receiving information regarding the individual's P&A (although
it may not be the same as the wife's information depending on their
access levels). The boss, however, will no longer have access to
the individual's information.
[0036] An individual may define his profile set, including his
rules and preferences, via a user-interface in communication with
the P&A management server 12. According to one embodiment, the
user-interface may comprise a graphical user interface (GUI)
application loaded on a computer device in communication with the
P&A management server 12. Once defined, the P&A management
server 12 may store the profiles, rules and preferences in a
database (not shown). For security purposes, access to an
individual's profiles etc. may be based on verification of a user
PIN, password or other security mechanism. Accordingly, an
individual may modify his profile settings as necessary.
[0037] In the previous example, a change in the individual's
physical location triggered situation changes, and thus a change of
profile. It should be noted that other factors may trigger changes
in the individual's profile including, for example, time of day and
the individual's a mood, as explained further hereinbelow.
[0038] FIG. 4 is a diagram of the P&A management server 12
according to one embodiment of the present invention. As
illustrated in FIG. 4, the server 12 includes a presence detection
engine 18 and an availability management engine 20. The presence
detection engine 18 may determine an individual's presence upon
particular networks based on various inputs, as described further
hereinbelow. The presence detection engine 18 may transmit the
presence information to the availability management engine 20,
which in turn may determine the individual's availability based on
the presence information as well as additional information, such as
the individual's situation and defined rules and preferences. The
determined availability information may then be transmitted to
subscribers of the individual's availability information via the
network 16, as described previously.
[0039] The engines 18, 20 may be implemented as software code to be
executed by a processor in the server 12 using any suitable
computer language such as, for example, Java, C++ or Perl using,
for example, conventional or object-oriented techniques. The
software code may be stored as a series of instructions or commands
on a computer readable medium, such as a random access memory
(RAM), a read only memory (ROM), a magnetic medium such as a
hard-drive or a floppy disk, or an optical medium such as a
CD-ROM.
[0040] As illustrated in FIG. 4, the presence detection engine 18
may receive various inputs to determine, to the extent possible,
the individual's presence. One type of input that the presence
detection engine 18 may use to help determine the individual's
presence is time-based input 40. For example, based on time of day
information and known scheduling/calendar information, the presence
detection engine 18 may be able to determine an individual's
presence. For example, if the individual had scheduled to be in his
office from 9am to 5pm, the presence detection engine 18 may
determine that during that time period the individual is present on
the networks available to him in his office, which may be, for
example, telephone and instant messaging.
[0041] Another type of input that the presence detection engine 18
may use is user-location input 42. User-location information may be
supplied, for example, from a number of possible networks or
devices in communication with the server 12. For example, the
server 12 may include a radio receiver such that the presence
detection engine 18 is in communication with radio networks
including, for example, a Bluetooth network, that may communicate
information relating to the individual's physical locale. In
addition, the server 12 may be in communication with a GPS receiver
associated with the user. According to another embodiment, the
presence detection engine 18 may be in communication with Enhanced
911 (E-911) networks for possible user-location information.
[0042] In addition, the presence detection engine 18 may receive
input from various hardware devices that may relate information
regarding user location. For example, the presence detection engine
18 may receive information from cameras, such as security cameras
located at a place of employment. Thus, the camera information may
relate information as to whether the individual is in the locale of
his place of employment. Additionally, the presence detection
engine 18 may receive input from sensors, such as pressure sensors,
to help ascertain the locus of the individual. The pressure sensors
may be, for example, located in the office chair or the computer
keyboard of the individual, thus providing information regarding
the individual's locus. Furthermore, the presence detection engine
18 may receive inputs from security equipment, such as active badge
sensors, smart card sensors and/or magnetic card readers to help
ascertain the location of the individual.
[0043] Additionally, the presence detection engine 18 may be in
communication with other networks/devices to help determine
presence information. For example, the presence detection engine 18
may be in communication with a SS7 network of the public switched
telephone network (PSTN) to determine if the individual is present
on a landline telephone such as, for example, the landline desk
phone 44 in his office. For example, the presence detection engine
18 may be in communication with a service control point (SCP) of
the SS7 network. According to another embodiment, the presence
detection engine 18 may receive inputs from a Home Location
Register (HLR) of a wireless telephone network to determine if the
individual is present on his mobile phone 46. The wireless
telephone network may be, for example, an AMPS (Advanced Mobile
Phone Service) network, a TACS (Total Access Communication System)
network, a UMTS (Universal Mobile Telecommunications System), a GSM
network, a CDMA network, a TDMA network, a GPRS (General Packet
Radio Service) network or a wireless CDPD (Cellular Digital Packet
Data) network. According to other embodiments, the presence
detection engine 18 may also or instead of be in communication with
a short messaging system center (SMS-C) of a short messaging system
network or a gateway GPRS support node (GGSN). According to another
embodiment, the presence detection engine 18 may be in
communication with a server of a computer network.
[0044] The presence detection engine 18 may also receive inputs
from computer networks such as, for example, a local Ethernet, a
LAN, a wireless LAN, a MAN, a WAN, or a TCP/IP network, to
determine if the individual is present on such a network, such as
via his personal computer (PC) 48. Similarly, the presence
detection engine 18 may be in communication with communication
networks to determine whether an individual is present on other
devices such as, for example, a personal digital assistant (PDA) 50
or a pager 52.
[0045] Based on the presence information on such devices 44-52, the
presence detection engine 18 may determine additional information
about the individual, such as the individual's status 54 on
particular networks (such as on or off) or the individual's
physical location 56. In addition, based on information regarding
each of these devices 44-53 the presence detection engine 18 may
determine the individual's current capabilities 58 such as, for
example, whether he can receive voice information, data files,
audio files, video files, etc.
[0046] The presence information ascertained by the presence
detection engine 18 is communicated to availability management
engine 20, which determines the individual's availability based
thereon. To determine the individual's availability, the
availability management engine 20 may receive information
transmitted by the individual regarding a change in their situation
60. Such a change in user situation may be communicated to the
availability management engine 20 through a communication network
such as, for example, an IP network, a telephone network, or a
radio network.
[0047] The availability management engine 20 may consult the
individual's rules and preferences to determine the individual's
availability based on, for example, the presence information from
the presence detection engine 18 and the individual's situation.
The individual's rules and preferences maybe stored in a database
64, as illustrated in FIG. 4, or may be stored with the profile
information in the database 24. Additionally, the individual may
specify the observers 62 who receive the individual's contact
information. The observers may be specified according to, for
example, a group basis or an individual basis. The observer
classification information may also be stored in a database, such
as the profile database 24.
[0048] The availability information may then be published to the
individual's subscribers (via the client terminals). Because the
availability information is determined, in part, based on the
presence information from the presence detection engine 18, the
availability management engine 20 may modify the published contact
information sent to subscribers based on the presence information
if, for example, the individual's profile is inconsistent with the
actual individual's presence. Thus, availability management engine
20 may be configured to take the presence information into account
and cease from relaying the inconsistent contact information to
subscribers.
[0049] FIG. 5 is a diagram of the process flow of the P&A
management server 12 according to one embodiment of the present
invention. The process initiates at block 88 where the presence
detection engine 18 ascertains presence information regarding the
user as described previously. At block 90, the user's current
profile is retrieved from the profile database 24 based on the
current user situation. At block 92, the list of observers for each
access level (e.g., important, normal, restricted, work, blocked,
etc.) for the current profile is retrieved.
[0050] At block 94, the availability management engine 20 may
determine the user's availability for each access level based on
the user's profile. At block 98 the availability information is
distributed (published) to the subscribers of the information via
the network 16 on a per access level basis.
[0051] According to another embodiment, the availability management
engine 20 may first retrieve the appropriate profile based on the
individual's situation. The individual's presence and availability
information may then be filtered before it is published to the
observers. FIG. 6 is a diagram of the P&A management server 12
according to such an embodiment. The illustrated embodiment
includes an adaptive feedback module 100, which may be implemented,
for example, as software code to be executed by a processor of the
server 12 using any suitable computer language such as, for
example, Java, C++ or Perl using, for example, conventional or
object-oriented techniques. The software code may be stored as a
series of instructions or commands on a computer readable medium,
such as a random access memory (RAM), a read only memory (ROM), a
magnetic medium such as a hard-drive or a floppy disk, or an
optical medium such as a CD-ROM.
[0052] The adaptive feedback module 100 may monitor the published
availability information and, if the information is, for example,
inaccurate or unusable, make adjustments to either the presence
detection engine 18 or the availability management engine 20 to
ensure the integrity of the published availability information. For
example, if the published availability information for an
individual indicates that he is available on his mobile telephone,
but if the last three times someone called the individual on his
mobile telephone the individual did not answer, then the adaptive
feedback module 100 may instruct the presence detection engine 18
of this condition such that the published availability information
for the individual will not longer indicate mobile telephone
availability to the appropriate access levels until there is
evidence that the individual resumes usage of his mobile telephone.
The adaptive feedback module 100 may determine whether the
individual's availability information is, for example, inaccurate
or unusable based on information received from the appropriate
communication networks with which the P&A management server 12
interfaces, as described previously.
[0053] According to one embodiment, the adaptive feedback module
100 may offer the individual a suggestion that the individual has
the option of choosing to accept or reject. For example, if the
adaptive feedback module 100 determines that the individual has not
answered his last three telephone calls although he is present on
the network, the adaptive feedback module 100 may send the
individual a message asking whether he wants to discontinue
publishing whether he is available on the telephone network. In
this way, the individual has the ability to tune his presence and
availability information.
[0054] FIG. 7 is a diagram of the process flow through the P&A
management server 12 of FIG. 6 according to such an embodiment. The
process initiates at block 102, where the availability management
engine 20 retrieves the individual's profile based on the
individual's present situation, as discussed previously. At block
104, the availability management engine 20 may retrieve the
user-specified list of subscribers for each access level of the
profile. Next, at block 106, based on the user's profile, the
availability management engine 20 may determine the availability of
the user for each access level.
[0055] At block 107, the presence detection engine 18 may ascertain
the individual's presence on each of the monitored networks, as
discussed previously. Based on this information, at block 108, the
adaptive feedback module 100 may filter the individual's P&A
information, as discussed previously. Next, at block 109, the
P&A management server 12 may publish the information to each of
the subscribers.
[0056] The P&A management server 12 may transmit the
availability information to the subscriber at the client terminal
22. FIG. 8 is a screen shot of the information that may be
displayed to a subscriber at a client terminal 22 according to one
embodiment of the present invention. As illustrated, the subscriber
may navigate the list of names in the right hand window ("Contacts
Program") to access the P&A information regarding the
highlighted individual in the left hand window ("Contact
Properties"). The indicator in the right hand window adjacent to
each listed individual may identify the availability means for the
particular individual. For example, in FIG. 8 Alex is available by
telephone and instant messaging, but Tom is only available by
telephone and Pete is only available by instant messaging. The
contact information in the left hand window may be updated based on
availability information transmitted from the identified
individual's P&A management server 12.
[0057] As discussed previously, according to one embodiment the
P&A management server 12 may store individuals' P&A
information profiles in the database 24. By storing the P&A
information profiles on the server 12, individuals only need to
send small amounts of information to the server 12 when changing
their profile. For example, when an individual using a mobile
device requests a switch to, for example, an "At Home" situation,
the individual only needs to send a small amount of information via
the mobile device instructing the server 12 to implement the "At
Home" profile rather than having to send all the P&A
information associated with the "At Home" situation, which may be
considerably larger. By storing the P&A information profiles on
the server 12, the server 12 may have the necessary information
available when individuals switch profiles. Thus, individuals only
need to let the server 12 know which situation profile they
prefer.
[0058] Storing the P&A information profiles on the server 12
additionally reduces the amount of resources required to invoke a
profile switch operation. This may be an important feature,
particularly when mobile and/or handheld devices are used. This is
because conventional mobile and handheld devices, in contrast to
conventional computer workstations, do not have the capability to
store and process large amounts of information in relatively brief
time periods. Furthermore, by reducing the amount of information
transmitted, the system 10 avoids slower response times, increased
latency and in general improves the user's services and
experience.
[0059] In conventional P&A management systems that support
heterogeneous communications networks, a given person may appear
several times in the subscriber's contact list--each time
corresponding to an available address. For example, each phone
number and IM address of a particular individual may be listed.
According to an embodiment of the present invention, as illustrated
in the "Contacts Program" window of FIG. 8, the display at the
client terminal 22 may relate the various entries for an individual
and merge them together as one entry. For example, with reference
to FIG. 8, there is one entry (indicator) for Alex, indicating that
Alex is available on a telephone network and an IM network. This is
indicated by the telephone icon and the IM icon next to Alex's
name. Thus, the single summary indicator may be a summary of the
individual's availability, with the single summary indicator
containing several different icons or states that convey the
availability information. According to other embodiments, the icons
may indicate types of data the individual is available to receive
such as, for example, text files, audio files, streaming audio
files, video files, streaming video files, graphics files and
streaming graphics files. According to one embodiment, the single
indicator may be used to indicate the network type that the
individual is available on such as, for example, IM, telephone,
facsimile, etc. Other network types include a short messaging
system (SMS) network, a voice over IP (VoIP) network, a paging
network and a two-way paging network.
[0060] According to another embodiment, the single indicator may
indicate the device type that the individual is available one, such
as, for example, wireless telephone, landline telephone, personal
digital assistant (PDA), computer, etc. Other device types include
a SMS phone, a pager, a two-way pager, a wireless PDA, a WAP phone,
and a GPRS phone.
[0061] According to another embodiment, the single indicator may be
used to indicate the availability of a group of people based on
whether at least one person of the group (or some other threshold
number of people from the group) is available. According to such an
embodiment, when at least one individual from the group is
available, the single indicator may merge the availability of each
individual of the group into one indicator that summarizes whether
the sales staff is available. For example, the group may provide a
service such as, for example, technical support, customer service,
sales, etc. Thus, for example, if at least one member of the sales
staff is available, the single indicator may indicate that the
sales staff is available. Any type of group may be used. For
example, other groups include employees of a company, employees of
a given department, field sales representative, customer
relationship management employees. Other groups include, for
example, volunteers and members of a club or social group.
[0062] Furthermore, a large number of inputs for each of an
individual's communications devices on the various networks may be
processed using the presence detection engine 20 to determine the
P&A status of that individual, thus allowing the results to be
combined in a single availability indicator. For example, if John
Doe has three telephone numbers (e.g., home, work and wireless) and
is currently present and available on only one telephone network,
the server 12 may notify subscribers of John Doe's information that
he is present and available for telephone calls regardless of the
particular telephone John Doe is currently capable of using.
Accordingly, when a subscriber wishes to contact Joe Doe via
instant messaging, the server 12 provides the appropriate IM
address to the subscriber, taking into account John Doe's
preference settings for the subscriber's access group as stored,
for example, in the rules and preferences database 64. Thus,
embodiments of the present invention may provide a user-friendly
interface allowing subscribers to contact individuals without
having to be concerned about different communication devices, their
addresses and capabilities. Subscribers may instead refer to a
single summary indicator and use that information to initiate
point-to-point contact.
[0063] FIG. 9 is a block-diagram of the client terminal 22
according to one embodiment for realizing the single summary
indicator described previously. As illustrated in FIG. 9, the
client terminal includes an indicator module 110 in communication
with a user interface 112. The indicator module 110 may be, for
example, implemented as software code to be executed by a processor
of the client terminal 22 using any suitable computer language such
as, for example, Java, C++ or Perl using, for example, conventional
or object-oriented techniques. The software code may be stored as a
series of instructions or commands on a computer readable medium,
such as a random access memory (RAM), a read only memory (ROM), a
magnetic medium such as a hard-drive or a floppy disk, or an
optical medium such as a CD-ROM. The user interface 112 may
include, for example, a GUI (Graphical User Interface) or a CUI
(Character-based user interface).
[0064] The indicator module 110 may receive availability
information from one or more P&A management servers 12 and
merge the contact information for each individual into a single
summary indicator, as described previously in connection with FIG.
8, for display by the user interface 112. The indicator may
identify the individual, such as by name, as illustrated in FIG. 8.
In addition, as illustrated in FIG. 8, the indicator generated by
the indicator module 110 may indicate whether the individual is
available to receive, for example, certain data content types. For
example, with reference to FIG. 8, the indicator for Jonathan
identifies Jonathan by name and indicates that Jonathan is
available to the subscriber to receive data content by telephone
and instant messaging.
[0065] FIG. 10 is a diagram of the process flow through the
indicator module 110 according to one embodiment. The process
initiates at block 120, where the indicator module 110 receives the
availability information of each individual to which the client is
a subscriber (n individuals). For example, with reference to FIG.
8, the client terminal receives the availability information for
Alex, Jonathan, Kit, Corby, Cyndi, Tom, Pete, Roberto, Cecelia, as
well as the individuals in the "Mint" folder. At block 122, the
indicator module 110 may generate a single summary indicator for
each of the n individuals. For example, the indicator module 110
may relate the various addresses for a given individual and merge
them into a single summary indicator for each of the individuals,
as illustrated in FIG. 8.
[0066] At block 124, a counter, k, is set to equal 1. At block 126,
for individual k for which the client subscribes to contact
information, the indicator module 110 may determine whether an
address for each data content type (e.g., telephone, text (IM),
video, graphic, audio, etc.) has been transmitted from the P&A
management server 12. For a particular content type, if no address
has been received, the process advances to block 128 where the
indicator module 110 displays that individual k is not available
for the particular content type. For example, with reference to
FIG. 8, the indicator for Tom indicates that Tom is not available
to receive IM (text) data. Conversely, if at block 126 it is
determined that an address has been received for the particular
content type, the process advances to block 130 where the indicator
module 110 may display that the individual is available to receive
the particular data content type. This process may be repeated for
each data content type.
[0067] Once the availability of individual k has been determined
for each data content type, the process advances to block 132,
where k is set to equal k+1. From block 132 the process advances to
block 134 where it is determined whether k equals n. If so, the
process is completed at block 136. If not, the process returns to
block 124 where the process may be repeated for the next
individual.
[0068] In FIG. 9, the indicator module 110 is illustrated as
residing on the client terminal 22. According to other embodiments,
the indicator module 110 may reside, for example, on the P&A
management server 12. According to such an embodiment, the P&A
management server 12 may forward the indicator information via the
network 16 to the client terminal 22 for display thereby. Such an
embodiment may be advantageous where, for example, the client 22 is
a device of limited processing capability such as, for example, a
WAP-enabled telephone.
[0069] In contrast to some prior P&A management systems,
embodiments of the present invention utilize a publisher-subscriber
model. That is, the individual's availability information is
published on an event-triggered basis to subscribers of the
individual's availability information, rather than transmitted only
when requested by the subscriber. Accordingly, changes in an
individual's availability are broadcast instantly to subscribers of
the individual's P&A information, assuming those subscribers
satisfy the individual's rules and preferences regarding
dissemination of his P&A information. The P&A management
server 12, as described previously, may maintain the individual's
profile settings. In addition, the subscribers may be equipped with
client software that allows the P&A information of various
individuals to be displayed for the subscriber, such as illustrated
in conjunction with FIG. 8.
[0070] Additionally, according to one embodiment, users of the
P&A management system 10 may configure their P&A profiles
to specify how their availability information is distributed.
Individuals may accomplish this task by specifying a number of
different access levels and situations. Subscribers of the
individual's information are only provided with certain
availability information depending on their access level and the
situation. In addition, the P&A profiles may be stored on the
P&A management server 12 (such as in database 24). This
obviates the need for individuals to re-transmit all their contact
information each time their availability changes. Rather, the
P&A management server 12 may determine the individual's
availability based merely on the individual's profile and
information regarding the individual's situation.
[0071] For individuals that have a presence and availability on the
Internet or other types of IP networks, their domain name address
is often an extension of a domain name server for an organization
(e.g., an employer's corporate intranet). Consequently,
communications with the individual may typically be established by
resolving the domain name server for the organization. However, for
certain services, individuals with addresses at those domain name
servers are at the mercy of the system administrator to modify
their address entries in order to use the new services. For
example, an individual desiring to use a new instant messaging
service through a corporate intranet would require the system
administrator to add the appropriate address entry to the corporate
intranet. Often system administrators are not inclined to do
this.
[0072] According to an embodiment of the present invention,
illustrated in FIG. 11, this potential dilemma is addressed by
providing a fallback resolution mechanism. For example, a
subscriber at client terminal 22 may first attempt to communicate
with an individual at client terminal 140 via one or more
intermediate relay hosts 142. One of the hosts 142 may be, for
example, an instant messaging host or a presence and availability
host.
[0073] If one relay host 142a does not know the address for the
next intermediate relay host 142b, the first relay host 142a may
attempt to communicate with the second relay host 142b by, for
example, resolving a record (such as an MX record for e-mail) for
the second relay host 142b at a primary domain name server 144. If
that fails, the first relay host 142a could attempt to resolve the
record at a secondary domain name server 146. The address for the
record at the primary domain name server 144 may be a hierarchical
extension of the address of the secondary domain name server 146,
as described further herein. As used herein, the term "domain name
server" includes both domain name servers for UNIX networks as well
as Windows networks, commonly referred to as "WINS" (Windows
Internet Naming Service).
[0074] The secondary domain name server 146 may include a resolver
148 and an IP address database 150. The IP address database may
include the IP address for the intermediate relay host 142b that
the primary domain server 144 did not include. When directed to the
secondary domain name server 146 by the primary domain name server
144, the resolver 148 may respond with the address of the second
intermediate relay host after interrogating the database 150. The
secondary domain name server 146 may supply the address directly to
the first relay host 142a or, according to another embodiment, may
supply it to the primary domain name server 144, which in turn may
supply the address to the relay host 142a.
[0075] For example, if the hostname of the client terminal 140 is
joe@abcd.com, and Joe wanted to use a new instant messaging service
that required the system administrator for the abcd.com domain name
server 144 to add a DNS entry of im.abcd.com to point to the
appropriate host 142b, but the system administrator refused to so
modify the domain name server 144, the first domain name server
could direct the relay host 142a to the secondary domain name
server 146, efg.com, to resolve im.abcd.com.resolver.efg.com. The
secondary domain name server 146 may be configured appropriately
through a web-based interface and, when queried, would direct the
relay host 142a to the appropriate server (to im.abcd.com in this
example). According to one embodiment, a query, by email for
example, may be sent to joe@abcd.com to determine whether the entry
may be legitimately made.
[0076] The process just described is not limited to situations
where a host does not know the address of another host. The process
may also be utilized to allow a client terminal (such as terminals
22 or 140) resolve the address of a host 142 and vice versa. The
primary domain name server 144 may be programmed to supply the
address for the secondary domain name server 146 to the
intermediate host 142 or client terminal. According to other
embodiment, the client terminal or intermediate host may be
programmed with the address of the secondary domain name server 146
for when the primary domain name server 144 is not capable of
resolving the request.
[0077] Although the present invention has been described herein
with respect to certain embodiments, those of ordinary skill in the
art will recognize that many modifications and variations of the
present invention may be implemented. For example, with respect to
FIG. 12, additional hierarchical domain name servers may be
utilized. The foregoing description and the following claims are
intended to cover all such modifications and variations.
* * * * *