# Patent

## Title
Method and apparatus for instant messaging

## Abstract

A method and apparatus for stored message delivery are taught. The method and apparatus can be configured to accomplish the steps of receiving a Session Initiation Protocol (SIP) message, as a received SIP message, encapsulating the received SIP message in a Message Session Relay Protocol (MSRP) message, as an encapsulated SIP message; and transmitting the encapsulated SIP message to an intended recipient.

## Background
CROSS REFERENCE TO RELATED APPLICATION
This invention is related to and claims the priority of U.S. Patent Application No. 60/722,054, filed Sep. 30, 2005, the disclosure of which is hereby incorporated by reference in its entirety.


BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention is related to instant messaging using protocols such as SIP (Session Initiation Protocol) and MSRP (Message Session Relay Protocol), and more particularly to the storage of SIP and MSRP messages as encapsulated MSRP messages.
2. Description of the Related Art
SIP instant messages can be sent to users, whether or not the user is online. A SIP MESSAGE request can be used to carry the instant message. This is sometimes called page mode, because each instant message is not related to other instant messages. When it is desirable to establish a session of instant messages, SIP can be used to establish a session and MSRP is used to carry the actual instant messages within that session. This can be useful for users who are trying to follow the flow of a conversation, because the relation between instant messages can identify them as corresponding to a given conversation.
When a user A sends a SIP instant message to user B, and B is offline, the message is conventionally stored in an application server. Previously there was not a mechanism whereby the user could retrieve the user's stored messages without missing important bits of information (sender, date/time, session, and the like). In earlier solutions if the sender used SIP to send messages to a user who is offline, the actual contents of the instant messages were stored in a store message application server. Subsequently, when the recipient was online and used MSRP to retrieve the stored messages, the recipient got the actual instant messages but did not get the identity (for example, SIP URI) of the sender, nor the date/time information when the message was sent.
Additionally it was not possible for the recipient to distinguish between messages belonging to a SIP session of instant messages and those messages deposited in the store message application server by using SIP MESSAGE requests. This occurred because the identity (e.g., SIP URI) of the person who deposited the message in the store message application server was only present in the SIP requests. When the text of the message was stored, the header information was not retained. Moreover, the MSRP headers do not contain any relation to or indication of those SIP headers.
Various conventional systems exist for retrieving deferred messages. For example, a time stamp can be added to the stored messages by an instant messaging service. SIP or MSRP can be used to retrieve the stored messages. It has been proposed that if messages contained metadata, the user could better manage deferred instant messages. However, no realistic solutions have been provided.
SUMMARY OF THE INVENTION
An embodiment of the present invention provides, for example, a method for stored message delivery including receiving a SIP or MSRP message, encapsulating the received SIP or MSRP message in another MSRP message, and transmitting the encapsulated SIP or MSRP messages to an intended recipient.
Another embodiment of the present invention provides, for example, an apparatus for use as a store message application server. The apparatus can include a reception module configured to receive a SIP message, an encapsulation module configured to encapsulate the received SIP message in an MSRP message, and a transmission module configured to transmit the encapsulated SIP message to an intended recipient.
Yet another embodiment of the present invention provides, for example, an apparatus for use as a store message application server including means for receiving a SIP message. The apparatus can also include means for encapsulating the received SIP message in an MSRP message and means for transmitting the encapsulated SIP message to an intended recipient.
An additional embodiment of the present invention provides, for example, a computer program embodied on a computer readable medium for providing stored messages, comprising a computer program controlling a computer to receive a SIP message, encapsulate the received SIP message in an MSRP message, and transmit the encapsulated SIP message to an intended recipient.



BRIEF DESCRIPTION OF THE DRAWINGS
For proper understanding of the invention, reference should be made to the accompanying drawings
FIG. 1 shows a diagram flow that exemplifies the sequence of messages.
FIG. 2 shows various levels of encapsulation of the different messages, when the user retrieves his unread instant messages from the store message application server.
FIG. 3 is a depiction of an example method according to the present invention.
FIG. 4 is a depiction of a sample apparatus according to the present invention.



DESCRIPTION OF THE PREFERRED EMBODIMENT(S)
Certain embodiments of the present invention can provide a SIP mechanism to retrieve instant messages that were previously deposited in an application server, which was acting as a message store application server. The invention can help to achieve these and other goals by maintaining the relevant headers of the SIP message by encapsulating it as a message/sip, for example, as defined in RFC 3261 Section 27.5, or as a message/sipfrag, as defined in RFC 3420, and then sending it as the payload of an MSRP SEND request. Additionally, a message store application server can then add a header to the MSRP SEND message and to the encapsulated SIP message containing the time and date when the message was received.
More particularly, the invention may be configured to insert a date/time header in every stored SIP and MSRP message. The invention can use novel semantics for the encapsulation of the stored instant messages, and the message/sip and message/sipfrag may be used in MSRP, outside of its original context. The invention can provide a novel and unobvious method of delivering encapsulated SIP messages, including the header information, as the payload of an MSRP message. The invention can also provide novel semantics for encapsulating MSRP messages as message/msrp.
The invention, therefore, can relate to an area of instant messaging based upon SIP/SIMPLE technology. SIP/SIMPLE develops services, mainly instant messaging and presence, based on the application of SIP and specifications developed within the IETF IMPP working group. SIP/SIMPLE IM in Open Mobile Alliance (OMA), which is mainly driven by operator service and business requirements, is also based on SIP/SIMPLE technology.
The invention can also provide a method and apparatus whereby a user can contact his mail server and retrieve existing instant messages already deposited in the store message application server. The instant messages can be deposited in the store message application server using SIP MESSAGE requests (as per IETF RFC 3428) or MSRP messages (e.g., MSRP SEND requests) that are part of a SIP session. The metadata and/or header information can enable the user to determine the source of the message, the time at which message was left, and so forth.
When a phone switches on, the phone can send a subscription to a message-summary event package, and receive a notification with the pending message; according to RFC 3842 “A Message Summary and Message Waiting Indication Event Package for the Session Initiation Protocol (SIP).” This mechanism can also be applied to voice mail, fax and the like. The Notifier (which may be an SIP User Agent acting on behalf of the user's messaging system) can send a message summary of the stored messages in the body of a SIP NOTIFY request, e.g. “there are 4 old messages and 3 new messages waiting for you.”
After the summary counts, message headers such as To, From, Date, Subject, and Message-ID (In SIP this may map to Call-ID) may be appended to each message.
According to certain embodiments of the invention, once the User Equipment (UE) is notified, it can send an INVITE request to the message store application server including the type of desired media to retrieve (for the purpose of this invention, the INVITE request includes a Session Description Protocol (SDP) description of messaging with MSRP, but may also include other media types different than messaging).
Once a SIP session is established with the MSRP media, all stored messages may be transferred from the server to the UE. Each stored message may be sent in a separate MSRP SEND request (which may occur before chunking of MSRP SEND requests takes place), and each one may be identified by its own original Message-ID. In this way the user can retrieve all the messages at one time, but still may be able to classify all the messages by Message-ID.
In some solutions the original sender identification (user information) is necessarily lost because the MSRP headers do not contain any relation to the SIP URI that deposits the message. Therefore, the association of senders to their particular messages already available in messaging application inboxes such as e-mail, instant messaging, Multimedia Messaging Service (MMS), and the like, can be lost. This also applies to SIP MESSAGE requests, in that they can be sent but the recipient will not be able to identify the sender, because the messages are sent to the store message application server.
In some embodiments, the invention provides a mechanism whereby the user, when he wants to retrieve his stored instant messages, establishes an MSRP session with his store message application server. The store message Application Server (AS) may encapsulate each received session or standalone MESSAGE in an MSRP SEND request. Thus, each MSRP SEND request may represent a SIP session or MESSAGE that contains a payload (e.g. one or more MSRP SEND requests, or some other type in the case of message).
The invention is further described with the help of FIG. 1. According to this figure, Alice can send an Instant Message to Charlie using a SIP MESSAGE request 1. This MESSAGE request can contain some text, named here Text #1. Assuming that Charlie is offline, the message may be received and stored at the store message AS. The store message AS may acknowledge the SIP MESSAGE request 1 with a SIP 202 (Accepted) response 2.
Another user, Bob, can create a SIP session by sending an INVITE request 3 to Charlie. The INVITE request can contain a session description that includes an MSRP descriptor for the purpose of sending session-based instant messages. Since Charlie is offline, the store message AS can intercept the INVITE request and establish the session. The store message AS can acknowledge the SIP INVITE request 3 with a SIP 200 (OK) response 4. Then Charlie can deposit two messages in Charlie's messaging account, using MSRP SEND requests 5, 7, including Text #2 and Text #3, respectively, which can be acknowledged by MSRP 200 (OK) responses 6 and 8 respectively. Bob may conclude his session with a SIP BYE request 9 that may be acknowledged by a SIP 200 (OK) response 10.
At a later stage, Charlie comes online, and then may be notified that there are some messages in his inbox (RFC 3842 may provide some examples ways of notifying Charlie). Charlie may decide to retrieve his pending instant messages. Charlie then may establish a SIP session to his store message AS (SIP INVITE request 11). The store message AS may acknowledge with a SIP 200 (OK) response 12. The reverse is also possible: the store message AS may contact Charlie when it discerns that he is online.
Then the store message AS may take the stored MESSAGE that was sent as SIP MESSAGE request 1, keep the relevant header fields of the SIP MESSAGE request 1 (e.g., From, To, Call-ID, P-Asserted-Identity, etc.), encapsulate it as either a message/sip (Section 27.5 of RFC 3261) or message/sipfrag (RFC 3420), and send it as the payload of a MSRP SEND request 13. Charlie may acknowledge by sending an MSRP 200 (OK) response 14 to the store message AS. The session may be concluded by the store message AS sending a SIP BYE request 17 to Charlie, and Charlie responding with a SIP 200 (OK) response 18 to the store message AS. Other encapsulation techniques are also possible and permitted. The message may be encapsulated before or after being stored.
Similarly, the store message AS may take the stored SIP INVITE request 3, the stored MSRP SEND requests 5, 7, and the store SIP BYE request 9, and encapsulates them in another MSRP SEND request 15. The message type for the encapsulating MSRP SEND 15 may be set to message/sip or message/sipfrag.
On sending data to Charlie, the store message AS may add a header that contains the time and date the message was received, for every SIP and MSRP encapsulated message. The Call-ID (in SIP) and Message-ID in MSRP may be kept intact, thereby providing correlation with notifications.
As illustrated in FIG. 2, for Charlie, every standalone message (e.g., SIP MESSAGE requests) or complete session (e.g., from SIP INVITE until SIP BYE requests, including all the MSRP messages) may be encapsulated in an MSRP SEND message 13, 15. Each MSRP SEND message may contain a content type of message/sip or message/sipfrag. Thus, all the relevant SIP headers may be encapsulated, along with the inner MSRP SEND messages that carry the stored instant messages. This may allow Charlie to determine the origin, time and date, of a message that was left.
The invention, therefore, can include numerous features. For example, one MSRP SEND message can be associated with one stored session of instant messages, including the SIP INVITE and BYE requests and all the MSRP SEND requests containing instant messages. The one MSRP SEND message can be associated with one stored standalone SIP MESSAGE request containing an instant message. The store message AS can insert a date/time header in stored SIP and MSRP messages. The store message AS can keep the existing call-ID/message-ID to allow correlation with RFC 3842.
The present invention also provides general semantics for the encapsulation of stored instant messages, as well as a method and apparatus that enable recipients to gather information about senders, time/date of delivery, separate different sessions, and keep sessions of instant messages together. The present invention also provides for a new use of message/sip and message/sipfrag in MSRP, outside its original context.
It is important to note that certain embodiments of the present invention are also applicable to offline message “push” delivery mechanisms. In push delivery systems, the store messaging application server may know when an offline user gets back online, e.g. either by SIP SUBSCRIBE/NOTIFY and/or any other mechanism. The offline user can get back online, and the stored message application server can immediately establish an MSRP session with the user and deliver the stored messages to the user.
Although the present invention is described in terms of a situation in which the original SIP message is sent to an off-line user, the invention is of broader scope. The invention also includes, for example, the situation in which a SIP message is simultaneously transmitted to a user and stored or archived for later reference.
An embodiment in which the message is archived simultaneously with user reception may be useful for a variety of purposes. For example, a user of a mobile terminal may prefer to store messages separate from the mobile terminal for information security or reliability reasons. Other reasons for simultaneously archiving the stored messages may include the ability to access the stored messages from a plurality of terminals. For example, a user may wish to be able to access stored messages through a wired connection.
A user wishing to obtain a stored message can establish a session with a store message application server. The user can then request stored messages. The store message application server can deliver the stored messages encapsulated in one or more MSRP messages. Thus, the original header information including the identity of the sender, the date and time the message was sent, and the like can be preserved for the user's reference.
Although reference is made to delivery of the message, there is no requirement that the system ensures delivery, or confirms delivery. Thus, the system can, in certain embodiments, transmit the encapsulated message and assume that delivery occurs.
A message in accordance with the present invention is not limited to text messages, but may include, for example, image, audio, video components, or a combination of any of them.
FIG. 3 depicts a method according to certain embodiments of the present invention. As shown in FIG. 3, a SIP or MSRP message 31 can be received in step 33. The message 31 can be a SIP message, either a single SIP message or part of a SIP session, or it can be an MSRP message which is part of a SIP session. The SIP message 31 can contain header information including identity of sender, time sent, date sent, and so forth.
After the SIP or MSRP message 31 is received, it may be encapsulated within an MSRP message in the encapsulate step 35. The encapsulation can be done immediately on receipt, or there may be some delay between receipt and encapsulation. The encapsulation can encapsulate a single SIP message in a single MSRP message or can encapsulate an entire SIP session, including the exchanged MSRP messages in that session, in a single MSRP message.
After the SIP or MSRP message 31 has been encapsulated, it may be transmitted to its intended destination in transmit step 37. The intended destination can be a target user. As used herein, the term “user” can refer to equipment operated by, assigned to, or belonging to the user. Accordingly, the transmission may be to a user's mobile device, such as a personal digital assistant, mobile computer, wireless networked media device, or cell phone. Transmit step 37 may occur immediately after encapsulation, but may be delayed. In certain embodiments, transmission occurs when it is determined that a target user who was previously off-line is now on-line. The target user may request the messages, or the messages may be sent automatically to the user.
FIG. 4 depicts an apparatus according to certain embodiments of the present invention. As shown in FIG. 4, a SIP or MSRP message 41 can be received in a reception module 43. The message 41 can be either a single SIP message or part of a SIP session, or it can be an MSRP message which is part of a SIP session. The SIP message 41 can contain header information including identity of sender, time sent, date sent, and so forth.
The reception module can be located in a store message application server. The store message application server may be connected to one or more networks. The store message application server can be equipped with a transceiver for communicating with the one or more networks. The reception module can also include a general purpose computer (not shown) for carrying out storing, notifying, receiving, encapsulating, and transmitting steps. The general purpose computer can include memory. The memory can include RAM and ROM. The memory can be a digital memory embodied on optical or magnetic media. The computer can communicate using a network interface card, or other device for connecting to a network. The general purpose computer may employ any suitable hardware to accomplish the various functions it performs.
After the SIP or MRSP message 41 is received by the reception module 43, it may be encapsulated within an MSRP message in the encapsulation module 45. The encapsulation can be done immediately on receipt, or there may be some delay between receipt and encapsulation. The encapsulation can encapsulate a single SIP message in a single MSRP message or can encapsulate an entire SIP session, including all the SIP and MSRP messages exchanged as part of the session, in a single MSRP message.
After the SIP or MSRP message 41 has been encapsulated, it may be transmitted to its intended destination by the transmission module 47. The intended destination can be a target user. As used herein, the term “user” can refer to equipment operated by, assigned to, or belonging to the user. Accordingly, the transmission may be to a user's mobile device, such as a personal digital assistant, mobile computer, wireless networked media device, or cell phone. The transmission module 47 may transmit immediately after encapsulation occurs, but may delay transmission. In certain embodiments, transmission occurs when it is determined that a target user who was previously off-line is now on-line. The target user may request the messages, or the messages may be sent automatically to the user.
The transmission module 47 may be configured to transmit a notification from notification module (not shown). The notification module can inform a user that stored messages are waiting, and invite the user to retrieve the messages. The notification module can also, or alternatively automatically include a portion of the SIP message in the notification. For example, the notification module may send a notification to a first user that a stored message from a particular second user is waiting. In another embodiment, the notification module may include an indication of the age of the stored message.
One having ordinary skill in the art will readily understand that the invention as discussed above may be practiced with steps in a different order, and/or with hardware elements in configurations which are different than those which are disclosed. Therefore, although the invention has been described based upon these preferred embodiments, it would be apparent to those of skill in the art that certain modifications, variations, and alternative constructions would be apparent, while remaining within the spirit and scope of the invention.

## Claims

1. A method for stored message delivery, the method comprising:
receiving at least one instant message in a Session Initiation Protocol (SIP) MESSAGE or Message Session Relay Protocol (MSRP) SEND, as a received instant message;
encapsulating the received instant message in a Message Session Relay Protocol (MSRP) message, as an encapsulated instant message; and
transmitting the encapsulated instant message to an intended recipient.

2. The method of claim 1, wherein the step of encapsulating comprises encapsulating Session Initiation Protocol (SIP) messages that determine the session where the Message Session Relay Protocol (MSRP) messages are sent.

3. The method of claim 1, the method further comprising:
notifying the intended recipient that the encapsulated instant message is available, before delivering the encapsulated instant message.

4. The method of claim 3, wherein the step of notifying comprises sending a SIP NOTIFY message.

5. The method of claim 3, wherein the step of notifying comprises sending an answer to a request from the intended user regarding whether any stored messages are available.

6. The method of claim 3, wherein the step of notifying occurs automatically during a start up procedure of an equipment of the intended recipient.

7. The method of claim 3, wherein the step of notifying comprises transmitting a count message indicating how many stored messages are available.

8. The method of claim 1, wherein the step of transmitting comprises transmitting to the intended recipient as part of a session established by the intended recipient.

9. The method of claim 1, wherein the step of transmitting comprises transmitting a received session encapsulated in a Message Session Relay Protocol (MSRP) SEND request.

10. The method of claim 9, wherein the step of transmitting comprises transmitting the MSRP SEND request comprising an encapsulated SIP INVITE, an encapsulated SIP BYE, and a plurality of encapsulated MSRP SEND messages.

11. The method of claim 10, wherein the step of transmitting comprises transmitting the MSRP SEND request comprising identification that identifies the MSRP SEND with a Multipurpose Internet Mail Extensions (MIME) content type of message/msrp.

12. The method of claim 1, wherein the step of encapsulating comprises storing header information.

13. The method of claim 12, wherein the step of storing header information comprises storing header information comprising identity of the sender and the date and time that the message was sent to a store message application server.

14. The method of claim 12, wherein the step of storing header information comprises storing the following header fields: To, From, Date, Subject, and Message-ID.

15. An apparatus for use as a store message application server, the apparatus comprising:
a reception module configured to receive an instant message in a Session Initiation Protocol (SIP) MESSAGE or Message Session Relay Protocol (MSRP) SEND, as a received instant message;
an encapsulation module configured to encapsulate the received instant message in a Message Session Relay Protocol (MSRP) message, as an encapsulated instant message; and
a transmission module configured to transmit the encapsulated instant message to an intended recipient.

16. The apparatus of claim 15, wherein the encapsulation module is configured to encapsulate a Session Initiation Protocol (SIP) messages that determine the session where the Message Session Relay Protocol (MSRP) messages are sent.

17. The apparatus of claim 15, the apparatus further comprising:
a notification module configured to notify the intended recipient that the encapsulated instant message is available, before the encapsulated instant message is transmitted.

18. The apparatus of claim 17, wherein the notification module is configured to send a SIP NOTIFY message.

19. The apparatus of claim 17, wherein the notification module is configured to send an answer to a request from the intended user regarding whether any stored messages are available.

20. The apparatus of claim 17, wherein the notification module is configured to operate automatically during a start up procedure of an equipment of the intended recipient.

21. The apparatus of claim 17, wherein the notification module is configured to transmit a count message indicating how many stored messages are available.

22. The apparatus of claim 15, wherein the transmission module is configured to transmit an encapsulated SIP message to the intended recipient as part of a session established by the intended recipient.

23. The apparatus of claim 15, wherein the transmission module is configured to transmit a received session encapsulated in a Message Session Relay Protocol (MSRP) SEND request.

24. The apparatus of claim 23, wherein the transmission module is configured to transmit an MSRP SEND that includes an encapsulated SIP INVITE, an encapsulated SIP BYE, and a plurality of encapsulated MSRP SEND messages.

25. The apparatus of claim 15, wherein the encapsulation module is configured to encapsulate comprises storing header information.

26. The apparatus of claim 25, wherein the encapsulation module is configured to store header information comprising identity of the sender and the date and time that the message was sent to the store message application server.

27. The apparatus of claim 15, wherein the encapsulation module is configured to store the following fields: To, From, Date, Subject, and Message-ID.

28. An apparatus for use as a store message application server, the apparatus comprising:
means for receiving an instant message in a Session Initiation Protocol (SIP) MESSAGE or Message Session Relay Protocol (MSRP) SEND, as a received instant message;
means for encapsulating the received instant message in a Message Session Relay Protocol (MSRP) message, as an encapsulated instant message; and
means for transmitting the encapsulated instant message to an intended recipient.

29. A computer program embodied on a computer readable medium for providing stored messages, comprising a computer program controlling a computer to:
receive an instant message in a Session Initiation Protocol (SIP) MESSAGE or Message Session Relay Protocol (MSRP) SEND, as a received instant message;
encapsulate the received instant message in a Message Session Relay Protocol (MSRP) message, as an encapsulated instant message; and
transmit the encapsulated instant message to an intended recipient.