draft-ietf-rtcweb-use-cases-and-requirements-15.txt   draft-ietf-rtcweb-use-cases-and-requirements-16.txt 
RTCWEB Working Group C. Holmberg RTCWEB Working Group C. Holmberg
Internet-Draft S. Hakansson Internet-Draft S. Hakansson
Intended status: Informational G. Eriksson Intended status: Informational G. Eriksson
Expires: June 20, 2015 Ericsson Expires: July 27, 2015 Ericsson
December 17, 2014 January 23, 2015
Web Real-Time Communication Use-cases and Requirements Web Real-Time Communication Use-cases and Requirements
draft-ietf-rtcweb-use-cases-and-requirements-15.txt draft-ietf-rtcweb-use-cases-and-requirements-16.txt
Abstract Abstract
This document describes web based real-time communication use-cases. This document describes web based real-time communication use-cases.
Requirements on the browser functionality are derived from the use- Requirements on the browser functionality are derived from the use-
cases. cases.
This document was developed in an initial phase of the work with This document was developed in an initial phase of the work with
rather minor updates at later stages. It has not really served as a rather minor updates at later stages. It has not really served as a
tool in deciding features or scope for the WGs efforts so far. It is tool in deciding features or scope for the WGs efforts so far. It is
skipping to change at page 1, line 40 skipping to change at page 1, line 40
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on June 20, 2015. This Internet-Draft will expire on July 27, 2015.
Copyright Notice Copyright Notice
Copyright (c) 2014 IETF Trust and the persons identified as the Copyright (c) 2015 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
skipping to change at page 2, line 50 skipping to change at page 2, line 50
4. Requirements summary . . . . . . . . . . . . . . . . . . . . 18 4. Requirements summary . . . . . . . . . . . . . . . . . . . . 18
4.1. General . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.1. General . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.2. Browser requirements . . . . . . . . . . . . . . . . . . 18 4.2. Browser requirements . . . . . . . . . . . . . . . . . . 18
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22
6. Security Considerations . . . . . . . . . . . . . . . . . . . 22 6. Security Considerations . . . . . . . . . . . . . . . . . . . 22
6.1. Introduction . . . . . . . . . . . . . . . . . . . . . . 22 6.1. Introduction . . . . . . . . . . . . . . . . . . . . . . 22
6.2. Browser Considerations . . . . . . . . . . . . . . . . . 22 6.2. Browser Considerations . . . . . . . . . . . . . . . . . 22
6.3. Web Application Considerations . . . . . . . . . . . . . 23 6.3. Web Application Considerations . . . . . . . . . . . . . 23
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 23 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 23
8. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 23 8. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 23
9. Normative References . . . . . . . . . . . . . . . . . . . . 29 9. Normative References . . . . . . . . . . . . . . . . . . . . 30
Appendix A. API requirements . . . . . . . . . . . . . . . . . . 30 Appendix A. API requirements . . . . . . . . . . . . . . . . . . 30
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 32 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 33
1. Introduction 1. Introduction
This document presents a few use-cases of web applications that are This document presents a few use-cases of web applications that are
executed in a browser and use real-time communication capabilities. executed in a browser and use real-time communication capabilities.
In most of the use-cases all end-user clients are web applications, In most of the use-cases all end-user clients are web applications,
but there are some use-cases where at least one of the end-user but there are some use-cases where at least one of the end-user
clients is of another type (e.g. a mobile phone or a SIP User Agent clients is of another type (e.g. a mobile phone or a SIP User Agent
(UA)). (UA)).
skipping to change at page 8, line 8 skipping to change at page 8, line 8
3.3.4. Simple Video Communication Service, global service provider 3.3.4. Simple Video Communication Service, global service provider
3.3.4.1. Description 3.3.4.1. Description
This use-case is almost identical to the This use-case is almost identical to the
Simple Video Communication Service use-case (Section 3.3.1). Simple Video Communication Service use-case (Section 3.3.1).
What is added is that the service provider is operating over large What is added is that the service provider is operating over large
geographical areas (or even globally). geographical areas (or even globally).
Assuming that ICE will be used, this means that the service provider Assuming that the Interactive Connectivity Establishment (ICE)
would like to be able to provide several STUN and TURN servers (via mechanism [RFC5245] will be used, this means that the service
the app) to the browser; selection of which one(s) to use is part of provider would like to be able to provide several STUN and TURN
the ICE processing. Other reasons for wanting to provide several servers (via the app) to the browser; selection of which one(s) to
STUN and TURN servers include support for IPv4 and IPv6, load use is part of the ICE processing. Other reasons for wanting to
balancing and redundancy. provide several STUN and TURN servers include support for IPv4 and
IPv6, load balancing and redundancy.
Note that ICE support being mandatory does not preclude a WebRTC Note that ICE support being mandatory does not preclude a WebRTC
endpoint from supporting more traversal mechanisms than ICE using endpoint from supporting more traversal mechanisms than ICE using
STUN and TURN. STUN and TURN.
3.3.4.2. Additional Requirements 3.3.4.2. Additional Requirements
---------------------------------------------------------------- ----------------------------------------------------------------
REQ-ID DESCRIPTION REQ-ID DESCRIPTION
---------------------------------------------------------------- ----------------------------------------------------------------
skipping to change at page 10, line 15 skipping to change at page 10, line 15
3.3.7. Simple Video Communication Service, QoS 3.3.7. Simple Video Communication Service, QoS
3.3.7.1. Description 3.3.7.1. Description
This use-case is almost identical to the This use-case is almost identical to the
Simple Video Communication Service, access change use-case Simple Video Communication Service, access change use-case
(Section 3.3.6). The use of Quality of Service (QoS) capabilities is (Section 3.3.6). The use of Quality of Service (QoS) capabilities is
added: added:
The user in the previous use case that starts a trip is behind a The user in the previous use case that starts a trip is behind a
common residential router that supports prioritization of traffic. common residential router that supports differentiation of traffic.
In addition, the user's provider of cellular access has QoS support In addition, the user's provider of cellular access has QoS support
enabled. The user is able to take advantage of the QoS support both enabled. The user is able to take advantage of the QoS support both
when accessing via the residential router and when using cellular. when accessing via the residential router and when using cellular.
3.3.7.2. Additional Requirements 3.3.7.2. Additional Requirements
---------------------------------------------------------------- ----------------------------------------------------------------
REQ-ID DESCRIPTION REQ-ID DESCRIPTION
---------------------------------------------------------------- ----------------------------------------------------------------
F17 The communication session must survive across a F17 The communication session must survive across a
change of the network interface used by the change of the network interface used by the
session session
---------------------------------------------------------------- ----------------------------------------------------------------
F22 The browser should be able to take advantage F22 The browser should be able to take advantage
of available capabilities (supplied by network of available capabilities (supplied by network
nodes) to prioritize voice, video and data nodes) to differentiate voice, video and data
appropriately. appropriately.
---------------------------------------------------------------- ----------------------------------------------------------------
3.3.8. Simple Video Communication Service with screen sharing 3.3.8. Simple Video Communication Service with screen sharing
3.3.8.1. Description 3.3.8.1. Description
This use-case has the audio and video communication of the This use-case has the audio and video communication of the
Simple Video Communication Service use-case (Section 3.3.1). Simple Video Communication Service use-case (Section 3.3.1).
skipping to change at page 12, line 29 skipping to change at page 12, line 29
is the video showing the game, the application used in the talent is the video showing the game, the application used in the talent
scout's mobile sets higher priority for that stream. scout's mobile sets higher priority for that stream.
3.3.10.2. Additional Requirements 3.3.10.2. Additional Requirements
---------------------------------------------------------------- ----------------------------------------------------------------
REQ-ID DESCRIPTION REQ-ID DESCRIPTION
---------------------------------------------------------------- ----------------------------------------------------------------
F22 The browser should be able to take advantage F22 The browser should be able to take advantage
of available capabilities (supplied by network of available capabilities (supplied by network
nodes) to prioritize voice, video and data nodes) to differentiate voice, video and data
appropriately. appropriately.
---------------------------------------------------------------- ----------------------------------------------------------------
F25 The browser must be able to render several F25 The browser must be able to render several
concurrent audio and video streams. concurrent audio and video streams.
---------------------------------------------------------------- ----------------------------------------------------------------
A17, A23 A17, A23
3.3.11. Multiparty video communication 3.3.11. Multiparty video communication
3.3.11.1. Description 3.3.11.1. Description
In this use-case, the Simple Video Communication Service use-case In this use-case, the Simple Video Communication Service use-case
(Section 3.3.1) is extended by allowing multiparty sessions. No (Section 3.3.1) is extended by allowing multiparty sessions. No
central server is involved - the browser of each participant sends central server is involved - the browser of each participant sends
and receives streams to and from all other session participants. The and receives streams to and from all other session participants. The
web application in the browser of each user is responsible for web application in the browser of each user is responsible for
setting up streams to all receivers. setting up streams to all receivers.
In order to enhance the user experience, the web application renders In order to enhance the user experience, the web application renders
the audio coming from different particiapants so that it is the audio coming from different participants so that it is
experienced to come from different spatial locations. This is done experienced to come from different spatial locations. This is done
automatically, but users can change how the different participants automatically, but users can change how the different participants
are placed in the (virtual) room. In addition the levels in the are placed in the (virtual) room. In addition the levels in the
audio signals are adjusted before mixing. audio signals are adjusted before mixing.
Another feature intended to enhance the use experience is that the Another feature intended to enhance the use experience is that the
video window that displays the video of the currently speaking peer video window that displays the video of the currently speaking peer
is highlighted. is highlighted.
Each video stream received is by default displayed in a thumbnail Each video stream received is by default displayed in a thumbnail
skipping to change at page 15, line 9 skipping to change at page 15, line 9
spatialization and mixing. "Other sound objects" could for example spatialization and mixing. "Other sound objects" could for example
be a file with the sound of the tank; that file could be stored be a file with the sound of the tank; that file could be stored
locally or remotely. locally or remotely.
3.3.12.2. Additional Requirements 3.3.12.2. Additional Requirements
---------------------------------------------------------------- ----------------------------------------------------------------
REQ-ID DESCRIPTION REQ-ID DESCRIPTION
---------------------------------------------------------------- ----------------------------------------------------------------
F22 The browser should be able to take advantage F22 The browser should be able to take advantage
of available capabilities (supplied by network of available capabilities (supplied by network
nodes) to prioritize voice, video and data nodes) to differentiate voice, video and data
appropriately. appropriately.
---------------------------------------------------------------- ----------------------------------------------------------------
F23 The browser must be able to transmit streams and F23 The browser must be able to transmit streams and
data to several peers concurrently. data to several peers concurrently.
---------------------------------------------------------------- ----------------------------------------------------------------
F24 The browser must be able to receive streams and F24 The browser must be able to receive streams and
data from multiple peers concurrently. data from multiple peers concurrently.
---------------------------------------------------------------- ----------------------------------------------------------------
F25 The browser must be able to render several F25 The browser must be able to render several
concurrent audio and video streams. concurrent audio and video streams.
skipping to change at page 20, line 40 skipping to change at page 20, line 40
servers that are supplied by entities other than servers that are supplied by entities other than
the web application (i.e. the network provider). the web application (i.e. the network provider).
---------------------------------------------------------------- ----------------------------------------------------------------
F21 The browser must be able to send streams and F21 The browser must be able to send streams and
data to a peer in the presence of Firewalls that only data to a peer in the presence of Firewalls that only
allows traffic via a HTTP Proxy, when Firewall policy allows traffic via a HTTP Proxy, when Firewall policy
allows WebRTC traffic. allows WebRTC traffic.
---------------------------------------------------------------- ----------------------------------------------------------------
F22 The browser should be able to take advantage F22 The browser should be able to take advantage
of available capabilities (supplied by network of available capabilities (supplied by network
nodes) to prioritize voice, video and data nodes) to differentiate voice, video and data
appropriately. appropriately.
---------------------------------------------------------------- ----------------------------------------------------------------
Requirements related to multiple peers and streams Requirements related to multiple peers and streams
---------------------------------------------------------------- ----------------------------------------------------------------
REQ-ID DESCRIPTION REQ-ID DESCRIPTION
---------------------------------------------------------------- ----------------------------------------------------------------
F23 The browser must be able to transmit streams and F23 The browser must be able to transmit streams and
data to several peers concurrently. data to several peers concurrently.
---------------------------------------------------------------- ----------------------------------------------------------------
F24 The browser must be able to receive streams and F24 The browser must be able to receive streams and
skipping to change at page 22, line 40 skipping to change at page 22, line 40
6.2. Browser Considerations 6.2. Browser Considerations
The browser is expected to provide mechanisms for getting user The browser is expected to provide mechanisms for getting user
consent to use device resources such as camera and microphone. consent to use device resources such as camera and microphone.
The browser is expected to provide mechanisms for informing the user The browser is expected to provide mechanisms for informing the user
that device resources such as camera and microphone are in use that device resources such as camera and microphone are in use
("hot"). ("hot").
The browser is expected to provide mechanisms for users to revise and The browser must provide mechanisms for users to revise and even
even completely revoke consent to use device resources such as camera completely revoke consent to use device resources such as camera and
and microphone. microphone.
The browser is expected to provide mechanisms for getting user The browser is expected to provide mechanisms for getting user
consent to use the screen (or a certain part of it) or what a certain consent to use the screen (or a certain part of it) or what a certain
application displays on the screen as source for streams. application displays on the screen as source for streams.
The browser is expected to provide mechanisms for informing the user The browser is expected to provide mechanisms for informing the user
that the screen, part thereof or an application is serving as a that the screen, part thereof or an application is serving as a
stream source ("hot"). stream source ("hot").
The browser is expected to provide mechanisms for users to revise and The browser must provide mechanisms for users to revise and even
even completely revoke consent to use the screen, part thereof or an completely revoke consent to use the screen, part thereof or an
application is serving as a stream source. application is serving as a stream source.
The browser is expected to provide mechanisms in order to assure that The browser is expected to provide mechanisms in order to assure that
streams are the ones the recipient intended to receive. streams are the ones the recipient intended to receive.
The browser is expected to provide mechanisms that allows the users The browser is expected to provide mechanisms that allows the users
to verify that the streams received have not be manipulated (F12). to verify that the streams received have not be manipulated (F12).
The browser needs to ensure that media is not sent, and that received The browser needs to ensure that media is not sent, and that received
media is not rendered, until the associated stream establishment and media is not rendered, until the associated stream establishment and
skipping to change at page 23, line 40 skipping to change at page 23, line 40
receiving media streams. receiving media streams.
7. Acknowledgements 7. Acknowledgements
The authors wish to thank Bernard Aboba, Gunnar Hellstrom, Martin The authors wish to thank Bernard Aboba, Gunnar Hellstrom, Martin
Thomson, Lars Eggert, Matthew Kaufman, Emil Ivov, Eric Rescorla, Eric Thomson, Lars Eggert, Matthew Kaufman, Emil Ivov, Eric Rescorla, Eric
Burger, John Leslie, Dan Wing, Richard Barnes, Barry Dingle, Dale Burger, John Leslie, Dan Wing, Richard Barnes, Barry Dingle, Dale
Worley, Ted hardie, Mary Barnes, Dan Burnett, Stephan Wenger, Harald Worley, Ted hardie, Mary Barnes, Dan Burnett, Stephan Wenger, Harald
Alvestrand, Cullen Jennings, Andrew Hutton and everyone else in the Alvestrand, Cullen Jennings, Andrew Hutton and everyone else in the
RTCWEB community that have provided comments, feedback, text and RTCWEB community that have provided comments, feedback, text and
improvement proposals on the document. improvement proposals on the document. A big thank you to everyone
that provided comments as part of the IESG evaluation, and to
everyone else that provided comments and input in order to improve
the document.
8. Change Log 8. Change Log
[RFC EDITOR NOTE: Please remove this section when publishing] [RFC EDITOR NOTE: Please remove this section when publishing]
Changes from draft-ietf-rtcweb-use-cases-and-requirements-15
o Changes based on comment from Stephen Farrell:
o - A1 modified, to also cover access to the local file stystem.
o Changes based on comments from Benoit Claise:
o - RFC 5245 added to references.
o - Note added to Annex A, indicating that the API requirements are
not normative.
o Changes based on comments from Brian Carpenter:
o - RFC 7258 added to references.
o - Terminology fixes:
o -- 'prioritize' -> 'differentiate'.
o -- 'prioritization' -> 'differentiation'.
Changes from draft-ietf-rtcweb-use-cases-and-requirements-14 Changes from draft-ietf-rtcweb-use-cases-and-requirements-14
o Changes based on comments from the ops-dir: o Changes based on comments from the ops-dir:
o - Editorial fixes. o - Editorial fixes.
o - F13: 'per-packet basis' -> 'per IP packet basis'. o - F13: 'per-packet basis' -> 'per IP packet basis'.
o - F22: Text corrected in one occurance. o - F22: Text corrected in one occurance.
skipping to change at page 29, line 47 skipping to change at page 30, line 23
o - Editorial corrections and clarifications o - Editorial corrections and clarifications
9. Normative References 9. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2804] IAB and IESG, "IETF Policy on Wiretapping", RFC 2804, May [RFC2804] IAB and IESG, "IETF Policy on Wiretapping", RFC 2804, May
2000. 2000.
[RFC5245] Rosenberg, J., "Interactive Connectivity Establishment
(ICE): A Protocol for Network Address Translator (NAT)
Traversal for Offer/Answer Protocols", RFC 5245, April
2010.
[RFC5405] Eggert, L. and G. Fairhurst, "Unicast UDP Usage Guidelines [RFC5405] Eggert, L. and G. Fairhurst, "Unicast UDP Usage Guidelines
for Application Designers", BCP 145, RFC 5405, November for Application Designers", BCP 145, RFC 5405, November
2008. 2008.
[RFC5479] Wing, D., Fries, S., Tschofenig, H., and F. Audet, [RFC5479] Wing, D., Fries, S., Tschofenig, H., and F. Audet,
"Requirements and Analysis of Media Security Management "Requirements and Analysis of Media Security Management
Protocols", RFC 5479, April 2009. Protocols", RFC 5479, April 2009.
[RFC7258] Farrell, S. and H. Tschofenig, "Pervasive Monitoring Is an
Attack", BCP 188, RFC 7258, May 2014.
Appendix A. API requirements Appendix A. API requirements
This section contains the requirements on the API derived from the This section contains the requirements on the API derived from the
use-cases in Section 3. use-cases in Section 3.
NOTE: As W3C is responsible for the API, the API requirements in this
specification are not normative.
REQ-ID DESCRIPTION REQ-ID DESCRIPTION
---------------------------------------------------------------- ----------------------------------------------------------------
A1 The Web API must provide means for the A1 The Web API must provide means for the
application to ask the browser for permission application to ask the browser for permission
to use cameras and microphones as input devices. to use cameras and microphones as input devices,
and to have access to the local file system.
---------------------------------------------------------------- ----------------------------------------------------------------
A2 The Web API must provide means for the web A2 The Web API must provide means for the web
application to control how streams generated application to control how streams generated
by input devices are used. by input devices are used.
---------------------------------------------------------------- ----------------------------------------------------------------
A3 The Web API must provide means for the web A3 The Web API must provide means for the web
application to control the local rendering of application to control the local rendering of
streams (locally generated streams and streams streams (locally generated streams and streams
received from a peer). received from a peer).
---------------------------------------------------------------- ----------------------------------------------------------------
 End of changes. 21 change blocks. 
26 lines changed or deleted 65 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/