Message Session Relay Protocol
In computer networking, the Message Session Relay Protocol (MSRP) is a protocol for transmitting a series of related instant messages in the context of a communications session. An application instantiates the session with the Session Description Protocol (SDP) over Session Initiation Protocol (SIP) or other rendezvous methods.
The MSRP protocol is defined in RFC 4975.[1] MSRP messages can also be transmitted by using intermediaries peers, by using the relay extensions defined in RFC 4976.[2]
MSRP is used in the RCS context, especially for the instant messaging, file transfer and photo sharing features.
Protocol design
[edit]MSRP syntax is similar to other IETF text based protocols such as SIP, HTTP and RTSP.
MSRP requires a reliable transport layer, like TCP. Each message is either a request or a response and uses URIs; a message contains headers and a body that can carry any type of data, including binary information.
The first 2 headers must be To-Path and From-Path and the last must be Content-Type; this significantly reduces the complexity of parsers. Messages must also end with 7 dash ('-') characters, followed by a transaction identifier which appears in the first line; these are followed by a continuation flag, which is a single character and end of line (CRLF). This last line at the end of messages makes it rather simple to find and detect the message boundaries.
An MSRP URI has a scheme (which is "msrp" or "msrps"), authority, as defined by RFC 3986, which holds the IP/domain name and possibly the port, an optional session identifier, the transport and additional optional parameters. For example:
msrp://atlanta.example.com:7654/jshA7weztas;tcp
msrp
is the schemeatlanta.example.com:7654
is the authorityjshA7weztas
is the session identifiertcp
is the transport
Usage in SIP
[edit]MSRP can be used within a SIP session:
- to do instant messaging in a one-to-one or one-to-many mode
- to do an attachment file transfer
- to do some photo sharing (e.g., Image Share) based on prior exchange of capabilities between the user endpoints
MSRP session is set up through SIP's offer-answer[3] model. The SDP m-line media type is message and the protocol is either TCP/MSRP for MSRP over TCP and TCP/TLS/MSRP for MSRP over secure TLS. Furthermore, the MSRP URI is specified in a path attribute.
A full SDP example, as provided by the RFC:
v=0 o=alice 2890844526 2890844527 IN IP4 alice.example.com s= - c=IN IP4 alice.example.com t=0 0 m=message 7394 TCP/MSRP * a=accept-types:text/plain a=path:msrp://alice.example.com:7394/2s93i9ek2a;tcp
The address and port are contained in the c- and m-lines, but also in the path attribute on an a-line. Generally, other media types use the c-line and m-line to describe the address and port, but the MSRP RFC 4975 section 8.1 says the path attribute is the authoritative source for MSRP.
See also
[edit]- SIP for Instant Messaging and Presence Leveraging Extensions (SIMPLE)
- Session Initiation Protocol (SIP)
- IP Multimedia Subsystem (IMS)
- Rich Communication Suite (RCS)
References
[edit]- ^ RFC 4975, The Message Session Relay Protocol (MSRP), B. Campbell (Ed.), R. Mahy (Ed.), C. Jennings (Ed.), The Internet Society (September 2007)
- ^ RFC 4976, Relay Extensions for the Message Session Relay Protocol (MSRP), C. Jennings (Ed.), R. Mahy (Ed.), A. B. Roach (Ed.), The Internet Society (September 2007)
- ^ RFC 3264, An Offer/Answer Model with the Session Description Protocol (SDP), IETF, The Internet Society (2002)