Exemplary embodiments relate to observing a communication session between participants in a communication environment.
Messaging and communication applications, such as instant messaging, email, and Voice over Internet Protocol (VoIP), have gained immense popularity with the growth of the Internet, Typically, participants in an instant messaging session, email exchange, or VoIP conversation are required to register with a server, and messages and voice data are exchanged via the server and a communications network.
As instant messaging, email, and VoIP have become popular forms of communication, so has the practice of “lurking”. A lurker is a user that is able to observe communications between participants in a messaging session or conversation, often without any of the participants being aware of the lurker's presence.
It should be appreciated that this Summary is provided to introduce a selection of concepts in a simplifed form, the concepts being further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of this disclosure, nor is it intended to limit the scope of the invention.
According to an exemplary embodiment, a method provides an observer device with access to a communication session between participant devices. A request for initiating a communication session between a host participant device and at least one other participant device is received. The communication session is established, via a communication network, between the host participant device and the at least one other participant device. A connection between the host participant device and the observer device is also established. The observer device is provided with access to the communication session between the host participant device and the at least one other participant device via the connection between the host participant device and the observer device. Awareness of the other participant device of the observer device's access to the communication session depends on access rules controlling access of the observer device to the communication session.
According to another embodiment, a computer program product includes a computer readable storage medium having encoded instructions stored thereon. When executed by a computer including a processor and a memory, the encoded instructions cause the computer to receive a request for initiating a communication session between a host participant device and at least one other participant device. The instructions further cause the computer to establish the communication session between the host participant device and the at least one other participant device, establish a connection between the host participant device and the observer device, and enable the observer device to access the communication session between the host participant device and the at least one other participant device via the connection between the host participant device and the observer device. Awareness of the other participant device of the observer device's access to the communication session depends on access rules controlling access of the observer device to the communication session.
According to another embodiment, an apparatus provides an observer device with access to a communication session between participant devices. The apparatus includes at least one interface for receiving a request for initiating a communication session between participant devices. The apparatus further includes a processor for controlling access to the communication session by the observer device. The communication session is established between the host device and at least one other participant device, and the processor enables the observer device to access the communication session between the host participant device and the at least one other participant device via a connection between the host participant device and the observer device. Awareness of the other participant device of the observer device's access to the communication session depends on access rules stored in the memory for controlling access of the observer device to the communication session.
Other methods, computer program products, and/or systems according to various 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 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.
Exemplary embodiments will be described more fully hereinafter with reference to the accompanying figures, in which embodiments are shown. This invention may, however, be embodied in many alternate forms and should not be construed as limited to the embodiments set forth herein.
Exemplary embodiments are described below with reference to block diagrams and/or flowchart illustrations of methods, apparatus (systems and/or devices) and/or computer program products. It should be understood that a block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and or flowchart illustrations, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, digital signal processor and/or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer and/or other programmable data processing apparatus, create means (functionality) and/or structure for implementing the functions/acts specified in the block diagrams and/or flowchart block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a processor of the computer and/or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instructions which implement the function/act as specified in the block diagrams and/or flowchart block or blocks.
The computer program instructions may also be loaded onto a computer and/or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer and/or other programmable apparatus to produce a computer-implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions/acts specified in the block diagrams and/or flowchart block or blocks.
Accordingly, exemplary embodiments may be implemented in hardware and/or in software (including firmware, resident software, micro-code, etc.) that runs on a processor such as a digital signal processor, collectively referred to as “circuitry” or “a circuit”. Furthermore, exemplary embodiments may take the form of a computer program product comprising a computer-usable or computer-readable storage medium having computer-usable or computer-readable program code embodied in the medium for use by or in connection with an instruction execution system. In the context of this document, a computer-usable or computer-readable medium may be any medium that can contain, store, communicate or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic or semiconductor system, apparatus or device. More specific examples (a non-exhaustive list) of the computer-readable medium would include the following: a portable computer diskette, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), and a portable optical and/or magnetic media, such as a flash disk or CD-ROM.
It should also be noted that in some alternate implementations, the functions/acts noted in the blocks may occur out of the order noted in the flowcharts. For example, two blocks shown in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved. Moreover, the functionality of a given block of the flowcharts and/or block diagrams may be separated into multiple blocks and/or the functionality of two or more blocks of the flowcharts and/or block diagrams may be at least partially integrated. Finally, other blocks may be added/inserted between the blocks that are illustrated.
Each of the communication devices 110 (labeled Communication Device A), 120 (labeled Communication Device B), 130 (labeled Communication Device C), and 140 (labeled Communication Device D) may be a participant device or an observer device for any given communication session. The communication session may be an instant messaging session, a VoIP conversation, or any other communication session that may be established via the network 150.
For illustrative purposes, consider communication devices 110 and 120 as participant devices and communication devices 130 and 140 as observer devices for a particular communication session. While in this example, there are two participant devices and two observer devices, it should be appreciated that there may be any number of participant devices and any number of observer devices for a given communication session.
Using devices 110 and 120 as examples of participant devices, a request for initiating a communication session may be initiated by one of these devices, and the request is received at the server/gateway 160. Similarly, using the devices 130 and 140 as examples of observer devices, a request for observing a communication session may be initiated by one or both of these devices, and the request is received by the server/gateway 170. This request may, in turn, be relayed to the server/gateway 160 via the network 150. The server/gateway 160 relays the request to at least one of the communication devices 110, 120. As an alternative, one or both of the communication devices 110, 120 may send a request via the server/gateway 160, network 150, and server/gateway 170 to invite one or both of the communication devices 130, 140 to observe a communication session. The communication device receiving a request for observing a communication session or inviting an observer device to observe a communication session may be referred to as a host participant device, while the communication device participating in the communication session with the host participant device may be referred to simply as a participant device. Although not shown in
Following this illustrative example, responsive to the request to initiate a communication session, the server/gateway 160 establishes the session between the communication devices 110 and 120. A connection is also established between one or both of the communication devices 130 and 140 and the host participant device. When the communication session is established between the participant devices, and the connection is established between the host participant device and the observer device communication device, the observer devices may be provided with access to the communication session via the connection between the observer device and the host participant device. As noted above, this access may be provided either upon invitation by one of the participant devices or by request from one of the observer devices. For example, assuming communication device 120 is a host participant device, communication device 120 may invite communication device 130 to observe a communication session between the communication device 120 and the communication device 110. Alternatively, communication device 130 may initiate a request to observe the communication session via a connection to the host participant device, which is the communication device 120 in this scenario.
According to an exemplary embodiment, the requests for initiating a communication session and for observing a communication session may occur in any order or at the same time. For example, an invitation to observe a communication session may be extended by a host participant device to an observer device before or during the communication session. As yet another alternative, an observer device may initiate a request to a host participant device to gain access to the communication session, either before or during the communication session between the participant devices.
According to an exemplary embodiment, the access provided to a communication session for an observer device is controlled by access rules that may be stored in the server/gateway 160, 170 or in the host participant device(s) providing access to the communication session. The rules indicate what sort of access an observer device is permitted to a communication session between participant devices. For example, an observer device may only be allowed to observe fee communication session, may be allowed to communicate with the host participant that invited the observer device to observe the communication session, and/or may be allowed to participate in the communication session.
The access rules may be different for each communication device and for each communication session. For example, some communication devices may be provided limited access as observer devices, depending, e.g., upon the observer device or upon the participant devices involved in a given communication session. The access rules may be predefined but modifiable for each communication device and communication session.
It should be appreciated that the order of steps shown in
According to exemplary embodiments, access rules for controlling access of an observer device to a communication session may be set up by a user using a user interface. The user interface may be included in a communication device 110, 120, 130, 140 and/or at a server/gateway 160, 170. An example of a user interface is the screen 300 shown in
Referring to
As shown in
Although
Computer program code for carrying out operations of devices, terminals, and/or systems discussed above with respect to
Exemplary embodiments are described herein with reference to message flow, flowchart and/or block diagram illustrations of methods, devices, and/or computer program products. These message flow, flowchart and/or block diagrams further illustrate exemplary operations for performing file retention in accordance with various embodiments. It will be understood that each message/block of the message flow, flowchart and/or block diagram illustrations, and combinations of messages/blocks in the message flow, flowchart and/or block diagram illustrations, may be implemented by computer program instructions and/or hardware operations. These computer program instructions may be provided to a processor of a general purpose computer, a special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other, programmable data processing apparatus, create means for implementing the functions specified in the message flow, flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer usable or computer-readable memory that may direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer usable or computer-readable memory produce an article of manufacture including instructions that implement the function specified in the message flow, flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions that execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the message flow, flowchart and/or block diagram block or blocks.
Many different embodiments have been disclosed herein, in connection with the above description and the drawings. It will be understood that it would be unduly repetitious and obfuscating to literally describe and illustrate every combination and subcombination of these embodiments. Accordingly, the present specification, including the drawings, shall be construed to constitute a complete written description of all combinations and subcombinations of the embodiments described herein, and of the manner and process of making and using them, and shall support claims to any such combination or subcombination.
In the drawings and specification, there have been disclosed embodiments of the invention and, although specific terms are employed, they are used in a generic and descriptive sense only and not for purposes of limitation, the scope of the invention being set forth in the following claims.