idnits 2.17.1 draft-gruessing-sdp-http-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (19 February 2020) is 1527 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) ** Obsolete normative reference: RFC 4566 (Obsoleted by RFC 8866) == Outdated reference: A later version (-19) exists of draft-ietf-httpbis-header-structure-15 Summary: 1 error (**), 0 flaws (~~), 2 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Multiparty Multimedia Session Control J. Gruessing 3 Internet-Draft British Broadcasting Corporation 4 Intended status: Standards Track 19 February 2020 5 Expires: 22 August 2020 7 SDP Mapping into HTTP structured headers 8 draft-gruessing-sdp-http-00 10 Abstract 12 This document specifies a HTTP header based representation of the 13 Session Description Protocol which can be used in describing media 14 being negotiated or delivered via HTTP. 16 Note to Readers 18 _RFC Editor: please remove this section before publication_ 20 Source code and issues for this draft can be found at 21 https://github.com/bbc/draft-gruessing-sdp-http 22 (https://github.com/bbc/draft-gruessing-sdp-http). 24 Status of This Memo 26 This Internet-Draft is submitted in full conformance with the 27 provisions of BCP 78 and BCP 79. 29 Internet-Drafts are working documents of the Internet Engineering 30 Task Force (IETF). Note that other groups may also distribute 31 working documents as Internet-Drafts. The list of current Internet- 32 Drafts is at https://datatracker.ietf.org/drafts/current/. 34 Internet-Drafts are draft documents valid for a maximum of six months 35 and may be updated, replaced, or obsoleted by other documents at any 36 time. It is inappropriate to use Internet-Drafts as reference 37 material or to cite them other than as "work in progress." 39 This Internet-Draft will expire on 22 August 2020. 41 Copyright Notice 43 Copyright (c) 2020 IETF Trust and the persons identified as the 44 document authors. All rights reserved. 46 This document is subject to BCP 78 and the IETF Trust's Legal 47 Provisions Relating to IETF Documents (https://trustee.ietf.org/ 48 license-info) in effect on the date of publication of this document. 49 Please review these documents carefully, as they describe your rights 50 and restrictions with respect to this document. Code Components 51 extracted from this document must include Simplified BSD License text 52 as described in Section 4.e of the Trust Legal Provisions and are 53 provided without warranty as described in the Simplified BSD License. 55 Table of Contents 57 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 58 1.1. Notational Conventions . . . . . . . . . . . . . . . . . 2 59 2. The Session-Description Header . . . . . . . . . . . . . . . 3 60 2.1. Session Description . . . . . . . . . . . . . . . . . . . 3 61 2.1.1. Time Description . . . . . . . . . . . . . . . . . . 4 62 2.2. The Session-Media Header . . . . . . . . . . . . . . . . 4 63 2.3. Implementation Considerations . . . . . . . . . . . . . . 4 64 2.3.1. Character set usage . . . . . . . . . . . . . . . . . 5 65 3. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 5 66 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 67 5. Security Considerations . . . . . . . . . . . . . . . . . . . 5 68 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 6 69 7. Normative References . . . . . . . . . . . . . . . . . . . . 6 70 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 6 72 1. Introduction 74 The Session Description Protocol [RFC4566] describes multimedia 75 sessions for the purpose of session announcement and initiation. 77 The Session-Description and Session-Media headers may be used for 78 either a HTTP request or response and may be included as part of any 79 HTTP method. 81 1.1. Notational Conventions 83 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 84 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 85 "OPTIONAL" in this document are to be interpreted as described in BCP 86 14 [RFC2119] [RFC8174] when, and only when, they appear in all 87 capitals, as shown here. 89 2. The Session-Description Header 91 The Session-Description header field conveys the entire session 92 description information, using [I-D.ietf-httpbis-header-structure] to 93 describe the structure. Its value MUST be a dictionary containing 94 containing only the following keys, receivers MUST ignore all other 95 values. Dictionary keys MUST be ordered in the order presented in 96 this document, but MAY be omitted where they are explicitly declared 97 as OPTIONAL. 99 2.1. Session Description 101 v The version, represented as an sh-integer that MUST be set 0. 102 o The originator of the session, whose value is an sh-list. The 103 order of values present in the list MUST map to the order 104 specified in Section 5.2 of [RFC4566]. 105 s The name of the SDP, whose values is a string and MUST NOT be 106 empty. 107 i An OPTIONAL description of the session, whose value is a string. 108 u An OPTIONAL URI reference containing additional information about 109 the session, whose value is a string and SHOULD be represented as 110 [RFC3986]. 111 e An OPTIONAL email address, whose value is a string and SHOULD be 112 represented using [RFC5322] address semantics. 113 p An OPTIONAL phone number whose value is a string, which SHOULD be 114 represented as [E.164]. 115 c An OPTIONAL field containing connection data, whose value is an 116 inner-list, and whose elements are each a string type matching the 117 order of elements as defined in Section 5.7 of [RFC4566]. This 118 field MUST be set if no media entities in the description contain 119 connection information. 120 b An OPTIONAL field containing the proposed bandwidth to be used by 121 the session, whose value is an inner-list with only two elements, 122 the first being a string type whose value corresponds to a 123 "bwtype" as listed in the IANA registry, or a string prefixed "X-" 124 to denote an experiemental value. The second element is an 125 integer type and MUST NOT be negative. 126 k An OPTIONAL field containing encryption key information, whose 127 field is an inner-list containing up to two elements. The first 128 element 130 2.1.1. Time Description 132 All values within time description fields that represent wall time 133 MUST be values shown as integers which represent NTP timestamps with 134 second resolution. To facilitate ease of parsing, fields that are 135 used to represet a time duration or offset as described in 136 Section 5.10 of [RFC4566] MUST NOT use the compact version e.g "1h" 137 instead of "3600". 139 t An OPTIONAL field containing the start and end times of the 140 session, whose value is an inner-list containing two elements - 141 the first being the wall time start time, and the latter being the 142 stopping time. 143 r An OPTIONAL field containing the repeat times, whose value is an 144 inner-list containing three elements. The first element contains 145 the repeat interval whose value is an integer, and the second 146 element containing the active duration whose value is an integer. 147 The third element of the offsets from start-time whose value is an 148 inner-list containing two elements containing integer values 149 representing the offsets. 150 z An OPTIONAL field containing time zone adjustment information, 151 whose value is an inner-list containing elements where each is an 152 inner-list with two elements; the first element being an integer 153 representing the wall time which the adjustment should take place, 154 and the second element whose value is an integer representing the 155 offset. 156 a An OPTIONAL field containing session-level attributes, whose value 157 is an inner-list. Each element may either be a sh-dictionary when 158 representing a value attribute, or a string where it is a property 159 attribute. For value attributes, the contents MUST be a single 160 name/value pair with the name being the attribute name, and the 161 value as a string. 163 2.2. The Session-Media Header 165 The Session-Media header describes each media element within the 166 session, and at the top level is an sh-list. 168 Each media representation may additionally contain a media title (i), 169 connection information (c), bandwidth (b), or encryption key (k). 171 2.3. Implementation Considerations 173 The Session-Description header MAY be sent at the same time in a 174 response with a HTTP body that also contains the SDP payload for 175 backwards compatibility. In such case the values of the header MUST 176 be identical in semantic meaning to the body payload and not include 177 additional information or redaction. It may also, dependant on 178 implementation be sent in response to a HEAD request - in such cases 179 the body MUST be omitted but the server MUST also send the 180 "application/sdp" "Content-Type" HTTP header. 182 2.3.1. Character set usage 184 TODO: Cover character sets 186 3. Examples 188 TODO: Examples 190 4. IANA Considerations 192 This specification registers the following entry in the Permanent 193 Message Header Field Names registry established by [RFC3864]: 195 o Header field name: Session-Description 197 o Applicable protocol: http 199 o Status: standard 201 o Author/Change Controller: IETF 203 o Specification document(s): [this document] 205 o Related information: 207 o Header field name: Session-Media 209 o Applicable protocol: http 211 o Status: standard 213 o Author/Change Controller: IETF 215 o Specification document(s): [this document] 217 o Related information: 219 5. Security Considerations 221 TODO: Incorporate things like secure transport (HTTPS), in addition 222 to considerations raised in the structured header draft. 224 -back 226 6. Acknowledgements 228 TODO 230 7. Normative References 232 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 233 Requirement Levels", BCP 14, RFC 2119, 234 DOI 10.17487/RFC2119, March 1997, 235 . 237 [RFC3864] Klyne, G., Nottingham, M., and J. Mogul, "Registration 238 Procedures for Message Header Fields", BCP 90, RFC 3864, 239 DOI 10.17487/RFC3864, September 2004, 240 . 242 [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform 243 Resource Identifier (URI): Generic Syntax", STD 66, 244 RFC 3986, DOI 10.17487/RFC3986, January 2005, 245 . 247 [RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322, 248 DOI 10.17487/RFC5322, October 2008, 249 . 251 [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session 252 Description Protocol", RFC 4566, DOI 10.17487/RFC4566, 253 July 2006, . 255 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 256 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 257 May 2017, . 259 [I-D.ietf-httpbis-header-structure] 260 Nottingham, M. and P. Kamp, "Structured Headers for HTTP", 261 Work in Progress, Internet-Draft, draft-ietf-httpbis- 262 header-structure-15, 28 January 2020, 263 . 266 [E.164] "The international public telecommunication numbering 267 plan", November 2010, . 271 Author's Address 272 James Gruessing 273 British Broadcasting Corporation 275 Email: james.gruessing@bbc.co.uk