Message Session Relay Protocol — Википедия

MSRP (англ. Message Session Relay Protocol) - протокол передачи последовательности связанных мгновенных сообщений в рамках сеанса связи. Приложение создает сеанс c SDP протоколом  через протокол установления сеанса SIP.

MSRP протокол определен в RFC 4975. MSPR сообщения могут также передаваться с помощью посредников, при подключении расширений, определенных в RFC 4976.

MSRP используется в RCS для обмена мгновенными сообщениями, передачи файлов и обмена фотографиями.

Конструкция протокола[править | править код]

MSRP имеет схожий синтаксис с другими IETF протоколами, такими как SIP, HTTP и RTSP. Каждое сообщение запроса или ответа, использует идентификаторы URI. Сообщение содержит заголовок и тело, которое может содержать любой тип данных, включая двоичные данные. В отличие от SIP, MSRP протокол гораздо проще. Первых два заголовка должны содержать путь назначения и путь отправки, a последний - тип содержимого, что значительно снижает трудоемкость разбора сообщения. Сообщения должны заканчиваться семью символами тире ('-'). С помощью последней строчки сообщения становится намного проще определить его границы. MSRP не определен для протоколов без установления соединения, таких как UDP, таким образом можно быть уверенным, что ответ на запрос будет прибывать в том же соединении. MSRP использует надежный транспортный уровень, то есть, гарантирует доставку и поддерживает порядок сообщений, что еще больше упрощает структуру протокола.

Конструкция: MSRP URI  (который является "msrp" или "msrps"), адрес, определенный в RFC 3986, который содержит IP-адрес/доменное имя и порт, опциональный идентификатор сессии, протокол передачи данных и дополнительные необязательные параметры. Например:

msrp://atlanta.example.com:7654/jshA7weztas;tcp

  • msrp - URI
  • atlanta.example.com:7654 - адрес
  • jshA7weztas - идентификатор сессии
  • tcp -протокол передачи данных

Использование в SIP[править | править код]

MSRP могут быть использованы в рамках протокола SIP сессии:


Полный SDP пример, как это предусмотрено в документе 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 


Реализации[править | править код]

Библиотека с открытым исходным кодом реализована в следующих языках программирования:

Библиотеки[править | править код]

Клиенты[править | править код]

  • Blink - это кроссплатформенный SIP-клиент с поддержкой протокола MSRP.

Сервера[править | править код]

  • MSRP сервер имеет реализацию с открытым исходным кодом, написанным на Python.

Ссылки[править | править код]

См. также[править | править код]

  • SIMPLE
  • Session Initiation Protocol (SIP)
  • IP Multimedia Subsystem (IMS)
  • Rich Communication Suite (RCS)