The 3GPP (Third Generation Partnership Project, www.3GPP.org) is a collaborative effort to produce technical specifications and proposals for third generation (3G) mobile systems. One of these proposals, the IP Multimedia Subsystem (Internet Protocol Multimedia Subsystems or IMS), is rapidly gaining acceptance by many as the de-facto standard for IP multimedia services for the 3G platform.
One of the key features of IMS is the use of the Session Initiation Protocol (SIP) for call control and signaling functions. SIP pertains to an RFC standard (RFC 3261) from the Internet Engineering Task Force (IETF), the body responsible for administering and developing widely received technical specifications that shape the Internet. SIP is also employed to facilitate the transfer of multimedia files, such as video clips, from one mobile device to another receiving equipment, such as the mobile device of another end user.
To transfer a video clip, a SIP proxy that is set up within the sender's handset is typically employed to send the video clip. For example, if the sender wants to send a video clip to a given recipient, the video clip is first loaded into the memory area of the user's handset. Using the SIP protocol, the SIP proxy therein then sends the video clip to the recipient using the recipient's identity, which is supplied by the sender.
Consider the situation wherein the user wishes to send the same video clip to a group of recipients (one-to-many) instead of to a single recipient (one-to-one). Again, the video clip is loaded into the memory area of the user's handset. The user specifies the identity of each recipient, and the SIP proxy in the user's handset sends the video clip to the recipients, one after another.
Although SIP-based approach accomplishes the one-to-many transfer of the video clip, there are many disadvantages. For example, although many modern handsets provide the ability to specify an address list, the list is typically employed for quick dialing. More specifically, the current address list cannot be employed by the SIP proxy to send the video clip to the members in the address list. Instead, the sender has to specify each recipient manually.
As another example, since the video clip is sent to the recipients one at a time, the bandwidth requirement between the sender's handset and the rest of the network is quite sizable. For example, if the user wishes to send a 5-megabyte video clip to 4 recipients, then approximately 20 megabytes worth of video data will be transmitted from the sender's mobile device. Since the wireless terminal link bandwidth (i.e., the bandwidth between the mobile device and the gateway to the rest of the network) is often the most limiting and expensive, such approach imposes a high bandwidth demand on the network's resources where the resources are most limited. This limitation severely restricts the scalability of the current approach.
As yet another example, the current approach for the one-to-many transfer of multimedia data may cause many of the recipients to receive the video clip minutes or even hours after the'start of video transfer session. For example, if a given recipient is the 10th recipient in the queue to receive the video clip, that given recipient may have to wait for the client application in the sender's handset to finish sending the video clip to the preceding nine recipients before starting to receive the video clip. For some real-time or near-real-time video streaming usage scenarios, the current approach is unsatisfactory since the time delay for recipients at or near the end of the queue would be unduly long.
The invention relates, in an embodiment, to a method for transferring a multimedia file from a user's mobile device to user equipment associated with another user. The method includes sending an invitation from the user's mobile device to the user equipment to request a transfer of the multimedia file. The method also includes setting up a bearer data channel between the user's mobile device and the equipment to facilitate the transferring of the multimedia file, the transferring is configured to be accomplished using Message Sessions Relay Protocol (MRSP). The method further includes transferring the multimedia file using the MSRP and the bearer data channel.
In another embodiment, the invention relates to a method for transferring a multimedia file from a user's mobile device to a plurality of user equipments associated with a plurality of group members of a group. The method includes obtaining group membership information from a server, the group membership information pertaining to the plurality of group members. The method also includes sending the multimedia file from an application server to at least a subset of the plurality of group members using the group membership information.
In another embodiment, the invention relates to a method for transferring a multimedia file from a user's mobile device to a plurality of user equipments associated with a plurality of group members of a group. The method includes sending a SIP (Session Initiation Protocol) message that includes the multimedia file and that specifies a group recipient to a CSCF (Call Sessions Control Function). The method also includes forwarding the SIP message that includes the multimedia file and that specifies the group recipient to an application server. The method additionally includes obtaining group membership information from a server, the group membership information pertaining to the plurality of group members. The method further includes sending the multimedia file, using SIP, from the application server to at least a subset of the plurality of group members using the group membership information.
In another embodiment, the invention relates to an article of manufacture comprising a program storage medium having computer readable code embodied therein, the computer readable code being configured to transfer a multimedia file from a user's mobile device to a plurality of user equipments associated with a plurality of group members of a group. The medium includes computer readable code for obtaining group membership information from a server, the group membership information pertaining to the plurality of group members. The medium also includes computer readable code for sending the multimedia file from an application server to at least a subset of the plurality of group members using the group membership information.
These and other features of the present invention will be described in more detail below in the detailed description of the invention and in conjunction with the following figures.
The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
The present invention will now be described in detail with reference to a few embodiments thereof as illustrated in the accompanying drawings. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art, that the present invention may be practiced without some or all of these specific details. In other instances, well known process steps and/or structures have not been described in detail in order to not unnecessarily obscure the present invention.
Various embodiments are described herein below, including methods and techniques. It should be kept in mind that the invention also covers articles of manufacture that includes a computer readable medium that stores computer readable instructions for carrying out embodiments of the inventive technique. The computer readable medium may include, for example, semiconductor, magnetic, opto-magnetic, optical, or other forms of computer readable medium for storing computer readable code. Further, the invention also covers apparatuses, such as circuits, dedicated and/or programmable, e.g., to carry out tasks pertaining to embodiments of the invention. Examples of such apparatus include a general purpose computer and/or a dedicated computing device when appropriately programmed and may include a combination of a computer/computing device and dedicated/programmable circuits adapted for the various tasks pertaining to embodiments of the invention.
In accordance with embodiments of the invention, the user may specify that a multimedia file, such as a video clip, be sent to a public or private group, and the request for one-to-many video transfer is handled by an application server in the network, thereby reducing the bandwidth requirement on the part of the sender's mobile device. In the following disclosure, reference is made to video clips and the transfer of video data. However, such reference is made to simplify understanding by discussing consistent examples and/or applications. Embodiments of the invention are applicable to the transfer of any type of data file, and in particular to the transfer of multimedia files, including video, audio, and other types of digital data.
Embodiments of the invention include techniques for ascertaining the presence status of the group members so that video clip may be prioritized for those who are present (e.g., logged on). Those members of the group being not present when the sender requests that the video clip be sent may not be furnished a copy of the video clip or, in an embodiment, may be furnished a copy of the video clip from the application server at a later time.
The video clip may be sent by the application server to each recipient using SIP. Embodiments of the invention further include the use of protocols that render the video transfer process between the application server and the recipients more efficient. These protocols include MSRP (Message Sessions Relay Protocol), RTP (Real-time transport protocol), etc.
The features and advantages of embodiments of the invention may be better understood with reference to the figures and discussions that follow.
In message 102, the GLMS may respond with a HTTP error code 401 if the user is not authorized to set up a list or if the user did not properly authenticate himself with the GLMS. The next pair of messages 102 and 103 show the situation wherein the user is properly authenticated and authorized to create a group with the GLMS using the HTTP put command (message 103). In this case, the GLMS accepts the command and the file group.xml to create the requested group. The GLMS responds with the HTTP message 201 Created (message 104).
The next pair of messages (105 and 106) show that the user may request that the GLMS create another group with a different name (i.e., friend.xml in message 105), and the GLMS responds when the group friend.xml is successfully created (HTTP 201 Created in message 106). In this example, the file friend.xml pertains to a private group (i.e., one that can be seen only by the user who sets up the group).
Step 110 and messages 111-118 show the step and messages exchanged between the user and the GLMS when the user logs on subsequently. Step 110 is a registration step, which happens when the user's cell phone is turned on. Registration step 110 is explained in greater detail in
In message 115, the user requests (via the message SIP SUBSCRIBE (group.xml)) that he wishes to subscribe to the changes to the membership data of the group, and such request is acknowledged by the GLMS via the HTTP message 200 OK (message 116). If there is a subsequent change to the membership data of the public group that is created from the file group.xml (e.g., one of the members has changed his email address), the GLMS notifies the user (via the message 117 SIP NOTIFY). The notify message is acknowledged by the mobile device in message 118, e.g., HTTP 200 OK.
The interrogating CSCF then resolves the user's domain using the data supplied by the user's mobile device. Employing its own proxy, the serving CSCF then contacts the home subscriber server (HSS) associated with the user's domain to request an authentication token (via message 202 that request a diameter MAR or Multimedia—Auth-Request). The HSS then retrieves the authentication vectors (step 250) and returns the authentication vectors to the serving CSCF (via message 203, Diameter Multimedia—Auth-Answer or MAA).
Since the user's mobile device has yet to register with the network, the CSCF will inform the user's mobile device via message 204 (401 Unauthorized RAND AUTN) that the user is currently unauthorized and CSCF wishes to receive authentication tokens from the user's mobile device in order to compare them to the authentication vectors received from the HSS. In message 205, the user's mobile device responds with the requested authentication tokens (SIP Register RES).
The CSCF then compares the authentication tokens received from the HSS against the authentication tokens received from the user's mobile device to authenticate the user's mobile device in step 260. If the comparison is successful, the CSCF then sends in message 206 a Diameter SAR (Server-Assignment-Request) to the HSS to request to store the name of the serving CSCF.
The HSS stores the serving CSCF in the user's profile (block 270) and responds in message 207 with the updated user profile. The user profile includes information regarding the user's account, such as the user's public URI, the services subscribed, whether the user's account has been barred, and service trigger information (e.g., Presence Service triggers when SIP SUBSCRIBE message with event header set to presence). At this point, registration is complete and the CSCF acknowledges the completion of the registration task in message 208 (200 OK) to the requesting user's mobile device.
If the profile of the user includes a subscription to the presence server (PS) (ascertained in step 280), the CSCF then forwards the SIP REGISTER Message to the presence server (PS) in message 209. The PS then responds in flow 210 with an acknowledgement sent to the CSCF and records the availability of the user. This allows the presence server to provide presence data pertaining to the user's mobile device to other users.
Since the requesting user is the original owner of the group in the present example, the PS will allow the user to subscribe (message 303), which is sent to the user via the CSCF (message 304).
At this point, the PS may obtain group members information and may subscribe to receive changes to the group information (block 320, which includes messages 310-321). First, the PS obtains the membership list. This membership list resides with the GLMS, where the user originally submitted the membership list (as discussed in connection with
Once the PS has the membership information, it can send the presence data pertaining to the members to the subscribing user's mobile device. Thus, the PS sends the presence data pertaining to the members of group@hp.com to the subscribing user's mobile device (via SIP NOTIFY messages 318 and 319, which may be sent multiple times to cover all the members). The receipt of the presence data is acknowledged by the user's mobile device via 200 OK messages 320 and 321, which are sent to the PS via the CSCF. Messages 318-321 may be repeated since the membership information may change more than once until the subscription expires or the subscription is canceled.
Prior to forwarding the video clip to user2's UE, the CSCF checks (block 480) on the service status of user2 to ascertain whether it is appropriate to forward the video clip to user2. For example, user2 may be delinquent in his payment for the network services, and his account may have been temporarily barred, rendering user2 ineligible for using the network in order to receive the video clip. As another example, user2 may have indicated in his profile that user2 does not wish to receive any video clip from user1 or from anyone. If it is deemed that user2 cannot receive the video clip, then user1 may be informed and the session is terminated.
On the other hand, if user2 is eligible to receive the video clip, CSCF then forwards the request from user1 (SIP INVITE (user2@hp.com msrp)) to user2's UE (message 453). User2's UE acknowledges the receipt of the request by sending a message 454 (100 Trying) to the CSCF.
At this point, user2's UE will attempt to set up (block 490) an MSRP bearer data channel to facilitate the video transfer. Using conventional TCP and MSRP set up procedures (arrow A, arrow B and arrow C), the MSRP bearer data channel is set up between user1's mobile device and user2's UE.
Once the MSRP data channel is set up, user2 sends a 200 OK message to user1, wherein the message is relayed through the CSCF (messages 457 and 458). The receipt of the okay message is acknowledged by user1's mobile device, which is sent to user2's UE via the CSCF (ACK messages 459 and 460).
At this point, the MSRP bearer data channel is created and the video transfer may begin (arrows D and E). In message 461, the video data is sent using MSRP from user1's mobile device to user2's UE (via the MSRP SEND message). User2's UE acknowledges using message 462 (MSRP OK). Note that the transfer of the video data is performed using the direct pipe between user1's mobile device and user2's UE. The, transfer may involve multiple cycles of MSRP SEND and MSRP OK messages to transfer all the video data.
Once the video clip transfer is completed, user1's mobile device informs user2's UE that it is terminating the connection. Thus user1's mobile device sends a SIP BYE message 463 to user2's UE. User2's UE acknowledges using message 200 OK (in message 464). At this point, the video clip is transferred and the MSRP bearer data channel is terminated.
Once the initial video transfer to the AS is complete, the AS may begin performing the one-to-many transfer. In step 532, the AS obtains the list membership from the GLMS. In step 534, the AS then checks with the PS for the presence status of the group members. For members who are present, the AS sends (536) the video clip the recipient members using, for example, either the MSRP bearer data channel technique or the SIP message technique if the video clip is fairly short.
Via message 501 (HTTP GET (group.xml), the AS first obtains the membership list of the group specified by user1 in the request to send video. In this example, the group is group@hp.com, which is kept at the GLMS in a group.xml list. The GLMS responds with message 502, furnishing the group membership to the AS.
Messages 503-506 are involved in ascertaining the presence status for the group members. Thus the AS sends (503) a SIP SUBSCRIBE (group@hp.com expires=0) to the PS, requesting the presence status of members of group@hp.com. The optional parameter “expires=0” sets the timer of the SUBSCRIBE message to be zero to indicate that the AS is only interested in obtaining the presence status once and is not interested in being notified if the presence status changes later. However, it is also possible to not set a timer or to set a timer to some other values so as to enable the AS to be notified of the presence status change. For example, the AS may wish to send the video clip at a later time when a member's presence status changes from “not present” to “present.” The PS group list description is described in block 320.
The PS acknowledges the subscription message with a message 200 OK (504). The PS then obtains its presence data for the members of the group and sends the presence status to the AS. For user2, the PS sends (505) the presence status via the message SIP NOTIFY (user2@hp.com). The receipt of the SIP NOTIFY message for user2 is acknowledged by the message 200 OK (message 506). Messages 505 and 506 may be repeated for user3, user4 . . . userN of the group.
In block 510, the AS uses MSRP bearer data channels to send copies of the video clip from the AS to the members that are present. The messages involved in block 510 are substantially identical to the messages discussed in connection with
In step 606, the AS obtains the member information from the GLMS. This member information enables the AS to subsequently forward copies of the video clip to the members of the group. In step 608, the AS obtains the presence status for the group members. In step 610, the AS sends the SIP message, including the video clip, to the group members one-by-one (either parallelly or serially).
Via message 654 (HTTP GET (group.xml), the AS first obtains the membership list of the group specified by user1 in the SIP request to send video. In this example, the group is group@hp.com, which is kept at the GLMS in a group.xml list. The GLMS responds with message 655, furnishing the group membership to the AS. During this time, the CSCF acknowledges the receipt of the SIP message to user 1 via message 656 (200 OK).
Messages 657-660 are involved in ascertaining the presence status for the group members. Thus the AS sends (657) a SIP SUBSCRIBE (group@hp.com expires=0) to the PS, requesting the presence status of members of group@hp.com. The optional parameter “expires=0” sets the timer of the SUBSCRIBE message to be zero to indicate that the AS is only interested in the presence status once and not interested in being notified if the presence status changes later. However, it is also possible to not set a timer or to set a timer to some other values so that the AS can be notified of the presence status change. The group list subscription is described in block 320.
The PS acknowledges the subscription message with a message 200 OK (658). The PS then obtains its presence data for the members of the group and sends the presence status to the AS. For user2, the PS sends (659) the presence status via the message SIP NOTIFY (user2@hp.com). The receipt of the SIP NOTIFY message for user2 is acknowledged by the message 200 OK (message 660). Messages 659 and 660 may be repeated for user3, user4 . . . userN of the group.
In block 670, the AS uses SIP messaging to send the video clip from the AS to the members that are present. Thus, via message 661, the AS sends the SIP message, including the video clip, with a specified recipient data (SIP Message (user2@hp.com+video clip)), to the CSCF, which facilitates the forwarding of the video clip to the specified recipient.
In block 680, the CSCF performs service control on the specified recipient (user2 in this example). In performing the service control, the CSCF checks on the service status of user2 to ascertain whether it is appropriate to forward the video clip to user2. For example, user2 may be delinquent in his payment for the network services, and his account may have been temporarily barred, rendering user2 ineligible for using the network in order to receive the video clip. As another example, user2 may have indicated in his profile that user2 does not wish to receive any video clip from user1 or from anyone. If it is deemed that user2 cannot receive the video clip, then user1 may be informed and the session is terminated.
On the other hand, if user2 is eligible to receive the video clip, CSCF then forwards the request from user1 (SIP Message (user2@hp.com+video clip)) to user2's UE (message 662). User2's UE acknowledges the receipt of the video clip by sending a message 663 (200 OK) to the CSCF. The CSCF in turn informs the AS that the video clip has been forwarded to user2 via message 664 (200 OK).
While this invention has been described in terms of several embodiments, there are alterations, permutations, and equivalents which fall within the scope of this invention. As discussed, although the examples refer to the sending of a video clip consistently to ease understanding, embodiments of the invention apply to other types of multimedia data as well. Further, there are many alternative ways of implementing the apparatuses of the present invention. It is therefore intended that the following appended claims be interpreted as including all such alterations, permutations, and equivalents as fall within the true spirit and scope of the present invention.
Number | Name | Date | Kind |
---|---|---|---|
6950662 | Kumar | Sep 2005 | B2 |
20050213580 | Mayer et al. | Sep 2005 | A1 |
20050220041 | Lin | Oct 2005 | A1 |
20060026288 | Acharya et al. | Feb 2006 | A1 |
20060045124 | Dahlstrom et al. | Mar 2006 | A1 |
20060149811 | Bennett et al. | Jul 2006 | A1 |
Number | Date | Country |
---|---|---|
WO2005027460 | Mar 2005 | WO |
WO2005029809 | Mar 2005 | WO |
Number | Date | Country | |
---|---|---|---|
20060253873 A1 | Nov 2006 | US |