Internet DRAFT - draft-gruessing-sdp-http
draft-gruessing-sdp-http
Multiparty Multimedia Session Control J. Gruessing
Internet-Draft February 6, 2021
Intended status: Standards Track
Expires: August 10, 2021
SDP Mapping into HTTP structured headers
draft-gruessing-sdp-http-02
Abstract
This document specifies a HTTP header based representation of the
Session Description Protocol which can be used in describing media
being negotiated or delivered via HTTP.
Note to Readers
_RFC Editor: please remove this section before publication_
Source code and issues for this draft can be found at
https://github.com/fiestajetsam/I-D/tree/main/draft-gruessing-sdp-
http [1].
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
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."
This Internet-Draft will expire on August 10, 2021.
Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of
Gruessing Expires August 10, 2021 [Page 1]
Internet-Draft SDP Mapping into HTTP structured headers February 2021
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Notational Conventions . . . . . . . . . . . . . . . . . 2
2. The Session-Description Header . . . . . . . . . . . . . . . 3
2.1. Time Description . . . . . . . . . . . . . . . . . . . . 3
2.2. Session Description . . . . . . . . . . . . . . . . . . . 3
3. The Session-Media Header . . . . . . . . . . . . . . . . . . 4
3.1. Implementation Considerations . . . . . . . . . . . . . . 4
3.2. Character set usage . . . . . . . . . . . . . . . . . . . 4
4. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 5
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5
6. Security Considerations . . . . . . . . . . . . . . . . . . . 5
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 5
7.1. Normative References . . . . . . . . . . . . . . . . . . 5
7.2. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 6
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 6
1. Introduction
Services either negotiating or offering media over HTTP may want to
express a greater amount of information beyond a MIME type of content
and its preference.
The Session Description Protocol [RFC8866] describes multimedia
sessions for the purpose of session announcement and initiation.
The Session-Description and Session-Media headers may be used for
either a HTTP request or response and may be included as part of any
HTTP method.
1.1. Notational Conventions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
Gruessing Expires August 10, 2021 [Page 2]
Internet-Draft SDP Mapping into HTTP structured headers February 2021
2. The Session-Description Header
The Session-Description header field conveys the entire session
description information, using [I-D.ietf-httpbis-header-structure] to
describe the structure. Its value MUST be a dictionary containing
containing only the following keys, receivers MUST ignore all other
values. Dictionary keys MUST be ordered in the order presented in
this document, but MAY be omitted where they are explicitly declared
as OPTIONAL.
2.1. Time Description
All values within time description fields that represent wall time
MUST be values shown as integers which represent NTP timestamps with
second resolution. To facilitate ease of parsing, fields that are
used to represet a time duration or offset as described in
Section 5.10 of [RFC8866] MUST NOT use the compact version e.g "1h"
instead of "3600".
2.2. Session Description
v The version, represented as an sh-integer that MUST be set 0.
o The originator of the session, whose value is an sh-list. The
order of values present in the list MUST map to the order
specified in Section 5.2 of [RFC8866].
s The name of the SDP, whose values is a string and MUST NOT be
empty.
i An OPTIONAL description of the session, whose value is a string.
u An OPTIONAL URI reference containing additional information about
the session, whose value is a string and SHOULD be represented as
[RFC3986].
e An OPTIONAL email address, whose value is a string and SHOULD be
represented using [RFC5322] address semantics.
p An OPTIONAL phone number whose value is a string, which SHOULD be
represented as [E.164].
c An OPTIONAL field containing connection data, whose value is an
inner-list, and whose elements are each a string type matching the
order of elements as defined in Section 5.7 of [RFC8866]. This
field MUST be set if no media entities in the description contain
connection information.
b An OPTIONAL field containing the proposed bandwidth to be used by
the session, whose value is an inner-list with only two elements,
the first being a string type whose value corresponds to a
"bwtype" as listed in the IANA registry, or a string prefixed "X-"
to denote an experiemental value. The second element is an
integer type and MUST NOT be negative.
k The key-field field is obsolete and MUST NOT be used.
Implementations MUST discard the field if it is received.
Gruessing Expires August 10, 2021 [Page 3]
Internet-Draft SDP Mapping into HTTP structured headers February 2021
t An OPTIONAL field containing the start and end times of the
session, whose value is an inner-list containing two elements -
the first being the wall time start time, and the latter being the
stopping time.
r An OPTIONAL field containing the repeat times, whose value is an
inner-list containing three elements. The first element contains
the repeat interval whose value is an integer, and the second
element containing the active duration whose value is an integer.
The third element of the offsets from start-time whose value is an
inner-list containing two elements containing integer values
representing the offsets.
z An OPTIONAL field containing time zone adjustment information,
whose value is an inner-list containing elements where each is an
inner-list with two elements; the first element being an integer
representing the wall time which the adjustment should take place,
and the second element whose value is an integer representing the
offset.
a An OPTIONAL field containing session-level attributes, whose value
is an inner-list. Each element may either be a sh-dictionary when
representing a value attribute, or a string where it is a property
attribute. For value attributes, the contents MUST be a single
name/value pair with the name being the attribute name, and the
value as a string.
3. The Session-Media Header
The Session-Media header describes each media element within the
session, and at the top level is an sh-list.
Each media representation may additionally contain a media title (i),
connection information (c), or bandwidth (b).
3.1. Implementation Considerations
The Session-Description header MAY be sent at the same time in a
response with a HTTP body that also contains the SDP payload for
backwards compatibility. In such case the values of the header MUST
be identical in semantic meaning to the body payload and not include
additional information or redaction. It may also, dependant on
implementation be sent in response to a HEAD request - in such cases
the body MUST be omitted but the server MUST also send the
"application/sdp" "Content-Type" HTTP header.
3.2. Character set usage
TODO: Cover character sets
Gruessing Expires August 10, 2021 [Page 4]
Internet-Draft SDP Mapping into HTTP structured headers February 2021
4. Examples
TODO: Examples
5. IANA Considerations
This specification registers the following entry in the Permanent
Message Header Field Names registry established by [RFC3864]:
o Header field name: Session-Description
o Applicable protocol: http
o Status: standard
o Author/Change Controller: IETF
o Specification document(s): [this document]
o Related information:
o Header field name: Session-Media
o Applicable protocol: http
o Status: standard
o Author/Change Controller: IETF
o Specification document(s): [this document]
o Related information:
6. Security Considerations
TODO: Incorporate things like secure transport (HTTPS), in addition
to considerations raised in the structured header draft.
7. References
7.1. Normative References
[E.164] "The international public telecommunication numbering
plan", November 2010, <https://www.itu.int/rec/
dologin_pub.asp?lang=e&id=T-REC-E.164-201011-I!!PDF-
E&type=items>.
Gruessing Expires August 10, 2021 [Page 5]
Internet-Draft SDP Mapping into HTTP structured headers February 2021
[I-D.ietf-httpbis-header-structure]
Nottingham, M. and P. Kamp, "Structured Field Values for
HTTP", draft-ietf-httpbis-header-structure-19 (work in
progress), June 2020.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC3864] Klyne, G., Nottingham, M., and J. Mogul, "Registration
Procedures for Message Header Fields", BCP 90, RFC 3864,
DOI 10.17487/RFC3864, September 2004,
<https://www.rfc-editor.org/info/rfc3864>.
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifier (URI): Generic Syntax", STD 66,
RFC 3986, DOI 10.17487/RFC3986, January 2005,
<https://www.rfc-editor.org/info/rfc3986>.
[RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322,
DOI 10.17487/RFC5322, October 2008,
<https://www.rfc-editor.org/info/rfc5322>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8866] Begen, A., Kyzivat, P., Perkins, C., and M. Handley, "SDP:
Session Description Protocol", RFC 8866,
DOI 10.17487/RFC8866, January 2021,
<https://www.rfc-editor.org/info/rfc8866>.
7.2. URIs
[1] https://github.com/fiestajetsam/I-D/tree/main/draft-gruessing-
sdp-http
Acknowledgements
The author would like to thank Colin Perkins for very early feedback
on this document.
Author's Address
James Gruessing
Email: james.ietf@gmail.com
Gruessing Expires August 10, 2021 [Page 6]