This application relates generally to enabling communication between parties over a network. More particularly, this application relates to determining communication modes according to receiver presence information and communication modality rules established by the sending and/or the receiving party.
There are many different modes of communication commonly used today. Examples include but are not limited to face-to-face communication, mail, telephones, electronic mail (email), text messaging, instant messaging, video conferencing, and recorded messages. When a sending party (sender) who wishes to initiate a conversation with a receiving party (receiver), the sender makes the decision as to which communication mode to use. The sender may decide to place a telephone call, for example. By picking up a telephone and dialing the telephone number corresponding to the receiver, the sender has control over how the communication will take place, specifically via a real-time, bi-directional conversation over a telecommunications network.
However, if the receiver is not in the vicinity of the called telephone, then the attempted communication will fail. To make further attempts to contact the receiver, the sender must continue to call other telephone numbers corresponding to the receiver or attempt another mode of communication, such as instant messaging or email, until the receiver is contacted. All applicable telephone numbers and other contact information corresponding to all of the available communication devices for a given receiver are typically stored in an address book or contact list on a personal computer, personal data assistant, telephone, and/or other communications device belonging to the sender. Due to the increasing number of communication devices owned by people, and due to a potentially large number of contacts, this list of contact information can become overwhelmingly large and cumbersome.
It should be appreciated that this Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
Apparatus, systems, methods, and computer-readable media are provided herein for managing communication modalities to facilitate communications between a sender and a receiver. According to embodiments described herein, a communication request is received from a sender device. A communication mode for communicating with a corresponding receiver device is selected utilizing at least one communication rule. A communications link between the sender device and the receiver device is established utilizing the selected communication mode.
According to further embodiments of the disclosure provided herein, the communication request may include a communication rule associated with the sender that specifies a desired communication mode and/or a conversation type. The conversation type may specify a real-time conversation or a cached conversation. Additional embodiments provide for at least one communication rule that may include a communication rule associated with the receiver. A determination is made as to whether a communication rule associated with the receiver and a communication rule associated with the sender can both be satisfied to select the appropriate communication mode to be used in establishing the communications link between the sender device and the receiver device. If the two rules can both be satisfied, then the communication mode for communicating with the receiver is selected according to both rules. If both rules cannot be satisfied, then the communication mode is selected according to the communication rule associated with the receiver.
Further embodiments include a sender communication device for communicating with any number of receiver communication devices. The sender communication device includes a display, a communication application, and a processor for executing the communication application. The communication application provides a graphical user interface (GUI) to a sender via the display of the sender communication device. The GUI has multiple communication mode selections associated with the receiver communication devices. Each communication mode selection includes a real-time conversation type selection and a cached conversation type selection.
Other apparatus, systems, methods, and/or computer program products according to embodiments will be or become apparent to one with skill in the art upon review of the following drawings and Detailed Description. It is intended that all such additional apparatus, systems, methods, and/or computer program products be included within this description, be within the scope of the present invention, and be protected by the accompanying claims.
The following detailed description is directed to apparatus, systems, methods, and computer-readable media for facilitating network communications between a sender and a receiver. While the subject matter described herein is presented in the general context of program modules that execute in conjunction with the execution of an operating system and application programs on a computer system, those skilled in the art will recognize that other implementations may be performed in combination with other types of program modules.
Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the subject matter described herein may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like.
The subject matter described herein may be practiced in a distributed computing environment where tasks are performed by remote processing devices that are linked through a communications network and wherein program modules may be located in both local and remote memory storage devices. It should be appreciated, however, that the implementations described herein may also be utilized in conjunction with stand-alone computer systems and other types of computing devices.
As discussed briefly above, in a typical communications scenario, the sender controls the mode of communication used to contact a receiver. The sender determines how to contact the receiver and attempts to establish a communication link with a specific device or via a specific communication mode associated with the receiver. As the number of communications devices that an average person owns or has access to increases, it becomes increasingly difficult to know how a person may be contacted. For example, a sender wanting to contact a receiver might first dial a telephone number corresponding to the receiver's home telephone. If unable to contact the receiver, the sender might next dial a telephone number corresponding to the receiver's cellular telephone. Next, the sender might attempt contact via an instant messaging (IM) application. Next, the sender might send the receiver an email. To ensure the receiver gets the message, the sender might finally call back one or more of the telephone numbers to leave a voice message for the receiver.
In all of these example communication attempts, the sender must be able to locate a number, address, or other identifier corresponding to the sender in order to call, message, or email the receiver. All of this contact information is typically stored in a paper or electronic address book associated with the sender, along with the contact information for any number of other parties with which the sender regularly communicates. Sorting through all of this contact information each time the sender attempts to contact a receiver via a different mode of communication can be cumbersome.
If the sender knows that the receiver is available via a particular communication mode then contacting the receiver becomes easier. For example, if the sender knows that the receiver is in possession of a cellular telephone, then the sender is able to look up the corresponding cellular telephone number and attempt to call the receiver with a high probability of success since the receiver is known to be in possession of the cellular telephone being called. Throughout this disclosure, the availability of a receiver and/or the ability and willingness to communicate is referred to as “presence.” Additionally, it should be understood that for the purposes of this disclosure, a communication mode includes all communication devices, communication methods, and communication transports for enabling communication between two or more parties for a given category of communication.
The presence of a receiver is sometimes tracked and available to a sender. An example of when a sender might have knowledge as to the presence of a receiver is when communicating with the receiver via an IM application. Many IM applications allow a sender to view the online/offline status of persons in their buddy list. If a person is online, then the sender at least knows that the person has logged into the IM application. However, an online presence does not necessarily mean that the receiver is available for a conversation. Rather, the receiver may have logged into the IM application and subsequently stepped away from the application or left the area without having logged out of the application.
The ability to determine the presence of a receiver may be based on the physical location of the receiver, whether the receiver has logged into a device or application, whether the receiver has used or is using a particular device or application, and whether the receiver is communicating on or logged into a particular network. A presence determination may be made according to the Session Initiation Protocol (SIP) and via an IP Multimedia Subsystem (IMS) network architecture. In this manner, multiple communication devices and network elements may detect the presence of a receiver and notify a communication management server or other network entity as to the presence status of the receiver. Any changes to the presence status are stored on a network element where they may be accessed by a communication device or communication application. According to embodiments described herein, presence information may be published in an electronic contact list such as an address book, either on a local communication device or on a network element, allowing a sender to more accurately determine the proper communication mode to choose in order to increase the likelihood of successfully contacting a receiver. However, publishing this information for every available communication mode for every contact in the contact list greatly increases the complexity and size of the contact list.
Various embodiments of the disclosure presented herein provide a sender with an efficient method for communicating with a receiver. The sender is presented with a simplified GUI to select a communication mode and a communication type. Sample GUIs illustrating the communication mode selection process will be described below with respect to
Embodiments described herein further categorize the communication modes into the following two communication types: real-time communication and cached communication. Real-time communication refers to a bi-directional conversation wherein each party receives any communication from another party substantially as the communication is sent. Very little time elapses between sending and receiving communications. Real-time conversations occur at the same rate as if the parties were communicating face-to-face. Examples include telephone conversations and IM conversations. In contrast, cached communication involves some period of time between the instant that a communication is transmitted until the instant that the receiving party receives the communication. Each communication is placed in a cache until the receiver has an opportunity to receive the message. Examples include email and voicemail. To initiate a communication, a sender selects a desired communication mode and communication type. This selection by the sender may be referred to below as a sender communication rule or a sender rule. A network communication application may determine a communication mode and establish the desired communication according to receiver presence information and any applicable sender rule, as well as any applicable receiver and network rules, as will be described in detail below.
In the following detailed description, references are made to the accompanying drawings that form a part hereof, and which are shown by way of illustration specific embodiments or examples. Referring now to the drawings, in which like numerals represent like elements through the several figures, aspects of a communication modalities management system will be described.
It should be understood that the sender communication device 108 and the receiver communication device 110 may each be any type of communication device, including but not limited to a personal computer, a cellular telephone, a personal data assistant, a television, a set-top television box, a digital video recorder, a music or other audio device, a video game console, or any other communications device capable of transmitting and/or receiving data via a network 106. The elements of the communication modalities management system 100 communicate with one another via the network 106. It should be understood that the network 106 may include a wireless network such as, but not limited to, a Wireless Local Area Network (WLAN) such as a WI-FI network, a Wireless Wide Area Network (WWAN), a Wireless Personal Area Network (WPAN) such as BLUETOOTH, a Wireless Metropolitan Area Network (WMAN) such a WiMAX network, a cellular network, or a satellite network. The network 106 may also be a wired network such as, but not limited to, a wired Wide Area Network (WAN), a wired Local Area Network (LAN) such as the Ethernet, a wired Personal Area Network (PAN), or a wired Metropolitan Area Network (MAN). The network 106 may also include the Internet such that the network communications occur via wireless or wired connections to the Internet.
The sender communication device 108 includes one or more applications for enabling communications with the receiver communication device 110. According to one embodiment, the sender communication device 108 includes a sender communication application 112, a text-based communication application 114, an audio/visual communication application 116, and an audio application 118. The text-based communication application 114 includes any application that supports transmitting and receiving text communications, including but not limited to an email application, an IM application, and a text messaging or other Short Message Service (SMS) application. The audio/visual communication application 116 includes any application that supports transmitting and receiving audio and/or video communications, including but not limited to a video conferencing application, a video chat application, and a video mail application. The audio application 118 includes any application that supports transmitting and receiving audio. Examples include telecommunications application that transmit and receive audio via a telecommunications network, including but not limited to landline and cellular telecommunications applications.
The sender communication application 112 is a communication application that operates in conjunction with or in place of the text-based communication application 114, the audio/visual communication application 116, and the audio application 118 (communication applications 114, 116, 118). The sender communication application 112 may provide a single application that is operative to provide the sender 102 with a single interface for communicating via any communication mode. As an example, to communicate with the receiver 104, the sender 102 may execute the sender communication application 112 and select a communication mode from a GUI provided by a network communication application 124 or by the sender communication application 112. This selection will be described in detail below with respect to
Alternatively, the sender communication application 112 may provide an interface between the sender 102 and the communication applications 114, 116, 118. For example, to communicate with the receiver 104, the sender 102 may execute the sender communication application 112 and select a communication mode via the GUI provided by the network communication application 124 or by the sender communication application 112. Upon selecting a communication mode that utilizes email communication, then the sender communication application 112 launches the text-based communication application 114 to draft and send the desired email to the receiver 104.
The receiver communication device 110 includes one or more applications for enabling communications with the sender communication device 108. According to one embodiment, the receiver communication device 110 includes a receiver communication application 120 and the communication applications 114, 116, 118. Similar to the sender communication application 112, the receiver communication application 120 is a communication application that operates in conjunction with or in place of the communication applications 114, 116, 118. It should be understood that the sender communication application 112 and the receiver communication application 120 may be identical communication applications operating on different devices or may be different communication applications that provide similar functionality to their respective devices. For instance, each of the communication devices 108 and 110 may contain both the sender communication application 112 and the receiver communication application 120 so that the communication devices 108 and 110 can both send and receive communications using any of the communication applications 114, 116, and 118.
The communication management server 122 is a server computer that includes the network communication application 124 for communicating with the sender communication application 112 and the receiver communication application 120 of the sender communication device 108 and the receiver communication device 110, respectively. The network communication application 124 additionally stores and retrieves receiver rules 130 and network rules 132 to and from a repository 126. The network communication application 124 analyzes the receiver rules 130 and the network rules 132 in order to select an appropriate communication mode for connecting the sender 102 to the receiver 104. A detailed description of this process will be described in detail below with respect to
Turning now to
The routine 200 begins at operation 202, where the network communication application 124 receives a communication request from the sender 102 over a first communication transport. The request is to establish a communication link with the receiver 104. As stated above, this communication request may originate from the sender communication application 112 or from a communication application 114, 116, 118. From operation 202, the routine 200 continues to operation 204, where the network communication application 124 determines presence information associated with the receiver 104. To determine the presence information, the network communication application 124 requests the information from the repository 126 where the presence information may be stored and updated within the receiver profile 128. Alternatively, the network communication application 124 may request the presence information from a third party element that is operative to track and update the presence information.
From operation 204, the routine 200 continues to operation 206, where the network communication application 124 determines whether there are any communication rules included with the communication request from the sender 102. The sender 102 may transmit a general request such as for an audio only, live conversation. Although the sender 102 uses a telephone to communicate with the sender, the network communication application 124 may select any communication mode associated with the receiver 104 that allows for real-time voice communications based on the presence information and/or a receiver rule 130. Alternatively, the sender 102 may select a specific communication mode for use without any substitution by the network communication application 124. For example, the sender 102 may know that the receiver 104 is available on both a business telephone and a cellular telephone. The sender 102 may choose to contact the receiver 104 on the cellular telephone rather than on the business telephone.
The routine 200 continues from operation 206 to operation 208, where the network communication application 124 determines whether there are any receiver rules 130 established by the receiver 104 or any network rules 132 that apply to the current communication attempt. The receiver 104 may establish a receiver profile 128. Within the receiver profile 128, the receiver 104 can create rules for receiving communications. Because parties receiving a communication decide whether or not to accept the communication, according to one embodiment, the receiver rules 130 have a higher priority than any sender rules or network rules 132. In doing so, the receiver 104 may determine whether or not to receive certain communications and the circumstances under which the communications are to be received.
Using the receiver profile 128, the receiver 104 may group potential senders 102 together and dictate how their presence information is shared with the group. For example, the receiver 104 may establish a receiver rule 130 that allows for a certain group of coworkers to be able to contact the receiver 104 on a desk telephone or via IM from 8:00 AM to 5:00 PM, Monday through Friday. Similarly, a receiver rule 130 may be established that mandates that audio communications from a certain group of friends be directed to voicemail during work hours.
Additionally, the repository 126 may include any number of network rules 132 to be used by the network communication application 124 in selecting a communication mode for establishing a communication link between the sender 102 and the receiver 104. The network rules 132 may be established by a manager of the communication modalities management system 100. According to one implementation, the network rules 132 are used by the network communication application 124 when there are no conflicting sender communication mode requests or conflicting receiver rules 130. For example, a scenario in which the network communication application 124 may use an applicable network rule 132 may occur when the sender 102 may want to reach the receiver 104 through a particular communication mode and communication type, but does not care which communication application 114, 116, 118, communication transport, or communication devices that is used to contact the receiver 104. In this situation, a network rule 132 may instruct the network communication application 124 to initiate the appropriate communication application 114, 116, 118, on the receiver communication device 110 according to the presence information associated with the receiver 104.
Returning to
However, at operation 210, if the network communication application 124 determines that communication is possible according to the applicable communication rules, then the routine 200 proceeds to operation 214, where the network communication application 124 translates the communication to a second communication transport, if applicable, according to the communication rules. It should be noted that communication may be possible even though the applicable communication rules conflict. If the rules conflict, then according to one implementation, the receiver rules 130 are given priority over any sender rules or network rules 132. At operation 214, the network communication application 124 may be required to translate the communication from the first communication transport associated with the communication medium used to transmit the communication from the sender 102 to the second transport associated with the communication medium corresponding to the selected communication mode for transmitting the communication to the receiver 104. For example, an IM from the sender 102 may be translated for delivery to an SMS application on the receiver communication device 110. From operation 214, the routine 200 continues to operation 216, where the network communication application 124 establishes a communication link between the sender 102 and the receiver 104 and the routine 200 ends.
Turning now to
According to one embodiment, when the sender 102 launches the sender communication application 112 to initiate a communication link with the receiver 104, the network communication application 124 provides the sender 102 with the GUI 300. An icon will be displayed for a given contact 302 if a network address book includes contact information associated with a receiver communication device 110 corresponding to the communication mode represented by the icon. For example, looking at the GUI 300, an audio/visual icon 304 is not displayed for Larry because the network address book does not have any contact information corresponding to an audio/visual device associated with Larry.
Alternatively, according to another embodiment, when the sender 102 launches the sender communication application 112 to initiate a communication link with the receiver 104, the sender communication application 112 provides the sender 102 with the GUI 300. An icon will be displayed for a given contact 302 if the sender 102 has applicable contact information within a local address book or contact list rather than utilizing a network address book. In this embodiment, the sender communication application 112 must query the network communication application 124 for receiver presence information, or alternatively, the sender 102 will not be made aware of the receiver presence information and the network communication application 124 will determine the presence information upon receiving the communication request from the sender 102.
In order to initiate a communication, the sender 102 may click on any of the icons corresponding to the desired communication mode. For example, to place an audio call to Larry, the sender 102 may click on the corresponding audio only icon 306. The sender 102 may get directed to Larry's voicemail if the cached communication type is all that is available. However, depending on the presence information associated with the receiver 104 and any receiver rule 130, the call may be routed to a cellular telephone because Larry is in his car and no longer at his desk.
When the sender 102 wants to request or mandate a specific communication mode and communication type, the sender may move the mouse curser over the desired communication mode icon. A pop-up 312 will list the available communication modes for both communication types, real-time and cached. As seen in
Referring now to
The mass storage device 410 is connected to the CPU 402 through a mass storage controller (not shown) connected to the bus 404. The mass storage device 410 and its associated computer-readable media provide non-volatile storage for the computer 400. Although the description of computer-readable media contained herein refers to a mass storage device, such as a hard disk or CD-ROM drive, it should be appreciated by those skilled in the art that computer-readable media can be any available media that can be accessed by the computer 400.
By way of example, and not limitation, computer-readable media may include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. For example, computer-readable media includes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid state memory technology, CD-ROM, digital versatile disks (DVD), HD-DVD, BLU-RAY, or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the computer 400.
According to various embodiments, the computer 400 may operate in a networked environment using logical connections to remote computers through the network 106. As described above with respect to
The computer 400 may connect to the network 106 through a network interface unit 406 connected to the bus 404. It should be appreciated that the network interface unit 406 may also be utilized to connect to other types of networks and remote computer systems. The computer 400 may also include an input/output controller 412 for receiving and processing input from a number of other devices, including a keyboard, mouse, or electronic stylus (not shown in
As mentioned briefly above, a number of program modules and data files may be stored in the mass storage device 410 and RAM 414 of the computer 400, including the operating system 418 suitable for controlling the operation of a networked desktop or server computer, such as the WINDOWS XP or WINDOWS VISTA operating systems from MICROSOFT CORPORATION of Redmond, Wash. Other operating systems, such as the LINUX operating system or the OSX operating system from APPLE COMPUTER, INC. may be utilized. It should be appreciated that the implementations presented herein may be embodied using a desktop or laptop computer or any other computing devices or systems or combinations thereof.
The mass storage device 410 and RAM 414 may also store one or more program modules. In particular, the mass storage device 410 and the RAM 414 may store the sender communication application 112, the text-based communication application 114, the audio/visual communication application 116, the audio application 118, the receiver communication application 120, and the network communication application 124, as well as any other program modules described above with respect to
The subject matter described above is provided by way of illustration only and should not be construed as limiting. Various modifications and changes may be made to the subject matter described herein without following the example embodiments and applications illustrated and described, and without departing from the true spirit and scope of the present invention, which is set forth in the following claims.