The present invention provides for a system to seamlessly send media/content from one user to a plurality of other users based on an intelligent collection of information such as presence, availability and location. This information is gathered as a means to provide a best path of communications to multiple users. The system delivers media to one or more recipients based on this intelligence and is dynamically updated in order to constantly provide this intelligent path. An overview of the present invention is shown in
The present invention may be operated in a variety of contexts and environments. Users 100, 104a, 104b, 104c, and 104d could operate on the same network or on different networks. Users 100, 104a, 104b, 104c, and 104d could operate any type of device, such as a mobile device (including mobile telephones and personal digital assistants), a personal computer, or an internet protocol enabled entertainment device. The devices could communicate with one another and with a network using any convenient protocol. User 100 could transmit any content users 104a, 104b, 104c, and 104d. The content could include data, music, video, photographs, or real-time streaming video (or audio).
For example, user 100 could wish to send streaming video to users 104a, 104b, 104c, and 104d. User 100 selects the other users to whom he wishes to send the streaming video (in this example, users 104a, 104b, 104c, and 104d) and transmits the video. Server 102 receives the request and determines what devices the users 104a, 104b, 104c, and 104d are presently using. Server 102 determines that user 104 is using a mobile device, users 104b and 104c are using personal computers, and user 104d is using an internet protocol enabled digital entertainment device (such as a digital video recorder). Server 102 then transmits the video to user 102's mobile device, to the personal computers being used by users 104b and 104c, and to user 104d's internet protocol enabled digital entertainment device. This may require streaming the video in a different format. Thus, server 102 could transmit a low-resolution stream to user 104a suitable for reception by a mobile device. User 104b, in contrast, could receive a high-definition video stream, since he is using a personal computer capable of displaying a high-definition video stream.
Network contact list component 208 stores the identities of each user and information about each user. The identity could be in the form of a telephone number, MSISDN, or other unique identifier. This information may include a user's location, presence, availability, time of day, and calendar information (the user's schedule). Location information could refer to the city, state, or country the user is presently in; or it could refer to whether the user is at home, work, or school. Presence information could refer to the user's presence on a network and which network the user is in. Availability may refer to whether the user is or is not available to receive content. Device information may refer to the device the user is presently operating.
Any other information about users may also be included. For example, network contact list component 208 could comprise the contact list for user 100; in that case, network contact list component 208 could also include information such as a user's address and telephone number. If network contact list component 208 also serves as user 100's contact list, this would permit the contact list to be accessible to user 100 wherever he is on the network. Network contact list component 208 would comprise a plurality of smaller contact lists for each user on the network. However, contact list component 208 may store any type of information about a user in any convenient fashion known in the art.
Network contact list 208 may communicate with user 100 via reception component 202 and transmission component 206 to provide the user 100 with information about users 104a, 104b, 104c, 104d, thus increasing the intelligence of the network. This communication could be based on information about user 100 stored in network contact list component 208. For example, user 100 might have an 8:00 AM meeting. However, due to poor traffic conditions, the user is not able to attend the meeting on time. The user communicates with reception component 202, which in turn communicates with network contact list 206. Network contact list 208 retrieves information about the other attendees and returns information about the attendees to user 100 via transmission component 202. Network contact list is able to retrieve the correct information about the attendees by consulting information about the user 100b and the world, such as the user's calendar information (meeting at 8:00 AM) and the present time of day (such as 7:15 AM.) As the user enters the message informing the other attendees about his situation, the network can use the information stored in network contact list component 208 to prompt the user 100 with potential addressees (the other attendees) and their availability. The user 100 perceives this as the network having greater intelligence.
In a second exemplary embodiment, shown by the dotted arrow in
Multiple components could also be stored on multiple servers in a distributed network to reduce the load on individual servers.
To this end, server 102 contains update component 302 in addition to network contact list component 208. For the sake of simplicity,
Update component 302 receives updated information from users 104a, 104b, 104c, and 104d. The updated information could be any information stored in network contact list component 208.
Update component 302 may receive updated information from users 104a, 104b, 104c, and 104d in a variety of ways. Update component 302 could receive updated information whenever a user 104a begins to use a particular device or ceases operation of a device. Thus, if user 104a begins using a mobile device, the mobile device transmits updated information informing update component 302 that user 104a is now using his mobile device. Similarly, once user 104a turns his mobile device off or the device becomes idle, the mobile device transmits updated information to update component 302 informing the update component that the user has stopped using the mobile device. If update component 302 has not received information that user 104a has begun using another device, update component 302 could conclude that user 104a is unavailable and can update network contact list component 208 accordingly.
In another variation, update component 302 could receive updated information on a fixed schedule. Devices could transmit updated information to update component 302 every ten or fifteen minutes, or on any other schedule. Users 104a, 104b, 104c, and 104d could also transmit updated information manually. A user 104b could, for example, enter a command into her current device informing the device that she is away and not available to receive content. The device transmits this updated information to update component 302. Update component 302 then updates network contact list component 208 with the information that user 104b is away and not available to receive content. These techniques, other techniques, or a combination of techniques known in the art could be used to transmit updated information to update component 302.
As shown in
Network server 102 receives the streaming video and identifying information in step 504. The network server 102 consults network contact list component 208 and retrieves information about users 104a, 104b, 104c, and 104d. In this case, network server 102 determines that user 104a is using a mobile device, user 104b is using a personal computer, user 104c is using an internet protocol enabled entertainment device, and user 104d is not available.
After network server 102 retrieves the information about users 104a, 104b, 104c, and 104d, in step 506, server 102 uses the information to determines the best method to transmit the video to the respective users. The best method may be a particular route through the network. The best method could also be the particular format for the content. Ultimately, the best method is the method that provides the greatest likelihood that each user 104a, 104b, 104c, 104d will receive the content properly. If necessary, server 102 translates the streaming video into a format compatible with the various devices being operated by users 104a, 104b, 104c, and 104d. This may require no translation for user 104a, since user 104a is also using a mobile device. Users 104b and 104c, however, will each receive different formats of the content suitable for a personal computer and an internet protocol enabled entertainment device, respectively.
Finally, in step 508, network server 102 transmits the video stream to users 104a, 104b, and 104c. Each user receives the respective formatted content formatted in step 504. In this fashion, users 104a, 104b, and 104c receive content from user 100 without user 100 having to figure out what devices users 104a, 104b, 104c, and 104d are presently operating or how to transmit the content to those users. This ease of use enhances user 100's network experience and reduces frustration; the process “just works” from the user's perspective.
In the example given above, user 104d is not available. In this case network server 102 may take a number of actions. Server 102 could notify user 100 that user 104d is not available and not transmit the streaming video to user 104d. Server 102 could also store a copy of the streaming video, either in a network server or on a users local storage device and transmit the video to user 104d (or notify user 104d of the video) when user 104d becomes available.
The foregoing disclosure of the exemplary embodiments of the present invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many variations and modifications of the embodiments described herein will be apparent to one of ordinary skill in the art in light of the above disclosure. The scope of the invention is to be defined only by the claims appended hereto, and by their equivalents.
Further, in describing representative embodiments of the present invention, the specification may have presented the method and/or process of the present invention as a particular sequence of steps. However, to the extent that the method or process does not rely on the particular order of steps set forth herein, the method or process should not be limited to the particular sequence of steps described. As one of ordinary skill in the art would appreciate, other sequences of steps may be possible. Therefore, the particular order of the steps set forth in the specification should not be construed as limitations on the claims. In addition, the claims directed to the method and/or process of the present invention should not be limited to the performance of their steps in the order written, and one skilled in the art can readily appreciate that the sequences may be varied and still remain within the spirit and scope of the present invention.