SYSTEM AND METHOD FOR PREDICTING MEETING SUBJECTS, LOGISTICS, AND RESOURCES

Information

  • Patent Application
  • 20200134572
  • Publication Number
    20200134572
  • Date Filed
    December 26, 2019
    4 years ago
  • Date Published
    April 30, 2020
    4 years ago
Abstract
Disclosed herein are systems, methods, and non-transitory computer-readable storage media for predicting the subject, logistics, and resources of associated with a communication event. Predictions and suggestions can occur prior to, during, or in response to communication events. The user can confirm the prediction or suggestion via user input such as a click or a voice command. The system can analyze past behavior patterns with respect to the subject, logistics and resources of communication events, followed by preparing ranked listings of which subjects, logistics, and resources are most likely to be used in a given situation. The predicted logistics may then include people to invite, time and date of the meeting, its duration, location, and anything else useful in helping potential participants gather together. The resources may include files attached, files used, communication event minutes, recordings made, Internet browsers and other programs which may be utilized by the user.
Description
COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has not objected to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever.


BACKGROUND
1. Technical Field

The present disclosure relates to communications and more specifically to predicting the subject, logistics, and resources of associated with a communication event.


2. Introduction

Modern technology has given those who wish to schedule a gathering of multiple people many options. They can consider what type of event to schedule, such as classic in-person meetings, a conference call, a video conference, or any other type of communication event. They can consider whom to invite, the location, the time, and the duration of the communication event. Further considerations are what attachments to send with the invitation, the subject matter, how this communication event compares and contrasts with previous events, as well as how this will coincide with everyone's schedule. Given the many factors involved in making a new invitation it can be useful to examine previous communication event invitations to remember details. However, given time, the number of previous meetings and details of those events simply become too cumbersome to search through.


Similarly, during a communication event participants can take notes, look at sent attachments, record audio, send instant message communications with other participants, or examine other resources. The ability to access information during the communication event can boost productivity and topic comprehension, but if there is trouble in locating resources during the communication event it can also be burdensome. With the continual increase of applications and documents available for use during a communication event, the burden of finding the right information at the right time also increases until the burden outweighs the benefits. There exists, then, a need to quickly and efficiently find useful, relevant information for inviting people to and participating in communication events.


SUMMARY

These and other needs are addressed by the various embodiments and configurations of the present invention. The present invention can provide a number of advantages depending on the particular configuration. These and other advantages will be apparent from the disclosure of the invention(s) contained herein.


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.


Disclosed are systems, methods, and non-transitory computer-readable storage media for predicting and/or suggesting subjects, logistics, and resources associated with a communication event. Such prediction and suggestion can occur prior to, during, or in response to communication events. The user can confirm the prediction or suggestion via user input such as a click or a voice command. The system can analyze past behavior patterns with respect to the subject, logistics and resources of communication events, followed by preparing ranked listings of which subjects, logistics, and resources are most likely to be used in a given situation. For instance, the analyzed logistics may include previous invitees, previous participants, the date and time of previous communication events, their duration, location, action items, and post-communication event behavior. The predicted logistics may then include people to invite, time and date of the meeting, its duration, location, and anything else useful in helping potential participants gather together. Similarly, the analyzed and predicted resources may include files attached, files used, communication event minutes, recordings made, Internet browsers, and other programs which may be utilized by the user in the communication event.


In one embodiment, the user creates a new communication event invitation, enters data into a field, and the system automatically populates at least one remaining subject, logistics, or resource field. The user can then modify or correct any of the populated fields, at which time system re-evaluates the presented scenario and/or context, and re-populates the subject and logistics fields based on the additional information. This iterative process of modification, re-evaluation and re-population of the subject and logistics fields continues until the user is satisfied with the communication event invitation and so confirms. The system can then, during the communication event, suggest actions and resources to the user based on the previous rankings of subjects and logistics, as well as on-going analysis of resource use. Following the communication event, the system may direct that additional actions be taken based on previous behavior patterns, such as creating a follow-up communication event, calling a colleague, or reviewing minutes.


In one aspect, the system monitors repeated behavior and communications to determine what the user is likely to want or do in a similar situation. In another aspect, the system extracts similar or useful resources and suggests them to the user. In yet another aspect, the system communicates with and monitors other communication event systems and coordinates the user interaction with those systems.


In one embodiment, a method is disclosed, comprising: identifying, by a processor, a series of previous communication events among a plurality of human participants, the series of previous communication events being associated with a common resource used in each one of the series of previous communication events; receiving, by the processor, a request to create an invitation for a future communication event, the request comprising the common resource, and wherein the invitation comprises a temporal identifier of when the future communication with occur; and upon the occurrence of the temporal identifier, causing by the processor, each of a plurality of communication devices, associated with the plurality of human participants, to be connected via a network to conduct the future communication event thereon.


In another embodiment, a system is disclosed, comprising: a processor; and a computer-readable medium storing instructions which, when executed by the processor, cause the processor to perform operations comprising: identifying a series of previous communication events among a plurality of human participants, the series of previous communication events being associated with a common resource used in each one of the series of previous communication events; receiving a request to create an invitation for a future communication event, the request comprising the common resource, and wherein the invitation comprises a temporal identifier of when the future communication will occur; upon the occurrence of the temporal identifier, causing each of a plurality of communication devices, associated with the plurality of human participants, to be connected via a network to conduct the future communication event thereon.


In another embodiment, a device is disclosed, comprising: a processor; and a computer-readable storage medium storing instructions which, when executed by the processor, cause the processor to perform operations comprising: identifying a series of previous communication events among a plurality of human participants, the series of previous communication events being associated with a common resource used in each one of the series of previous communication events; receiving a request to create an invitation for a future communication event, the request comprising the common resource, and wherein the invitation comprises a temporal identifier of when the future communication will occur; upon the occurrence of the temporal identifier, causing each of a plurality of communication devices, associated with the plurality of human participants, to be connected via a network to conduct the future communication event thereon.


The phrases “at least one,” “one or more,” “or,” and “and/or” are open-ended expressions that are both conjunctive and disjunctive in operation. For example, each of the expressions “at least one of A, B, and C,” “at least one of A, B, or C,” “one or more of A, B, and C,” “one or more of A, B, or C,” “A, B, and/or C,” and “A, B, or C” means A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B, and C together.


The term “a” or “an” entity refers to one or more of that entity. As such, the terms “a” (or “an”), “one or more,” and “at least one” can be used interchangeably herein. It is also to be noted that the terms “comprising,” “including,” and “having” can be used interchangeably.


The term “automatic” and variations thereof, as used herein, refers to any process or operation, which is typically continuous or semi-continuous, done without material human input when the process or operation is performed. However, a process or operation can be automatic, even though performance of the process or operation uses material or immaterial human input, if the input is received before performance of the process or operation. Human input is deemed to be material if such input influences how the process or operation will be performed. Human input that consents to the performance of the process or operation is not deemed to be “material.”


Aspects of the present disclosure may take the form of an embodiment that is entirely hardware, an embodiment that is entirely software (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module,” or “system.” Any combination of one or more computer-readable medium(s) may be utilized. The computer-readable medium may be a computer-readable signal medium or a computer-readable storage medium.


A computer-readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer-readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer-readable storage medium may be any tangible, non-transitory medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.


A computer-readable signal medium may include a propagated data signal with computer-readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer-readable signal medium may be any computer-readable medium that is not a computer-readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer-readable medium may be transmitted using any appropriate medium, including, but not limited to, wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.


The terms “determine,” “calculate,” “compute,” and variations thereof, as used herein, are used interchangeably and include any type of methodology, process, mathematical operation or technique.


The term “means” as used herein shall be given its broadest possible interpretation in accordance with 35 U.S.C., Section 112(f) and/or Section 112, Paragraph 6. Accordingly, a claim incorporating the term “means” shall cover all structures, materials, or acts set forth herein, and all of the equivalents thereof. Further, the structures, materials or acts and the equivalents thereof shall include all those described in the summary, brief description of the drawings, detailed description, abstract, and claims themselves.


The preceding is a simplified summary of the invention to provide an understanding of some aspects of the invention. This summary is neither an extensive nor exhaustive overview of the invention and its various embodiments. It is intended neither to identify key or critical elements of the invention nor to delineate the scope of the invention but to present selected concepts of the invention in a simplified form as an introduction to the more detailed description presented below. As will be appreciated, other embodiments of the invention are possible utilizing, alone or in combination, one or more of the features set forth above or described in detail below. Also, while the disclosure is presented in terms of exemplary embodiments, it should be appreciated that an individual aspect of the disclosure can be separately claimed.





BRIEF DESCRIPTION OF THE DRAWINGS

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:



FIG. 1 illustrates an example system embodiment;



FIG. 2 illustrates an exemplary system infrastructure;



FIG. 3 illustrates a blank exemplary communication event invitation;



FIG. 4 illustrates an exemplary communication event invitation with populated fields;



FIG. 5 illustrates an exemplary communication event invitation with populated fields;



FIG. 6 illustrates an exemplary communication event invitation with populated fields;



FIG. 7 illustrates a blank exemplary communication event invitation with suggested fields;



FIG. 8 illustrates an exemplary communication event invitation with suggested fields;



FIG. 9 illustrates a first example method embodiment;



FIG. 10 illustrates a second example method embodiment;



FIG. 11 illustrates a third example method embodiment;



FIG. 12 illustrates a first exemplary user interface embodiment for a communication event;



FIG. 13 illustrates a first exemplary user interface embodiment for a communication event;



FIG. 14 illustrates a fourth example method embodiment;



FIG. 15 illustrates a second exemplary user interface embodiment for a communication event;



FIG. 16 illustrates a second exemplary user interface embodiment for a communication event;



FIG. 17 illustrates a process in accordance with embodiments of the present disclosure.





DETAILED DESCRIPTION

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.


The present disclosure addresses the need in the art for predicting subjects and logistics for communication events. A system, method and non-transitory computer-readable media are disclosed which analyze user behavior, previous communication events, and logistics of involved parties to suggest resources, subjects, and logistics involved in communication events. 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 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.


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 122 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 122 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 1162, module 2164, and module 3166 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.


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.


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.


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.


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.


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 Mod1162, Mod2164 and Mod3166 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.


Having disclosed some basic computing system components, the disclosure returns to a discussion of predictive communication event subjects and logistics. The approaches discussed herein apply equally to pre-communication events, in-communication event suggestions, and post-communication event planning. Each of these phases can incorporate an analysis of a user's communication history, document usage history, and meeting schedule. A communication history can include previous communication events, metadata, and other communication data. For example, communication events may be meetings, conferences, conference calls, video conferences, or other type of in-person or virtual meeting where a coordinated effort is made to establish contact between two or more people. Examples of other communication data include phone records (including the name and number associated with the call, the duration of the call), instant message records, short message records, and email records. Document usage history can include the time and frequency of document access or updates, program usage, contents of the documents, and related files. A meeting schedule associated with a user can be a user's calendar information from a program such as Outlook®, or can be solely based on previous communication events.


The system takes the previous communication events, other communication data, and/or resource usage information and performs an analysis to determine the relations of various data with respect to one another. This analysis allows the system to determine the probability that a given subject, logistic, or resource in connection with a communication event will occur. For example, the system can use the analysis to create ranked lists of the most likely subjects, logistics and/or resources. The system can continue the process of creating lists based on probability indefinitely as the user adds new usage and communication event history information.


In one illustrative example, a user wishes to create a communication event, such as a conference call, between several colleagues. This conference call occurs quarterly with the same group of individuals in order to review updated versions of the same documents at every meeting. Each quarter the conference call occurs at the same time, on the same day of the week. The system analyzes this pattern of behavior and recognizes that when those contacts are involved the subject matter, time, duration, and resources used are usually consistent. When the user creates a new invitation, rather than entering in each unique piece of data required for the invitation, the user only enters a portion of the normal amount of data required, such as an event title. The system then populates some or all of the remaining fields using ranked subject, logistics and/or resources lists. The fields populated by the system can be differentiated in such a way that the user can distinguish between fields populated by the user and fields populated by the system, such as with a different font, color, size, position, shape, or via any other suitable difference. If the populated fields represent the invitation that the user wishes to send, they may complete the invitation. In this example, if the conference call invitation, as populated, looks like the generic quarterly conference call invitation, the user may be satisfied. Otherwise, the user can continue to modify one or more of the fields. When the user modifies the fields, the analysis is again consulted. Based on the fields entered, populated, or selected by the user, the system creates new ranked lists of subjects, logistics, and resources for the current scenario presented. The system can then automatically populate some or all of the non-user filled fields with the ranked data for the new scenario. When the user modifies a field, the system can repeat this process by iteratively updating the suggested fields, narrowing the possibilities that the system will suggest, until the user is satisfied and considers the invitation complete or adequate and approves the invitation.


The user can present rules to the system for creating a communication event. For example, the communication event creator can specify, “Albert and Betty must be in the call. The attendance of Cam, Dan, and Ed is desirable but optional. The conference call must occur before Friday.” The system then accesses all or just the relevant portions of the schedules of the individuals involved to determine possible logistics (time, duration) that the parties are available to meet. Upon determining the logistics, the system then populates the remaining logistics, subject, and resource fields, iteratively updating those fields upon further user modification, until the user is satisfied the invitation is complete or adequate.


A user or the system can create a new communication event invitation. As an example, suppose the user calls a friend every Thursday and then immediately creates a communication event, in this case a golf outing scheduled for Friday. After several weeks of this behavior the system can, on Thursday, without user action, commence with the creation of a golf outing appointment scheduled for Friday. The system can present this invitation to the user for confirmation. If the system analyzes phone line information, the system could recognize that usually when the user dials that particular number, a golfing event is scheduled shortly thereafter. The system can then generate the golfing event anytime the friend's phone number is called on a Thursday, or even suggest the back-to-back combination of both events to the user. Similarly, if, after every scheduled meeting in a particular location the user creates a new communication event with attached minutes and reports from the previous meeting, the system can suggest the minutes, reports, and to whom they should be sent.


During a communication event the system can operate in a similar manner. Upon joining the communication event, the system can analyze the subject and logistics of the meeting and create a ranked resources list. The system is then able to suggest the top ranked resources to the user. Such resources include notes, documents, recordings, software programs, Internet searches, files or applications which the user has a high probability of using given the current logistics and communication context of the meeting. As the user ignores, declines, or selects these suggestions, the system can update the communication history and document usage history, thereby updating the analysis and subsequently the ranked subject, logistics, and resources lists.


Similarly, suggestions during the communication event can be based on user actions during the communication event. As mentioned above, a user can ignore, decline, or select a suggestion from the system during a communication event. The type of response gives different feedback to the system, which influences later suggestions accordingly. For example, if the user routinely ignores or declines suggestions to read a report file, the system can either no longer suggest that report file, refine the parameters leading to a suggestion, select an alternate or replacement suggestion, or gradually phase out that suggestion. If all report files are similarly ignored or declined, the system can no longer suggest any report files or take other appropriate action. If, on the other hand, the user routinely accepts suggestions to instant message an associate, the system can continue to suggest such suggestions and can increase their weight or ranking in the list. The suggestions presented by the system during the communication event may be based on specific user action. For example, if a communication event is a conference call, and the system displays the names of all participants, the system can display the particular documents associated with a participant when the user clicks or scrolls over that participant's name. If the user often uses an instant messenger while in communication events, upon clicking or scrolling over a participant's name the system can display a menu option to chat via instant messenger with that participant. If other participants within a communication event are viewing a particular document, the system can display a suggestion to a user to open that particular document.



FIG. 2 illustrates an exemplary infrastructure 200 configuration for providing predictive subjects, logistics, and/or resources for a communication event. In this infrastructure 200, a user 202 creates a meeting via a device such as a smartphone 202a or a desktop computer 202b. One or more of the devices extracts data from a user's communication history, a document usage history, and/or a meeting schedule. The communication history, document usage history, and meeting schedule can be stored locally on the device, remotely on a server, or partially stored on other users' devices. Such a device may include just client software for communication event scheduling and it may be a separate server that extracts various data from sources like the conference server, calendar database, email server, and the telephone switch. The system then takes this extracted data and creates an analysis using at least some of the previous subject, resource, and/or logistical possibility. The analysis may be performed within a user's device or a server. One or both of the user's devices 202a, 202b can be used to create the meeting invitation. Upon creating the invitation, the system 202a, 202b can communicate via a network 210 with other software programs, such as a scheduler 218 or a common calendar database 216. The system can further communicate with conference servers 212, resources 214, as well as other invitees 204, 206, 208. These communications can reveal ideal time, conflicts, recently updated documents, frequently accessed documents and other information relating to subject, logistics, and resource information. The system can combine this information with the analysis and apply the information to the user's particular situation and/or context. This evaluation process leads to a ranked list of subjects, logistics, and resources most likely to be used in the invitation. Using this information, the system can populate the invitation fields with the highest ranked subject, logistics, and/or resources. The user 202 reviews this, optionally modifies the invitation, and the system iteratively updates the ranked lists and updates the populated invitation fields, and so on until the user considers the invitation to be acceptable. Once the user 202 is satisfied, the user sends the invitation to other invitees 204, 206, 208. The scheduler 218 can also record the invitation, in the calendar database 216. The conference server 212 and resource database 214 may be similarly updated.


Upon participating in the meeting, the system can send the user 202 resource suggestions, such as via a smartphone 202a or a desktop computer 202b. The resource suggested may belong to the other meeting participants, 204, 206, 208, or may come from additional resources 214.


The disclosure turns now to a set of examples illustrated by a series of illustrative user interfaces. FIG. 3 illustrates a first example communication event invitation 300. This invitation 300 contains multiple fields, such as the ‘subject’ field 304 and other logistics fields 302, such as the ‘to’, ‘location’, ‘time’, ‘duration’, and ‘attachments’ fields. This invitation is shown blank, but can be automatically populated if the probabilities for creating ranked fields were sufficiently high. Alternatively, other sources can prepopulate some of the fields before the system applies predictions or suggestions to the invitation.



FIG. 4 illustrates a second example communication event invitation 400. This invitation 400 has its fields 402, 404, 406 populated. Here the user has filled in the ‘to’ logistics field 402 with ‘Andy.’ The system 100 has populated the remaining fields 404, 406. The system can optionally demonstrate the difference between the automatically populated fields 404, 406 by using a distinguishing font, an inverted color scheme, setting the font to bold or underline, or other visual, audible, or other cue to make the user aware of the automatic population of these fields. If the user is satisfied with the invitation, he or she clicks a button 408, or provides any other appropriate user input, to send or otherwise confirm the invitation. Other forms of user input can include voice commands, mouse gestures, touchscreen input, and so forth.



FIG. 5 illustrates a third example communication event invitation 500 that is a continuation of the example communication event invitation 400 of FIG. 4. This invitation 500 was not confirmed by the user, but rather was modified by the user. The user modified the ‘subject’ field 506. At this point in the example, the user has entered two pieces of information into the invitation: ‘Andy’ in the ‘to’ logistics field 502, and ‘Quarterly Report’ in the subject field 506. Upon entering ‘Quarterly Report’, the system 100 consulted the analysis previously generated, created a new ranked list based on having ‘Andy’ in the ‘to:’ field and ‘Quarterly Report’ in the subject field. Based on this new list, new logistics 504 and new resources 508 have appeared in their respective fields. Because this is a quarterly report, the system 100 recognizes that Bob, Cathy, and Doug normally attend the meeting, that the length of the meeting is longer, that its location is in the Blue rather than the Red conference room, that the date had to change, and that additional documents 508 are normally associated with quarterly report meetings. If the user is satisfied with the invitation, the user clicks the button 408 to send or otherwise confirm the invitation.



FIG. 6 illustrates a fourth example communication event invitation 600 that is a continuation of the example communication event invitation 500 of FIG. 5. This invitation 600 was not confirmed by the user, but was again modified by the user. The user modified the ‘duration’ field 608. Fields previously entered by the user 602, 606 continue unmodified by the system 100. Upon modifying the duration of the meeting, the system can check the analysis and develop new rankings for the subject, logistics and/or resources to suggest. The system can perform these steps iteratively, such as after every time the user modifies the invitation. The system also checks the calendar database 216 and the schedules of the other users. In this case, the system detects a conflict. Doug from FIG. 5 can no longer attend, or cannot attend the entire meeting, if the meeting duration 608 is 3 hours. If the user is satisfied with this outcome, the user can click a button 440 to send or otherwise confirm the invitation. If not, the user can continue to modify the invitation and the system 100 continues to update the populated fields 604 iteratively based on the modifications. In this manner the range of possible suggestions in the beginning can be quite large. The system can progressively narrow and/or expand the set of possibilities based on user input. Depending on the particularities of the invitation, the communication history, and other factors, that the system may make no suggestions.



FIG. 7 illustrates a fifth example communication event invitation 700. In this instance, the communication event has been created and has blank fields 702, for subject, logistics and resources. The system 100 has sufficient data to create ranked subject, logistics, and resources list. However, rather than populating the fields, the system displays the top ranked suggestions 704 next to their associated field 702. The system can display the top ranked suggestions 704 in order of probability and/or sorted based on any other attribute or weight. Here, for example, the user has a higher probability of inviting Bob than Cathy, though the system considers both to be likely possibilities based on the user's current context.



FIG. 8 illustrates a sixth example communication event invitation that is a continuation of the example communication event invitation 700 of FIG. 7. Here the user has already populated the ‘to’ logistic field 802. In response, the system 100 has created new subject, logistics, and resource ranked lists. These new rankings have left some suggestions unchanged 808, while changing the suggestions 804 or changing the order of the top ranked suggestions 812 from their previous order 704.


Having disclosed some basic system components and concepts, the disclosure now turns to several exemplary method embodiments shown in FIGS. 9, 10, and 11. For the sake of clarity, each of the methods is discussed in terms of an exemplary system 100 as shown in FIG. 1 configured to practice the methods, and concern the prediction of subjects, logistics, and resources for communication events. The steps outlined herein are exemplary and can be implemented in any combination thereof, including combinations that exclude, add, or modify certain steps.



FIG. 9 illustrates an example method embodiment for predicting the subject, logistics, and/or resources of a communication event invitation. The system 100 creates a new communication event (902). Either the user or the system can initiate creation of the communication event. For example, the system can continuously scan for predicted events and routines. The system then waits for the user to enter information in a field (904), such as a subject field, logistics field, or resource field. The system can wait until the user completely enters information, and/or can detect partially entered information. In the case of partially entered information, the system can then use the partially entered information to begin preparing suggestions for later display when the user has finished entering the information, or can display results as soon as they become available even before the user has finished entering the information. When the user enters information into a field, the system 100 can populate the remaining fields using ranked lists (906). These fields can include, for example, contacts, locations, meeting times, duration, and attachments, though those skilled in the art will appreciate that an event can include other fields. Upon the fields being populated, the user determines if they are satisfied with the communication event invitation (908). If so, the user confirms (912) the invitation. If the user is not satisfied with the communication event invitation, the user can modify one or more of the fields (910). Modification triggers the system 100 to re-form or adjust the ranked subject, logistics, and resources lists based on the newly entered fields, and again populate the fields per the re-formed or re-adjusted ranked lists (906). This cycle continues until the user confirms that the invitation is correct and/or acceptable. Generally the system 100 will be configured not to overwrite the user entered fields, however options to have the system 100 overwrite and/or correct user entered fields are within the scope of this method.



FIG. 10 illustrates a second example method embodiment for predicting the subject, logistics and resources of a communication event invitation. The system 100 creates a new communication event (1002). Either the user or the system can initiate creation of the communication event. The system can then display suggested subject, logistics, and resources to the user (1004). These suggestions do not automatically populate the fields, but are presented for selection by the user. The user can then enter data into the invitation fields (1010) or select one of the suggested fields (1012). The system 100 analyzes field selections and data, creates new ranked subject, logistics, and resource lists, and modifies the displayed suggestions to reflect the new suggestions (1004). When the user is satisfied with the event invitation, they may confirm that satisfaction (1008).



FIG. 11 illustrates a third example method embodiment for predicting the subject, logistics, and resources of a communication event invitation. The system 100 creates a new communication event (1102). Either the user or the system can initiate creation of the communication event. The fields are populated by the system 100 using ranked lists (1103). These fields can be contacts, locations, meeting times, duration, and attachments. An event can include other fields. Upon the fields being populated, the user determines if they are satisfied with the communication event invitation (1104). If so, the user provides a confirmation (1108). If the user is not satisfied with the communication event invitation, the user can modify one or more field (1106). This modification can trigger the system 100 to re-form ranked subject, logistics, and/or resources lists based on the newly entered fields and again populating the fields per the ranked lists (1103). This cycle continues until the user confirms that the invitation is correct. The system 100 may or may not overwrite user entered fields.



FIG. 12 illustrates a first example of predicting resources while in a communication event. The communication event window 1200 lists various logistics 1202, such as the active participants and the subject 1204 being discussed. Other logistics, such as the start and end times 1210 are based on the start time and duration sent in the communication event invitation. The time left 1212 compares those times with the current time. The communication event window 1200 also lists the resources that were attached with the communication event invitation 1206, as well as suggested resources 1208. The system can select these suggested resources from the ranked resources list (such as the top N items on the list), based on the current subject and/or logistics of the meeting. These suggestions can be based on user action. For instance, ignoring or declining a suggestion may influence the system such that the system is less likely to make that suggestion, or resources similar to that suggestion, in the future. Accepting or utilizing a suggested resource makes the system more likely to suggest that resource in the future. The suggestions made by the system 1208 are dynamic. If another participant appears, the suggestions may change. If the meeting has multiple topics and the subject 1204 changes, the suggestions may change. If the user ignores all suggestions for a significant amount of time, the suggestions may change. The system can consider multiple factors when preparing and offering suggestions, and if any of those factors change the system can change the suggestions accordingly.



FIG. 13 illustrates a second example user interface for predicting resources while in a communication event. The communication event window 1300 presents an example of a user selecting the name 1302 of a fellow participant during a meeting. The user can select the name by clicking, touching, rolling over, or otherwise interacting with the name. Upon selecting the fellow participant, the communication event window 1300 presents resources 1304 attached with the communication event invitation by the selected participant 1302. The system 100 can also suggest other documents from the ranked resources list for the user's situation. In FIG. 13, the system suggests the selected participant's previous presentation and sales data 1306. The system also suggests another individual's sales data 1308. Reasons for suggesting a document associated with a non-selected individual could include previous user behavior, similarity of documents, behavior of other participants, or perhaps the speaking order of the participants. The start and end times of the meeting 1310 are still presented, as is the amount of time remaining in the meeting 1312.



FIG. 14 illustrates an example method for predicting resources during a communication event. The system detects that a user enters the communication event (1402), such as a conference call, meeting, or any other type of communication where multiple people are present. The system 100 detects the communication context (1404), meaning it detects the communication event subject and logistics associated with the event. The system 100 then applies the communication event subject and logistics, along with user behavior, to an analysis, yielding a ranked list of likely resources for this communication event (1406). These resources are then suggested to the user (1408), and the system 100 continues to modify the ranked listings (1410), including the ranked subjects, ranked logistics, and ranked resources lists.



FIG. 15 illustrates a third example of predicting resources while in a communication event. The communication event window 1500 presents various fixed fields 1502, 1504, 1506 which contain the communication event subject and logistics information. The system 100 uses the communication event subject 1502 and logistics information 1504, 1506 in conjunction with fields related to current participants 1508, 1510, 1512 to determine the current communication context. The fields displaying the current participants 1508, 1510, 1512 can include additional information about the participants, including pictures, titles, names, phone numbers, snippets of a communication history, and/or any other pertinent detail to the current communication context. Attachments included in the communication event invitation are shown 1514, as well as any suggested resources 1516 and/or links to suggested resources by comparing the current communications context to previous user history, analyzing probabilities, and ranking those possibilities into a list of ranked resources.



FIG. 16 illustrates a continuation of the third example of predicting resources while in a communication event. The communication event window 1600 can expand in response to a user action of clicking, touching, rolling over, or otherwise selecting one of the active participants in the communication event 1606. The system 100 displays the documents associated with that participant 1610. Other active participants displayed 1604 retain individual information 1604, and the subject, logistic, and resource information sent in the conference event invitation 1602 remain constant. The suggestions 1608 made by the system 100, however, can change. The system can modify the suggestions in response to user behavior upon looking at a participant's profile 1608.


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.


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.


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.


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 network or on a stand-alone consumer side device. 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.



FIG. 17 illustrates process 1700 in accordance with embodiments of the present disclosure. In one embodiment, process 1700 is executed by at least one processor, such as processor 120 (see, FIG. 1) accessing machine-readable instructions from a non-transitory memory, such as cache 122, memory 130, ROM 140, RAM 150, storage device 160, and/or other non-transitory storage accessible to the processor via on-chip bus (not shown), bus 110, communication interface 180, and/or other communication interface. In other embodiments, process 1700 may be executed by one or more processors, which may be a component of a single core, multi core, blade, server, array, shared processing array (e.g., “cloud”), and/or other processing device(s). In yet another embodiment process 1700 may be executed in response to a user creating an invitation for a subsequent event. The subsequent event may have identified the common resource, but the attendees are not identified, in whole or in part. For example, attachments 406/508 may identify documents as the common resource but none or less than all of the participants associated with the common resource, such as to populate logistics fields 502 and 504 (See, FIGS. 4 and 5) or populate a list of suggest attendees, such as top ranked suggestions 704 or suggestions 804 (See, FIGS. 7 and 8).


In step 1702 prior communications are accessed. The prior communications may be maintained in a non-transitory data storage, such as cache 122, memory 130, ROM 140, RAM 150, storage device 160, and/or other non-transitory storage accessible to the. In one embodiment, a set of prior communications may be accessed, such as all prior communications, prior communications associated with a particular participant, prior communications occurring with a previously determined timeframe, etc. In a further embodiment, the particular participant comprises a user initiating a process to create a subsequent invitation, such as described with respect to a particular participant 202 utilizing smartphone 202a and/or computer 202b (see, FIG. 2). In another embodiment, the particular participant may be a delegate, such as an administrative assistant, who did not personally participate in a prior communication, but step 1702 accesses records on behalf of a participant that did participate in the prior communication.


If not already determined, test 1704 determines if a common resource is present in the prior communications. If test 1704 is determined in the negative, processing may continue back to step 1702 such as to access a different set prior communications, which may include accessing at least one prior communication that is now ongoing or was completed after a previous execution of step 1702. Looping between step 1702 and test 1704 may continue indefinitely or until interrupted, such as the participant canceling the invitation process.


As discussed above, step 1702 may be initiated upon receiving a request to create an invitation for a subsequent communication event. In another embodiment, step 1702 and test 1704 may be executed independently of any request to create an invitation for a subsequent communication event, such as an ongoing process of a processor. When ongoing, step 1706 may wait until a request for a subsequent communication event has been received. Alternatively, such as when process 1700 is initiated upon receiving a request to create an invitation for a subsequent communication event, step 1706 may be omitted.


In another embodiment, the invitation for the future communication event comprises a temporal identifier, such as time and date that the future communication event will occur. The temporal identifier may be an occurrence, such as a specific date/time, a next occurrence of a repeating event (e.g., 10:00 AM each Tuesday) or other indicia that may be provided as the value for which the future communication event will occur. In another embodiment, the temporal identifier may be determined based on at least one variable and/or algorithm, such as to receive a relative time/date (e.g., “tomorrow,” “an hour after we receive the email with the final bid,” “when Bob is done with his weekly staff call,” “after the sales meeting finishes,” etc.) and then derive a determinate time/date value therefrom, which may occur in real-time. A real-time determination may comprise a temporal identifier that has a value that switches from an indefinite value (e.g., not yet, upon an event that has not yet occurred) to a trigger event (e.g., now, fifteen minutes from now, etc.) based upon the indefinite value changing to indicate the event as occurred (e.g., “the email with the final bid is in,” “Bob is now off his call,” “the sales meeting has just finished,” etc.).


In another embodiment, optional step 1708 may automatically send invitations to each of the participants for the future communication event. The invitation may be directed to an address of a communication device of the participants (e.g., voice message/voicemail, text message), such as may be addressed to specific device such as telephone number of SMS address specific to a particular smartphone 202a, or the participant identity without regard to the particular communication device utilized (e.g., email address).


Next, test 1710 determines if the value of the temporal identifier has occurred, such as if the value of the temporal identifier is equivalent to “now” (i.e., the current date/time). If text 1710 is determined in the negative, test 1710 may loop back to itself and/or a delay until such time as test 1710 is determined in the affirmative. It should be appreciated that test 1710 may be embodied as an event that is triggered (e.g., event alarm, countdown alarm, etc.). In yet another embodiment, test 1710 may determine if the intemporal identifier is now the current date/time or after, such as if some delay occurred or the recipient communication device was unable to engage in the future communication event (e.g., “busy”).


Then, in step 1712 each of the participants are automatically connected to engage in the future communication event, such as by connecting the participants' associated communication devices. Additionally or alternatively, test 1710 may determine if the current time is early, but within a designated timeframe. For example, if the establishment of connections to the communication devices take thirty seconds each and in series, and each of ten participants are expected to begin the future communication event at a certain time, then test 1710 may be determined in the affirmative and step 1712 executed five minutes early in an attempt to have some or all participants connected by the occurrence of the start time provided by the temporal identifier.


Step 1712 is variously embodied and may comprise initiating a Session Initiation Protocol (SIP) INVITE message to initiate a dialog for the creation of a real-time protocol (RTP) communication. The SIP INVITE may automatically trigger the communication, such as each communication device receiving the INVITE message may automatically reply with a 200 OK message to automatically initiate the communication. Automatic acceptance of the INVITE may be performed in conjunction with determining that the INVITE is associated with the future communication event on a calendar associated with the communication device. For example, step 1708 may cause a calendar event to be added (e.g., “discuss quarterly sales figures at 10:30”) and then, the SIP INVITE, which may occur at the designated date/time (e.g., “10:30”) may be automatically answered. In a further embodiment, the INVITE may be accompanied with an identifier (e.g., caller ID) that, if determined to match or be associated with the origin of the future communication event, that is now occurring, will then be automatically answered by the communication device of the invited participants.


In another embodiment, the participants in the future communication event, once occurring, are human participants that provide and/or receive communication content (e.g., audio, video, document sharing, still or video images, co-browsing, etc.) via their respective communication device having, or utilizing, the associated human-machine interface devices encoding received input signals for transmission via network 210 and decoding output signals received via network 210 to enable human perception of the content, such as still images, video images, and audio. For example, a camera may be associated with smartphone 202a and/or computer 202b to encode images (e.g., images of user 202, document, image, etc.) for transmission via network 210 and decoded for display on a screen embodied with or associated with smartphone 202a and/or computer 202b.


In the foregoing description, for the purposes of illustration, methods were described in a particular order. It should be appreciated that in alternate embodiments, the methods may be performed in a different order than that described without departing from the scope of the embodiments. It should also be appreciated that the methods described above may be performed as algorithms executed by hardware components (e.g., circuitry) purpose-built to carry out one or more algorithms or portions thereof described herein. In another embodiment, the hardware component may comprise a general-purpose microprocessor (e.g., CPU, GPU) that is first converted to a special-purpose microprocessor. The special-purpose microprocessor then having had loaded therein encoded signals causing the, now special-purpose, microprocessor to maintain machine-readable instructions to enable the microprocessor to read and execute the machine-readable set of instructions derived from the algorithms and/or other instructions described herein. The machine-readable instructions utilized to execute the algorithm(s), or portions thereof, are not unlimited but utilize a finite set of instructions known to the microprocessor. The machine-readable instructions may be encoded in the microprocessor as signals or values in signal-producing components and included, in one or more embodiments, voltages in memory circuits, configuration of switching circuits, and/or by selective use of particular logic gate circuits. Additionally or alternative, the machine-readable instructions may be accessible to the microprocessor and encoded in a media or device as magnetic fields, voltage values, charge values, reflective/non-reflective portions, and/or physical indicia.


In another embodiment, the microprocessor further comprises one or more of a single microprocessor, a multi-core processor, a plurality of microprocessors, a distributed processing system (e.g., array(s), blade(s), server farm(s), “cloud”, multi-purpose processor array(s), cluster(s), etc.) and/or may be co-located with a microprocessor performing other processing operations. Any one or more microprocessor may be integrated into a single processing appliance (e.g., computer, server, blade, etc.) or located entirely or in part in a discrete component connected via a communications link (e.g., bus, network, backplane, etc. or a plurality thereof).


Examples of general-purpose microprocessors may comprise, a central processing unit (CPU) with data values encoded in an instruction register (or other circuitry maintaining instructions) or data values comprising memory locations, which in turn comprise values utilized as instructions. The memory locations may further comprise a memory location that is external to the CPU. Such CPU-external components may be embodied as one or more of a field-programmable gate array (FPGA), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), random access memory (RAM), bus-accessible storage, network-accessible storage, etc.


These machine-executable instructions may be stored on one or more machine-readable mediums, such as CD-ROMs or other type of optical disks, floppy diskettes, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, flash memory, or other types of machine-readable mediums suitable for storing electronic instructions. Alternatively, the methods may be performed by a combination of hardware and software.


In another embodiment, a microprocessor may be a system or collection of processing hardware components, such as a microprocessor on a client device and a microprocessor on a server, a collection of devices with their respective microprocessor, or a shared or remote processing service (e.g., “cloud” based microprocessor). A system of microprocessors may comprise task-specific allocation of processing tasks and/or shared or distributed processing tasks. In yet another embodiment, a microprocessor may execute software to provide the services to emulate a different microprocessor or microprocessors. As a result, first microprocessor, comprised of a first set of hardware components, may virtually provide the services of a second microprocessor whereby the hardware associated with the first microprocessor may operate using an instruction set associated with the second microprocessor.


While machine-executable instructions may be stored and executed locally to a particular machine (e.g., personal computer, mobile computing device, laptop, etc.), it should be appreciated that the storage of data and/or instructions and/or the execution of at least a portion of the instructions may be provided via connectivity to a remote data storage and/or processing device or collection of devices, commonly known as “the cloud,” but may include a public, private, dedicated, shared and/or other service bureau, computing service, and/or “server farm.”


Examples of the microprocessors as described herein may include, but are not limited to, at least one of Qualcomm® Snapdragon® 800 and 801, Qualcomm® Snapdragon® 610 and 615 with 4G LTE Integration and 64-bit computing, Apple® A7 microprocessor with 64-bit architecture, Apple® M7 motion comicroprocessors, Samsung® Exynos® series, the Intel® Core™ family of microprocessors, the Intel® Xeon® family of microprocessors, the Intel® Atom™ family of microprocessors, the Intel Itanium® family of microprocessors, Intel® Core® i5-4670K and i7-4770K 22 nm Haswell, Intel® Core® i5-3570K 22 nm Ivy Bridge, the AMD® FX™ family of microprocessors, AMD® FX-4300, FX-6300, and FX-8350 32 nm Vishera, AMD® Kaveri microprocessors, Texas Instruments® Jacinto C6000™ automotive infotainment microprocessors, Texas Instruments® OMAP™ automotive-grade mobile microprocessors, ARM® Cortex™-M microprocessors, ARM® Cortex-A and ARIV1926EJS™ microprocessors, other industry-equivalent microprocessors, and may perform computational functions using any known or future-developed standard, instruction set, libraries, and/or architecture.


Any of the steps, functions, and operations discussed herein can be performed continuously and automatically.


The exemplary systems and methods of this invention have been described in relation to communications systems and components and methods for monitoring, enhancing, and embellishing communications and messages. However, to avoid unnecessarily obscuring the present invention, the preceding description omits a number of known structures and devices. This omission is not to be construed as a limitation of the scope of the claimed invention. Specific details are set forth to provide an understanding of the present invention. It should, however, be appreciated that the present invention may be practiced in a variety of ways beyond the specific detail set forth herein.


Furthermore, while the exemplary embodiments illustrated herein show the various components of the system collocated, certain components of the system can be located remotely, at distant portions of a distributed network, such as a LAN and/or the Internet, or within a dedicated system. Thus, it should be appreciated, that the components or portions thereof (e.g., microprocessors, memory/storage, interfaces, etc.) of the system can be combined into one or more devices, such as a server, servers, computer, computing device, terminal, “cloud” or other distributed processing, or collocated on a particular node of a distributed network, such as an analog and/or digital telecommunications network, a packet-switched network, or a circuit-switched network. In another embodiment, the components may be physical or logically distributed across a plurality of components (e.g., a microprocessor may comprise a first microprocessor on one component and a second microprocessor on another component, each performing a portion of a shared task and/or an allocated task). It will be appreciated from the preceding description, and for reasons of computational efficiency, that the components of the system can be arranged at any location within a distributed network of components without affecting the operation of the system. For example, the various components can be located in a switch such as a PBX and media server, gateway, in one or more communications devices, at one or more users' premises, or some combination thereof. Similarly, one or more functional portions of the system could be distributed between a telecommunications device(s) and an associated computing device.


Furthermore, it should be appreciated that the various links connecting the elements can be wired or wireless links, or any combination thereof, or any other known or later developed element(s) that is capable of supplying and/or communicating data to and from the connected elements. These wired or wireless links can also be secure links and may be capable of communicating encrypted information. Transmission media used as links, for example, can be any suitable carrier for electrical signals, including coaxial cables, copper wire, and fiber optics, and may take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications.


Also, while the flowcharts have been discussed and illustrated in relation to a particular sequence of events, it should be appreciated that changes, additions, and omissions to this sequence can occur without materially affecting the operation of the invention.


A number of variations and modifications of the invention can be used. It would be possible to provide for some features of the invention without providing others.


In yet another embodiment, the systems and methods of this invention can be implemented in conjunction with a special purpose computer, a programmed microprocessor or microcontroller and peripheral integrated circuit element(s), an ASIC or other integrated circuit, a digital signal microprocessor, a hard-wired electronic or logic circuit such as discrete element circuit, a programmable logic device or gate array such as PLD, PLA, FPGA, PAL, special purpose computer, any comparable means, or the like. In general, any device(s) or means capable of implementing the methodology illustrated herein can be used to implement the various aspects of this invention. Exemplary hardware that can be used for the present invention includes computers, handheld devices, telephones (e.g., cellular, Internet enabled, digital, analog, hybrids, and others), and other hardware known in the art. Some of these devices include microprocessors (e.g., a single or multiple microprocessors), memory, nonvolatile storage, input devices, and output devices. Furthermore, alternative software implementations including, but not limited to, distributed processing or component/object distributed processing, parallel processing, or virtual machine processing can also be constructed to implement the methods described herein.


In yet another embodiment, the disclosed methods may be readily implemented in conjunction with software using object or object-oriented software development environments that provide portable source code that can be used on a variety of computer or workstation platforms. Alternatively, the disclosed system may be implemented partially or fully in hardware using standard logic circuits or VLSI design. Whether software or hardware is used to implement the systems in accordance with this invention is dependent on the speed and/or efficiency requirements of the system, the particular function, and the particular software or hardware systems or microprocessor or microcomputer systems being utilized.


In yet another embodiment, the disclosed methods may be partially implemented in software that can be stored on a storage medium, executed on programmed general-purpose computer with the cooperation of a controller and memory, a special purpose computer, a microprocessor, or the like. In these instances, the systems and methods of this invention can be implemented as a program embedded on a personal computer such as an applet, JAVA® or CGI script, as a resource residing on a server or computer workstation, as a routine embedded in a dedicated measurement system, system component, or the like. The system can also be implemented by physically incorporating the system and/or method into a software and/or hardware system.


Embodiments herein comprising software are executed, or stored for subsequent execution, by one or more microprocessors and are executed as executable code. The executable code being selected to execute instructions that comprise the particular embodiment. The instructions executed being a constrained set of instructions selected from the discrete set of native instructions understood by the microprocessor and, prior to execution, committed to microprocessor-accessible memory. In another embodiment, human-readable “source code” software, prior to execution by the one or more microprocessors, is first converted to system software to comprise a platform (e.g., computer, microprocessor, database, etc.) specific set of instructions selected from the platform's native instruction set.


Although the present invention describes components and functions implemented in the embodiments with reference to particular standards and protocols, the invention is not limited to such standards and protocols. Other similar standards and protocols not mentioned herein are in existence and are considered to be included in the present invention. Moreover, the standards and protocols mentioned herein and other similar standards and protocols not mentioned herein are periodically superseded by faster or more effective equivalents having essentially the same functions. Such replacement standards and protocols having the same functions are considered equivalents included in the present invention.


The present invention, in various embodiments, configurations, and aspects, includes components, methods, processes, systems and/or apparatus substantially as depicted and described herein, including various embodiments, subcombinations, and subsets thereof. Those of skill in the art will understand how to make and use the present invention after understanding the present disclosure. The present invention, in various embodiments, configurations, and aspects, includes providing devices and processes in the absence of items not depicted and/or described herein or in various embodiments, configurations, or aspects hereof, including in the absence of such items as may have been used in previous devices or processes, e.g., for improving performance, achieving ease, and\or reducing cost of implementation.


The foregoing discussion of the invention has been presented for purposes of illustration and description. The foregoing is not intended to limit the invention to the form or forms disclosed herein. In the foregoing Detailed Description for example, various features of the invention are grouped together in one or more embodiments, configurations, or aspects for the purpose of streamlining the disclosure. The features of the embodiments, configurations, or aspects of the invention may be combined in alternate embodiments, configurations, or aspects other than those discussed above. This method of disclosure is not to be interpreted as reflecting an intention that the claimed invention requires more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive aspects lie in less than all features of a single foregoing disclosed embodiment, configuration, or aspect. Thus, the following claims are hereby incorporated into this Detailed Description, with each claim standing on its own as a separate preferred embodiment of the invention.


Moreover, though the description of the invention has included description of one or more embodiments, configurations, or aspects and certain variations and modifications, other variations, combinations, and modifications are within the scope of the invention, e.g., as may be within the skill and knowledge of those in the art, after understanding the present disclosure. It is intended to obtain rights, which include alternative embodiments, configurations, or aspects to the extent permitted, including alternate, interchangeable and/or equivalent structures, functions, ranges, or steps to those claimed, whether or not such alternate, interchangeable and/or equivalent structures, functions, ranges, or steps are disclosed herein, and without intending to publicly dedicate any patentable subject matter.

Claims
  • 1. A method comprising: identifying, by a processor, a series of previous communication events among a plurality of human participants, the series of previous communication events being associated with a common resource used in each one of the series of previous communication events;receiving, by the processor, a request to create an invitation for a future communication event, the request comprising the common resource, and wherein the invitation comprises a temporal identifier of when the future communication event will occur; andupon an occurrence of the temporal identifier, causing by the processor, each of a plurality of communication devices, associated with the plurality of human participants, to be connected via a network to conduct the future communication event thereon.
  • 2. The method of claim 1, wherein the processor further performs: adding the plurality of human participants to the invitation; andcausing the invitation to be transmitted to each of the plurality of communication devices prior to the occurrence.
  • 3. The method of claim 1, wherein the processor causes each of the plurality of communication devices to be connected future communication, further comprises, causing a session initiation protocol (SIP) INVITE message to be sent on a data channel to each of the plurality of communication devices.
  • 4. The method of claim 3, wherein the processor causes each of the plurality of communication devices to automatically reply to the SIP INVITE message with a SIP OK message.
  • 5. The method of claim 1, wherein the future communication event is at least one of a conference call, a video conference, or a virtual meeting.
  • 6. The method of claim 1, wherein the common resource comprises at least one of a common participant, a common subject matter, a common day of a week, a common time, or a common duration.
  • 7. The method of claim 1, wherein the common resource comprises a partial amount of information identifying a partial resource.
  • 8. The method of claim 1, further comprising populating a resource field of the invitation with an identifier of the common resource.
  • 9. The method of claim 1, further comprising: predicting a subject matter of the future communication event based on a commonly shared subject matter of the series of previous communication events to yield a predicted subject matter; andsetting a subject attribute of the invitation with the predicted subject matter.
  • 10. The method of claim 1, further comprising: determining a logistic attribute of the future communication event based on commonly shared logistics of the series of previous communication events to yield predicted logistics; andsetting the logistic attribute of the invitation with the predicted logistics.
  • 11. A system comprising: a processor; anda computer-readable medium storing instructions which, when executed by the processor, cause the processor to perform operations comprising:identifying a series of previous communication events among a plurality of human participants, the series of previous communication events being associated with a common resource used in each one of the series of previous communication events;receiving a request to create an invitation for a future communication event, the request comprising the common resource, and wherein the invitation comprises a temporal identifier of when the future communication will occur;upon the occurrence of the temporal identifier, causing each of a plurality of communication devices, associated with the plurality of human participants, to be connected via a network to conduct the future communication event thereon.
  • 12. The system of claim 11, wherein the processor further executes additional instructions which, when executed by the processor, cause the processor to perform further operations comprising: adding the plurality of human participants to the invitation; andcausing the invitation to be transmitted to each of the plurality of communication devices prior to the occurrence.
  • 13. The system of claim 11, wherein the future communication event is at least one of a conference call, a video conference, or a virtual meeting.
  • 14. The system of claim 11, wherein the common resource comprises at least one of a common participant, a common subject matter, a common day of a week, a common time, or a common duration.
  • 15. The system of claim 11, wherein the processor further executes additional instructions which, when executed by the processor, cause the processor to perform further operations comprising populating a resource field of the invitation with an identifier of the common resource.
  • 16. The system of claim 11, the processor further executes additional instructions which, when executed by the processor, cause the processor to perform further operations comprising: predicting a subject matter of the future communication event based on a commonly shared subject matter of the series of previous communication events to yield a predicted subject matter; andsetting a subject matter attribute of the invitation with the predicted subject matter.
  • 17. A device comprising: a processor; anda computer-readable storage medium storing instructions which, when executed by the processor, cause the processor to perform operations comprising:identifying a series of previous communication events among a plurality of human participants, the series of previous communication events being associated with a common resource used in each one of the series of previous communication events;receiving a request to create an invitation for a future communication event, the request comprising the common resource, and wherein the invitation comprises a temporal identifier of when the future communication will occur;upon the occurrence of the temporal identifier, causing each of a plurality of communication devices, associated with the plurality of human participants, to be connected via a network to conduct the future communication event thereon.
  • 18. The device of claim 17, wherein the processor further executes additional instructions which, when executed by the processor, cause the processor to perform further operations comprising: adding the plurality of human participants to the invitation; andcausing the invitation to be transmitted to each of the plurality of communication devices prior to the occurrence.
  • 19. The device of claim 17, wherein the processor causes the each of the plurality of communication devices to be connected future communication, further comprises, causing a session initiation protocol (SIP) INVITE message to be sent on a data channel to each of the plurality of communication devices and wherein the processor further causes the each of the plurality of communication devices to automatically reply to the SIP INVITE message with a SIP OK message.
  • 20. The device of claim 16, wherein the computer-readable storage medium stores additional instructions which, when executed by the processor, cause the processor to perform further operations comprising: determining a logistic attribute of the future communication event based on commonly shared logistics of the series of previous communication events to yield predicted logistics; andsetting the logistic attribute of the invitation with the predicted logistics.
CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation-in-part of U.S. patent application Ser. No. 14/856,667, filed on Sep. 17, 2015, which is a continuation of U.S. patent application Ser. No. 13/942,079, filed Jul. 15, 2013, now U.S. Pat. No. 9,143,460, issued Sep. 22, 2015, which is a continuation of U.S. patent application Ser. No. 13/049,067, filed Mar. 16, 2011, now U.S. Pat. No. 8,489,615, issued Jul. 16, 2013, which claims priority to U.S. Provisional Application 61/315,719, filed Mar. 19, 2010, the contents of which are herein incorporated by reference in their entirety and for all they disclose.

Provisional Applications (1)
Number Date Country
61315719 Mar 2010 US
Continuations (2)
Number Date Country
Parent 13942079 Jul 2013 US
Child 14856667 US
Parent 13049067 Mar 2011 US
Child 13942079 US
Continuation in Parts (1)
Number Date Country
Parent 14856667 Sep 2015 US
Child 16727383 US