TOC |
|
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 13, 2008.
This specification defines methods for presentation of a text conversation with focus on the real-time features. The aim is to give the participants in a conversation a good opportunity to perceive the real-time flow of the conversation and also provide a display of the history of the conversation that makes it easy to read. Both two-party and multi-party situations are defined.
1.
Introduction
2.
Terminology
3.
Scope
4.
Real-time preview presentation method
4.1.
Entries in creation
4.2.
Completion of local entry
4.3.
Completion of preview entry
4.4.
Order of entries
4.5.
Scrolling and buffering
4.6.
Moving between different states
4.7.
En bloc transmission
4.8.
Auto-real-time for Emergency calls and Textphone calls
4.9.
Reasons to finish an entry
4.10.
Erasure
4.11.
Display formatting
5.
Transport and presentation considerations
6.
Multi-party sessions
7.
Presence indication
8.
Alerting
9.
IANA Considerations
10.
Security Considerations
11.
Normative References
§
Authors' Addresses
§
Intellectual Property and Copyright Statements
TOC |
This is a specification of methods for presentation of a real-time text conversation. The aim is to give the participants in a conversation a good opportunity to perceive the real-time flow of the conversation and also provide a display of the history of the conversation that makes it easy to follow the flow. One reason to specify the presentation method is to be able to give participants a synchronized view of the conversation even if they use different presentation characteristics. The methods are intended for use in a protocol environment where text can be transmitted in real-time or in fragments of messages. Both two-party situations and multi-party session presentations are specified. The specification is mainly on the presentation level, relatively independent of the transport layer. It has though some requirements on the lower layers, as well as some characteristics of the lower layers cause slightly different user experience in the presentation.
The method is possible to use for two-party calls and multi-party calls. A two-party view is shown in Figure 1 (Two-party call with real-time preview.).
_________________________________________________ | |^| | | | | | | | | | | [Anne]Hi, Anne here. | | | | | | [Eve]Hi, this is Eve, calling from Paris. | | | I thought you should be here. | | | | | | [Anne]I am coming on Thursday, | | | my performance is not until Friday | | | morning. | | | [Anne]Can we meet on Thursday evening? | | | | | | [Eve]Yes, definitely. How about 7pm. | | | at the entrance of the restaurant | | | Le Lion Blanc? | | | [Eve]we can have dinner and then take a walk| | | |_| | <Eve-typing> But I need to be back to the |_| | hotel by 11 because I have t |v| |_____________________________________________|_| | OK, no prob | | | |_______________________________________________|
Figure 1: Two-party call with real-time preview. |
Figure 1: The text is here displayed in a traditional chat view, with labelled entries from each participant ordered in a list with newest entry last. Older entries are scrolled up, out of the screen area when there is no room for them.
Real-time text arriving from other participants is displayed in 'preview areas' within the scrolling 'history' window. They are formatted to look different and are presented at the bottom of the history window until they are completed. When completed they move up in the history window and added to the history record. The text being entered by the local participant appears in a separate entry field that is preferably just below the history field (to minimize eye movements when reading and typing).
TOC |
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 (Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” March 1997.) [RFC2119].
TOC |
This specification describes methods for presenting a text conversation so that the gradual entry of text is made visible to the users. One method has text flowing in real-time in a way that is similar to common text chat, but with the possibility to follow entries while they are created in a real-time preview area. The method may be applied on any text conversation transport method that transmits text on a character by character, time-sampled, word by word, or other small chunk basis. The methods cover both two-party and multi-party situations.
TOC |
The presentation method described here is intended to give a convenient view of a text conversation between two or more participants in a session. It is intended to be compatible with the requirements of ITU-T T.140 [1], and to look familiar for text chat users and be feasible to implement in terminals with small displays. The basic concept however could be implemented in other text technologies as well and displayed in different ways. ITU-T T.140 [1], Appendix I, describes a traditional chat view and a two-column view. The display formats shall be implemented so that terminals in a session can implement different display views meeting the requirements of T.140 [1] and giving the users a synchronized view of the flow of the conversation.
TOC |
Entries in creation SHALL be displayed in a real-time preview area, one for each participant for who is currently typing. The real-time preview areas MAY be placed under the list of completed entries as shown in Figure 1 and 2, or at any other suitable place in the user interface. If video from the participants is also displayed, then it MAY be suitable to display the real-time preview areas under the video image of the participant. The real-time text MAY also be displayed in a manner more closely associated with earlier exchanged text entries by the same participant (e.g. text from each participant goes in its own column).
If real-time preview from other participants are placed under the list of completed entries as in Figure 1 and 2, the text being entered by the local participant SHOULD be placed at the bottom in its own text entry field. This is recommended for a number of reasons. First, this is the only "editable" text on the screen. It also facilitates an optional input behavior where the local user may sometimes be holding their text back until it is completed while normally transmission occurs in real-time. Having the user input area be in a separate field MAY also be useful when scrolling the output field so that the input field always stays in view even as the history and text previews are scrolled out of view to read older text.
For ease of reading different entries, it is RECOMMENDED to place all entries close together in the display area.
For text input technologies requiring a number of keystrokes before the character or characters are finally decided, no characters shall be submitted to communication until they are decided from this input preparation process. This is for example valid for input of some Asian languages, and for some textentry methods from number keypads.
During entry, the following actions MAY be requested:
TOC |
Text from the local participant SHALL be entered in the local user input field, until an end-of-entry event occurs. The end of entry event may be triggered by a send button, a RETURN or when another local user selectable "post what I have so far" condition is met ( such as pause in typing, a delimiting character such as full stop, or a turn-taking token). When an end-of-entry event occurs, the entry shall be finished by addition of a Line Separator, if no new line alternative (CR, CR LF, LF, New Line, Line Separator) was already included. The completed entry SHALL be moved to the history display area and an end-of-message indicator SHALL be transmitted If the protocol used has an end-of-message indicator defined.
TOC |
Text from the remote participants SHALL be entered in the preview area until an end-of entry event occurs. The end-of-entry is identified by any variant of a NEW LINE coded in the character set used, or an end of message indicator if there is a specific coding of that event. When an end-of-entry event occurs, the completed entry SHALL be moved to the history display area.
TOC |
The order of displayed entries in the display area SHALL be the timing order when the entries were "posted" to the display from the preview area. That is, when the new line or end-of-message indicator is received.
TOC |
When there are entries in the history field that are pushed (scrolled) out of the view by new text coming in, it SHOULD be possible to scroll them back within a practical limit. When the history field is scrolled, it SHALL stay in that scrolled position until scrolling is changed again or (at user option)when a new entry is received. When scrolled to the bottom, the window SHALL auto-scroll to show new entries as well as old as they occur. When the display arrangement is made as in Figure1 and 2, the preview field and the history field SHOULD scroll together as one area.
The input field of the local participant SHOULD always be visible regardless of the scroll position of the History field.
TOC |
Entries can be either "real-time (preview)" or "historical" and they can be either "displayed" or "hidden". When real-time text is received it SHALL BE classified as a real-time entry until an end-of-entry indicator is received. Real-time entries SHOULD be displayed in the real-time preview field. Once an end-of-entry indicator is received, the entry SHALL become historical and SHOULD be move into the history display field. Its position within the history SHALL be determined by the time that its end-of-entry indicator was received.
The local user may select to hide either the entries while they are real-time (previews) or when they are historical. Hiding entries when they are in real-time state may be done to avoid distraction for the local participant. The feature to hide the entries while in real-time state SHOULD provide some alert when an end-of-entry indicator is received as well as when real-time text stops coming in for a period of time. (The alert due to pause in incoming text is important because some real-time text users are not accustomed to sending end of entry indications(e.g. RETURNs) or may use a text based end-of-entry indication (such as GA).
An entry (or category of entries) can be placed in a hidden state by user command to hide it (them). (e.g. Hide all but "Mary" to make it easier to see her thread)
The default SHALL be that both real-time and history are not hidden.
TOC |
It SHOULD be possible for the participants to hold their text and not have it sent to the other participants until after the end-of-message event occurs. This enables users who do not want their message to be viewed by other participants until they have verified it. This also facilitates editing since random editing can be done on the text block before it is sent. This also allows a block of text to be pasted into the text entry area and then edited before it is sent. This could be new text or a previous text entry that the user would like to resend with edits. The en bloc method SHALL NOT be the only method for sending. A 'real-time / block send' switch SHOULD be located near the local user's text entry field Real-time SHALL be the default method for sending but a user preference setting MAY change the default to en bloc.
TOC |
When it is detected that the session is used for emergency purposes, the text transmission SHALL be switched to real-time regardless of its previous setting.
When it is detected that the session is used for a connection with a PSTN textphone through a gateway, the text transmission SHOULD be switched to real-time regardless of its previous setting. The user SHOULD be given an indication on the situation that also may call for application of turn-taking habits and limitations in simultaneity of voice and text communication.
The user SHALL still be provided with a possibility to switch to en bloc sending after the session is established.
TOC |
The default end of entry action SHOULD be a new line request from the user.
A specific send button MAY also be used.
Users with most experience from real-time text communication may have a habit of not ending entries with a new line. There will be a risk that entries are left in real-time mode unintentionally not displayed and not read if the receiving end has hidden real-time display. Some actions are needed in order to avoid this risk.
If an entry is left in real-time mode without any input activity for a long period (e.g. 10 seconds), the local participant should be given an indication that there is an unfinished entry in the input field, and given a hint to complete it. Optionally, e.g. when using a voice-to-text application for generating text, the application SHOULD create the end-of-entry.
A full stop (".") followed by a short inactivity MAY also be configured to be used as an end of entry indication.
For PSTN text gateways having user input from PSTN text telephones, the following sequences SHOULD be included among those causing an entry to be finished. These terminations would usually be done by the PSTN gateway:
White spaces (space bar, New line, CR, and LF) after those characters SHALL be accepted and included in the finished entry. (Some users do type a space character after the turn-taking indicator and some textphones will send return after the turn-taking symbol).
TOC |
Erasure SHALL only be done from the last character entered per participant. Erasure SHALL NOT be possible once entries have been moved into the history field.
Transmitted characters that take no position on the display (e.g. Bell or Alert in Session) SHALL not take any specific erasing action, but be regarded to be erased simultaneously with the succeeding character.
Characters that are composed by multiple keystrokes SHALL be erased by one erasing action.
New lines inserted by automatic line break and word wrap actions purely for display formatting purposes by the local system SHALL not require any specific erasing action.
When erasing, the erasing action MUST be performed strictly according to the rules above, in order to maintain a synchronized view of the conversation for the participants, even if conversation participants use different display formats, such as the two-panel mode described in ITU-T T.140 1 (ITU-T, “Recommendation T.140, Protocol for Multimedia Application Text Conversation (including Addendum),” February 2000.) [T140.refs] and the real-time preview mode described here.
TOC |
The display SHALL be word-wrapped within the limits of the window.
The labels on the entries SHOULD display the user name of the participant. If this information is not available, labels indicating "Received" and "Transmitted" or other suitable names for the participants SHOULD be used.
The following operations SHOULD be possible to do:
The real-time preview display area MAY follow the same display formatting regarding font size, colours etc as the display area or MAY be different.
Each real-time preview area MAY have a fixed or adjustable size. It MAY also have no specific scrolling features or its own scrolling mechanism..
TOC |
It is RECOMMENDED that characters be buffered and transmitted in 300
ms intervals on the transport level. It is permissible to buffer
characters for transmission in up to 500 ms intervals. Display of
received chunks of text SHOULD be done one character at a time spread
over the transmission interval so that adding a chunk of text to the
real-time preview window approximately covers the transmission interval
to give a smoother flow.
It SHOULD be possible
to select participants in a multi-party situation for whom text is
displayed, while text entries from others are hidden.
It SHOULD be possible to hide the real-time preview area for selected participants, but let text be displayed when entries are completed.
The presentation method MAY be used with
transport methods for real-time text and for all text message methods
where it is possible to use timer based transmission to transmit
fragments of message entries.
The method MAY be applied on various text transmission technologies. It is designed in order to be usable for real-time text conversation with coding and presentation according to ITU-T T.140 including its amendment 1 (ITU-T, “Recommendation T.140, Protocol for Multimedia Application Text Conversation (including Addendum),” February 2000.) [T140.refs], and IETF RTP (Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson, “RTP: A Transport Protocol for Real-Time Applications,” July 2003.) [RFC3550] transport with packetization as defined in RFC 4103 (Hellstrom, G. and P. Jones, “RTP Payload for Text Conversation,” June 2005.) [RFC4103]. The methods for applying this in a multi-party situation is described in IETF Text media handling in RTP based real-time and message conferences draft-hellstrom-text-conference (Hellstrom, G. and A. Wijk, “Text media handling in RTP based real-time conferences,” March 2010.) [I‑D.hellstrom‑text‑conference].
Another environment where the real-time text with preview presentation is feasible, is with the messaging protocol IETF MSRP (Campbell, B., Mahy, R., and C. Jennings, “The Message Session Relay Protocol (MSRP),” September 2007.) [RFC4975], where the message fragment concept MAY be used for a real-time transmission and presentation according to the description in this specification. The text and real-time aspects of transmission are specified in draft-hellstrom-simple-text-transmission (Hellstrom, G., Jones, P., and G. Vanderheiden, “Coding and transmission of text in real-time and en-bloc mode based on MSRP,” January 2008.) [I‑D.hellstrom‑simple‑text‑transmission] .
The transport method SHALL allow identification of the source of text, so that text from different sources can be arranged for convenient and readable presentation at the receiving end. [e.g. to attach labels to the incoming text).
TOC |
A multi-party session can be presented in a similar manner as the two-party session. The chat-view with real-time entry at the bottom of the window is one possible view.
A three-party view is shown in this example .
_________________________________________________ | |^| | | | | | | | | | |[Alice]Hi, Alice here. | | | | | |[Bob]Bob as well. | | | | | |[Eve]Hi, this is Eve, calling from Paris. | | | I thought you should be here. | | | | | |[Alice]I am coming on Thursday, my | | | performance is not until Friday morning. | | | | | |[Bob]And I on Wednesday evening. | | | | | |[Alice9Can we meet on Thursday evening? | | | | | |[Eve]Yes, definitely. How about 7pm. | | | at the entrance of the restaurant | | | Le Lion Blanc? | | |[Eve]we can have dinner and then take a walk | | | | | | <Eve-typing> But I need to be back to | | | the hotel by 11 because I need | | | |-| | <Bob-typing> I wou |-| |_____________________________________________|v| | of course, I underst | |_______________________________________________|
Figure 2: Three-party call with real-time preview. |
Figure 2: This figure shows how a coordinated column view MAY be presented on Alice´s device.
______________________________________________________________________ | Bob | Eve | Alice | |____________________|______________________|________________________| | | |I will arrive by TGV. | |My flight is to Orly| |Convenient to the main | | |Hi all, can we plan |station. | | |for the seminar? | | |Eve, will you do | | | |your presentation on| | | |Friday? |Yes, Friday at 10. | | |Fine, wo | |We need to meet befo | |____________________________________________________________________|
Figure 3: A coordinated column-view of a three-party session with entries ordered in approximate time-order.
In the column view, the column showing text transmitted from the device where the presentation is made, SHOULD be placed to the right of all other columns, so that users recognize the operating environment between different devices.
In an environment with less space in the display it MAY be necessary to give up on displaying the relative time order in the column view in order to display more of the conversation contents in available space.
Yet other situations MAY call for display in separate windows for example underneath video images from each participant.
________________________ _____________________ ___________________ | Bob | | Eve | | Alice | |______________________| |___________________| |__________________| | ooooo | | 888 | | ... | | / o o\ | | 8/- -\8 | | ||||| | | ( _ | | | 0| | |0 | | || o o || | | \_____/ | | | _ | | | || v || | | | | \___/ | | ||\___/|| | |______________________| |___________________| |__________________| |Help me to spell | |necessary | |ne.... OK you take| |nessessarry,I always | | | |it | |get it wrong | | | | | |______________________| |___________________| |__________________|
Figure 4: Example of text conversation entries placed underneath video images from each participant.
When implemented in an environment that supports multi-party calls, it may be felt less important to maintain a real-time preview view of text from all participants. It may be very important for some participants to have rapid real-time preview presentation of selected participants, e.g. for live captioning of the call by a third party.
Thus it may be desirable to be able to turn on or off the preview presentation per user. When turning off real-time preview from one participant, its presentation SHALL disappear from the preview window, and text SHALL be entered en-bloc to the history display as they are finished for that participant.
TOC |
Appropriate SIP based presence features SHOULD be used to indicate status in the user interface, e.g. that the user is typing when in ‘en bloc’ mode.
TOC |
In order to be useful for hearing impaired, deaf and deaf-blind users
as well as all situations with all users, it is important to provide
audible, visual and, where possible, tactile alerting from events in the
text conversation application.
It should be
possible for a user to get external alerting signals with a method
preferred by the user. It may for example be vibration, light flashes or
sound as selected by the user. It should also be possible to get
alerting on the screen at certain events.
The
signals to external alerting systems should be issued when an incoming
request for session initiation is received. When the method is used in
connection with T.140 (ITU-T, “Recommendation T.140, Protocol for Multimedia Application Text Conversation (including Addendum),” February 2000.) [T140.refs] presentation, it
should also be issued when the alert-in-session T.140 control event is
received.
For minor events, for example when
an entry from a user is completed and displayed in the conversation
display area, an indication MAY be given e.g. by an on-screen flashing
or any other suitable alerting signal.
It may
be useful to provide external alerting also for these minor events in
specific situations. If the user has not touched the application for a
number of minutes when the minor event occurs it may be of interest to
get an external alert. Details of such arrangements are outside the
scope of this document.
TOC |
None.
TOC |
This specification does not introduce any procedures that change security issues from what is already specified for the session and transport environment where the presentation method is applied.
TOC |
[T140.refs] | ITU-T, “Recommendation T.140, Protocol for Multimedia Application Text Conversation (including Addendum),” February 2000. |
[RFC4103] | Hellstrom, G. and P. Jones, “RTP Payload for Text Conversation,” RFC 4103, June 2005 (TXT). |
[RFC3550] | Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson, “RTP: A Transport Protocol for Real-Time Applications,” STD 64, RFC 3550, July 2003 (TXT, PS, PDF). |
[RFC4975] | Campbell, B., Mahy, R., and C. Jennings, “The Message Session Relay Protocol (MSRP),” RFC 4975, September 2007 (TXT). |
[RFC2119] | Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” BCP 14, RFC 2119, March 1997 (TXT, HTML, XML). |
[I-D.hellstrom-text-conference] | Hellstrom, G. and A. Wijk, “Text media handling in RTP based real-time conferences,” draft-hellstrom-text-conference-02 (work in progress), March 2010 (TXT). |
[I-D.hellstrom-simple-text-transmission] | Hellstrom, G., Jones, P., and G. Vanderheiden, “Coding and transmission of text in real-time and en-bloc mode based on MSRP,” draft-hellstrom-simple-text-transmission-00 (work in progress), January 2008 (TXT). |
TOC |
Gunnar Hellstrom | |
Omnitor | |
PO Box 92054 | |
12006 Stockholm | |
Sweden | |
Phone: | +46-8-58900050 |
Email: | gunnar.hellstrom@omnitor.se |
Norman Williams | |
Gallaudet University | |
800 Florida Ave | |
Kendall Hall 101a | |
Washington, DC 20002 | |
USA | |
Email: | norman.williams@gallaudet.edu |
Arnoud A. T. van Wijk | |
Realtimetext.org | |
Email: | arnoud@realtimetext.org |
Gregg C. Vanderheiden | |
Trace R&D Center, University of Wisconsin-Madison | |
1550 Engineering Drive | |
Madison, WI 53706 | |
USA | |
Email: | gv@trace.wisc.edu |
URI: | http://www.engr.wisc.edu/ie/faculty/vanderheiden_gregg.html |
TOC |
Copyright © 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.
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.