Embodiments of the inventive subject matter generally relate to the field of networking, and, more particularly, to dynamically optimizing delivery of multimedia content over a network.
Internet Multimedia Subsystem (IMS) is a set of specifications for implementing internet protocol (IP) based telephony and multimedia services over a network. IMS often uses Internet Engineering Task Force (IETF) protocols such as Session Initiation Protocol (SIP). IMS networks utilize presence servers to store presence information of network users. Presence information indicates a user's communication devices (e.g., a laptop, a mobile phone, etc.) and capabilities of the devices (e.g., audio quality, video quality, instant messaging, etc.). Multimedia servers use presence information to optimize delivery of multimedia content to users. For example, if a user is able to receive audio content on a low fidelity device, it is not appropriate for a multimedia server to deliver a high quality audio stream. As another example, a user is able to receive video content on both a mobile phone and a laptop. The user initiates a video download on the mobile phone. The media server uses presence information to determine that it should deliver the video content to the laptop because the laptop has better video capabilities than the mobile phone.
Embodiments include a method directed to a communications device connecting to an IMS network. In some embodiments, presence information, indicating multimedia capabilities of the communications device, can be transmitted. Multimedia content can be requested from a multimedia server to cause the multimedia server to transmit multimedia content to a communications device according to the multimedia capabilities indicated in the presence information. Multimedia capabilities of the communications device may increase, during an established session, due to connection of a peripheral device. If the multimedia capabilities increase, the presence information can be updated to indicate the increased multimedia capabilities. The updated presence information can be transmitted to cause the multimedia server to transmit the multimedia content adjusted for the increased multimedia capabilities indicated in the updated presence information.
The present embodiments may be better understood, and numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings.
The description that follows includes exemplary systems, methods, techniques, instruction sequences, and computer program products that embody techniques of the present inventive subject matter. However, it is understood that the described embodiments may be practiced without these specific details. For instance, although examples refer to IMS networks, embodiments may be implemented in other types of networks. In other instances, well-known instruction instances, protocols, structures, and techniques have not been shown in detail in order not to obfuscate the description.
Communication device capabilities may change during an established multimedia session due to connection of a peripheral device. For example, a user listens to an Internet radio service on a mobile phone through a set of headphones. Later, the user connects the mobile phone to stereo system in a car. The mobile phone can leverage the car's stereo system to present higher quality audio than it could present with the headphones. Functionality can be implemented in a communication device to detect connection of a peripheral device and determine multimedia capabilities of the peripheral device. The communication device updates its presence information to indicate the multimedia capabilities of the peripheral device. In response, a multimedia server determines multimedia capabilities indicated in the presence information have changed and optimizes delivery of multimedia content based on the updated multimedia capabilities.
At 107.1, the presence server 107 stores the presence information for the communications device 101.
At 101.2, the communications device 101 requests streaming video content from a multimedia server 105. For example, the communications device 101 sends a SIP INVITE message to the multimedia server 105 indicating the desired streaming video content.
At 105.1, the multimedia server 105 detects the request for the streaming video content from the communications device 101 and requests the communications device's 101 presence information from the presence server 107. In this example, the multimedia server 105 subscribes to the communications device's 101 presence information to cause the presence server 107 to transmit the presence information to the multimedia server 105.
At 107.2, the presence server 107 transmits presence information for the communications device 101 to the multimedia server 105.
At 105.2, the multimedia server 105 receives the presence information for the communications device 101 and determines multimedia capabilities of the communications device 101 based on the presence information. In this example, the multimedia server 105 determines that the communications device 101 is capable of presenting Moving Pictures Expert Group-4 (MPEG-4) and Windows Media Video (WMV) formats at a resolution of 480×272 pixels.
At 105.3, the multimedia server 105 transmits the streaming video content according to multimedia capabilities of the communications device 101. In this example, the multimedia server 105 transmits the streaming video content in a WMV format at a resolution of 480×272 pixels.
At 101.3, the communications device 101 presents the streaming video content on its screen.
At 103.1, a video device 103 is connected to the communications device 101. The video device 103 may be connected to the communications 101 by any suitable wired or wireless connection technology (e.g., Universal Serial Bus (USB), 802.11, Bluetooth®, High-Definition Multimedia Interface (HDMI), etc.) In this example, the video device 103 is a high definition television. Other examples of video devices include computers, monitors, projectors, etc.
At 101.4, the communications device 101 detects connection of the video device 103 and determines the video device's 103 multimedia capabilities. In this example, the video device 103 is capable of presenting MPEG-2 formats at a resolution of 1820×720 pixels.
At 101.5, the communications device 101 transmits presence information indicating the multimedia capabilities of the video device 103.
At 107.3, the presence server 107 updates presence information for the communications device 101.
At 107.4, the presence server 107 transmits the communications device's 101 updated presence information to the multimedia sever 105. In this example, the presence server 107 transmits the updated presence information to the multimedia server 105, because the multimedia server 105 had previously subscribed to the presence information.
At 105.4, the multimedia server 105 determines that the communications device's 101 multimedia capabilities have been increased based on the updated presence information.
At 105.5, the multimedia server 105 transmits the streaming video content according to the updated multimedia capabilities of the communications device. In this example, the multimedia server 105 transmits the streaming video content in a MPEG-2 format at a resolution of 1820×720 pixels.
At 101.6, the communications device 101 displays the streaming video content on the video device 103. The communications device 101 can leverage the multimedia capabilities of the video device 103 to cause the multimedia server 105 to transmit streaming video content that the communications device 101 cannot present on its own.
At block 203, the communications device determines multimedia capabilities of the peripheral device. Multimedia capabilities may comprise supported audio and video codecs, supported image formats, supported document file types, maximum screen resolution, screen aspect ratio, number of audio channels, etc. Flow continues at block 205.
At block 205, the communications device determines if the peripheral device's multimedia capabilities increase its overall multimedia capabilities. For example, the peripheral device can be a set of speakers. The speakers can present audio over five channels. If the communications device can only present audio over two channels, the multimedia capabilities of the speakers increase the overall multimedia capabilities of the communications device. If the peripheral device's multimedia capabilities increase the overall multimedia capabilities of the communications device, flow continues at block 207. If the peripheral device's multimedia capabilities do not increase the overall multimedia capabilities of the communications device, flow ends.
At block 207, the communications device updates presence information to indicate the increased multimedia capabilities. Flow continues at block 209.
At block 209, the communications device transmits the updated presence information to a presence server and flow ends. For example, the communications device transmits a REGISTER message, indicating the increased multimedia capabilities, to the presence server. Leveraging the multimedia capabilities of the peripheral device allows the communications device to receive multimedia files that it is not able to present on its own.
While delivering multimedia content to a communications device, a multimedia server may detect that the communications device's multimedia capabilities have increased. In response, the multimedia server delivers the multimedia content at a higher quality based on the increased multimedia capabilities. For example, the communications device requests a download of an audio file. The multimedia server begins transmitting a low quality version of the audio file to the communications device based on the multimedia capabilities of the device indicated in the communications device's presence information. During the download, the communications device is connected to a stereo system or other peripheral device. The communications device updates its presence information to indicate increased multimedia capabilities of the stereo system. The multimedia server begins transmitting a high quality version of the audio file.
When a peripheral device is disconnected from a communications device, the multimedia capabilities of the communications device may decrease.
At block 303, the communications device determines the peripheral device's multimedia capabilities. For example, the communications device queries the peripheral device about its multimedia capabilities. Flow continues at block 305.
At block 305, the communications device determines if overall multimedia capabilities have been decreased due to disconnection of the peripheral device. For example, a portable media device is disconnected from a television. The television was capable of presenting high definition video. If the portable media device is not capable of presenting high definition video, the multimedia capabilities have been decreased. If the overall multimedia capabilities have been decreased due to the disconnection of the peripheral device, flow continues at block 307. If the overall multimedia capabilities have not been decreased due to the disconnection of the peripheral device, flow ends.
At block 307, the communications device updates presence information to indicate the decreased overall multimedia capabilities. Flow continues at block 309.
At block 309, the communications device transmits the updated presence information to a presence server and flow ends. For example, the communications device transmits a REGISTER message, indicating the decreased multimedia capabilities, to the presence server.
While delivering multimedia content to a communications device, a multimedia server may detect that the communications device's multimedia capabilities have decreased. In response, the multimedia server delivers the multimedia content at a lower quality based on the decreased multimedia capabilities. For example, a user is using a portable satellite radio receiver to listen to a satellite radio station in a car. The portable satellite radio receiver is connected to the car's high fidelity stereo system. A high quality version of the radio station content is being delivered to the portable satellite radio receiver based on its presence information indicating the multimedia capabilities of the car's stereo system. When the user arrives at work, he disconnects the satellite receiver from the car's stereo system and continues to listen to the radio station on speakers native to the receiver. The multimedia capabilities have decreased, so the portable satellite radio receiver updates its presence information to indicate the decreased multimedia capabilities. In response, a lower quality version of the radio station content is delivered to the portable satellite radio receiver.
Although examples refer to a communications device transmitting presence information to a presence server, embodiments are not so limited. The communications device may transmit presence information to a multimedia server when it establishes a connection to the multimedia server and when presence information changes. For example, the communications device transmits presence information to the multimedia server in an SIP INVITE message.
Although examples refer to a dynamically optimizing quality of multimedia files being delivered to a communications device based on a change in the communications device's multimedia capabilities, embodiments are not so limited. For example, a user wishes to listen to a new song released by their favorite artist while she is out for her morning jog. The user requests a download of the song on a mobile phone. Once the download completes, she is able to listen to the song using a set of earphones connected to the phone. The next day, the user wishes to play the song for a friend that has not heard it. She connects the mobile phone to a high fidelity stereo system. The mobile phone determines that the multimedia capabilities of the stereo system increase the overall multimedia capabilities of the mobile phone and updates the mobile phones presence information. When the user selects the song, the mobile phone requests another download of the song. In response, a higher quality version of the song is transmitted to the mobile phone.
Embodiments may take the form of an entirely hardware embodiment, an entirely software embodiment (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.” Furthermore, embodiments of the inventive subject matter may take the form of a computer program product embodied in any tangible medium of expression having computer usable program code embodied in the medium. The described embodiments may be provided as a computer program product, or software, that may include a machine-readable medium having stored thereon instructions, which may be used to program a computer system (or other electronic device(s)) to perform a process according to embodiments, whether presently described or not, since every conceivable variation is not enumerated herein. A machine-readable medium includes any mechanism for storing or transmitting information in a form (e.g., software, processing application) readable by a machine (e.g., a computer). The machine-readable medium may include, but is not limited to, magnetic storage medium (e.g., floppy diskette); optical storage medium (e.g., CD-ROM); magneto-optical storage medium; read only memory (ROM); random access memory (RAM); erasable programmable memory (e.g., EPROM and EEPROM); flash memory; or other types of medium suitable for storing electronic instructions. In addition, embodiments may be embodied in an electrical, optical, acoustical or other form of propagated signal (e.g., carrier waves, infrared signals, digital signals, etc.), or wireline, wireless, or other communications medium.
Computer program code for carrying out operations of the embodiments may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on a user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN), a personal area network (PAN), or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
While the embodiments are described with reference to various implementations and exploitations, it will be understood that these embodiments are illustrative and that the scope of the inventive subject matter is not limited to them. In general, techniques for dynamically optimizing delivery of multimedia content over a network as described herein may be implemented with facilities consistent with any hardware system or hardware systems. Many variations, modifications, additions, and improvements are possible.
Plural instances may be provided for components, operations, or structures described herein as a single instance. Finally, boundaries between various components, operations and data stores are somewhat arbitrary, and particular operations are illustrated in the context of specific illustrative configurations. Other allocations of functionality are envisioned and may fall within the scope of the inventive subject matter. In general, structures and functionality presented as separate components in the exemplary configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements may fall within the scope of the inventive subject matter.