MSRP

Multiple Stream Registration Protocol

Protocol
Introduced in Rel-6
A session management protocol used in the IP Multimedia Subsystem (IMS) to establish and control multiple media streams within a single multimedia session. It enables applications like video conferencing and file transfer by managing the registration and negotiation of individual media components.

Description

The Multiple Stream Registration Protocol (MSRP) is an application-level protocol defined within the 3GPP IMS framework, standardized in cooperation with the IETF (RFC 4975, RFC 4976). It is designed for the transmission of a series of related instant messages or media chunks, such as files or real-time text, within an established IMS session. MSRP operates over reliable transport protocols like TCP or TLS, using SIP (Session Initiation Protocol) for session establishment and negotiation, but then switches to MSRP for the actual bulk data transfer.

MSRP works by establishing one or more MSRP sessions between endpoints. These sessions are logical channels for sending discrete messages or large content broken into chunks. A key mechanism is the use of MSRP URIs (Uniform Resource Identifiers) to identify endpoints and sessions. During the SIP/SDP (Session Description Protocol) offer/answer exchange, endpoints negotiate MSRP parameters such as the path, port, and acceptance of chunked transmission. Once the SIP session is established, the endpoints open a direct TCP (or TLS) connection for MSRP traffic, independent of the SIP signaling path.

Within an MSRP session, content is sent in SDP-carried MSRP messages. A sender can break a large piece of content (like a file) into multiple chunks, each sent in a separate SEND request. The receiver acknowledges each chunk with a 200 OK response, providing flow control and reliability. MSRP also supports report delivery notifications for successful reception. The protocol includes mechanisms for session keep-alive, error reporting, and graceful session termination. Its design allows it to traverse Network Address Translators (NATs) and firewalls when used in conjunction with techniques like Interactive Connectivity Establishment (ICE).

Purpose & Motivation

MSRP was created to address the limitations of using SIP message bodies for transmitting large amounts of content or a continuous stream of related instant messages. SIP, while excellent for session signaling, is not optimized for bulk data transfer. Embedding large files in SIP MESSAGE requests could lead to performance issues, fragmentation, and difficulties with intermediate proxies. MSRP provides a separate, more efficient channel for this content, allowing SIP to focus on session control.

It solves the problem of managing multiple media streams or discrete content items within a single multimedia session. Before MSRP, applications like file transfer within a chat session or multi-stream video conferencing required ad-hoc solutions or separate out-of-band mechanisms. MSRP standardizes this process, enabling interoperable, reliable, and negotiable content delivery. Its creation was motivated by the growth of rich communication services (RCS) and IMS-based multimedia applications requiring more than just simple voice or single-image exchange.

Key Features

  • Manages transmission of a series of related messages or large content chunks
  • Uses reliable transport (TCP/TLS) for data transfer separate from SIP signaling
  • Supports chunked transmission with individual acknowledgment (200 OK per chunk)
  • Negotiated via SDP within a SIP session establishment
  • Includes mechanisms for NAT/firewall traversal (e.g., with ICE)
  • Provides delivery reports and error notification for sent content

Evolution Across Releases

Rel-6 Initial

Initially introduced to support IMS-based Messaging and file transfer services. Defined the core protocol for establishing MSRP sessions within a SIP-controlled multimedia session. Enabled the transmission of instant messages and content beyond the limits of SIP MESSAGE, forming a basis for Rich Communication Suite (RCS) services.

Defining Specifications

SpecificationTitle
TS 22.832 3GPP TS 22.832
TS 23.279 3GPP TS 23.279
TS 23.333 3GPP TS 23.333
TS 23.334 3GPP TS 23.334
TS 23.701 3GPP TS 23.701
TS 24.229 3GPP TS 24.229
TS 24.247 3GPP TS 24.247
TS 26.114 3GPP TS 26.114
TS 26.980 3GPP TS 26.980
TS 29.162 3GPP TS 29.162
TS 29.165 3GPP TS 29.165
TS 29.238 3GPP TS 29.238
TS 29.311 3GPP TS 29.311
TS 29.333 3GPP TS 29.333
TS 29.334 3GPP TS 29.334
TS 29.828 3GPP TS 29.828
TS 33.127 3GPP TR 33.127
TS 33.180 3GPP TR 33.180
TS 33.328 3GPP TR 33.328