Network Working Group                                       G. Hellstrom
Internet-Draft                                                   Omnitor
Intended status: Standards Track                                P. Jones
Expires: July 12, 2008                               Cisco Systems, Inc.
                                                         G. Vanderheiden
                                            Trace R&D Center, University
                                                    of Wisconsin-Madison
                                                         January 9, 2008


 Coding and transmission of text in real-time and en-bloc mode based on
                                  MSRP
              draft-hellstrom-simple-text-transmission-00

Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on July 12, 2008.

Copyright Notice

   Copyright (C) The IETF Trust (2008).

Abstract

   This memo describes conventions for exchange and presentation of text
   in SIP sessions through the Message Session Relay Protocol MSRP.  It
   covers two different methods for taking the initiative to transmit.



Hellstrom, et al.         Expires July 12, 2008                 [Page 1]

Internet-Draft    Transmission of text in MSRP sessions     January 2008


   These methods are timer initiated real-time text and user requested
   en-bloc transmission in Messaging.  The document gives specific
   guidance on handling of text presentation and presentation control of
   conversational sessions.  It specifies how the capability to conduct
   MSRP sessions with real-time text is declared so that session
   negotiation can make decisions on what transport protocol to use and
   how to route the calls to get the desired support for text
   communication.

Requirements Language

   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 RFC 2119 [RFC2119].


Table of Contents

   1.  Consistent view of text communication based on MSRP  . . . . .  4
   2.  Functional requirements  . . . . . . . . . . . . . . . . . . .  5
     2.1.  Common requirements  . . . . . . . . . . . . . . . . . . .  5
     2.2.  Requirements on real-time text mode  . . . . . . . . . . .  5
     2.3.  Requirements on en-bloc mode . . . . . . . . . . . . . . .  6
   3.  Media type and subtype specification . . . . . . . . . . . . .  6
   4.  Presentation coding  . . . . . . . . . . . . . . . . . . . . .  8
     4.1.  Text . . . . . . . . . . . . . . . . . . . . . . . . . . .  8
     4.2.  Time division  . . . . . . . . . . . . . . . . . . . . . .  8
     4.3.  New Line . . . . . . . . . . . . . . . . . . . . . . . . .  8
     4.4.  Alert in session . . . . . . . . . . . . . . . . . . . . .  8
     4.5.  End of Message . . . . . . . . . . . . . . . . . . . . . .  9
     4.6.  Erasure  . . . . . . . . . . . . . . . . . . . . . . . . .  9
     4.7.  Other presentation controls  . . . . . . . . . . . . . . .  9
   5.  Indication and negotiation of the real-time text
       transmission capability  . . . . . . . . . . . . . . . . . . .  9
   6.  Time sampled transmission  . . . . . . . . . . . . . . . . . . 10
   7.  Presentation of received text  . . . . . . . . . . . . . . . . 11
   8.  Routing of calls to real-time text capable devices.  . . . . . 11
   9.  Sessions including MSRP based real-time text and other
       media. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
   10. Security . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
   11. IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 12
   12. Security Considerations  . . . . . . . . . . . . . . . . . . . 12
   13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 12
   14. Temporary section - issues list  . . . . . . . . . . . . . . . 12
   15. References . . . . . . . . . . . . . . . . . . . . . . . . . . 13
     15.1. Normative References . . . . . . . . . . . . . . . . . . . 13
     15.2. Informative References . . . . . . . . . . . . . . . . . . 14
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 14



Hellstrom, et al.         Expires July 12, 2008                 [Page 2]

Internet-Draft    Transmission of text in MSRP sessions     January 2008


   Intellectual Property and Copyright Statements . . . . . . . . . . 15


















































Hellstrom, et al.         Expires July 12, 2008                 [Page 3]

Internet-Draft    Transmission of text in MSRP sessions     January 2008


1.  Consistent view of text communication based on MSRP

   A set of mechanisms must be defined in order to assure consistent
   user experience when using MSRP RFC 4975 [RFC4975] for text
   communication in SIP [RFC3261] sessions.  One style of usage of MSRP
   based text sessions is the real-time text conversation that makes use
   of time sampled transmission.  Another style is Instant Messaging
   with user initiated transmission of complete messages.  MSRP is a
   general transport method mainly intended for messages.  The
   capability for real-time text transmission needs to be indicated, so
   that the users can agree on a common view of the conversation.  A
   time sampling of 500 ms or less is required in order to achieve the
   end to end delay of less than 1 second that is needed for effective
   real time text conversation, .  Requirements for presentation of
   conversations using real-time text is found in
   [draft-hellstrom-textpreview] [I-D.hellstrom-textpreview].
   Traditionally the real-time text medium can be transmitted with RTP,
   as specified in RFC 4103[RFC4103].  This specification describes how
   to implement these functions with MSRP.User initiated transmission of
   MSRP text messages also need to follow presentation conventions in
   order to be presented as expected by the sending user.  It is
   specifically the following features that need to be defined:

      Functional requirements.

      Media type and subtype specification and negotiating.

      Presentation coding.

      Text

      Erasure

      New lines

      Other presentation control functions

      Indication and negotiation of the time-sampled transmission
      capability

      Time sampled transmission

      Routing of calls to real-time text capable devices.

      Sessions including MSRP-based real-time text and other media.

      Performance




Hellstrom, et al.         Expires July 12, 2008                 [Page 4]

Internet-Draft    Transmission of text in MSRP sessions     January 2008


      Security




2.  Functional requirements

   The procedures defined in this specification are intended to provide
   a text transport mechanism fulfilling the following requirements.

2.1.  Common requirements

   o  Presentation of text shall be possible in one internationally
      useable character set.

   o  Presentation within messages shall be done contiguously so that it
      is easily read.

   o  It shall be possible to use the text transport method in a session
      together with other media.

   o  It shall be possible to use the text transmission in SIP sessions.

   o  A set of characters shall be defined for any specific language
      environment to cause end of message.

   o  It shall be possible to protect the text contents from reading and
      modification from others than authorised adressees.

   o  It shall be possible to guide routing of calls who may need text
      to specific devices capable of handling text transmission.

2.2.  Requirements on real-time text mode

   o  The real-time transmission and presentation of text shall be done
      in a way so that the users experience a flow of text approximately
      as it is typed.

   o  The delay from character entry to remote display needs to be less
      than 1 s in order to maintain effective real-time conversation.
      Therefore the maximum delay before transmission of any character
      shall not be longer than 500 ms.

   o  It shall be possible to erase already transmitted text in the
      current message.[see issues-list]

   o  It shall be possible to negotiate between MSRP and other SIP-based
      standardised transport methods for real-time text at session



Hellstrom, et al.         Expires July 12, 2008                 [Page 5]

Internet-Draft    Transmission of text in MSRP sessions     January 2008


      setup.

   o  It shall be possible to transmit at least 30 characters per
      second.

   o  It shall be possible to guide routing of calls who may need real-
      time text to specific devices capable of handling this text
      transmission mode.  The main purpose of this requirement comes
      from the requirment to find a text capable gateway to PSTN for
      text telephony.

   o  It shall be possible to use the real-time text transmission in SIP
      sessions.

2.3.  Requirements on en-bloc mode

   o  The transmission and presentation of text shall be done so that
      the users experience a transmission of text when a specific
      transmission action is made.


3.  Media type and subtype specification

   In SIP[RFC3261] sessions, SDP[RFC4566] MUST indicate the media type
   'message'.

   The Content-type is specified in the MSRP header.

   For real-time text, support MUST be provided for content-types text/
   plain and for message/cpim with text/plain content.

   In addition, other content-types MAY be supported in real-time text
   mode.


















Hellstrom, et al.         Expires July 12, 2008                 [Page 6]

Internet-Draft    Transmission of text in MSRP sessions     January 2008


   SDP Examples

      Endpoint A wishes to invite Endpoint B to an MSRP session.  A offers
      the following session description:

       v=0
       o=usera 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:message/cpim text/plain
       a=real-time-text
       a=path:msrp://alice.example.com:7394/2s93i93idj;tcp

      B responds with its own URI:

       v=0
       o=userb 2890844530 2890844532 IN IP4 bob.example.com
       s= -
       c=IN IP4 bob.example.com
       t=0 0
       m=message 8493 TCP/MSRP *
       a=accept-types:message/cpim text/plain
       a=real-time-text
       a=path:msrp://bob.example.com:8493/si438dsaodes;tcp


   Figure: SDP example for a text-only session

   The MSRP messages and chunks contain headers indicating the media
   type and subtype actually used.

   For the real-time text usage a send request MAY look like this:

















Hellstrom, et al.         Expires July 12, 2008                 [Page 7]

Internet-Draft    Transmission of text in MSRP sessions     January 2008


   MSRP Chunk exaMPLE
      MSRP a786hjs2 SEND
      To-Path: msrp://biloxi.example.com:12763/kjhd37s2s20w2a;tcp
      From-Path: msrp://atlanta.example.com:7654/jshA7weztas;tcp
      Message-ID: 87652491
      Byte-Range: 1-5/*
      Content-Type: text/plain; charset=utf-8

      Hey B
      -------a786hjs2+

   Example: MSRP chunk


4.  Presentation coding

4.1.  Text

   Text shall be coded with an internationally applicable character set.
   The text/plain MIME type is defined to be used according to this
   specification.  Coding with utf-8 shall be used.  RFC 3629 [RFC3629]

4.2.  Time division

   When operating in real-time text mode, text shall be collected for
   transmission during a time interval and then transmitted as an MSRP
   chunk.  The maximum delay of any character before transmission MUST
   be 500ms.  For good flow it SHOULD be 300 ms.

   For en-bloc mode, no timer-initiated tansmissions are required.  Text
   MAY be sent in chunks, and recombined in complete messages by the
   receiver.

4.3.  New Line

   It shall be possible to insert a new line in the text.  A new line
   serves as message delimiter.  Unicode Line Separator (UCS-16 2028) or
   CRLF SHALL be used for transmission.  In reception, Line Separator,
   CR, CRLF, LF shall all have the same effect and be regarded as one
   operation.

4.4.  Alert in session

   BEL may be sent to cause an external alerting action from the
   receiving terminal, but shall otherwise be treated as a non-printable
   character and have no impact on the display.





Hellstrom, et al.         Expires July 12, 2008                 [Page 8]

Internet-Draft    Transmission of text in MSRP sessions     January 2008


4.5.  End of Message

   The following actions MAY cause the End of Message condition:

   Pressing Enter, pressing Return and pressing a Send button.

   The actual selection of end of message reasons is a sending
   application decision.

   At the End of Message condition, any unsent characters in the session
   MUST be transmitted with an End of Message indication in MSRP.

4.6.  Erasure

   Erasure of the last character shall be signalled by a 'BS' character.
   Erasure shall have effect on the local and remote presentation of
   text.  Locally inserted new lines by presentation logic only for
   layout purposes shall not be transmitted and therefore do not require
   any specific erasing action.  New Lines inserted by the sending user
   MUST require one BS to be erased.  The complete current message MUST
   be kept available for erasure.  Characters that do not occupy a
   position in the display shall not require any BS for erasure, but if
   they have any effect on the presentation, they shall be regarded to
   be erased when the character before it is erased.  BEL is one such
   character.  Completed messages are not available for erasure.[see
   issues-list]

   [To issues-list: The relation between character position indications
   in MSRP headers and real printable position in a message needs to be
   defined.  Possible alternative erasing action by chunk position and
   new character for replacement may be introduced]

4.7.  Other presentation controls

   When using the media format text/plain, no other presentation
   controls than the ones described above can be conveyed in
   communication.  Both users may vary their presentation locally.


5.  Indication and negotiation of the real-time text transmission
    capability

   The capability to present and transmit real-time text with MSRP MUST
   be declared by the following means:

   a.  An attribute a=real-time-text, in the media description for the
   media=message declaration intended for the real-time text
   conversation.



Hellstrom, et al.         Expires July 12, 2008                 [Page 9]

Internet-Draft    Transmission of text in MSRP sessions     January 2008


   b.  A Content-disposition=immediate-presentation to be included in
   the MSRP headers in the chunks and messages.

   c.  The capability to present and transmit real-time text by any
   transport SHALL be declared by a media feature tag sip.real-time-
   text=<any defined value> in the SIP Contact header.  This tag is also
   used by other text transports and may be used to determine if there
   is any real-time text support in the remote device.


6.  Time sampled transmission

   The availability of characters ready for transmission MUST be checked
   at regular time intervals.  The interval MUST be set to 300 ms for
   good user experience.

   When there is something to transmit at the end of an interval, the
   text SHALL be transmitted in an MSRP message chunk.  No extra
   character SHALL be added to the text before transmission.

   When an End of Message condition is detected, the last characters of
   the message shall be sent immediately, with an End of Message MSRP
   indication.

   [see issues list]The chunk position counter shall be regarded to
   point at a position in a message transmission buffer including all
   characters that have been transmitted for that message.  BS and BEL
   shall thus increase the chunk position value as any other characters.
   The Chunk position MUST NOT be used to directly address any
   presentation position on a display of the text.[see issues list]





















Hellstrom, et al.         Expires July 12, 2008                [Page 10]

Internet-Draft    Transmission of text in MSRP sessions     January 2008


   Example:

       MSRP dkei38sd SEND
       Message-ID: 4564dpWd
       Byte-Range: 1-2/*
       Content-Type: text/plain; Charset=utf-8

       He
       -------dkei38sd+

       MSRP dkei38ia SEND
       Message-ID: 4564dpWd
       Byte-Range: 3-9/9
       Content-Type: text/plain; Charset=utf-8

       y Bob!

       -------dkei38ia$
   Figure: Real-time text chunks.


7.  Presentation of received text

   Text received from one session participant MUST be presented with
   some indication of the source.

   Text received within one message MUST be presented in one contiguous
   area.

   MSRP Chunks of the same message MUST be presented consecutively as
   soon as possible after reception, with no inserted character or
   editing control between the chunks.

   Characters MAY be added to a display singly so as to smooth
   presentation.

   Local presentation conventions MAY be applied to e.g break lines with
   word-wrapping.


8.  Routing of calls to real-time text capable devices.

   A real-time text indicator in the SIP header MAY be used for routing
   of calls to real-time text capable devices, using the principles of
   caller capabilities and callee preferences from RFC 3840 and 3841.






Hellstrom, et al.         Expires July 12, 2008                [Page 11]

Internet-Draft    Transmission of text in MSRP sessions     January 2008


9.  Sessions including MSRP based real-time text and other media.

   Other media MAY be negotiated in the same SIP session setup as the
   MSRP session.


10.  Security


11.  IANA Considerations

   This specifications register the following new items:

   MSRP SDP attribute

   a=real-time text Indicates capability to use real-time text.

   [see issues-list] Contents-disposition=immediate indicates that if
   fragments of the complete text message is received, the fragments
   shall be presented without waiting for later fragments.[see issues-
   list]

   Note to RFC Editor: this section may be removed on publication as an
   RFC.


12.  Security Considerations


13.  Acknowledgements


14.  Temporary section - issues list

   This chapter contains a collection of issues that have been discussed
   and not yet been resolved.  The intention is to delete this section
   after resolving the issues.

   1.  Erasure 1.  A possibility to erase back over message borders may
   be appreciated.  One of the tensions appearing in traditional IM is
   of the non-erasable characteristics of sent text.  Technically it
   gets complex to allow erasure further back, because MSRP does not
   have any defined way to address earlier messages than the current
   one.  Also in interpreting the presentation of a dialogue after
   modification can cause confusion.  But, it is a desired feature.  A
   check with users is needed to decide on the functionality.  A
   proposed function is to allow erasure represented by the earlier
   completed message being brought back for editing, but only erasure is



Hellstrom, et al.         Expires July 12, 2008                [Page 12]

Internet-Draft    Transmission of text in MSRP sessions     January 2008


   allowed, and shall have te effect of replacing characters with xxx.
   When new text is then typed.  The partially erased message is closed
   and a new message begun.

   2.  Erasure 2.  The use of charater position within chunk and message
   must be explored and defined.  It must also be explained how it is
   affected by erasure.  Shall BS always be translated into a
   replacement of a previously sent character by its position?

   3.Erasure 3.  Is the wording of handling of non-printable characters
   during erasure sufficiently described.

   4.  The use of chunks for time sampled transmission of text has been
   questioned.  The primary intent of the chunk concept was said to be
   for avoiding congestion situations.  It needs to be agreed if the
   reason to get a progressive presentation of a growing message is also
   an appropriate use of chunks.


15.  References

15.1.  Normative References

   [I-D.hellstrom-textpreview]
              Hellstrom, G., "Text conversation with real-time preview",
              draft-hellstrom-textpreview-02 (work in progress),
              August 2007.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC3261]  Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
              A., Peterson, J., Sparks, R., Handley, M., and E.
              Schooler, "SIP: Session Initiation Protocol", RFC 3261,
              June 2002.

   [RFC3629]  Yergeau, F., "UTF-8, a transformation format of ISO
              10646", STD 63, RFC 3629, November 2003.

   [RFC4566]  Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
              Description Protocol", RFC 4566, July 2006.

   [RFC4975]  Campbell, B., Mahy, R., and C. Jennings, "The Message
              Session Relay Protocol (MSRP)", RFC 4975, September 2007.







Hellstrom, et al.         Expires July 12, 2008                [Page 13]

Internet-Draft    Transmission of text in MSRP sessions     January 2008


15.2.  Informative References

   [RFC4103]  Hellstrom, G. and P. Jones, "RTP Payload for Text
              Conversation", RFC 4103, June 2005.


Authors' Addresses

   Gunnar Hellstrom
   Omnitor
   Box 92054
   Stockholm,   12006
   Sweden

   Phone: +46 8 589 000 56
   Fax:   +46 8 589 000 51
   Email: gunnar.hellstrom@omnitor.se


   Paul Jones
   Cisco Systems, Inc.
   7025 Kit Creek Rd.
   Research Triangle Park,, NC  27709
   USA

   Phone: +1 919 392 6948
   Fax:
   Email: paulej@packetizer.com
   URI:


   Gregg Vanderheiden
   Trace R&D Center, University of Wisconsin-Madison
   1550 Engineering Drive
   Madison, Wi  53706
   USA

   Phone:
   Fax:
   Email: gv@trace.wisc.edu
   URI:   http://www.engr.wisc.edu/ie/faculty/vanderheiden_gregg.html










Hellstrom, et al.         Expires July 12, 2008                [Page 14]

Internet-Draft    Transmission of text in MSRP sessions     January 2008


Full Copyright Statement

   Copyright (C) The IETF Trust (2008).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, and except as set forth therein, the authors
   retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
   THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
   OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
   THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.


Acknowledgment

   Funding for the RFC Editor function is provided by the IETF
   Administrative Support Activity (IASA).





Hellstrom, et al.         Expires July 12, 2008                [Page 15]