U.S. patent application number 12/896666 was filed with the patent office on 2011-09-22 for system and method for providing just-in-time resources based on context.
This patent application is currently assigned to Avaya Inc.. Invention is credited to Krishna Kishore DHARA, Venkatesh Krishnaswamy, Eunsoo Shim, Xiaotao Wu.
Application Number | 20110231773 12/896666 |
Document ID | / |
Family ID | 44647259 |
Filed Date | 2011-09-22 |
United States Patent
Application |
20110231773 |
Kind Code |
A1 |
DHARA; Krishna Kishore ; et
al. |
September 22, 2011 |
SYSTEM AND METHOD FOR PROVIDING JUST-IN-TIME RESOURCES BASED ON
CONTEXT
Abstract
Disclosed herein are systems, methods, and non-transitory
computer-readable storage media for providing just-in-time
resources based on context. A system configured to practice the
method identifies a communication event associated with a user and
a current context associated with the communication event and the
user, and identifies a stored context that corresponds to the
current context, wherein the stored context includes at least one
resource. The system then retrieves the at least one resource and
presents the at least one resource to the user. In another method
for storing a current context, the system identifies a current
communication context, identifies resources associated with the
current communication context, indexes the current communication
content and resources to enable searchability, and stores, as a
stored context in a database, the current communication context and
the resources associated with the current communication
context.
Inventors: |
DHARA; Krishna Kishore;
(Dayton, NJ) ; Krishnaswamy; Venkatesh; (Holmdel,
NJ) ; Shim; Eunsoo; (Princeton Junction, NJ) ;
Wu; Xiaotao; (Edison, NJ) |
Assignee: |
Avaya Inc.
Basking Ridge
NJ
|
Family ID: |
44647259 |
Appl. No.: |
12/896666 |
Filed: |
October 1, 2010 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61315719 |
Mar 19, 2010 |
|
|
|
Current U.S.
Class: |
715/738 ;
707/741; 707/769; 707/E17.002; 707/E17.014 |
Current CPC
Class: |
H04L 47/70 20130101;
H04L 65/403 20130101; H04M 3/565 20130101; H04L 12/1818 20130101;
G06Q 10/1095 20130101 |
Class at
Publication: |
715/738 ;
707/741; 707/769; 707/E17.002; 707/E17.014 |
International
Class: |
G06F 15/16 20060101
G06F015/16; G06F 3/01 20060101 G06F003/01; G06F 17/30 20060101
G06F017/30 |
Claims
1. A method of providing just-in-time resources based on context,
the method comprising: identifying a communication event associated
with a user and a current context associated with the communication
event and the user; identifying a stored context that corresponds
to the current context, wherein the stored context comprises at
least one resource; retrieving the at least one resource; and
presenting the at least one resource to the user.
2. The method of claim 1, wherein the communication event is at
least one of receiving from a caller a request for communication
and the user starting a communication session.
3. The method of claim 1, wherein the at least one resource
comprises at least one of a document, an agenda, a web page, and a
communication history.
4. The method of claim 1, wherein the stored context further
comprises at least one of communication content, communication
session metadata, and contact information.
5. The method of claim 1, further comprising: tracking user
interactions associated with the communication event; and updating
the stored context based on the user interactions.
6. The method of claim 1, wherein presenting the at least one
resource further comprises presenting a link to access the at least
one resource.
7. The method of claim 1, further comprising: identifying other
resources, not part of the stored context, that are potentially
relevant to at least one of the current context and the stored
context; ranking the other resources by potential relevance to
yield ranked other resources; and presenting at least part of the
ranked other resources to the user.
8. The method of claim 1, further comprising presenting the at
least one resource to the user as part of a graphical user
interface for managing a communication session.
9. A non-transitory computer-readable storage medium storing
instructions which, when executed by a computing device, cause the
computing device to store a current context for later retrieval,
the instructions comprising: identifying a current communication
context; identifying resources associated with the current
communication context; indexing the current communication content
and resources to enable searchability; and storing, as a stored
context in a database, the current communication context and the
resources associated with the current communication context.
10. The non-transitory computer-readable storage medium of claim 9,
wherein the current communication context comprises at least one of
a user, a communication modality, a time, and a date.
11. The non-transitory computer-readable storage medium of claim 9,
wherein the resources comprise at least one of a document, an
agenda, a web page, and a communication history.
12. The non-transitory computer-readable storage medium of claim 9,
further comprising: identifying metadata associated with the
current communication context; and storing the metadata as part of
the stored context in the database.
13. The non-transitory computer-readable storage medium of claim 9,
further comprising: tracking user interactions associated with the
current communication context; and updating the stored context
based on the user interactions.
14. The non-transitory computer-readable storage medium of claim 9,
further comprising: retrieving the stored context from the
database; and presenting at least part of the resources to a
user.
15. The non-transitory computer-readable storage medium of claim 9,
further comprising: identifying other resources, not associated
with the current communication context, that are potentially
relevant to the current communication context; ranking the other
resources by potential relevance to yield ranked other resources;
and storing references to at least part of the ranked other
resources as part of the stored context in the database.
16. A system for communicating based on a stored context, the
system comprising: a processor; a communications interface; a first
module configured to control the processor to receive, via the
communications interface, a notification of an incoming request for
communication directed to a user; a second module configured to
control the processor to identify a current communication context
for the incoming request; a third module configured to control the
processor to retrieve, based on a similarity threshold to the
current communication context, a stored communication context and a
resource associated with the stored communication context; and a
fourth module configured to control the processor to present a
modified request for communication comprising the incoming request,
at least part of the stored communication context, and at least
part of the resource.
17. The system of claim 16, further comprising: a fifth module
configured to control the processor to receive an indication from
the user accepting the modified request; and a sixth module
configured to control the processor to establish a communication
session based on the incoming request.
18. The system of claim 17, further comprising: a seventh module
configured to control the processor to transmit the at least part
of the resource to a sender of the incoming request for
communication.
19. The system of claim 16, wherein the stored communication
context further comprises at least one of communication content,
communication session metadata, and contact information, and
wherein the resource comprises at least one of a document, an
agenda, a web page, and a communication history.
Description
RELATED APPLICATIONS
[0001] This application claims priority to U.S. Provisional
Application 61/315,719, filed 19 Mar. 2010, the contents of which
are herein incorporated by reference in their entirety.
BACKGROUND
[0002] 1. Technical Field
[0003] The present disclosure relates to communication sessions and
more specifically to providing resources just-in-time to a
participant in a communication session based on context in the
communication session.
[0004] 2. Introduction
[0005] When an incoming or outgoing communication is initiated,
such as an call or an instant message, the parties to the
communication often must search for and access particular
resources, such as documents, spreadsheets, contact information, To
Do lists, other people, previously exchanged emails, and so forth.
Searching for the correct resources takes time and can distract a
person from speaking intelligently while tracking down the right
document or information. Some call centers populate a call center
agent's screen with a particular set of documents and/or
information associated with an incoming caller, but the nature,
type, and source of these documents are essentially the same for
each caller and the general pattern of documents does not
change.
[0006] Google desktop search and search functions in Microsoft
exchange server, as well as some other enterprise search products
can provide searching functions, but they do not offer the
functions to automatically search for and retrieve related
information based on the just-in-time context. Currently available
solutions are limited to specific niche applications and are not
generally applicable to the context of all incoming or outgoing
communications for a user.
SUMMARY
[0007] Additional features and advantages of the disclosure will be
set forth in the description which follows, and in part will be
obvious from the description, or can be learned by practice of the
herein disclosed principles. The features and advantages of the
disclosure can be realized and obtained by means of the instruments
and combinations particularly pointed out in the appended claims.
These and other features of the disclosure will become more fully
apparent from the following description and appended claims, or can
be learned by the practice of the principles set forth herein.
[0008] Disclosed are systems, methods, and non-transitory
computer-readable storage media for providing just-in-time
resources based on context. A system practicing the method first
identifies a communication event associated with a user and a
current context associated with the communication event and the
user, and identifies a stored context based on, for example,
communication content, communication session metadata, and contact
information, that corresponds to the current context, wherein the
stored context includes at least one resource such as a document,
an agenda, a web page, and a communication history. The system can
then retrieve and present the at least one resource to the user.
The communication event can be receiving from a caller a request
for communication or the user starting a communication session.
[0009] In another embodiment, the system stores a current context
for later retrieval by first identifying a current communication
context and resources associated with the current communication
context. The system can then index the current communication
content and resources to enable searchability, and store, as a
stored context in a database, the current communication context and
the resources associated with the current communication context.
The system can optionally identify metadata associated with the
current communication context, and store the metadata as part of
the stored context in the database. The system can also track user
interactions associated with the current communication context and
update the stored context based on the user interactions. The
system can further assist the user by identifying other resources,
not associated with the current communication context, that are
potentially relevant to the current communication context, ranking
the other resources by potential relevance to yield ranked other
resources, and storing references to at least part of the ranked
other resources as part of the stored context in the database so
that the user can then later easily retrieve these potentially
relevant other resources based on a current communications
context.
BRIEF DESCRIPTION OF THE DRAWINGS
[0010] In order to describe the manner in which the above-recited
and other advantages and features of the disclosure can be
obtained, a more particular description of the principles briefly
described above will be rendered by reference to specific
embodiments thereof which are illustrated in the appended drawings.
Understanding that these drawings depict only exemplary embodiments
of the disclosure and are not therefore to be considered to be
limiting of its scope, the principles herein are described and
explained with additional specificity and detail through the use of
the accompanying drawings in which:
[0011] FIG. 1 illustrates an example system embodiment;
[0012] FIG. 2 illustrates an exemplary user interface for an
incoming call;
[0013] FIG. 3 illustrates an exemplary user interface for an
established call;
[0014] FIG. 4 illustrates an exemplary enhanced user interface for
an incoming call;
[0015] FIG. 5 illustrates an exemplary infrastructure configuration
for providing just-in-time resources based on a communication
context;
[0016] FIG. 6 illustrates a first example method embodiment;
[0017] FIG. 7 illustrates a second example method embodiment;
and
[0018] FIG. 8 illustrates a third example method embodiment.
DETAILED DESCRIPTION
[0019] Various embodiments of the disclosure are discussed in
detail below. While specific implementations are discussed, it
should be understood that this is done for illustration purposes
only. A person skilled in the relevant art will recognize that
other components and configurations may be used without parting
from the spirit and scope of the disclosure.
[0020] The present disclosure addresses the need in the art for
retrieving resources based on context. A system, method and
non-transitory computer-readable media are disclosed which retrieve
and store resources on a just-in-time basis based on a current
communication context. A brief introductory description of a basic
general purpose system or computing device in FIG. 1 which can be
employed to practice the concepts is disclosed herein. A more
detailed description of the various exemplary graphical interfaces,
system infrastructure, and methods will then follow. Multiple
variations shall be discussed herein as the various embodiments are
set forth. The disclosure now turns to FIG. 1.
[0021] With reference to FIG. 1, an exemplary system 100 includes a
general-purpose computing device 100, including a processing unit
(CPU or processor) 120 and a system bus 110 that couples various
system components including the system memory 130 such as read only
memory (ROM) 140 and random access memory (RAM) 150 to the
processor 120. The system 100 can include a cache of high speed
memory connected directly with, in close proximity to, or
integrated as part of the processor 120. The system 100 copies data
from the memory 130 and/or the storage device 160 to the cache for
quick access by the processor 120. In this way, the cache provides
a performance boost that avoids processor 120 delays while waiting
for data. These and other modules can control or be configured to
control the processor 120 to perform various actions. Other system
memory 130 may be available for use as well. The memory 130 can
include multiple different types of memory with different
performance characteristics. It can be appreciated that the
disclosure may operate on a computing device 100 with more than one
processor 120 or on a group or cluster of computing devices
networked together to provide greater processing capability. The
processor 120 can include any general purpose processor and a
hardware module or software module, such as module 1 162, module 2
164, and module 3 166 stored in storage device 160, configured to
control the processor 120 as well as a special-purpose processor
where software instructions are incorporated into the actual
processor design. The processor 120 may essentially be a completely
self-contained computing system, containing multiple cores or
processors, a bus, memory controller, cache, etc. A multi-core
processor may be symmetric or asymmetric.
[0022] The system bus 110 may be any of several types of bus
structures including a memory bus or memory controller, a
peripheral bus, and a local bus using any of a variety of bus
architectures. A basic input/output (BIOS) stored in ROM 140 or the
like, may provide the basic routine that helps to transfer
information between elements within the computing device 100, such
as during start-up. The computing device 100 further includes
storage devices 160 such as a hard disk drive, a magnetic disk
drive, an optical disk drive, tape drive or the like. The storage
device 160 can include software modules 162, 164, 166 for
controlling the processor 120. Other hardware or software modules
are contemplated. The storage device 160 is connected to the system
bus 110 by a drive interface. The drives and the associated
computer readable storage media provide nonvolatile storage of
computer readable instructions, data structures, program modules
and other data for the computing device 100. In one aspect, a
hardware module that performs a particular function includes the
software component stored in a non-transitory computer-readable
medium in connection with the necessary hardware components, such
as the processor 120, bus 110, display 170, and so forth, to carry
out the function. The basic components are known to those of skill
in the art and appropriate variations are contemplated depending on
the type of device, such as whether the device 100 is a small,
handheld computing device, a desktop computer, or a computer
server.
[0023] Although the exemplary embodiment described herein employs
the hard disk 160, it should be appreciated by those skilled in the
art that other types of computer readable media which can store
data that are accessible by a computer, such as magnetic cassettes,
flash memory cards, digital versatile disks, cartridges, random
access memories (RAMs) 150, read only memory (ROM) 140, a cable or
wireless signal containing a bit stream and the like, may also be
used in the exemplary operating environment. Non-transitory
computer-readable storage media expressly exclude media such as
energy, carrier signals, electromagnetic waves, and signals per
se.
[0024] To enable user interaction with the computing device 100, an
input device 190 represents any number of input mechanisms, such as
a microphone for speech, a touch-sensitive screen for gesture or
graphical input, keyboard, mouse, motion input, speech and so
forth. An output device 170 can also be one or more of a number of
output mechanisms known to those of skill in the art. In some
instances, multimodal systems enable a user to provide multiple
types of input to communicate with the computing device 100. The
communications interface 180 generally governs and manages the user
input and system output. There is no restriction on operating on
any particular hardware arrangement and therefore the basic
features here may easily be substituted for improved hardware or
firmware arrangements as they are developed.
[0025] For clarity of explanation, the illustrative system
embodiment is presented as including individual functional blocks
including functional blocks labeled as a "processor" or processor
120. The functions these blocks represent may be provided through
the use of either shared or dedicated hardware, including, but not
limited to, hardware capable of executing software and hardware,
such as a processor 120, that is purpose-built to operate as an
equivalent to software executing on a general purpose processor.
For example the functions of one or more processors presented in
FIG. 1 may be provided by a single shared processor or multiple
processors. (Use of the term "processor" should not be construed to
refer exclusively to hardware capable of executing software.)
Illustrative embodiments may include microprocessor and/or digital
signal processor (DSP) hardware, read-only memory (ROM) 140 for
storing software performing the operations discussed below, and
random access memory (RAM) 150 for storing results. Very large
scale integration (VLSI) hardware embodiments, as well as custom
VLSI circuitry in combination with a general purpose DSP circuit,
may also be provided.
[0026] The logical operations of the various embodiments are
implemented as: (1) a sequence of computer implemented steps,
operations, or procedures running on a programmable circuit within
a general use computer, (2) a sequence of computer implemented
steps, operations, or procedures running on a specific-use
programmable circuit; and/or (3) interconnected machine modules or
program engines within the programmable circuits. The system 100
shown in FIG. 1 can practice all or part of the recited methods,
can be a part of the recited systems, and/or can operate according
to instructions in the recited non-transitory computer-readable
storage media. Such logical operations can be implemented as
modules configured to control the processor 120 to perform
particular functions according to the programming of the module.
For example, FIG. 1 illustrates three modules Mod1 162, Mod2 164
and Mod3 166 which are modules configured to control the processor
120. These modules may be stored on the storage device 160 and
loaded into RAM 150 or memory 130 at runtime or may be stored as
would be known in the art in other computer-readable memory
locations.
[0027] Having disclosed some basic computing system components, the
disclosure returns to a discussion of just-in-time resource
retrieval based on a communication context. The approaches
disclosed herein apply equally to outgoing and incoming
communications. However, the example below is described in the
just-in-time context of an incoming communication. Just-in-time
context can be determined based on one or more of a caller, a
recipient, a time of day, a scheduled event, a previous
communication, document contents, address books, location, and so
forth. In one illustrative example, a caller makes a telephone call
to a recipient. The recipient's telephone or other communication
device identifies the caller and examines the recipient's previous
interactions with the caller. For instance, the last time the
caller and the recipient spoke, they discussed updating a
spreadsheet. The system can either open the discussed spreadsheet
automatically when the caller calls, present a link to the
spreadsheet to the user, or the system can provide a prompt to the
recipient asking if he or she wants to open the spreadsheet. In
another aspect, the system can instruct multiple different devices
to display potentially relevant documents and information, such as
a desktop computer, desktop IP telephone with a display, a cellular
phone, or any other device in the recipient's work sphere.
Similarly, if the caller has a particular document open on his
desktop computer, the system can open a copy of that document for
the recipient.
[0028] If the caller and recipient had previously discussed asking
their supervisor a question, the system can prompt the caller
and/or recipient if they want to conference in their supervisor as
well as providing an indication of their supervisor's availability
based on the supervisor's presence information. The system can scan
emails between the caller and recipient for key words and documents
that were modified in the past week, for example, that relate to
that key word. Thus, the context of the last telephone call between
the caller and recipient can be updated by intervening
communications via email, IM, or other communication modalities.
The system can automatically determine and provide resources
related to the just-in-time context of the communication. The
system can also annotate those documents by presenting such
information as "this document was modified this morning at 9:30
am".
[0029] One advantage of such a communication system is that the
system can identify and automatically retrieve or suggest relevant
documents and resources in a just-in-time context for a
communication instead of a person manually deciding which documents
and resources are important and then searching for those documents
while simultaneously attempting to communicate. This approach can
enhance user efficiency by saving users from remembering which
resources relate to a particular communication event, searching for
those resources, and opening and presenting those resources all
while simultaneously communicating via phone or IM, for
example.
[0030] FIG. 2 illustrates an exemplary user interface 200 for an
incoming call. The interface 200 includes a popup window 202
announcing the caller, Bob Katz. The user can click on an accept
button 204 or a reject button 206. While this example illustrates
an incoming call, the communication can be a telephone call, voice
over IP call, instant message, text message, Google Wave
communication, email, video conference, or other communication
modality. The user can click accept 204 or provide some other
input, such as picking up a telephone receiver, to accept the
incoming call.
[0031] FIG. 3 illustrates an exemplary user interface 200 for an
established call. In this example, the user has accepted the call
and the system has established the call. The system displays a
window 302 including resources 304, 306 associated with the context
of the call. In this example, the system was monitoring the
previous communication between the user and Bob Katz. In the
previous communication session, the user and Bob Katz were
reviewing a first document 304 and mentioned that they should
review a second document 306 in the next call. Based on the context
of the previous communication, the system opens the first document
304 and the second document 306 automatically for the user and/or
Bob Katz. In one aspect, either party can share with other parties
the documents that the system opens based on the communication
context. For example, if only the user's communication system can
retrieve resources just-in-time based on context, and Bob's system
can not, the user can share resources with Bob. The user's system
establishes a communication channel with Bob's system to push that
information to Bob's screen. If Bob's system is unavailable or is
not sufficiently sophisticated to communicate on that level, the
user's system can send the resources or links to the resources via
traditional methods, such as email or instant message.
[0032] FIG. 4 illustrates an exemplary enhanced user interface for
an incoming call. In this example, the system displays a popup
window 402 announcing the incoming call. The popup window 402 can
include an accept button and reject button as shown in FIG. 2. The
popup window 402 can also include lists of resources, such as a
list of resources opened in the last similar communication context
404 and a list of resources discussed in the last similar
communication context 410. The user can the review and select which
of the resources to open in this communication session. For
example, the user can check 406 or uncheck 408 specific resources
to open. Either immediately or after the user accepts the incoming
call, the system opens the selected resources. The system can open
the selected resources on the same communication device on which
the user is communicating or on a separate device, such as a
desktop computer or computing tablet.
[0033] In one variation, the system provides a separate popup or
notification suggesting resources just-in-time for the
communication context. The user can interact with the popup or
notification to accept the suggestion and open the document, reject
the popup or notification, or ignore the popup or notification. If
the user accepts the suggestion, the system can increase the
ranking or importance of the accepted resource. If the user rejects
the suggestion, the system can decrease the ranking or importance
of the rejected resource. If the user ignores the suggestion, the
system can either decrease or leave unchanged the ranking or
importance, for example.
[0034] FIG. 5 illustrates an exemplary infrastructure 500
configuration for providing just-in-time resources based on a
communication context. In this infrastructure 500, a first user 502
communicates via a first device 504 with a second user 506 and a
second device 508 via a communication network 510. In one
implementation, a communication context server 512 resides in or
across the network 510, but the communication context server 512
can reside entirely or partially in other locations as well, such
as within the first device 504 or the second device 508. The
communication context server 512 can monitor, store, and search
communication context for communication sessions between users. For
example, when the first user 502 and the second user 506 talk on
the telephone, the communication context server 512 monitors that
conversation and/or its context. The server generates a context
profile for that communication and stores resources and/or links to
resources in a resources database 514. The communication context
server 512 can also track resources stored in each user's
respective local resources database 516, 518. Later, when the same
users (or a closely related subset of the users in cases of more
than two user communications) communicate, the communication
context server 512 identifies the context, retrieves resources from
the resources database(s) 514, 516, 518 and presents the resources
to the appropriate users, either on their respective devices 504,
508 or other devices. In this way, when users who were previously
discussing Document Z call each other again, the communication
context server 512 automatically retrieves Document Z and/or any
other resources previously discussed or used for the users. This
can save time for the users and prevent the users from remembering
which documents were needed and then looking for the documents.
[0035] In one aspect, each user 502, 506 has a separate,
personalized context for the same communication session. In this
way, when the first user 502 and second user 506 call each other,
the communication context server 512 retrieves a first set of
resources for the first user 502 and a second set of resources for
the second user 506.
[0036] Having disclosed some basic system components, the
disclosure now turns to the three exemplary method embodiments
shown in FIGS. 6, 7, and 8. For the sake of clarity, the methods
are discussed in terms of an exemplary system 100 as shown in FIG.
1 configured to practice the method.
[0037] FIG. 6 illustrates an example method embodiment for
providing just-in-time resources based on context. The system 100
identifies a communication event associated with a user and a
current context associated with the communication event and the
user (602). The system can operate based on the user's
communication device, a network-based device, and/or on a caller's
device. The communication event can be, for example, another party
attempting to contact the user via any modality. The event can be a
non-communications event, such as a calendar event or a specific
sequence of actions on a smartphone and/or personal computer. In
one illustrative example, the communication event is when the user
receives from a caller a request for communication and the user
accepts the request, thereby starting a communication session with
the caller.
[0038] The system 100 identifies a stored context that corresponds
to the current context, wherein the stored context includes at
least one resource (604). The context can include information such
as communication content, a communication history, communication
session metadata, contact information. The resource can be a
document, an agenda, a web page, and/or a communication history.
The system 100 retrieves the at least one resource (606) and
presents the at least one resource to the user (608). In one
aspect, the system presents the resource by automatically opening a
document for the user. The system can present resources on a
communications device, such as a smartphone, or on a separate
device. If the system presents resources on the communications
device, the system can present the resources as part of a graphical
user interface for managing a communication session. As another
example, if the user is accepting a video call on a smartphone, the
system can present to the user resources associated with the
communication context of the video call on a laptop computer and/or
on the smartphone. The system can present links to access the
resources, such as world wide web, network, or other addresses.
[0039] In one variation, the system further tracks user
interactions associated with the communication event and updates
the stored context based on the user interactions. In this way, the
system can adapt and update the stored context to match the user's
changing needs. For example, if an initial conversation between two
users centered around Document X, but through the course of
communication, the users shift the conversation focus to Document
Y, the system can update the context to assign a higher priority,
prominence, or importance to Document Y. The system can eventually
remove Document X entirely from the resources associated with the
communication context if the users do not mention or refer to
Document X or information stored in Document X after a threshold
amount of time. The system can present a list of highest ranked
resources that are most likely to be needed to the user or users in
a communication session, but the users can then drill down to
browse and retrieve other documents that may not be as highly
ranked but are still relevant to the communication session.
[0040] In a related variation, the system can identify other
resources, not part of the stored context, that are potentially
relevant to at least one of the current context and the stored
context, rank the other resources by potential relevance to yield
ranked other resources, and present at least part of the ranked
other resources to the user. For example, if the system has access
to multiple users' communication session histories, contexts, and
resources, the system can deduce, based on others' contexts and
resources, that if two users are speaking about Documents A, B, and
C, they are likely to be interested in Documents D and E as well.
The system can suggest Documents D and E to one or both users
based, for example, on document permissions, user role, and so
forth.
[0041] FIG. 7 illustrates an example method embodiment for storing
a current context, including resources associated with the current
context, for later retrieval. The system 100 identifies a current
communication context (702), including, for example, a user, a
communication modality, a time, and/or a date. The system 100
identifies resources associated with the current communication
context (704). The resources can include a document, an agenda, a
web page, and/or a communication history.
[0042] The system 100 indexes the current communication content and
resources to enable searchability (706). For example, the system
can perform optical character recognition on images of scanned
documents, the system can add metadata or tags to the communication
content and/or resources, the system can perform speech recognition
on voice conversations, and so forth. Then the system 100 stores,
as a stored context in a database, the current communication
context and the resources associated with the current communication
context (708). The system can further identify metadata associated
with the current communication context, and store the metadata as
part of the stored context in the database. When the communication
session involves multiple parties, the system can assign weights to
metadata based on which user is the source of the metadata. For
example, the system can assign a higher weight to metadata
originating from a supervisor that to metadata originating from a
seasonal worker.
[0043] In one aspect, the system also tracks user interactions
associated with the current communication context and updates the
stored context based on the user interactions. In this way, the
system adapts and changes to match the evolution of the
communications over multiple individual communication sessions.
Many elements that influence the communication context can change
over time, such as time of year, user organizational role, volume
of work, etc. The system can flexibly update the context to match
the fluid nature of communications and better retrieve context and
resources just-in-time.
[0044] FIG. 8 illustrates an example method embodiment for storing
resources associated with a current context, and later retrieving
the stored resources. In this embodiment, the system 100 receives,
via a communications interface, a notification of an incoming
request for communication directed to a user (802) and identifies a
current communication context for the incoming request (804).
[0045] The system 100 retrieves, based on a similarity threshold to
the current communication context, a stored communication context
and a resource associated with the stored communication context
(806). The context can include, for example, communication content,
communication session metadata, and contact information. The
resources can include a document, an agenda, a web page, and a
communication history. The system 100 presents a modified request
for communication including the incoming request, at least part of
the stored communication context, and at least part of the resource
(808). The system can receive an indication from the user accepting
the modified request and establish a communication session based on
the incoming request. The system can also transmit the resource to
a sender of the incoming request for communication, so that both
users can view and/or manipulate the same resource as part of the
communication session.
[0046] Embodiments within the scope of the present disclosure may
also include tangible and/or non-transitory computer-readable
storage media for carrying or having computer-executable
instructions or data structures stored thereon. Such non-transitory
computer-readable storage media can be any available media that can
be accessed by a general purpose or special purpose computer,
including the functional design of any special purpose processor as
discussed above. By way of example, and not limitation, such
non-transitory computer-readable media can include RAM, ROM,
EEPROM, CD-ROM or other optical disk storage, magnetic disk storage
or other magnetic storage devices, or any other medium which can be
used to carry or store desired program code means in the form of
computer-executable instructions, data structures, or processor
chip design. When information is transferred or provided over a
network or another communications connection (either hardwired,
wireless, or combination thereof) to a computer, the computer
properly views the connection as a computer-readable medium. Thus,
any such connection is properly termed a computer-readable medium.
Combinations of the above should also be included within the scope
of the computer-readable media.
[0047] Computer-executable instructions include, for example,
instructions and data which cause a general purpose computer,
special purpose computer, or special purpose processing device to
perform a certain function or group of functions.
Computer-executable instructions also include program modules that
are executed by computers in stand-alone or network environments.
Generally, program modules include routines, programs, components,
data structures, objects, and the functions inherent in the design
of special-purpose processors, etc. that perform particular tasks
or implement particular abstract data types. Computer-executable
instructions, associated data structures, and program modules
represent examples of the program code means for executing steps of
the methods disclosed herein. The particular sequence of such
executable instructions or associated data structures represents
examples of corresponding acts for implementing the functions
described in such steps.
[0048] Those of skill in the art will appreciate that other
embodiments of the disclosure may be practiced in network computing
environments with many types of computer system configurations,
including personal computers, hand-held devices, multi-processor
systems, microprocessor-based or programmable consumer electronics,
network PCs, minicomputers, mainframe computers, and the like.
Embodiments may also be practiced in distributed computing
environments where tasks are performed by local and remote
processing devices that are linked (either by hardwired links,
wireless links, or by a combination thereof) through a
communications network. In a distributed computing environment,
program modules may be located in both local and remote memory
storage devices.
[0049] The various embodiments described above are provided by way
of illustration only and should not be construed to limit the scope
of the disclosure. For example, the principles herein can be
implemented as part of a mobile communication device, such as a
smartphone, as part of a dedicated desktop phone, or as part of a
personal computer. The communication context server discussed above
can be implemented as a separate hardware device and/or as software
executing on traditional communication infrastructure nodes. Those
skilled in the art will readily recognize various modifications and
changes that may be made to the principles described herein without
following the example embodiments and applications illustrated and
described herein, and without departing from the spirit and scope
of the disclosure.
* * * * *