<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc='yes'?>
<?rfc tocdepth='4'?>
<?rfc compact="yes"?>

<rfc category="info" docName="draft-yan-siprec-msrp-recording-00" ipr="trust200902">
	<front>
		<title abbrev="Overview for MSRP Recording">Overview for MSRP Recording based on SIPREC</title>
		<author initials="M." surname="Yan" fullname="Michael Yan">
			<organization>Huawei</organization>
			<address>
				<email>michael.yan@huawei.com</email>
			</address>
		</author>
		<author initials="P." surname="Kyzivat" fullname="Paul H. Kyzivat">
			<organization>Huawei</organization>
			<address>
				<email>pkyzivat@alum.mit.edu</email>
			</address>
		</author>

		<date/>
                  <area>RAI</area>
		<workgroup>SIPREC</workgroup>

		<abstract>
            <t>SIPREC is capable of recording interactive text media that is transmitted via RTP. However that format is not commonly used for message or chat scenarios. There is also a need for recording text media carried via MSRP. One case of note is exchange of text between hearing-impaired users and emergence service bureaus. Also, recording support is needed for MSRP used in chat conferences and multimedia conferences.</t>
            <t>This document describes how to achieve MSRP channel recording within the mechanism of SIP Recording (SIPREC).</t>
		</abstract>

		<note title="Requirements Language">
			<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in <xref target="RFC2119">RFC 2119</xref>.</t>
		</note>
	</front>

	<middle>
		<section title="Introduction">
            <t>SIPREC is capable of recording interactive text media that is transmitted via RTP, as defined by <xref target="RFC4103"/>. However that format is not commonly used for message or chat scenarios. There is also a need for recording text media carried via MSRP. One case of note is exchange of text between hearing-impaired users and emergence service bureaus. Also, recording support is needed for MSRP used in chat conferences (as defined by <xref target="I-D.ietf-simple-chat"/>) and multimedia conferences (as defined by <xref target="RFC4597"/>).</t>
            <t>Instant message media is carried by a variety of protocols such as IRC, MSRP and XMPP/JINGLE. The SIP based protocol MSRP (as defined by <xref target="RFC4975"/><xref target="RFC4976"/>) supports the delivery of messages and files from one SIPUA to another. When a SIPREC SRC is recording a CS that contains an MSRP channel, it may want to record the messages passing over that channel. To gain access to the messages, the SRC may act as an MSRP client, relay, or switch. The SRC needs to replicate and deliver the messages over an MSRP channel within a Recording Session (RS) to an SRS. The replicated content could be in Message/CPIM format containing plain text, HTML, images, etc. In this document, file delivering sessions have not yet been considered. Other instant message protocols, like IRC or XMPP, are out of scope.</t>
            <t>This document describes how MRSP sessions are established between an SRC and SRS, and used for conveying the replicated MSRP Media, and also specifies metadata that describes the recorded MSRP sessions. A Recording Session employing MSRP is established using the normal procedures for establishing INVITE initiated dialogs <xref target="RFC3261"/> and uses SDP for describing the media to be used during the session <xref target="RFC4566"/> as described by <xref target="I-D.ietf-siprec-architecture"/>.</t>
        </section>

        <section title="Definitions">
            <t>(TBD...)</t>

        </section>

        <section title="MSRP Recording Architecture">
            <t>For consistency with <xref target="RFC6341"/> and <xref target="I-D.ietf-siprec-architecture"/>, MSRP recording needs to deliver duplicated MSRP message content from the SRC to the SRS, with suitable descriptive metadata. The SRC may be associated with SIP UA (endpoint) with an MSRP client, or with a SIP B2BUA that accesses the media via an MRSP Relay. An SRC may also be associated with a SIP conference focus and an MSRP switch.</t> 

		<section title="MSRP Client acts as SRC">
            <t><xref target="RFC4975"/><xref target="RFC4976"/> describes how an MSRP client communicates to another MSRP client via a SIP session. A MSRP client that has access to the MSRP content to be recorded may act as SRC. The MSRP client may send the replicated media to the SRS along with corresponding metadata.</t>
            <t>If the MSRP client/SRC is aware the MSRP session needs to be recorded, it can initiate the establishment of a SIP RS by sending an INVITE to SRS, or vice-versa. 
<!-- WE MIGHT WANT TO DROP the "or visa-versa". SRS initiated RSs are not well defined. -->
The MSRP client/SRC is responsible for notifying the other MSRP client involved in the CS that the MSRP session is being recorded. The MSRP client/SRC is responsible for complying with request from recording aware UAs or through some configured policies indicating that the CS should not be recorded.</t>
            <t>
                <figure align="center" anchor="MSRP_Client_Acts_as_SRC" title="MSRP Client Acts as SRC">   
                    <artwork><![CDATA[
    +-------------+
    | MSRP CLIENT |
    +-------------+
      ^
      | (Communication Session)    
      |      
      |  SIP
      v              
    +-------------+   (Recording Session)  +-------------+
    | MSRP CLIENT |<---------------------->|   Recorder  |
    |    (SRC)    |      SIP/Metadata      |    (SRS)    |
    +-------------+                        +-------------+
  
					]]>
					</artwork>
                 </figure>   
             </t>          
        </section>

		<section title="MSRP Relay acts as SRC">
            <t>(TBD... RFC4976)</t>
            <t>
                <figure align="center" anchor="MSRP_Relay_Acts_as_SRC" title="MSRP Relay Acts as SRC">
                    <artwork><![CDATA[
    +-------------+
    | MSRP CLIENT |
    +-------------+
      ^
      | (Communication Session)    
      |  SIP     
    +-------------+   (Recording Session)  +-------------+
    | MSRP RELAY  |<---------------------->|   Recorder  |
    |    (SRC)    |      SIP/Metadata      |    (SRS)    |
    +-------------+                        +-------------+
      | 
      |
      v
    +-------------+
    | MSRP CLIENT |
    +-------------+ 
					]]>
					</artwork>
                 </figure>   
             </t> 
        </section>

		<section title="MSRP Switch acts as SRC">
            <t>(TBD... ietf-simple-chat)</t>
            <t>
                <figure align="center" anchor="MSRP_Switch_Acts_as_SRC" title="MSRP Switch Acts as SRC">
                    <artwork><![CDATA[
    +-------------+    +-------------+
    | MSRP CLIENT |    | MSRP CLIENT |
    +-------------+    +-------------+   
           ^            ^
            \ SIP      / (Communication Session)
             \        /  SIP  
           +-------------+                     +-------------+
           | MSRP switch | (Recording Session) |   Recorder  |
           |    (SRC)    |<------------------->|    (SRS)    |
           +-------------+    SIP/Metadata     +-------------+
             /        \    
            / SIP      \ SIP    
           v            v
    +-------------+    +-------------+
    | MSRP CLIENT |    | MSRP CLIENT |
    +-------------+    +-------------+
					]]>
					</artwork>
                 </figure>   
             </t> 
        </section>
        </section>

        <section title="MSRP Recording Protocol">
		   <t>There are several possible ways of passing CS MSRP messages from the SRC to the SRS. Here are three:
                      <list style='numbers'>
                         <t>For each CS MSRP channel that is recorded, a corresponding new MSRP channel is created in the RS. </t>
                         <t>For each CS MSRP channel that is recorded, a corresponding MSRP channel is dedicated in the RS. 
                            When recording of the CS MSRP channel ceases, the corresponding MSRP channel may be reassigned.</t>
                         <t>MSRP messages from multiple MSRP participants of a CS are multiplexed (mixed) over a single MSRP channel in the RS.</t> 
                      </list>
		   </t>
		</section>

        <section title="Metadata">
			<t>(TBD...)</t>
		</section>

        <section title="Open Issues">
                   <t>
                      <list style='symbols'>
                         <t>Is there any need for in-band indication that MSRP is being recorded?</t>
                         <t>MSRP-based file transfers (in scope or not?)</t>
                      </list>
                   </t>
		</section>

        <section title="IANA Considerations">
			<t>This document contains no IANA considerations.</t>
		</section>

        <section title="Security Considerations">
			<t>Not explicitly covered in this version.</t>
		</section>

	</middle>
	<back>

   		<references title="Normative References">
                   <?rfc include="reference.RFC.2119"?>
                   <?rfc include="reference.RFC.3261"?>
                   <?rfc include="reference.RFC.4975"?>
                   <?rfc include="reference.RFC.4976"?>
                   <?rfc include="reference.RFC.6341"?>
                   <?rfc include="reference.I-D.ietf-siprec-architecture"?>
                   <?rfc include="reference.I-D.ietf-simple-chat"?>
		</references>

		<references title="Informative References">
                   <?rfc include="reference.RFC.4103"?>
                   <?rfc include="reference.RFC.4566"?>
                   <?rfc include="reference.RFC.4597"?>
		</references>
	</back>
</rfc>
