Patent Publication Number: US-7904521-B2

Title: Method for transferring chat messages by establishing chat room data transfer channel

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS/INCORPORATION BY REFERENCE 
     This patent application makes reference to, claims priority to and claims benefit from Chinese Patent Application No. 200510089897.0 filed on Aug. 10, 2005. 
     FIELD OF THE INVENTION 
     The present invention relates to mobile communication field, and more particularly, to a method for transferring messages by establishing a chat room data transfer channel in an instant message (IM) chat room system based on Session Initiated Protocol (SIP)/Instant Message and Presence Leveraging Extensions (SIMPLE). 
     BACKGROUND OF THE INVENTION 
     IM services over mobile communication networks and the Internet have been put into practice. The current mobile networks that are capable of providing an IM service include 2G, 2.5G, future 3G (3rd Generation), and the IP Multimedia Subsystem (IMS) etc. 
     There are two kinds of IM systems known in the art. One is Wireless Village (WV) based, which is carried on Hyper Text Transport Protocol (HTTP)/Wireless Access Protocol (WAP)/Short Message Service Protocol (SMS), and supports 2.5G/3G network. The other is SIP/SIMPLE based, which is carried on SIP/SIMPLE, and supports IMS based IP network. 
     In a chat room of the SIMPLE IM system, there can be a scene demand from a user. Assuming an active SIMPLE IM chat room is presented, if a new user expects to enter the chat room, the SIMPLE IM chat room will be required to provide a data transfer channel for the new user, so that the new user can chat with and transmit messages to other users. 
     However, the conventional SIP/SIMPLE IM systems may not provide relating solutions or methods to transfer data between the new user and the other users after the new user enters the chat room. 
     SUMMARY OF THE INVENTION 
     An embodiment of the present invention provides a method for transferring messages by establishing a chat room data transfer channel, applicable to an instant message (IM) chat room system based on Session Initiated Protocol (SIP)/Instant Message and Presence Leveraging Extensions (SIMPLE) that includes an IM server associated with a client and a chat room server. The method includes the steps of:
     establishing a first data transfer channel after a negotiation process between the chat room server and the IM server;   establishing a second data transfer channel after another negotiation process between the IM server of the client and the client; and   transmitting the messages between the client and the chat room server through the first data transfer channel and the second data transfer channel.   

     Another embodiment of the present invention provides another method for transferring messages by establishing a chat room data transfer channel, applicable to an instant message (IM) chat room system based on Session Initiated Protocol (SIP)/Instant Message and Presence Leveraging Extensions (SIMPLE) and including a chat room server. The method includes the steps of:
     establishing a data transfer channel after a negotiation process between a client and a chat room server; and   transmitting messages between the client and the chat room server through the data transfer channel.   

    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a service flow chart showing a process of transferring messages by establishing a data transfer channel after a new user joins in a chat room according to the first embodiment of the present invention; 
         FIG. 2  is a signaling flow chart showing a process of transferring messages by establishing a data transfer channel after a new user joins in a chat room according to the first embodiment of the present invention; 
         FIG. 3  is a service flow chart showing a process of transferring messages by establishing a data transfer channel after a new user joins in a chat room according to the second embodiment of the present invention; 
         FIG. 4  is a signaling flow chart showing a process of transferring messages by establishing a data transfer channel after a new user joins in a chat room according to the second embodiment of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     In a SIP/SIMPLE chat room, all messages from users are transmitted to a chat room server first, and then distributed by the chat room server to other users. Thus, it is necessary to establish a data transfer channel between a new user and the chat room server for transmitting messages. 
     Refer to  FIG. 1 , which is a service flow chart showing a process of transferring messages by establishing a data transfer channel after a new user joins in a chat room according to a first embodiment of the present invention. Client A and client B represent clients for two users expecting to enter the SIMPLE IM chat room. The chat room server is a SIMPLE IM server where the chat room system with the function of chat room controlling locates. The IM server A represents a home SIMPLE IM server of the client A and has the function of chat room participating. The IM server B represents a home SIMPLE IM server of the client B and has the function of chat room participating. The client A and the chat room belong to different home networks, while the client B and the chat room belong to the same home network. The chat room server and the IM server B are two logical entities that can be located in the same physical entity or in two different physical entities. 
     Referring to  FIG. 1 , the process of transferring messages by establishing a data transfer channel after a new user joins in a chat room according to the first embodiment of the present invention includes the following steps: 
       101 . If a user A expects to enter the chat room, it may send a request message for joining the chat room to the corresponding home IM server A through the client A. 
       102 . The IM server A transfers the request message to the chat room server upon receiving it. 
       103 . The chat room server authenticates the user A, and if it gets authenticated, the chat room server admits the user A to enter the chat room; otherwise, refuse the user A and the latter case will not be discussed here. 
       104 . The IM server A and the chat room server establish an MSRP (Message Session Relay Protocol) transfer channel by SIP/SDP (Session Description Protocol) signaling negotiation, so that the IM server A and the chat room server can transfer data directly to each other based on the negotiated information such as the port number and the media transfer type. Also, the client A and the IM server A establish an MSRP transfer channel by SIP/SDP signaling negotiation, so that they can transfer data directly to each other based on the negotiated information such as the port number and the media transfer type. 
       105 . The client A transfers chat messages to the chat room server in the following manner. First, the client A transmits the chat messages of the user A to the IM server A by using the MSRP SEND signaling. And then, the IM server A transfers the chat messages of the user A to the chat room server using the MSRP SEND signaling. Here, the IM server A serves as an MSRP transfer point. 
       106 . Further, the chat room server distributes the chat messages of the user A to other clients of users in the chat room, wherein the data transfer channel for distributing can multiplex the chat room server and the existing data transfer channels of the other users in the chat room (not shown in the figure). 
     Similarly, if a user B expects to enter the chat room, it is also necessary to establish independent MSRP channels between the IM server B and the chat room server as well as between the IM server B and the client B. The user B can transfer chat messages to the chat room server in the following manner. 
     First, the client B transmits the chat messages of the user B to the IM server B by using the MSRP SEND signaling. 
     And then, the IM server B transfers the chat messages of the user B to the chat room server using the MSRP SEND signaling. Here, the IM server A serves as an MSRP transfer point. Later, the chat room server distributes the chat messages of the user B to other clients of users in the chat room. 
     Referring to  FIG. 2 , a process of transferring messages by establishing a data transfer channel after a new user joins in a chat room according to the first embodiment of the present invention includes the following steps: 
       201 . The chat room server has at least one active chat session. 
       202 . The SIP/SIMPLE IM client A sends a SIP INVITE request message to a home SIP core network A upon receiving the request for joining the chat room from the user A. In the SIP INVITE request message, the Request-URI includes the chat room identification, and the SDP parameter carries the transfer capacity and negotiation parameter information of the client A, such as the IP address, the port number and the supported media transfer type. 
     In a case that the user A is invited to join the chat room, the chat room server will send a SIP INVITE invitation message to the Client A associated with the user A after receiving a SIP REFER request message sent from other users for inviting the user A. The SIP REFER request message can include the URI information of the invited user A and the URI information of the chat room. The present embodiment will be further described below by taking an example of the case that the user joins the chat room actively. 
       203 . The core network A sends a SIP  100  trying response message to the client A so as to acknowledge the receipt of the request message. 
       204 . The core network A transfers the SIP INVITE invitation message in step  202  to the IM server A. 
       205 . The IM server A sends a SIP  100  trying response message to the core network A so as to acknowledge the receipt of the SIP INVITE invitation message. 
       206 . The IM server A reads the chat room identification carried in the SIP INVITE invitation message and determines that the chat room belongs to the core network B, and then sends a new SIP INVITE message to the core network A. The new SIP INVITE message includes a chat room identification in the Request-URI and carries the transfer capacity and negotiation parameter information of the client A in the SDP parameter, such as the IP address, the port number and the supported media transfer type. 
       207 . The core network A sends a SIP  100  trying response message to the IM server A so as to acknowledge the receipt of the SIP INVITE message of step  206 . 
       208 . The core network A transfers the SIP INVITE message of step  206  to the core network B. 
       209 . The core network B sends a SIP  100  trying response message to the core network A so as to acknowledge the receipt of the SIP INVITE message. 
       210 . The core network B transfers the SIP INVITE message of step  206  to the chat room server. 
       211 . The chat room server sends a SIP  100  trying response message to the core network B so as to acknowledge the receipt of the SIP INVITE message. 
       212 . The chat room server authenticates the client A, and if it cannot get authenticated, the service process ends; otherwise, if authenticated, the chat room server admits the user A to enter the chat room and sends a SIP  200  OK response message to the core network B. The SIP  200  OK response message includes an SDP parameter carrying the transfer capacity and negotiation parameter information of the chat room, such as the IP address, the port number and the supported media transfer type. 
       213 . The core network B transfers the SIP  200  OK response message of step  212  to the core network A. 
       214 . The core network A transfers the SIP  200  OK response message of step  212  to the IM server A. 
     With the above steps  206 - 214 , it accomplishes the negotiation process of establishing the MSRP channel between the home IM server of the user A (i.e. the IM server A) and the chat room server. 
       215 . The IM server A sends a new SIP  200  OK message to the core network A, wherein the SDP parameter carrying the transfer capacity and negotiation parameter information of the IM server A available to the client A, such as the IP address, the port number and the supported media transfer type. 
       216 . The core network A transfers the SIP  200  OK response message of step  215  to the client A. 
     At this point, the above steps accomplish the negotiation process of establishing the MSRP channel between the client A and the home IM server of the user A (i.e. the IM server A). 
       217 . The client A sends a SIP ACK acknowledge message to the core network A so as to acknowledge the receipt of the SIP  200  OK response message of step  216 . 
       218 . The core network A transfers the SIP ACK acknowledge message of step  217  to the IM server A. 
       219 . The IM server A sends a SIP ACK acknowledge message to the core network A so as to acknowledge the receipt of the SIP  200  OK response message of step  214 . 
       220 . The core network A transfers the SIP ACK acknowledge message of step  219  to the core network B. 
       221 . The core network B transfers the SIP ACK acknowledge message of step  219  to the chat room server. 
     At this point, the client A can send chat messages through the following two steps.
     First, the user A sends the chat messages to the IM server A by using the MSRP SEND signaling.   And then, the IM server A transfers the chat messages of the user A to the chat room server using the MSRP SEND signaling. Here, the IM server A serves as an MSRP transfer point. Later, the chat room server distributes the chat messages of the user A to other users in the chat room.   

     Likewise, messages sent from other users to the user A will be first transmitted to the IM server A through the MSRP channel by the chat room server, and then transferred to the client A from the IM server A through the MSRP channel. 
       222 . Similarly, if a user B expects to enter the chat room, it is also necessary to establish independent MSRP channels between the IM server B and the chat room server as well as between the IM server B and the client B. The signaling process is similar to that discussed above, except that the step of transferring messages between the core network B and the core network A can be omitted since the client B and the chat room server belong to the same home network. The rest are similar to steps  202 - 221 . 
     At this point, the client B can send chat messages through the following two steps.
     First, the user B sends the chat messages to the IM server B by using the MSRP SEND signaling.   And then, the IM server B transfers the chat messages of the user B to the chat room server using the MSRP SEND signaling. Here, the IM server A serves as an MSRP transfer point. Later, the chat room server distributes the chat messages of the user B to other users in the chat room.   

     Also, messages sent from other users to the user B can be first transmitted to the IM server B through the MSRP channel by the chat room server, and then transferred to the client B from the IM server B through the MSRP channel. 
       FIG. 3  is a service flow chart showing a process of transferring messages by establishing a data transfer channel after a new user joins in a chat room according to a second embodiment of the present invention. 
     Referring to  FIG. 3 , client A and client B represent clients for two users expecting to enter the SIMPLE IM chat room. The chat room server is a SIMPLE IM server where the chat room system with the function of chat room controlling locates. The IM server A represents a home SIMPLE IM server of the client A and has the function of chat room participating. And, the IM server B represents a home SIMPLE IM server of the client B and has the function of chat room participating. The client A and the chat room belong to different home networks, while the client B and the chat room belong to the same home network. The chat room server and the IM server B are two logical entities that can be located in the same physical entity or in two different physical entities. 
     As shown in  FIG. 3 , the service flow of the second embodiment includes the following steps. 
       301 . If a user A expects to enter the chat room, it may send a request message for joining the chat room to the corresponding home IM server A through the client A. 
       302 . The IM server A transfers the request message to the chat room server upon receiving it. 
       303 . The chat room server authenticates the user A, and if it gets authenticated, the chat room server admits the user A to enter the chat room; otherwise, refuse the user A and the latter case will not be discussed here. 
       304 . The client A and the chat room server establish an MSRP transfer channel between by SIP/SDP signaling negotiation, so that the client A and the chat room server can transfer data directly to each other based on the negotiated information such as the port number and the media transfer type. 
       305 . The user A transfers chat messages to the chat room server in such a manner that the user A transmits the chat messages directly to the chat room server by using the MSRP SEND signaling. 
       306 . Further, the chat room server distributes the chat messages of the user A to other users in the chat room, wherein the data transfer channel for distributing can multiplex the chat room server and the existing data transfer channels of the other users in the chat room (not shown in the figure). 
     Similarly, if a user B expects to enter the chat room, it is also necessary to establish a direct MSRP channel between the client B and the chat room server. The user B transfers chat messages directly to the chat room server by using the MSRP SEND signaling. And then, the chat room server distributes the chat messages of the user B to other users in the chat room. 
       FIG. 4  is a signaling flow chart showing a process of transferring messages by establishing a data transfer channel after a new user joins in a chat room according to the second embodiment of the present invention. Referring to  FIG. 4 : 
       401 . The chat room server has one active chat session. 
       402 . The SIP/SIMPLE IM client A sends a SIP INVITE request message to a home SIP core network A upon receiving the request for joining the chat room from the user A. In the SIP INVITE request message, the Request-URI includes the chat room identification, and the SDP parameter carries the transfer capacity and negotiation parameter information of the client A, such as the IP address, the port number and the supported media transfer type. 
     In a case that the user A is invited to join the chat room, the chat room server will send a SIP INVITE invitation message to the Client A associated with the user A after receiving a SIP REFER request message sent from other users for inviting the user A. Wherein, the SIP REFER request message includes the URI information of the invited user A and the URI information of the chat room. The present embodiment will be further described by taking an example of the case that the user joins the chat room actively. 
       403 . The core network A sends a SIP  100  trying response message to the client A so as to acknowledge the receipt of the request message. 
       404 . The core network A transfers the SIP INVITE invitation message in step  402  to the IM server A. 
       405 . The IM server A sends a SIP  100  trying response message to the core network A so as to acknowledge the receipt of the SIP INVITE invitation message. 
       406 . The IM server A reads the chat room identification carried in the SIP INVITE invitation message and determines that the chat room belongs to the core network B, and therefore transfers the SIP INVITE message of step  402  to the core network A. 
       407 . The core network A sends a SIP  100  trying response message to the IM server A so as to acknowledge the receipt of the SIP INVITE message. 
       408 . The core network A transfers the SIP INVITE message of step  402  to the core network B. 
       409 . The core network B sends a SIP  100  trying response message to the core network A so as to acknowledge the receipt of the SIP INVITE message. 
       410 . The core network B transfers the SIP INVITE message of step  402  to the chat room server. 
       411 . The chat room server sends a SIP  100  trying response message to the core network B so as to acknowledge the receipt of the SIP INVITE message. 
       412 . The chat room server authenticates the client A, and if it cannot get authenticated, the service process ends; otherwise, if gets authenticated, the chat room server admits the user A to enter the chat room and sends a SIP  200  OK response message to the core network B. The SIP  200  OK response message includes an SDP parameter carrying the transfer capacity and negotiation parameter information of the chat room server, such as the IP address, the port number and the supported media transfer type. 
       413 . The core network B transfers the SIP  200  OK response message of step  412  to the core network A. 
       414 . The core network A transfers the SIP  200  OK response message of step  412  to the IM server A. 
       415 . The IM server A transfers the SIP  200  OK response message of step  412  to the core network A. 
       416 . The core network A transfers the SIP  200  OK response message of step  412  to the client A. 
     At this point, the negotiation process of establishing the MSRP channel between the client A and the chat room server is accomplished. 
       417 . The client A sends a SIP ACK acknowledge message to the core network A so as to acknowledge the receipt of the SIP  200  OK response message of step  416 . 
       418 . The core network A transfers the SIP ACK acknowledge message of step  417  to the IM server A. 
       419 . The IM server A transfers the SIP ACK acknowledge message of step  417  to the core network A. 
       420 . The core network A transfers the SIP ACK acknowledge message of step  417  to the core network B. 
       421 . The core network B transfers the SIP ACK acknowledge message of step  417  to the chat room server. 
     At this point, the client A can send chat messages by the following two steps: the user A sends the chat messages directly to the chat room server by using the MSRP SEND signaling; and then the chat room server distributes the chat messages of the user A to other users in the chat room. Likewise, messages sent from other users to the user A can be first transmitted to the IM server A through the MSRP channel by the chat room server. 
       422 . Similarly, if a user B expects to enter the chat room, it is also necessary to establish a direct independent MSRP channel between the IM server B and the chat room server. The signaling process is similar to that discussed above, except that the step of transferring messages between the core network B and the core network A can be omitted since the client B and the chat room server belong to the same home network. The rest steps are similar to steps  402 - 421 . 
     At this point, the client B can send chat messages by the following two steps: the user B sends the chat messages directly to the chat room server by using the MSRP SEND signaling; and then the chat room server distributes the chat messages of the user B to other users in the chat room. 
     Also, messages sent from other users to the user B can be transmitted directly to the client B through the MSRP channel by the chat room server 
     The above embodiments describe the process of establishing a direct data transfer channel between the user and the chat room server when the user A requests to join the chat room actively. Still, there is another embodiment that the user A is to join the chat room at invitations from other users or from the server. Likewise, there are two manners. 
     In the first manner, it may establish a transfer channel between the client A and the home IM server A and another transfer channel between the home IM server A and the chat room server. The home IM server A can transfer the messages between the client A and the chat room server. 
     In the second manner, it may establish a direct transfer channel between the client A and the chat room server. 
     It can be seen from the above descriptions that in both the two solutions the new user can obtain an MSRP data transfer channel to send the chat messages to the chat room server, and the chat room server can transfer messages from other users to the new user through the data transfer channel with the user client. Thereby the present invention provides a complete solution for the chat room service. 
     In summary, in the first solution, the presently described technology establishes two independent MSRP transfer channels, one is from the chat room server to the IM server and the other is from the IM server to the user client and when transferring data between the client and the chat room server, the IM server serves as an MSRP transfer point. In Contrast, in the second solution, the presently described technology establishes a direct MSRP transfer channel between the user client and the chat room server. Therefore, the following comparisons can be given. 
     From the aspect of service control capacity, the first solution is more powerful, because the home server of the user can store information such as user service configuration information, user private performance parameter, block list/reject list, which can be employed to provide specific functions of user personal control, such as informing a new user whether there is any user in his block list and filtering chat messages. 
     From the aspect of transfer efficiency, however, the second solution is higher, because it does not require a home server of the user to transfer messages but provides direct connection with the chat room server instead. 
     It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit and the scope of the invention. Thus, it is intended that the present invention covers the modifications and variations of this invention provided they come within the scope of the appended claims and their equivalents.