idnits 2.17.1 draft-ietf-rtcweb-sdp-11.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 : ---------------------------------------------------------------------------- == There are 4 instances of lines with non-RFC6890-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document seems to lack the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords -- however, there's a paragraph with a matching beginning. Boilerplate error? (The document does seem to have the reference to RFC 2119 which the ID-Checklist requires). -- The document date (October 08, 2018) is 2020 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Unused Reference: 'I-D.ietf-mmusic-ice-sip-sdp' is defined on line 5359, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-mmusic-trickle-ice' is defined on line 5371, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-mmusic-msid' is defined on line 5377, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-mmusic-sctp-sdp' is defined on line 5382, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-rtcweb-data-channel' is defined on line 5390, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-payload-flexible-fec-scheme' is defined on line 5395, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-mmusic-mux-exclusive' is defined on line 5401, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-mmusic-dtls-sdp' is defined on line 5406, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-avtext-rid' is defined on line 5421, but no explicit reference was found in the text -- Obsolete informational reference (is this intentional?): RFC 4566 (Obsoleted by RFC 8866) == Outdated reference: A later version (-54) exists of draft-ietf-mmusic-sdp-bundle-negotiation-53 == Outdated reference: A later version (-14) exists of draft-ietf-mmusic-sdp-simulcast-13 == Outdated reference: A later version (-39) exists of draft-ietf-mmusic-ice-sip-sdp-21 == Outdated reference: A later version (-26) exists of draft-ietf-rtcweb-jsep-24 == Outdated reference: A later version (-17) exists of draft-ietf-mmusic-msid-16 == Outdated reference: A later version (-20) exists of draft-ietf-payload-flexible-fec-scheme-08 == Outdated reference: A later version (-20) exists of draft-ietf-rtcweb-security-arch-15 == Outdated reference: A later version (-12) exists of draft-ietf-rtcweb-security-10 Summary: 0 errors (**), 0 flaws (~~), 20 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group S. Nandakumar 3 Internet-Draft C. Jennings 4 Intended status: Informational Cisco 5 Expires: April 11, 2019 October 08, 2018 7 Annotated Example SDP for WebRTC 8 draft-ietf-rtcweb-sdp-11 10 Abstract 12 The Real-Time Communications in WEB-browsers (Rtcweb) working group 13 is charged to provide protocol support for direct interactive rich 14 communication using audio, video and data between two peers' web 15 browsers. With in the Rtcweb framework, Session Description protocol 16 (SDP) is used for negotiating session capabilities between the peers. 17 Such a negotiation happens based on the SDP Offer/Answer exchange 18 mechanism. 20 This document provides an informational reference in describing the 21 role of SDP and the Offer/Answer exchange mechanism for the most 22 common Rtcweb use-cases. 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 http://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 April 11, 2019. 41 Copyright Notice 43 Copyright (c) 2018 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 48 (http://trustee.ietf.org/license-info) in effect on the date of 49 publication of this document. Please review these documents 50 carefully, as they describe your rights and restrictions with respect 51 to this document. Code Components extracted from this document must 52 include Simplified BSD License text as described in Section 4.e of 53 the Trust Legal Provisions and are provided without warranty as 54 described in the Simplified BSD License. 56 Table of Contents 58 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 59 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 60 3. SDP and the WebRTC . . . . . . . . . . . . . . . . . . . . . 3 61 4. Offer/Answer and the WebRTC . . . . . . . . . . . . . . . . . 5 62 5. WebRTC Session Description Examples . . . . . . . . . . . . . 6 63 5.1. Some Conventions . . . . . . . . . . . . . . . . . . . . 7 64 5.2. Basic Examples . . . . . . . . . . . . . . . . . . . . . 9 65 5.2.1. Audio Only Session . . . . . . . . . . . . . . . . . 9 66 5.2.2. Audio/Video Session . . . . . . . . . . . . . . . . . 14 67 5.2.2.1. IPv4 audio/video session . . . . . . . . . . . . 14 68 5.2.2.2. Dual Stack audio/video session . . . . . . . . . 19 69 5.2.3. Data Only Session . . . . . . . . . . . . . . . . . . 24 70 5.2.4. Audio Call On Hold . . . . . . . . . . . . . . . . . 27 71 5.2.5. Audio with DTMF Session . . . . . . . . . . . . . . . 31 72 5.2.6. One Way Audio/Video Session - Document Camera . . . . 35 73 5.2.7. Audio, Video Session with BUNDLE Support Unknown . . 39 74 5.2.8. Audio, Video and Data Session . . . . . . . . . . . . 45 75 5.2.9. Audio, Video Session with BUNDLE Unsupported . . . . 49 76 5.2.10. Audio, Video BUNDLED, but Data (Not BUNDLED) . . . . 54 77 5.2.11. Audio Only, Add Video to BUNDLE . . . . . . . . . . . 59 78 5.3. MultiResolution, RTX, FEC Examples . . . . . . . . . . . 66 79 5.3.1. Sendonly Simulcast Session with 2 cameras and 2 80 encodings per camera . . . . . . . . . . . . . . 66 81 5.3.2. Successful SVC Video Session . . . . . . . . . . . . 74 82 5.3.3. Successful Simulcast Video Session with 83 Retransmission . . . . . . . . . . . . . . . . . . . 78 84 5.3.4. Successful 1-way Simulcast Session with 2 resolutions 85 and RTX - One resolution rejected . . . . . . 83 86 5.3.5. Simulcast Video Session with Forward Error Correction 88 87 5.4. Others . . . . . . . . . . . . . . . . . . . . . . . . . 93 88 5.4.1. Audio Session - Voice Activity Detection . . . . . . 93 89 5.4.2. Audio Conference - Voice Activity Detection . . . . . 97 90 5.4.3. Successful legacy Interop Fallback with bundle-only . 100 91 5.4.4. Legacy Interop with RTP/AVP profile . . . . . . . . . 105 92 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 109 93 7. Security Considerations . . . . . . . . . . . . . . . . . . . 109 94 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 109 95 9. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 110 96 10. Informative References . . . . . . . . . . . . . . . . . . . 113 97 Appendix A. Appendix . . . . . . . . . . . . . . . . . . . . . . 118 98 A.1. JSEP SDP Attributes Checklist . . . . . . . . . . . . . . 118 99 A.1.1. Common Checklist . . . . . . . . . . . . . . . . . . 118 100 A.1.2. RTP Media Description Checklist . . . . . . . . . . . 119 101 A.1.3. DataChannel Media Description checklist . . . . . . . 121 102 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 121 104 1. Introduction 106 Javascript Session Establishment Protocol(JSEP) 107 [I-D.ietf-rtcweb-jsep] specifies a generic protocol needed to 108 generate [RFC3264] Offers and Answers negotiated between the [WebRTC] 109 peers for setting up, updating and tearing down a WebRTC session. 110 For this purpose, SDP is used to construct [RFC3264] Offers/Answers 111 for describing (media and non-media) streams as appropriate for the 112 recipients of the session description to participate in the session. 114 The remainder of this document is organized as follows: Sections 3 115 and 4 provides an overview of SDP and the Offer/Answer exchange 116 mechanism. Section 5 provides sample SDP generated for the most 117 common WebRTC use-cases. 119 2. Terminology 121 The key words "MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD NOT", 122 "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be 123 interpreted as described in [RFC2119]. 125 Readers should be familiar with the terminology defined in [RFC3264] 126 and in [RFC7656]. 128 3. SDP and the WebRTC 130 The purpose of this section is to provide a general overview of SDP 131 and its components. For a more in-depth understanding, the readers 132 are advised to refer to [RFC4566]. 134 The Session Description Protocol (SDP) [RFC4566] describes multimedia 135 sessions, which can contain audio, video, whiteboard, fax, modem, and 136 other streams. SDP provides a general purpose, standard 137 representation to describe various aspects of multimedia session such 138 as media capabilities, transport addresses and related metadata in a 139 transport agnostic manner, for the purposes of session announcement, 140 session invitation and parameter negotiation. 142 As of today SDP is widely used in the context of Session Initiation 143 Protocol [RFC3261], Real-time Transport Protocol [RFC3550] and Real- 144 time Streaming Protocol applications [RFC7826]. 146 Below figure introduces high-level breakup of SDP into components 147 that semantically describe a multimedia session, in our case, a 148 WebRTC session [WebRTC]. It by no means captures everything about 149 SDP and hence, should be used for informational purposes only. 151 +---------------------+ 152 | v= | 153 +---------------------+ 154 +---------------------+ +---------------------+ 155 ==== | Session Metadata | ===== | o= | 156 | +---------------------+ +---------------------- 157 | +---------------------+ 158 | | t= | 159 | +---------------------+ 160 | 161 | 162 | +---------------------+ 163 | | c= | 164 | +---------------------+ 165 | +---------------------+ 166 ==== | Network Description | ===== 167 | +---------------------+ 168 | +---------------------+ 169 | | a=candidate | 170 | +---------------------+ 171 | 172 | 173 | +---------------------+ 174 | | m= | 175 | +---------------------+ 176 | +---------------------+ +---------------------+ 177 ==== | Stream Description | ===== | a=rtpmap | 178 | +---------------------+ +---------------------- 179 | +---------------------+ 180 | | a=fmtp | 181 | +---------------------+ 182 | +---------------------+ 183 | | a=sendrecv.. | 184 | +---------------------+ 185 +---------------+ 186 | SEMANTIC | 187 | COMPONENTS OF | 188 | SDP | 189 +---------------+ 190 | +---------------------+ 191 | | a=crypto | 192 | +---------------------+ 193 | +---------------------+ +---------------------+ 194 ==== |Security Descriptions| =====| a=ice-frag | 195 | +---------------------+ +---------------------- 196 | +---------------------+ 197 | | a=ice-pwd | 198 | +---------------------+ 199 | +---------------------+ 200 | | a=fingerprint | 201 | +---------------------+ 202 | 203 | 204 | 205 | +---------------------+ 206 | | a=rtcp-fb | 207 | +---------------------+ 208 | +---------------------+ +---------------------+ 209 ==== | Qos,Grouping | | | 210 | Descriptions | =====| a=group | 211 +---------------------+ +---------------------- 212 +---------------------+ 213 | a=rtcpmux | 214 +---------------------+ 216 Figure 1: Semantic Components of SDP 218 [WebRTC] proposes JavaScript application to fully specify and control 219 the signaling plane of a multimedia session as described in the JSEP 220 specification [I-D.ietf-rtcweb-jsep]. JSEP provides mechanisms to 221 create session characterization and media definition information to 222 conduct the session based on SDP exchanges. 224 In this context, SDP serves two purposes: 226 1. Provide grammatical structure syntactically. 228 2. Semantically convey participant's intention and capabilities 229 required to successfully negotiate a session. 231 4. Offer/Answer and the WebRTC 233 This section introduces SDP Offer/Answer Exchange mechanism mandated 234 by WebRTC for negotiating session capabilities while setting up, 235 updating and tearing down a WebRTC session. This section is 236 intentionally brief in nature and interested readers are recommended 237 to refer [RFC3264] for specific details on the protocol operation. 239 The Offer/Answer [RFC3264] model specifies rule for the bilateral 240 exchange of Session Description Protocol (SDP) messages for creation 241 of multimedia streams. It defines protocol with involved 242 participants exchanging desired session characteristics from each 243 others perspective constructed as SDP to negotiate the session 244 between them. 246 In the most basic form,the protocol operation begins by one of the 247 participants sending an initial SDP Offer describing its intent to 248 start a multimedia communication session. The participant receiving 249 the offer MAY generate an SDP Answer accepting the offer or it MAY 250 reject the offer. If the session is accepted the Offer/Answer model 251 guarantees a common view of the multimedia session between the 252 participants. 254 At any time, either participant MAY generate a new SDP offer that 255 updates the session in progress. 257 With in the context of WebRTC, the Offer/Answer model defines the 258 state-machinery for WebRTC peers to negotiate session descriptions 259 between them during the initial setup stages as well as for eventual 260 session updates. JSEP specification [I-D.ietf-rtcweb-jsep] for 261 WebRTC provides the mechanism for generating [RFC3264] SDP Offers and 262 Answers in order for both sides of the session to agree upon the 263 details such as the list of media formats to be sent/received, 264 bandwidth information, crypto parameters, transport parameters, for 265 example. 267 5. WebRTC Session Description Examples 269 A typical web based real-time multimedia communication session can be 270 characterized as below: 272 o It has zero or more Audio only, Video only or Audio/Video RTP 273 Sessions, 275 o MAY contain zero or more non-media data sessions, 277 o All the sessions are secured with DTLS-SRTP, 279 o Supports NAT traversal using ICE mechanism, 281 o Provides RTCP based feedback mechanisms, 283 o Sessions can be over IPv4-only, IPv6-only, dual-stack based 284 clients, 286 o Supports BUNDLE based grouping of media streams over a single 287 5-tuple transport. 289 5.1. Some Conventions 291 The examples given in this document follow the conventions listed 292 below: 294 o In all the examples, Alice and Bob are assumed to be the WebRTC 295 peers. 297 o It is assumed that for most of the examples, the support for 298 [I-D.ietf-mmusic-sdp-bundle-negotiation] is established apriori 299 either out-of-band or as a consequence of successful Offer/Answer 300 negotiation between Alice and Bob, unless explicitly stated 301 otherwise. 303 o Call-flow diagrams that accompany the use-cases capture only the 304 prominent aspects of the system behavior and intentionally is not 305 detailed to improve readability. 307 o Eventhough the call-flow diagrams shows SDP being exchanged 308 between the parties, it doesn't represent the only way an WebRTC 309 setup is expected to work. Other approaches may involve WebRTC 310 applications to exchange the media setup information via non-SDP 311 mechanisms as long as they confirm to the [I-D.ietf-rtcweb-jsep] 312 API specification. 314 o The SDP examples deviate from actual on-the-wire SDP notation in 315 several ways. This is done to facilitate readability and to 316 conform to the restrictions imposed by the RFC formatting rules. 318 * Visual markers/Empty lines in any SDP example are inserted to 319 make functional divisions in the SDP clearer, and are not 320 actually part of the SDP syntax. 322 * Any SDP line that is indented (compared to the initial line in 323 the SDP block) is a continuation of the preceding line. The 324 line break and indent are to be interpreted as a single space 325 character. 327 * Excepting the above two conventions, line endings are to be 328 interpreted as pairs (that is, an ASCII 13 followed by 329 an ASCII 10). 331 o Against each SDP line, pointers to the appropriate RFCs are 332 provided for further informational reference. Also an attempt has 333 been made to provide explanatory notes to enable better 334 understanding of the SDP usage, wherever appropriate. 336 o Following SDP details are common across all the use-cases defined 337 in this document unless mentioned otherwise. 339 * DTLS fingerprint for SRTP (a=fingerprint) 341 * RTP/RTCP Multiplexing (a=rtcp-mux) 343 * RTCP Feedback support (a=rtcp-fb) 345 * Host and server-reflexive candidate lines (a=candidate) 347 * SRTP Setup framework parameters (a=setup) 349 * RTCP attribute (a=rtcp) 351 * RTP header extension indicating audio-levels from client to the 352 mixer 354 For specific details, readers must refer to [I-D.ietf-rtcweb-jsep] 355 specification. 357 o The term "Session" is used rather loosely in this document to 358 refer to either a "Communication Session" or a "RTP Session" or a 359 "RTP Stream" depending on the context. 361 o Payload type 109 is usually used for OPUS, 0 for PCMU, 8 for PCMA, 362 99 for H.264 and 120 for VP8 in most of the examples to maintain 363 uniformity. 365 o The IP Address:Port combinations '192.0.2.4:61665' (host) and 366 '203.0.113.141:54609' (Server Reflexive) is typically used for 367 Alice. 369 o The IP Address:Port combinations '198.51.100.7:51556' (host) and 370 '203.0.113.77:49203' (Server Reflexive) is typically used for Bob. 372 o The IPv6 addresses 2001:DB8:8101:3a55:4858:a2a9:22ff:99b9 and 373 2001:DB8:30c:1266:5916:3779:22f6:77f7 are used to represent Alice 374 and Bob host addresses respectively. 376 o In the actual use the values that represent SSRCs, ICE candidate 377 foundations, WebRTC Mediastream, MediaStreamTrack Ids values shall 378 be much larger and/or random than the ones shown in the examples. 380 o tls-id attribute values 89J2LRATQ3ULA24G9AHWVR31VJWSLB68 and 381 UKA29UQLTF69OJW4WNPNUO2Y0GF1FJOZ are used for Alice. The values 382 CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 and 383 9AIFS8AQ009IXF5D6QQUJ7P8BXPEZJ8G are used for Bob. 385 o identity attribute values are split across multiple lines to 386 enhance readability, thus any line breaks and indentations in the 387 value must be ignored. 389 o SDP attributes in the examples closely follow the checklist 390 defined in section Appendix A.1. 392 5.2. Basic Examples 394 5.2.1. Audio Only Session 396 This common scenario shows SDP for secure two-way audio session with 397 Alice offering Opus, PCMU, PCMA and Bob accepting all the offered 398 audio codecs. 400 This example also shows the endpoints being [RFC8445] compliant by 401 including "ice2" ice-options attribute. 403 2-Way Audio Only Session 405 Alice Bob 406 | | 407 | | 408 | Offer(Audio:Opus,PCMU,PCMA) | 409 |------------------------------------>| 410 | | 411 | | 412 | Answer(Audio:Opus,PCMU,PCMA) | 413 |<------------------------------------| 414 | | 415 | | 416 |Two-way Opus Audio (preferred-codec) | 417 |.....................................| 418 | | 419 | | 421 +---------------------------------------------+---------------------+ 422 | Offer SDP Contents | RFC#/Notes | 423 +---------------------------------------------+---------------------+ 424 | v=0 | [RFC4566] | 425 | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] - Session | 426 | | Origin Information | 427 | s=- | [RFC4566] | 428 | t=0 0 | [RFC4566] | 429 | a=group:BUNDLE audio | [I-D.ietf-mmusic-sd | 430 | | p-bundle-negotiatio | 431 | | n] | 432 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 433 | | ickle-ice] | 434 | a=ice-options:ice2 | [RFC8445] | 435 | a=identity:eyJpZHAiOnsiZG9tYWluIjoibmlpZi5o | Section 5.6 of [I-D | 436 | dSIsInByb3RvY29sIjoiaWRwLmh0bWwifSwiYXNzZXJ | .ietf-rtcweb-securi | 437 | 0a W9uIjoiZXlKaGJHY2lPaUpTVXpJMU5pSXNJblI1Y | ty-arch] | 438 | 0NJNklrcFhVeUo5LmV5SmpiMjUwWlc1MGN5STZleUpt | | 439 | YVc1b lpYSndjbWx1ZENJNlczc2lZV3huYjNKcGRHaH | | 440 | RJam9pYzJoaExUSTFOaUlzSW1ScFoyVnpkQ0k2SWpre | | 441 | k9rTXdPa kl6T2pKR09rRXlPakF3T2pBd09qQkVPalV | | 442 | 4T2tGRE9rUXlPalUwT2pZMU9rWTBPak5DT2pkRU9qa3 | | 443 | lPa1JET2pnN E9qTXpPalV4T2pJek9qUXdPamN5T2pr | | 444 | eE9qZ3pPalZDT2pBeE9qSkdPalV3T2pjNE9qTkdJbjF | | 445 | kZlN3aWFXUmxib lJwZEhraU9pSnRhWE5wUUc1cGFXW | | 446 | XVhSFVpZlEuSTVQdGhKNFFDT05TOFVXd25OOUh3MEda | | 447 | TDl3d0RBVGRrTWtFW llmdlNVTTJ6Umd5R09WSGgzRm | | 448 | pnc2FPZklkRnFsNUx6azBFbndVOTNQOUlCQ0xZOWtia | | 449 | 3V1c0V1S25YRGVNLTNIN WFmdTJvZl9CTlZjUnB3Mmd | | 450 | BdlNBbVR6SlltcEpqMFEtdmV0TmtVT1huZE9HLUIzT3 | | 451 | ZGb3QwZVNENlZSNUdhb2wyc GduS3FSTktOd3dacEZ1 | | 452 | eUZZbFRodHJIdGNiT19WV3o4QnZpTThKS25OdExWd1J | | 453 | xNUhMX2ZLTlRCNzFDYkoyWmh5W XU1UEdwWDhXcXJMW | | 454 | C1ybm5YSFY3RnhoTTh5OHdrLWd5cnRZazVnbFlZeUFr | | 455 | cTVqZklSXzRzWER5d19Qc1BWTW1aZ XltenVGV3BQTz | | 456 | VFWlJYR0ZpRjFET0o4Q0Q3Z3Zta2dUdlBXSWpkemtBI | | 457 | n0= | | 458 | ****** Audio m=line ********* | ******************* | 459 | | ********** | 460 | m=audio 54609 UDP/TLS/RTP/SAVPF 109 0 8 | [RFC4566] | 461 | c=IN IP4 203.0.113.141 | [RFC4566] | 462 | a=mid:audio | [RFC5888] | 463 | a=msid:ma ta | Identifies | 464 | | RTCMediaStream ID | 465 | | (ma) and | 466 | | RTCMediaStreamTrack | 467 | | ID (ta) | 468 | a=sendrecv | [RFC3264] - Alice | 469 | | can send and recv | 470 | | audio | 471 | a=rtpmap:109 opus/48000/2 | [RFC7587] - Opus | 472 | | Codec 48khz, 2 | 473 | | channels | 474 | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMU | 475 | | Audio Codec | 476 | a=rtpmap:8 PCMA/8000 | [RFC3551] PCMA | 477 | | Audio Codec | 478 | a=maxptime:120 | [RFC4566] | 479 | a=ice-ufrag:074c6550 | [I-D.ietf-mmusic-ic | 480 | | e-sip-sdp] - ICE | 481 | | user fragment | 482 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [I-D.ietf-mmusic-ic | 483 | | e-sip-sdp] - ICE | 484 | | password | 485 | a=fingerprint:sha-256 19:E2:1C:3B:4B:9F:81: | [RFC8122] - DTLS | 486 | E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | Fingerprint for | 487 | 4:A9:0E:05:E9:26:33:E8:70:88:A2 | SRTP | 488 | a=setup:actpass | [RFC5763] - Alice | 489 | | can act as DTLS | 490 | | client or server | 491 | a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 | [I-D.ietf-mmusic-dt | 492 | | ls-sdp] | 493 | a=rtcp-mux | [RFC5761] - Alice | 494 | | can perform | 495 | | RTP/RTCP Muxing | 496 | a=rtcp:60065 IN IP4 203.0.113.141 | [RFC3605] | 497 | a=rtcp-rsize | [RFC5506] - Alice | 498 | | intends to use | 499 | | reduced size RTCP | 500 | | for this session | 501 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] Alice | 502 | audio-level | supports RTP header | 503 | | extension to | 504 | | indicate audio | 505 | | levels | 506 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 507 | hdrext:sdes:mid | p-bundle-negotiatio | 508 | | n] | 509 | a=candidate:0 1 UDP 2122194687 192.0.2.4 | [I-D.ietf-mmusic-ic | 510 | 61665 typ host | e-sip-sdp] - RTP | 511 | | Host Candidate | 512 | a=candidate:1 1 UDP 1685987071 | [I-D.ietf-mmusic-ic | 513 | 203.0.113.141 54609 typ srflx raddr | e-sip-sdp] - RTP | 514 | 192.0.2.4 rport 61665 | Server Reflexive | 515 | | ICE Candidate | 516 | a=candidate:0 2 UDP 2122194687 192.0.2.4 | [I-D.ietf-mmusic-ic | 517 | 61667 typ host | e-sip-sdp] - RTCP | 518 | | Host Candidate | 519 | a=candidate:1 2 UDP 1685987071 | [I-D.ietf-mmusic-ic | 520 | 203.0.113.141 60065 typ srflx raddr | e-sip-sdp] - RTCP | 521 | 192.0.2.4 rport 61667 | Server Reflexive | 522 | | ICE Candidate | 523 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 524 | | ickle-ice] | 525 +---------------------------------------------+---------------------+ 527 Table 1: 5.2.1 SDP Offer 529 +---------------------------------------------+---------------------+ 530 | Answer SDP Contents | RFC#/Notes | 531 +---------------------------------------------+---------------------+ 532 | v=0 | [RFC4566] | 533 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session | 534 | | Origin Information | 535 | s=- | [RFC4566] | 536 | t=0 0 | [RFC4566] | 537 | a=group:BUNDLE audio | [I-D.ietf-mmusic-sd | 538 | | p-bundle-negotiatio | 539 | | n] | 540 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 541 | | ickle-ice] | 542 | a=ice-options:ice2 | [RFC8445] | 543 | a=identity:ew0KICAiaWRwIjp7DQogICAgImRvbWFp | Section 5.6 of [I-D | 544 | biI6ICJjaXNjb3NwYXJrLmNvbSIsDQogICAg InByb3 | .ietf-rtcweb-securi | 545 | RvY29sIjogImRlZmF1bHQiDQogIH0sDQogICJhc3Nlc | ty-arch] | 546 | nRpb24iOiAibEp3WkVocmFVOXBTblJo V0U1d1VVYzF | | 547 | jR0ZYV1hWaFNGVnBabEV1U1RWUWRHaEtORkZEVDA1VE | | 548 | 9GVlhkMjVPT1VoM01FZGFURGwz ZDBSQlZHUnJUV3RG | | 549 | Vw0KICAgICAgICAgICAgICBsbG1kbE5WVFRKNlVtZDV | | 550 | SMDlXU0dnelJtcG5jMkZQ Wmtsa1JuRnNOVXg2YXpCR | | 551 | mJuZFZPVE5RT1VsQ1EweFpPV3RpYTNWMWMwVjFTMjVZ | | 552 | UkdWTkxUTklODQog ICAgICAgICAgICAgIFdGbWRUSn | | 553 | ZabDlDVGxaalVuQjNNbWRCZGxOQmJWUjZTbGx0Y0Vwc | | 554 | U1GRXRkbVYw VG10VlQxaHVaRTlITFVJelQzWkdiM1F | | 555 | 3WlZORU5sWlNOVWRoYjJ3eWMNCiAgICAgICAgICAgIC | | 556 | AgR2R1 UzNGU1RrdE9kM2RhY0VaMWVVWlpiRlJvZEhK | | 557 | SWRHTmlUMTlXVjNvNFFuWnBUVGhLUzI1T2RFeFdkMUp | | 558 | 4 TlVoTVgyWkxUbFJDTnpGRFlrb3lXbWg1VyINCn0= | | 559 | ****** Audio m=line ********* | ******************* | 560 | | ********** | 561 | m=audio 49203 UDP/TLS/RTP/SAVPF 109 0 8 | [RFC4566] | 562 | c=IN IP4 203.0.113.77 | [RFC4566] | 563 | a=mid:audio | [RFC5888] | 564 | a=msid:ma ta | [I-D.ietf-mmusic-ms | 565 | | id] Identifies | 566 | | RTCMediaStream ID | 567 | | (ma) and | 568 | | RTCMediaStreamTrack | 569 | | ID (ta) | 570 | a=sendrecv | [RFC3264] - Bob can | 571 | | send and recv audio | 572 | a=rtpmap:109 opus/48000/2 | [RFC7587] Opus | 573 | | Codec | 574 | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMU | 575 | | Audio Codec | 576 | a=rtpmap:8 PCMA/8000 | [RFC3551] PCMA | 577 | | Audio Codec | 578 | a=maxptime:120 | [RFC4566] | 579 | a=ice-ufrag:05067423 | [I-D.ietf-mmusic-ic | 580 | | e-sip-sdp] - ICE | 581 | | user fragment | 582 | a=ice-pwd:1747d1ee3474a28a397a4c3f3af08a068 | [I-D.ietf-mmusic-ic | 583 | | e-sip-sdp] - ICE | 584 | | password parameter | 585 | a=fingerprint:sha-256 6B:8B:F0:65:5F:78:E2: | [RFC8122] - DTLS | 586 | 51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | Fingerprint for | 587 | 4:C2:43:F0:A1:58:D0:A1:2C:19:08 | SRTP | 588 | a=setup:active | [RFC5763] - Bob is | 589 | | the DTLS client | 590 | a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 | [I-D.ietf-mmusic-dt | 591 | | ls-sdp] | 592 | a=rtcp-mux | [RFC5761] - Bob can | 593 | | perform RTP/RTCP | 594 | | Muxing on port | 595 | | 49203 | 596 | a=rtcp-rsize | [RFC5506] - Bob | 597 | | intends to use | 598 | | reduced size RTCP | 599 | | for this session | 600 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] Bob | 601 | audio-level | supports audio | 602 | | level RTP header | 603 | | extension as well | 604 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 605 | hdrext:sdes:mid | p-bundle-negotiatio | 606 | | n] | 607 | a=candidate:0 1 UDP 2122194687 198.51.100.7 | [I-D.ietf-mmusic-ic | 608 | 51556 typ host | e-sip-sdp] - | 609 | | RTP/RTCP Host ICE | 610 | | Candidate | 611 | a=candidate:1 1 UDP 1685987071 203.0.113.77 | [I-D.ietf-mmusic-ic | 612 | 49203 typ srflx raddr 198.51.100.7 rport | e-sip-sdp] - | 613 | 51556 | RTP/RTCP Server | 614 | | Reflexive ICE | 615 | | Candidate | 616 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 617 | | ickle-ice] | 618 +---------------------------------------------+---------------------+ 620 Table 2: 5.2.1 SDP Answer 622 5.2.2. Audio/Video Session 624 Alice and Bob establish a two-way audio and video session with Opus 625 as the audio codec and H.264 as the video codec. 627 2-Way Audio,Video Session 629 Alice Bob 630 | | 631 | | 632 |Offer(Audio:Opus,PCMU,PCMA Video:H.264,VP8) | 633 |------------------------------------------->| 634 | | 635 | | 636 | Answer(Audio:Opus,Video:H.264) | 637 |<-------------------------------------------| 638 | | 639 | | 640 | Two-way Opus Audio, H.264 Video | 641 |............................................| 642 | | 644 5.2.2.1. IPv4 audio/video session 646 This section shows the IPv4 only Offer/Answer exchange. 648 +---------------------------------------------+---------------------+ 649 | Offer SDP Contents | RFC#/Notes | 650 +---------------------------------------------+---------------------+ 651 | v=0 | [RFC4566] | 652 | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] - Session | 653 | | Origin Information | 654 | s=- | [RFC4566] | 655 | t=0 0 | [RFC4566] | 656 | a=group:BUNDLE audio video | [I-D.ietf-mmusic-sd | 657 | | p-bundle-negotiatio | 658 | | n] | 659 | a=group:LS audio video | [RFC5888] - Alice | 660 | | wants to lip sync | 661 | | her audio and video | 662 | | sreams | 663 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 664 | | ickle-ice] | 665 | ****** Audio m=line ********* | ******************* | 666 | | ********** | 667 | m=audio 54609 UDP/TLS/RTP/SAVPF 109 0 8 | [RFC4566] | 668 | c=IN IP4 203.0.113.141 | [RFC4566] | 669 | a=mid:audio | [RFC5888] | 670 | a=msid:ma ta | [I-D.ietf-mmusic-ms | 671 | | id] Identifies | 672 | | RTCMediaStream ID | 673 | | (ma) and | 674 | | RTCMediaStreamTrack | 675 | | ID (ta) | 676 | a=sendrecv | [RFC3264] - Alice | 677 | | can send and recv | 678 | | audio | 679 | a=rtpmap:109 opus/48000/2 | [RFC7587] - Opus | 680 | | Codec 48khz, 2 | 681 | | channels | 682 | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMU | 683 | | Audio Codec | 684 | a=rtpmap:8 PCMA/8000 | [RFC3551] PCMA | 685 | | Audio Codec | 686 | a=maxptime:120 | [RFC4566] | 687 | a=ice-ufrag:074c6550 | [I-D.ietf-mmusic-ic | 688 | | e-sip-sdp] - ICE | 689 | | user fragment | 690 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [I-D.ietf-mmusic-ic | 691 | | e-sip-sdp] - ICE | 692 | | password parameter | 693 | a=fingerprint:sha-256 19:E2:1C:3B:4B:9F:81: | [RFC8122] - DTLS | 694 | E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | Fingerprint for | 695 | 4:A9:0E:05:E9:26:33:E8:70:88:A2 | SRTP | 696 | a=setup:actpass | [RFC5763] - Alice | 697 | | can act as DTLS | 698 | | client or server | 699 | a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 | [I-D.ietf-mmusic-dt | 700 | | ls-sdp] | 701 | a=rtcp-mux | [RFC5761] - Alice | 702 | | can perform | 703 | | RTP/RTCP Muxing | 704 | a=rtcp-mux-only | [I-D.ietf-mmusic-mu | 705 | | x-exclusive] | 706 | a=rtcp-rsize | [RFC5506] - Alice | 707 | | intends to use | 708 | | reduced size RTCP | 709 | | for this session | 710 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 711 | audio-level | | 712 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 713 | hdrext:sdes:mid | p-bundle-negotiatio | 714 | | n] | 715 | a=candidate:0 1 UDP 2122194687 192.0.2.4 | [I-D.ietf-mmusic-ic | 716 | 61665 typ host | e-sip-sdp] - | 717 | | RTP/RTCP Host | 718 | | Candidate | 719 | a=candidate:1 1 UDP 1685987071 | [I-D.ietf-mmusic-ic | 720 | 203.0.113.141 54609 typ srflx raddr | e-sip-sdp] - | 721 | 192.0.2.4 rport 61665 | RTP/RTCP Server | 722 | | Reflexive ICE | 723 | | Candidate | 724 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 725 | | ickle-ice] | 726 | ****** Video m=line ********* | ******************* | 727 | | ********** | 728 | m=video 0 UDP/TLS/RTP/SAVPF 99 120 | [RFC4566] | 729 | c=IN IP4 203.0.113.141 | [RFC4566] | 730 | a=bundle-only | [I-D.ietf-mmusic-sd | 731 | | p-bundle-negotiatio | 732 | | n] | 733 | a=mid:video | [RFC5888] | 734 | a=msid:ma tb | Identifies | 735 | | RTCMediaStream ID | 736 | | (ma) and | 737 | | RTCMediaStreamTrack | 738 | | ID (tb) | 739 | a=sendrecv | [RFC3264] - Alice | 740 | | can send and recv | 741 | | video | 742 | a=rtpmap:99 H264/90000 | [RFC6184] - H.264 | 743 | | Video Codec | 744 | a=fmtp:99 profile-level- | [RFC6184] | 745 | id=4d0028;packetization-mode=1 | | 746 | a=rtpmap:120 VP8/90000 | [RFC7741] - VP8 | 747 | | video codec | 748 | a=rtcp-fb:99 nack | [RFC4585] - | 749 | | Indicates NACK RTCP | 750 | | feedback support | 751 | a=rtcp-fb:99 nack pli | [RFC4585] - | 752 | | Indicates support | 753 | | for Picture loss | 754 | | Indication and NACK | 755 | a=rtcp-fb:99 ccm fir | [RFC5104] - Full | 756 | | Intra Frame | 757 | | Request-Codec | 758 | | Control Message | 759 | | support | 760 | a=rtcp-fb:120 nack | [RFC4585] - | 761 | | Indicates NACK RTCP | 762 | | feedback support | 763 | a=rtcp-fb:120 nack pli | [RFC4585] - | 764 | | Indicates support | 765 | | for Picture loss | 766 | | Indication and NACK | 767 | a=rtcp-fb:120 ccm fir | [RFC5104] - Full | 768 | | Intra Frame | 769 | | Request-Codec | 770 | | Control Message | 771 | | support | 772 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 773 | hdrext:sdes:mid | p-bundle-negotiatio | 774 | | n] | 775 +---------------------------------------------+---------------------+ 777 Table 3: 5.2.2.1 SDP Offer 779 +---------------------------------------------+---------------------+ 780 | Answer SDP Contents | RFC#/Notes | 781 +---------------------------------------------+---------------------+ 782 | v=0 | [RFC4566] | 783 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session | 784 | | Origin Information | 785 | s=- | [RFC4566] | 786 | t=0 0 | [RFC4566] | 787 | a=group:BUNDLE audio video | [I-D.ietf-mmusic-sd | 788 | | p-bundle-negotiatio | 789 | | n] | 790 | a=group:LS audio video | [RFC5888] - Bob | 791 | | agrees to do the | 792 | | same | 793 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 794 | | ickle-ice] | 795 | ****** Audio m=line ********* | ******************* | 796 | | ********** | 797 | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 798 | c=IN IP4 203.0.113.77 | [RFC4566] | 799 | a=mid:audio | [RFC5888] | 800 | a=msid:ma ta | Identifies | 801 | | RTCMediaStream ID | 802 | | (ma) and | 803 | | RTCMediaStreamTrack | 804 | | ID (ta) | 805 | a=sendrecv | [RFC3264] - Bob can | 806 | | send and recv audio | 807 | a=rtpmap:109 opus/48000/2 | [RFC7587] - Bob | 808 | | accepts only Opus | 809 | | Codec | 810 | a=maxptime:120 | [RFC4566] | 811 | a=ice-ufrag:c300d85b | [I-D.ietf-mmusic-ic | 812 | | e-sip-sdp] - ICE | 813 | | username frag | 814 | a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [I-D.ietf-mmusic-ic | 815 | | e-sip-sdp] - ICE | 816 | | password | 817 | a=fingerprint:sha-256 6B:8B:F0:65:5F:78:E2: | [RFC8122] - DTLS | 818 | 51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | Fingerprint for | 819 | 4:C2:43:F0:A1:58:D0:A1:2C:19:08 | SRTP | 820 | a=setup:active | [RFC5763] - Bob is | 821 | | the DTLS client | 822 | a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 | [I-D.ietf-mmusic-dt | 823 | | ls-sdp] | 824 | a=rtcp-mux | [RFC5761] - Bob can | 825 | | perform RTP/RTCP | 826 | | Muxing | 827 | a=rtcp-mux-only | [I-D.ietf-mmusic-mu | 828 | | x-exclusive] | 829 | a=rtcp-rsize | [RFC5506] - Bob | 830 | | intends to use | 831 | | reduced size RTCP | 832 | | for this session | 833 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 834 | audio-level | | 835 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 836 | hdrext:sdes:mid | p-bundle-negotiatio | 837 | | n] | 838 | a=candidate:0 1 UDP 3618095783 198.51.100.7 | [I-D.ietf-mmusic-ic | 839 | 49203 typ host | e-sip-sdp] - | 840 | | RTP/RTCP Host ICE | 841 | | Candidate | 842 | a=candidate:1 1 UDP 565689203 203.0.113.77 | [I-D.ietf-mmusic-ic | 843 | 49203 typ srflx raddr 198.51.100.7 rport | e-sip-sdp] - | 844 | 51556 | RTP/RTCP Server | 845 | | Reflexive ICE | 846 | | Candidate | 847 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 848 | | ickle-ice] | 849 | ****** Video m=line ********* | ******************* | 850 | | ********** | 851 | m=video 0 UDP/TLS/RTP/SAVPF 99 | [RFC4566] | 852 | c=IN IP4 203.0.113.77 | [RFC4566] | 853 | a=bundle-only | [I-D.ietf-mmusic-sd | 854 | | p-bundle-negotiatio | 855 | | n] | 856 | a=mid:video | [RFC5888] | 857 | a=msid:ma tb | Identifies | 858 | | RTCMediaStream ID | 859 | | (ma) and | 860 | | RTCMediaStreamTrack | 861 | | ID (tb) | 862 | a=sendrecv | [RFC3264] - Bob can | 863 | | send and recv video | 864 | a=rtpmap:99 H264/90000 | [RFC6184] - Bob | 865 | | accepts H.264 Video | 866 | | Codec. | 867 | a=fmtp:99 profile-level- | [RFC6184] | 868 | id=4d0028;packetization-mode=1 | | 869 | a=rtcp-fb:99 nack | [RFC4585] - | 870 | | Indicates support | 871 | | for NACK based RTCP | 872 | | feedback | 873 | a=rtcp-fb:99 nack pli | [RFC4585] - | 874 | | Indicates support | 875 | | for Picture loss | 876 | | Indication and NACK | 877 | a=rtcp-fb:99 ccm fir | [RFC5104] - Full | 878 | | Intra Frame | 879 | | Request- Codec | 880 | | Control Message | 881 | | support | 882 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 883 | hdrext:sdes:mid | p-bundle-negotiatio | 884 | | n] | 885 +---------------------------------------------+---------------------+ 887 Table 4: 5.2.2.1 SDP Answer 889 5.2.2.2. Dual Stack audio/video session 891 This section captures offer/answer exchange when Alice and Bob 892 support both IPv4 and IPv6 host addresses. 894 +---------------------------------------------+---------------------+ 895 | Offer SDP Contents | RFC#/Notes | 896 +---------------------------------------------+---------------------+ 897 | v=0 | [RFC4566] | 898 | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] - Session | 899 | | Origin Information | 900 | s=- | [RFC4566] | 901 | t=0 0 | [RFC4566] | 902 | a=group:BUNDLE audio video | [I-D.ietf-mmusic-sd | 903 | | p-bundle-negotiatio | 904 | | n] | 905 | a=group:LS audio video | [RFC5888] - Alice | 906 | | wants to lip sync | 907 | | her audio and video | 908 | | sreams | 909 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 910 | | ickle-ice] | 911 | ****** Audio m=line ********* | ******************* | 912 | | ********** | 913 | m=audio 54609 UDP/TLS/RTP/SAVPF 109 0 8 | [RFC4566] | 914 | c=IN IP4 203.0.113.141 | [RFC4566] | 915 | a=mid:audio | [RFC5888] | 916 | a=msid:ma ta | Identifies | 917 | | RTCMediaStream ID | 918 | | (ma) and | 919 | | RTCMediaStreamTrack | 920 | | ID (ta) | 921 | a=sendrecv | [RFC3264] - Alice | 922 | | can send and recv | 923 | | audio | 924 | a=rtpmap:109 opus/48000/2 | [RFC7587] - Opus | 925 | | Codec 48khz, 2 | 926 | | channels | 927 | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMU | 928 | | Audio Codec | 929 | a=rtpmap:8 PCMA/8000 | [RFC3551] PCMA | 930 | | Audio Codec | 931 | a=maxptime:120 | [RFC4566] | 932 | a=ice-ufrag:074c6550 | [I-D.ietf-mmusic-ic | 933 | | e-sip-sdp] - ICE | 934 | | user fragment | 935 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [I-D.ietf-mmusic-ic | 936 | | e-sip-sdp] - ICE | 937 | | password parameter | 938 | a=fingerprint:sha-256 19:E2:1C:3B:4B:9F:81: | [RFC8122] - DTLS | 939 | E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | Fingerprint for | 940 | 4:A9:0E:05:E9:26:33:E8:70:88:A2 | SRTP | 941 | a=setup:actpass | [RFC5763] - Alice | 942 | | can act as DTLS | 943 | | client or server | 944 | a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 | [I-D.ietf-mmusic-dt | 945 | | ls-sdp] | 946 | a=rtcp-mux | [RFC5761] - Alice | 947 | | can perform | 948 | | RTP/RTCP Muxing | 949 | a=rtcp-mux-only | [I-D.ietf-mmusic-mu | 950 | | x-exclusive] | 951 | a=rtcp-rsize | [RFC5506] - Alice | 952 | | intends to use | 953 | | reduced size RTCP | 954 | | for this session | 955 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 956 | audio-level | | 957 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 958 | hdrext:sdes:mid | p-bundle-negotiatio | 959 | | n] | 960 | a=candidate:0 1 UDP 2122194687 192.0.2.4 | [I-D.ietf-mmusic-ic | 961 | 61665 typ host | e-sip-sdp] - | 962 | | RTP/RTCP Host | 963 | | Candidate | 964 | a=candidate:0 1 UDP 2122194687 | [I-D.ietf-mmusic-ic | 965 | 2001:DB8:8101:3a55:4858:a2a9:22ff:99b9 | e-sip-sdp] - | 966 | 61665 typ host | RTP/RTCP IPv6 Host | 967 | | Candidate | 968 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 969 | | ickle-ice] | 970 | ****** Video m=line ********* | ******************* | 971 | | ********** | 972 | m=video 0 UDP/TLS/RTP/SAVPF 99 120 | [RFC4566] | 973 | c=IN IP4 203.0.113.141 | [RFC4566] | 974 | a=bundle-only | [I-D.ietf-mmusic-sd | 975 | | p-bundle-negotiatio | 976 | | n] | 977 | a=mid:video | [RFC5888] | 978 | a=msid:ma tb | Identifies | 979 | | RTCMediaStream ID | 980 | | (ma) and | 981 | | RTCMediaStreamTrack | 982 | | ID (tb) | 983 | a=sendrecv | [RFC3264] - Alice | 984 | | can send and recv | 985 | | video | 986 | a=rtpmap:99 H264/90000 | [RFC6184] - H.264 | 987 | | Video Codec | 988 | a=fmtp:99 profile-level- | [RFC6184] | 989 | id=4d0028;packetization-mode=1 | | 990 | a=rtpmap:120 VP8/90000 | [RFC7741] - VP8 | 991 | | video codec | 992 | a=rtcp-fb:99 nack | [RFC4585] - | 993 | | Indicates NACK RTCP | 994 | | feedback support | 995 | a=rtcp-fb:99 nack pli | [RFC4585] - | 996 | | Indicates support | 997 | | for Picture loss | 998 | | Indication and NACK | 999 | a=rtcp-fb:99 ccm fir | [RFC5104] - Full | 1000 | | Intra Frame | 1001 | | Request-Codec | 1002 | | Control Message | 1003 | | support | 1004 | a=rtcp-fb:120 nack | [RFC4585] - | 1005 | | Indicates NACK RTCP | 1006 | | feedback support | 1007 | a=rtcp-fb:120 nack pli | [RFC4585] - | 1008 | | Indicates support | 1009 | | for Picture loss | 1010 | | Indication and NACK | 1011 | a=rtcp-fb:120 ccm fir | [RFC5104] - Full | 1012 | | Intra Frame | 1013 | | Request-Codec | 1014 | | Control Message | 1015 | | support | 1016 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 1017 | hdrext:sdes:mid | p-bundle-negotiatio | 1018 | | n] | 1019 +---------------------------------------------+---------------------+ 1021 Table 5: 5.2.2.2 SDP Offer 1023 +---------------------------------------------+---------------------+ 1024 | Answer SDP Contents | RFC#/Notes | 1025 +---------------------------------------------+---------------------+ 1026 | v=0 | [RFC4566] | 1027 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session | 1028 | | Origin Information | 1029 | s=- | [RFC4566] | 1030 | t=0 0 | [RFC4566] | 1031 | a=group:BUNDLE audio video | [I-D.ietf-mmusic-sd | 1032 | | p-bundle-negotiatio | 1033 | | n] | 1034 | a=group:LS audio video | [RFC5888] - Bob | 1035 | | agrees to do the | 1036 | | same | 1037 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 1038 | | ickle-ice] | 1039 | ****** Audio m=line ********* | ******************* | 1040 | | ********** | 1041 | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 1042 | c=IN IP4 203.0.113.77 | [RFC4566] | 1043 | a=mid:audio | [RFC5888] | 1044 | a=msid:ma ta | Identifies | 1045 | | RTCMediaStream ID | 1046 | | (ma) and | 1047 | | RTCMediaStreamTrack | 1048 | | ID (ta) | 1049 | a=sendrecv | [RFC3264] - Bob can | 1050 | | send and recv audio | 1051 | a=rtpmap:109 opus/48000/2 | [RFC7587] - Bob | 1052 | | accepts only Opus | 1053 | | Codec | 1054 | a=maxptime:120 | [RFC4566] | 1055 | a=ice-ufrag:c300d85b | [I-D.ietf-mmusic-ic | 1056 | | e-sip-sdp] - ICE | 1057 | | username frag | 1058 | a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [I-D.ietf-mmusic-ic | 1059 | | e-sip-sdp] - ICE | 1060 | | password | 1061 | a=fingerprint:sha-256 6B:8B:F0:65:5F:78:E2: | [RFC8122] - DTLS | 1062 | 51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | Fingerprint for | 1063 | 4:C2:43:F0:A1:58:D0:A1:2C:19:08 | SRTP | 1064 | a=setup:active | [RFC5763] - Bob is | 1065 | | the DTLS client | 1066 | a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 | [I-D.ietf-mmusic-dt | 1067 | | ls-sdp] | 1068 | a=rtcp-mux | [RFC5761] - Bob can | 1069 | | perform RTP/RTCP | 1070 | | Muxing | 1071 | a=rtcp-mux-only | [I-D.ietf-mmusic-mu | 1072 | | x-exclusive] | 1073 | a=rtcp-rsize | [RFC5506] - Bob | 1074 | | intends to use | 1075 | | reduced size RTCP | 1076 | | for this session | 1077 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 1078 | audio-level | | 1079 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 1080 | hdrext:sdes:mid | p-bundle-negotiatio | 1081 | | n] | 1082 | a=candidate:0 1 UDP 3618095783 198.51.100.7 | [I-D.ietf-mmusic-ic | 1083 | 49203 typ host | e-sip-sdp] - | 1084 | | RTP/RTCP Host ICE | 1085 | | Candidate | 1086 | a=candidate:0 1 UDP 3618095783 | [I-D.ietf-mmusic-ic | 1087 | 2001:DB8:30c:1266:5916:3779:22f6:77f7 49203 | e-sip-sdp] - | 1088 | typ host | RTP/RTCP IPv6 Host | 1089 | | ICE Candidate | 1090 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 1091 | | ickle-ice] | 1092 | ****** Video m=line ********* | ******************* | 1093 | | ********** | 1094 | m=video 0 UDP/TLS/RTP/SAVPF 99 | [RFC4566] | 1095 | c=IN IP4 203.0.113.77 | [RFC4566] | 1096 | a=bundle-only | [I-D.ietf-mmusic-sd | 1097 | | p-bundle-negotiatio | 1098 | | n] | 1099 | a=mid:video | [RFC5888] | 1100 | a=msid:ma tb | Identifies | 1101 | | RTCMediaStream ID | 1102 | | (ma) and | 1103 | | RTCMediaStreamTrack | 1104 | | ID (tb) | 1105 | a=sendrecv | [RFC3264] - Bob can | 1106 | | send and recv video | 1107 | a=rtpmap:99 H264/90000 | [RFC6184] - Bob | 1108 | | accepts H.264 Video | 1109 | | Codec. | 1110 | a=fmtp:99 profile-level- | [RFC6184] | 1111 | id=4d0028;packetization-mode=1 | | 1112 | a=rtcp-fb:99 nack | [RFC4585] - | 1113 | | Indicates support | 1114 | | for NACK based RTCP | 1115 | | feedback | 1116 | a=rtcp-fb:99 nack pli | [RFC4585] - | 1117 | | Indicates support | 1118 | | for Picture loss | 1119 | | Indication and NACK | 1120 | a=rtcp-fb:99 ccm fir | [RFC5104] - Full | 1121 | | Intra Frame | 1122 | | Request- Codec | 1123 | | Control Message | 1124 | | support | 1125 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 1126 | hdrext:sdes:mid | p-bundle-negotiatio | 1127 | | n] | 1128 +---------------------------------------------+---------------------+ 1130 Table 6: 5.2.2.2 SDP Answer 1132 5.2.3. Data Only Session 1134 This scenario illustrates the SDP negotiated to setup a data-only 1135 session based on the SCTP Data Channel, thus enabling use-cases such 1136 as file-transfer, real-time game control for example. 1138 2-Way DataChannel Session 1140 Alice Bob 1141 | | 1142 | | 1143 | | 1144 | Offer(DataChannel) | 1145 |-------------------------------->| 1146 | | 1147 | | 1148 | Answer(DataChannel) | 1149 |<--------------------------------| 1150 | | 1151 | | 1152 | Two-way SCTP based DataChannel | 1153 |.................................| 1154 | | 1155 | | 1157 +---------------------------------------------+---------------------+ 1158 | Offer SDP Contents | RFC#/Notes | 1159 +---------------------------------------------+---------------------+ 1160 | v=0 | [RFC4566] | 1161 | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] - Session | 1162 | | Origin Information | 1163 | s=- | [RFC4566] | 1164 | t=0 0 | [RFC4566] | 1165 | a=group:BUNDLE data | [I-D.ietf-mmusic-sd | 1166 | | p-bundle-negotiatio | 1167 | | n] | 1168 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 1169 | | ickle-ice] | 1170 | ****** Application m=line ********* | ******************* | 1171 | | ********** | 1172 | m=application 54609 UDP/DTLS/SCTP webrtc- | [I-D.ietf-rtcweb-da | 1173 | datachannel | ta-channel] | 1174 | c=IN IP4 203.0.113.141 | [RFC4566] | 1175 | a=mid:data | [RFC5888] | 1176 | a=sendrecv | [RFC3264] - Alice | 1177 | | can send and recv | 1178 | | non-media data | 1179 | a=sctp-port:5000 | [I-D.ietf-mmusic-sc | 1180 | | tp-sdp] | 1181 | a=max-message-size:100000 | [I-D.ietf-mmusic-sc | 1182 | | tp-sdp] | 1183 | a=setup:actpass | [RFC5763] - Alice | 1184 | | can act as DTLS | 1185 | | client or server | 1186 | a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 | [I-D.ietf-mmusic-dt | 1187 | | ls-sdp] | 1188 | a=ice-ufrag:074c6550 | [I-D.ietf-mmusic-ic | 1189 | | e-sip-sdp] - | 1190 | | Session Level ICE | 1191 | | parameter | 1192 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [I-D.ietf-mmusic-ic | 1193 | | e-sip-sdp] - | 1194 | | Session Level ICE | 1195 | | parameter | 1196 | a=fingerprint:sha-256 19:E2:1C:3B:4B:9F:81: | [RFC8122] - Session | 1197 | E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | DTLS Fingerprint | 1198 | 4:A9:0E:05:E9:26:33:E8:70:88:A2 | for SRTP | 1199 | a=candidate:0 1 UDP 2113667327 192.0.2.4 | [I-D.ietf-mmusic-ic | 1200 | 61665 typ host | e-sip-sdp] | 1201 | a=candidate:1 1 UDP 1694302207 | [I-D.ietf-mmusic-ic | 1202 | 203.0.113.141 54609 typ srflx raddr | e-sip-sdp] | 1203 | 192.0.2.4 rport 61665 | | 1204 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 1205 | | ickle-ice] | 1206 +---------------------------------------------+---------------------+ 1208 Table 7: 5.2.3 SDP Offer 1210 +---------------------------------------------+---------------------+ 1211 | Answer SDP Contents | RFC#/Notes | 1212 +---------------------------------------------+---------------------+ 1213 | v=0 | [RFC4566] | 1214 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session | 1215 | | Origin Information | 1216 | s=- | [RFC4566] | 1217 | t=0 0 | [RFC4566] | 1218 | a=group:BUNDLE data | [I-D.ietf-mmusic-sd | 1219 | | p-bundle-negotiatio | 1220 | | n] | 1221 | ****** Application m=line ********* | ******************* | 1222 | | ********** | 1223 | m=application 49203 UDP/DTLS/SCTP webrtc- | [I-D.ietf-mmusic-sc | 1224 | datachannel | tp-sdp] | 1225 | c=IN IP4 203.0.113.77 | [RFC4566] | 1226 | a=mid:data | [RFC5888] | 1227 | a=sendrecv | [RFC3264] - Bob can | 1228 | | send and recv non- | 1229 | | media data | 1230 | a=sctp-port:5000 | [I-D.ietf-mmusic-sc | 1231 | | tp-sdp] | 1232 | a=max-message-size:100000 | [I-D.ietf-mmusic-sc | 1233 | | tp-sdp] | 1234 | a=setup:active | [RFC5763] - Bob is | 1235 | | the DTLS client | 1236 | a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 | [I-D.ietf-mmusic-dt | 1237 | | ls-sdp] | 1238 | a=ice-ufrag:c300d85b | [I-D.ietf-mmusic-ic | 1239 | | e-sip-sdp] - | 1240 | | Session Level ICE | 1241 | | username frag | 1242 | a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [I-D.ietf-mmusic-ic | 1243 | | e-sip-sdp] - | 1244 | | Session Level ICE | 1245 | | password | 1246 | a=fingerprint:sha-256 6B:8B:F0:65:5F:78:E2: | [RFC8122] - Session | 1247 | 51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | DTLS Fingerprint | 1248 | 4:C2:43:F0:A1:58:D0:A1:2C:19:08 | for SRTP | 1249 | a=candidate:0 1 UDP 2113667327 198.51.100.7 | [I-D.ietf-mmusic-ic | 1250 | 51556 typ host | e-sip-sdp] | 1251 | a=candidate:1 1 UDP 1694302207 203.0.113.77 | [I-D.ietf-mmusic-ic | 1252 | 49203 typ srflx raddr 198.51.100.7 rport | e-sip-sdp] | 1253 | 51556 | | 1254 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 1255 | | ickle-ice] | 1256 +---------------------------------------------+---------------------+ 1258 Table 8: 5.2.3 SDP Answer 1260 5.2.4. Audio Call On Hold 1262 Alice calls Bob, but when Bob answers he places Alice on hold by 1263 setting the SDP direction attribute to a=inactive in the Answer. 1265 Audio On Hold 1267 Alice Bob 1268 | | 1269 | | 1270 | Offer(Audio:Opus) | 1271 |-------------------------------->| 1272 | | 1273 | | 1274 | Answer(Audio:Opus,a=inactive) | 1275 |<--------------------------------| 1276 | | 1277 | | 1278 | One-way Opus Audio | 1279 |.................................| 1280 | | 1281 | 1283 +---------------------------------------------+---------------------+ 1284 | Offer SDP Contents | RFC#/Notes | 1285 +---------------------------------------------+---------------------+ 1286 | v=0 | [RFC4566] | 1287 | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] - Session | 1288 | | Origin Information | 1289 | s=- | [RFC4566] | 1290 | t=0 0 | [RFC4566] | 1291 | a=group:BUNDLE audio | [I-D.ietf-mmusic-sd | 1292 | | p-bundle-negotiatio | 1293 | | n] | 1294 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 1295 | | ickle-ice] | 1296 | ****** Audio m=line ********* | ******************* | 1297 | | ********** | 1298 | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 1299 | c=IN IP4 203.0.113.141 | [RFC4566] | 1300 | a=mid:audio | [RFC5888] | 1301 | a=msid:ma ta | Identifies | 1302 | | RTCMediaStream ID | 1303 | | (ma) and | 1304 | | RTCMediaStreamTrack | 1305 | | ID (ta) | 1306 | a=sendrecv | [RFC3264] - Alice | 1307 | | can send and recv | 1308 | | audio | 1309 | a=rtpmap:109 opus/48000/2 | [RFC7587] - Opus | 1310 | | Codec 48khz, 2 | 1311 | | channels | 1312 | a=maxptime:120 | [RFC4566] | 1313 | a=ice-ufrag:074c6550 | [I-D.ietf-mmusic-ic | 1314 | | e-sip-sdp] - ICE | 1315 | | user fragment | 1316 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [I-D.ietf-mmusic-ic | 1317 | | e-sip-sdp] - ICE | 1318 | | password | 1319 | a=fingerprint:sha-256 19:E2:1C:3B:4B:9F:81: | [RFC8122] - DTLS | 1320 | E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | Fingerprint for | 1321 | 4:A9:0E:05:E9:26:33:E8:70:88:A2 | SRTP | 1322 | a=setup:actpass | [RFC5763] - Alice | 1323 | | can act as DTLS | 1324 | | client or server | 1325 | a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 | [I-D.ietf-mmusic-dt | 1326 | | ls-sdp] | 1327 | a=rtcp-mux | [RFC5761] - Alice | 1328 | | can perform | 1329 | | RTP/RTCP Muxing | 1330 | a=rtcp-mux-only | [I-D.ietf-mmusic-mu | 1331 | | x-exclusive] | 1332 | a=rtcp-rsize | [RFC5506] | 1333 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 1334 | audio-level | | 1335 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 1336 | hdrext:sdes:mid | p-bundle-negotiatio | 1337 | | n] | 1338 | a=candidate:0 1 UDP 2113667327 192.0.2.4 | [I-D.ietf-mmusic-ic | 1339 | 61665 typ host | e-sip-sdp] | 1340 | a=candidate:1 1 UDP 1685987071 | [I-D.ietf-mmusic-ic | 1341 | 203.0.113.141 54609 typ srflx raddr | e-sip-sdp] | 1342 | 192.0.2.4 rport 61665 | | 1343 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 1344 | | ickle-ice] | 1345 +---------------------------------------------+---------------------+ 1347 Table 9: 5.2.4 SDP Offer 1349 +---------------------------------------------+---------------------+ 1350 | Answer SDP Contents | RFC#/Notes | 1351 +---------------------------------------------+---------------------+ 1352 | v=0 | [RFC4566] | 1353 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session | 1354 | | Origin Information | 1355 | s=- | [RFC4566] | 1356 | t=0 0 | [RFC4566] | 1357 | a=group:BUNDLE audio | [I-D.ietf-mmusic-sd | 1358 | | p-bundle-negotiatio | 1359 | | n] | 1360 | ****** Audio m=line ********* | ******************* | 1361 | | ********** | 1362 | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 1363 | c=IN IP4 203.0.113.77 | [RFC4566] | 1364 | a=mid:audio | [RFC5888] | 1365 | a=msid:ma ta | Identifies | 1366 | | RTCMediaStream ID | 1367 | | (ma) and | 1368 | | RTCMediaStreamTrack | 1369 | | ID (ta) | 1370 | a=inactive | [RFC3264] - Bob | 1371 | | puts call On Hold | 1372 | a=rtpmap:109 opus/48000/2 | [RFC7587] - Bob | 1373 | | accepts Opus Codec | 1374 | a=maxptime:120 | [RFC4566] | 1375 | a=ice-ufrag:c300d85b | [I-D.ietf-mmusic-ic | 1376 | | e-sip-sdp] - ICE | 1377 | | username frag | 1378 | a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [I-D.ietf-mmusic-ic | 1379 | | e-sip-sdp] - ICE | 1380 | | password | 1381 | a=fingerprint:sha-256 6B:8B:F0:65:5F:78:E2: | [RFC8122] - DTLS | 1382 | 51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | Fingerprint for | 1383 | 4:C2:43:F0:A1:58:D0:A1:2C:19:08 | SRTP | 1384 | a=setup:active | [RFC5763] - Bob is | 1385 | | the DTLS client | 1386 | a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 | [I-D.ietf-mmusic-dt | 1387 | | ls-sdp] | 1388 | a=rtcp-mux | [RFC5761] - Bob can | 1389 | | perform RTP/RTCP | 1390 | | Muxing | 1391 | a=rtcp-mux-only | [I-D.ietf-mmusic-mu | 1392 | | x-exclusive] | 1393 | a=rtcp-rsize | [RFC5506] | 1394 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 1395 | audio-level | | 1396 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 1397 | hdrext:sdes:mid | p-bundle-negotiatio | 1398 | | n] | 1399 | a=candidate:0 1 UDP 2113667327 198.51.100.7 | [I-D.ietf-mmusic-ic | 1400 | 51556 typ host | e-sip-sdp] - Host | 1401 | | candidate | 1402 | a=candidate:1 1 UDP 1685987071 | [I-D.ietf-mmusic-ic | 1403 | 203.0.113.141 49203 typ srflx raddr | e-sip-sdp] - | 1404 | 198.51.100.7 rport 51556 | Server Reflexive | 1405 | | candidate | 1406 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 1407 | | ickle-ice] | 1408 +---------------------------------------------+---------------------+ 1410 Table 10: 5.2.4 SDP Answer 1412 5.2.5. Audio with DTMF Session 1414 In this example, Alice wishes to establish two separate audio 1415 streams, one for normal audio and the other for telephone-events. 1416 Alice offers first audio stream with three codecs and the other with 1417 [RFC4733] tones (for DTMF). Bob accepts both the audio streams by 1418 choosing Opus as the audio codec and telephone-event for the other 1419 stream. 1421 Audio Session with DTMF 1423 Alice Bob 1424 | | 1425 | | 1426 | | 1427 | Offer(Audio:Opus,PCMU,PCMA Audio:telephone-event)| 1428 |-------------------------------------------------->| 1429 | | 1430 | | 1431 | Answer(Audio:Opus, Audio:telephone-event) | 1432 |<--------------------------------------------------| 1433 | | 1434 | | 1435 | Opus audio stream and telephone-event stream | 1436 |...................................................| 1437 | | 1439 +---------------------------------------------+---------------------+ 1440 | Offer SDP Contents | RFC#/Notes | 1441 +---------------------------------------------+---------------------+ 1442 | v=0 | [RFC4566] | 1443 | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] - Session | 1444 | | Origin Information | 1445 | s=- | [RFC4566] | 1446 | t=0 0 | [RFC4566] | 1447 | a=group:BUNDLE audio dtmf | [I-D.ietf-mmusic-sd | 1448 | | p-bundle-negotiatio | 1449 | | n] | 1450 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 1451 | | ickle-ice] | 1452 | ****** Audio m=line ********* | ******************* | 1453 | | ********** | 1454 | m=audio 54609 UDP/TLS/RTP/SAVPF 109 0 8 | [RFC4566] | 1455 | c=IN IP4 203.0.113.141 | [RFC4566] | 1456 | a=mid:audio | [RFC5888] | 1457 | a=msid:ma ta | Identifies | 1458 | | RTCMediaStream ID | 1459 | | (ma) and | 1460 | | RTCMediaStreamTrack | 1461 | | ID (ta) | 1462 | a=sendrecv | [RFC3264] - Alice | 1463 | | can send and recv | 1464 | | audio | 1465 | a=rtpmap:109 opus/48000/2 | [RFC7587] - Opus | 1466 | | Codec 48khz, 2 | 1467 | | channels | 1468 | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMU | 1469 | | Audio Codec | 1470 | a=rtpmap:8 PCMA/8000 | [RFC3551] PCMA | 1471 | | Audio Codec | 1472 | a=maxptime:120 | [RFC4566] | 1473 | a=ice-ufrag:074c6550 | [I-D.ietf-mmusic-ic | 1474 | | e-sip-sdp] - ICE | 1475 | | user fragment | 1476 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [I-D.ietf-mmusic-ic | 1477 | | e-sip-sdp] - ICE | 1478 | | password parameter | 1479 | a=fingerprint:sha-256 19:E2:1C:3B:4B:9F:81: | [RFC8122] - DTLS | 1480 | E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | Fingerprint for | 1481 | 4:A9:0E:05:E9:26:33:E8:70:88:A2 | SRTP | 1482 | a=setup:actpass | [RFC5763] - Alice | 1483 | | can act as DTLS | 1484 | | client or server | 1485 | a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 | [I-D.ietf-mmusic-dt | 1486 | | ls-sdp] | 1487 | a=rtcp-mux | [RFC5761] - Alice | 1488 | | can perform | 1489 | | RTP/RTCP Muxing | 1490 | a=rtcp-mux-only | [I-D.ietf-mmusic-mu | 1491 | | x-exclusive] | 1492 | a=rtcp-rsize | [RFC5506] | 1493 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 1494 | audio-level | | 1495 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 1496 | hdrext:sdes:mid | p-bundle-negotiatio | 1497 | | n] | 1498 | a=candidate:0 1 UDP 2122194687 192.0.2.4 | [I-D.ietf-mmusic-ic | 1499 | 61665 typ host | e-sip-sdp] | 1500 | a=candidate:1 1 UDP 1685987071 | [I-D.ietf-mmusic-ic | 1501 | 203.0.113.141 54609 typ srflx raddr | e-sip-sdp] | 1502 | 192.0.2.4 rport 61665 | | 1503 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 1504 | | ickle-ice] | 1505 | ****** DTMF m=line ********* | ******************* | 1506 | | ********** | 1507 | m=audio 0 UDP/TLS/RTP/SAVPF 126 | [RFC4566] | 1508 | c=IN IP4 203.0.113.141 | [RFC4566] | 1509 | a=bundle-only | [I-D.ietf-mmusic-sd | 1510 | | p-bundle-negotiatio | 1511 | | n] | 1512 | a=mid:dtmf | [RFC5888] | 1513 | a=msid:ma tb | Identifies | 1514 | | RTCMediaStream ID | 1515 | | (ma) and | 1516 | | RTCMediaStreamTrack | 1517 | | ID (tb) | 1518 | a=sendonly | [RFC3264] - Alice | 1519 | | can send DTMF | 1520 | | Events | 1521 | a=rtpmap:126 telephone-event/8000 | [RFC4733] | 1522 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 1523 | hdrext:sdes:mid | p-bundle-negotiatio | 1524 | | n] | 1525 +---------------------------------------------+---------------------+ 1527 Table 11: 5.2.5 SDP Offer 1529 +---------------------------------------------+---------------------+ 1530 | Answer SDP Contents | RFC#/Notes | 1531 +---------------------------------------------+---------------------+ 1532 | v=0 | [RFC4566] | 1533 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session | 1534 | | Origin Information | 1535 | s=- | [RFC4566] | 1536 | t=0 0 | [RFC4566] | 1537 | a=group:BUNDLE audio dtmf | [I-D.ietf-mmusic-sd | 1538 | | p-bundle-negotiatio | 1539 | | n] | 1540 | ****** Audio m=line ********* | ******************* | 1541 | | ********** | 1542 | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 1543 | c=IN IP4 203.0.113.77 | [RFC4566] | 1544 | a=mid:audio | [RFC5888] | 1545 | a=msid:ma ta | Identifies | 1546 | | RTCMediaStream ID | 1547 | | (ma) and | 1548 | | RTCMediaStreamTrack | 1549 | | ID (ta) | 1550 | a=sendrecv | [RFC3264] - Bob can | 1551 | | send and receive | 1552 | | Opus audio | 1553 | a=rtpmap:109 opus/48000/2 | [RFC7587] - Bob | 1554 | | accepts Opus Codec | 1555 | a=maxptime:120 | [RFC4566] | 1556 | a=ice-ufrag:c300d85b | [I-D.ietf-mmusic-ic | 1557 | | e-sip-sdp] - ICE | 1558 | | username frag | 1559 | a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [I-D.ietf-mmusic-ic | 1560 | | e-sip-sdp] - ICE | 1561 | | password | 1562 | a=fingerprint:sha-256 6B:8B:F0:65:5F:78:E2: | [RFC8122] - | 1563 | 51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | Fingerprint for | 1564 | 4:C2:43:F0:A1:58:D0:A1:2C:19:08 | SRTP | 1565 | a=setup:active | [RFC5763] - Bob is | 1566 | | the DTLS client | 1567 | a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 | [I-D.ietf-mmusic-dt | 1568 | | ls-sdp] | 1569 | a=rtcp-mux | [RFC5761] - Bob can | 1570 | | perform RTP/RTCP | 1571 | | Muxing on port | 1572 | | 49203 | 1573 | a=rtcp-mux-only | [I-D.ietf-mmusic-mu | 1574 | | x-exclusive] | 1575 | a=rtcp-rsize | [RFC5506] - Alice | 1576 | | intends to use | 1577 | | reduced size RTCP | 1578 | | for this session | 1579 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 1580 | audio-level | | 1581 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 1582 | hdrext:sdes:mid | p-bundle-negotiatio | 1583 | | n] | 1584 | a=candidate:0 1 UDP 2122194687 198.51.100.7 | [I-D.ietf-mmusic-ic | 1585 | 51556 typ host | e-sip-sdp] | 1586 | a=candidate:1 1 UDP 1685987071 203.0.113.77 | [I-D.ietf-mmusic-ic | 1587 | 49203 typ srflx raddr 198.51.100.7 rport | e-sip-sdp] | 1588 | 51556 | | 1589 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 1590 | | ickle-ice] | 1591 | ****** DTMF m=line ********* | ******************* | 1592 | | ********** | 1593 | m=audio 0 UDP/TLS/RTP/SAVPF 126 | [RFC4566] | 1594 | c=IN IP4 203.0.113.77 | [RFC4566] | 1595 | a=bundle-only | [I-D.ietf-mmusic-sd | 1596 | | p-bundle-negotiatio | 1597 | | n] | 1598 | a=mid:dtmf | [RFC5888] | 1599 | a=msid:ma tb | Identifies | 1600 | | RTCMediaStream ID | 1601 | | (ma) and | 1602 | | RTCMediaStreamTrack | 1603 | | ID (tb) | 1604 | a=recvonly | [RFC3264] - Alice | 1605 | | can receive DTMF | 1606 | | events | 1607 | a=rtpmap:126 telephone-event/8000 | [RFC4733] | 1608 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 1609 | hdrext:sdes:mid | p-bundle-negotiatio | 1610 | | n] | 1611 +---------------------------------------------+---------------------+ 1613 Table 12: 5.2.5 SDP Answer 1615 5.2.6. One Way Audio/Video Session - Document Camera 1617 In this scenario Alice and Bob engage in a 1 way audio and video 1618 session with Bob receiving Alice's audio and her presentation slides 1619 as video stream. 1621 One Way Audio & Video Session - Document Camera 1623 Alice Bob 1624 | | 1625 | | 1626 | | 1627 | Alice Offers sendonly audio and video streams. | 1628 | The video stream corresponds to her presentation | 1629 | | 1630 | Offer(Audio:Opus, Video: VP8) | 1631 |----------------------------------------------------->| 1632 | | 1633 | | 1634 | (Audio:Opus, Video: VP8) | 1635 |<-----------------------------------------------------| 1636 | | 1637 | | 1638 | One-way Opus Audio, VP8 Video | 1639 |......................................................| 1640 | Bob can hear Alice and see her presentation slides.| 1641 | | 1642 | | 1644 +---------------------------------------------+---------------------+ 1645 | Offer SDP Contents | RFC#/Notes | 1646 +---------------------------------------------+---------------------+ 1647 | v=0 | [RFC4566] | 1648 | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 1649 | s=- | [RFC4566] | 1650 | t=0 0 | [RFC4566] | 1651 | a=group:BUNDLE audio video | [I-D.ietf-mmusic-sd | 1652 | | p-bundle-negotiatio | 1653 | | n] | 1654 | a=group:LS audio video | [RFC5888] | 1655 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 1656 | | ickle-ice] | 1657 | ****** Audio m=line ********* | ******************* | 1658 | | ********** | 1659 | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 1660 | c=IN IP4 203.0.113.141 | [RFC4566] | 1661 | a=mid:audio | [RFC5888] | 1662 | a=msid:ma ta | Identifies | 1663 | | RTCMediaStream ID | 1664 | | (ma) and | 1665 | | RTCMediaStreamTrack | 1666 | | ID (ta) | 1667 | a=sendonly | [RFC3264] - Send | 1668 | | only audio stream | 1669 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 1670 | a=maxptime:120 | [RFC4566] | 1671 | a=ice-ufrag:074c6550 | [I-D.ietf-mmusic-ic | 1672 | | e-sip-sdp] | 1673 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [I-D.ietf-mmusic-ic | 1674 | | e-sip-sdp] | 1675 | a=fingerprint:sha-256 19:E2:1C:3B:4B:9F:81: | [RFC8122] | 1676 | E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | 1677 | 4:A9:0E:05:E9:26:33:E8:70:88:A2 | | 1678 | a=setup:actpass | [RFC5763] - Alice | 1679 | | can act as DTLS | 1680 | | client or server | 1681 | a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 | [I-D.ietf-mmusic-dt | 1682 | | ls-sdp] | 1683 | a=rtcp-mux | [RFC5761] | 1684 | a=rtcp-mux-only | [I-D.ietf-mmusic-mu | 1685 | | x-exclusive] | 1686 | a=rtcp-rsize | [RFC5506] | 1687 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 1688 | audio-level | | 1689 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 1690 | hdrext:sdes:mid | p-bundle-negotiatio | 1691 | | n] | 1692 | a=candidate:0 1 UDP 2122194687 | [I-D.ietf-mmusic-ic | 1693 | 203.0.113.141 54609 typ host | e-sip-sdp] | 1694 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 1695 | | ickle-ice] | 1696 | ****** Video m=line ********* | ******************* | 1697 | | ********** | 1698 | m=video 0 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | 1699 | c=IN IP4 203.0.113.141 | [RFC4566] | 1700 | a=bundle-only | [I-D.ietf-mmusic-sd | 1701 | | p-bundle-negotiatio | 1702 | | n] | 1703 | a=mid:video | [RFC5888] | 1704 | a=msid:ma tb | Identifies | 1705 | | RTCMediaStream ID | 1706 | | (ma) and | 1707 | | RTCMediaStreamTrack | 1708 | | ID (tb) | 1709 | a=sendonly | [RFC3264] - Send | 1710 | | only video stream | 1711 | a=rtpmap:120 VP8/90000 | [RFC7741] | 1712 | a=content:slides | [RFC4796] - Alice's | 1713 | | presentation video | 1714 | | stream | 1715 | a=rtcp-fb:120 nack | [RFC4585] | 1716 | a=rtcp-fb:120 nack pli | [RFC4585] | 1717 | a=rtcp-fb:120 ccm fir | [RFC5104] | 1718 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 1719 | hdrext:sdes:mid | p-bundle-negotiatio | 1720 | | n] | 1721 +---------------------------------------------+---------------------+ 1723 Table 13: 5.2.6 SDP Offer 1725 +---------------------------------------------+---------------------+ 1726 | Answer SDP Contents | RFC#/Notes | 1727 +---------------------------------------------+---------------------+ 1728 | v=0 | [RFC4566] | 1729 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] | 1730 | s=- | [RFC4566] | 1731 | t=0 0 | [RFC4566] | 1732 | a=group:BUNDLE audio video | [I-D.ietf-mmusic-sd | 1733 | | p-bundle-negotiatio | 1734 | | n] | 1735 | a=group:LS audio video | [RFC5888] | 1736 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 1737 | | ickle-ice] | 1738 | ****** Audio m=line ********* | ******************* | 1739 | | ********** | 1740 | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 1741 | c=IN IP4 203.0.113.77 | [RFC4566] | 1742 | a=mid:audio | [RFC5888] | 1743 | a=msid:ma ta | Identifies | 1744 | | RTCMediaStream ID | 1745 | | (ma) and | 1746 | | RTCMediaStreamTrack | 1747 | | ID (ta) | 1748 | a=recvonly | [RFC3264] - Receive | 1749 | | only audio stream | 1750 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 1751 | a=maxptime:120 | [RFC4566] | 1752 | a=ice-ufrag:c300d85b | [I-D.ietf-mmusic-ic | 1753 | | e-sip-sdp] | 1754 | a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [I-D.ietf-mmusic-ic | 1755 | | e-sip-sdp] | 1756 | a=fingerprint:sha-256 6B:8B:F0:65:5F:78:E2: | [RFC8122] | 1757 | 51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | | 1758 | 4:C2:43:F0:A1:58:D0:A1:2C:19:08 | | 1759 | a=setup:active | [RFC5763] - Bob is | 1760 | | the DTLS client | 1761 | a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 | [I-D.ietf-mmusic-dt | 1762 | | ls-sdp] | 1763 | a=rtcp-mux | [RFC5761] | 1764 | a=rtcp-mux-only | [I-D.ietf-mmusic-mu | 1765 | | x-exclusive] | 1766 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 1767 | audio-level | | 1768 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 1769 | hdrext:sdes:mid | p-bundle-negotiatio | 1770 | | n] | 1771 | a=candidate:0 1 UDP 2113667327 203.0.113.77 | [I-D.ietf-mmusic-ic | 1772 | 49203 typ host | e-sip-sdp] | 1773 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 1774 | | ickle-ice] | 1775 | ****** Video m=line ********* | ******************* | 1776 | | ********** | 1777 | m=video 0 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | 1778 | c=IN IP4 203.0.113.77 | [RFC4566] | 1779 | a=bundle-only | [I-D.ietf-mmusic-sd | 1780 | | p-bundle-negotiatio | 1781 | | n] | 1782 | a=mid:video | [RFC5888] | 1783 | a=msid:ma tb | Identifies | 1784 | | RTCMediaStream ID | 1785 | | (ma) and | 1786 | | RTCMediaStreamTrack | 1787 | | ID (tb) | 1788 | a=recvonly | [RFC3264] | 1789 | a=rtpmap:120 VP8/90000 | [RFC7741] | 1790 | a=content:slides | [RFC4796] - | 1791 | | presentation stream | 1792 | a=rtcp-fb:120 nack | [RFC4585] | 1793 | a=rtcp-fb:120 nack pli | [RFC4585] | 1794 | a=rtcp-fb:120 ccm fir | [RFC5104] | 1795 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 1796 | hdrext:sdes:mid | p-bundle-negotiatio | 1797 | | n] | 1798 +---------------------------------------------+---------------------+ 1800 Table 14: 5.2.6 SDP Answer 1802 5.2.7. Audio, Video Session with BUNDLE Support Unknown 1804 In this example, since Alice is unsure of the Bob's support of the 1805 BUNDLE framework, following steps are performed in order to negotiate 1806 and setup a BUNDLE Address for the session 1807 o An SDP Offer, in which the Alice assigns unique addresses to each 1808 "m=" line in the BUNDLE group, and requests the Answerer to select 1809 the Offerer's BUNDLE address. 1811 o An SDP Answer, in which the Bob indicates its support for BUNDLE, 1812 selects the offerer's BUNDLE address, selects its own BUNDLE 1813 address and associates it with each BUNDLED m=line within the 1814 BUNDLE group. 1816 Once the Offer/Answer exchange completes, both Alice and Bob each end 1817 up using single RTP Session for both the Media Streams. 1819 Two-Way Secure Audio,Video with BUNDLE support unknown 1821 Alice Bob 1822 | | 1823 | | 1824 | Alice offers BUNDLE support with unique address | 1825 | for the audio and video m-line | 1826 | | 1827 | | 1828 | Offer(Audio:Opus Video:VP8) | 1829 |----------------------------------------------------->| 1830 | |Bob 1831 | |supports 1832 | |BUNDLE, 1833 | |Uses 1834 | |identical 1835 | |address 1836 | Answer(Audio:Opus Video:VP8) | 1837 |<-----------------------------------------------------| 1838 | | 1839 | 2 Way Call with Audio and Video Multiplexed | 1840 |......................................................| 1841 | | 1843 +---------------------------------------------+---------------------+ 1844 | Offer SDP Contents | RFC#/Notes | 1845 +---------------------------------------------+---------------------+ 1846 | v=0 | [RFC4566] | 1847 | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | 1848 | s=- | [RFC4566] | 1849 | t=0 0 | [RFC4566] | 1850 | a=group:BUNDLE audio video | [I-D.ietf-mmusic-sd | 1851 | | p-bundle-negotiatio | 1852 | | n] Alice supports | 1853 | | grouping of m=lines | 1854 | | under BUNDLE | 1855 | | semantics | 1856 | a=group:LS audio video | [RFC5888] | 1857 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 1858 | | ickle-ice] | 1859 | ****** Audio m=line ********* | ******************* | 1860 | | ********** | 1861 | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 1862 | c=IN IP4 203.0.113.141 | [RFC4566] | 1863 | a=mid:audio | [RFC5888] Audio | 1864 | | m=line part of | 1865 | | BUNDLE group with a | 1866 | | unique port number | 1867 | a=msid:ma ta | Identifies | 1868 | | RTCMediaStream ID | 1869 | | (ma) and | 1870 | | RTCMediaStreamTrack | 1871 | | ID (ta) | 1872 | a=sendrecv | [RFC3264] | 1873 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 1874 | a=maxptime:120 | [RFC4566] | 1875 | a=ice-ufrag:074c6550 | [I-D.ietf-mmusic-ic | 1876 | | e-sip-sdp] | 1877 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [I-D.ietf-mmusic-ic | 1878 | | e-sip-sdp] | 1879 | a=fingerprint:sha-256 19:E2:1C:3B:4B:9F:81: | [RFC8122] | 1880 | E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | 1881 | 4:A9:0E:05:E9:26:33:E8:70:88:A2 | | 1882 | a=setup:actpass | [RFC5763] - Alice | 1883 | | can act as DTLS | 1884 | | client or server | 1885 | a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 | [I-D.ietf-mmusic-dt | 1886 | | ls-sdp] | 1887 | a=rtcp-mux | [RFC5761] | 1888 | a=rtcp:54610 IN IP4 203.0.113.141 | [RFC3605] - RTCP | 1889 | | port different from | 1890 | | RTP Port | 1891 | a=rtcp-rsize | [RFC5506] | 1892 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 1893 | audio-level | | 1894 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 1895 | hdrext:sdes:mid | p-bundle-negotiatio | 1896 | | n] | 1897 | a=candidate:0 1 UDP 2122194687 192.0.2.4 | [I-D.ietf-mmusic-ic | 1898 | 61665 typ host | e-sip-sdp] - RTP | 1899 | | host candidate | 1900 | a=candidate:1 1 UDP 1685987071 | [I-D.ietf-mmusic-ic | 1901 | 203.0.113.141 54609 typ srflx raddr | e-sip-sdp] - RTP | 1902 | 192.0.2.4 rport 61665 | Server Reflexive | 1903 | | candidate | 1904 | a=candidate:0 2 UDP 2122194687 192.0.2.4 | [I-D.ietf-mmusic-ic | 1905 | 61666 typ host | e-sip-sdp] - RTCP | 1906 | | host candidate | 1907 | a=candidate:1 2 UDP 1685987071 | [I-D.ietf-mmusic-ic | 1908 | 203.0.113.141 54610 typ srflx raddr | e-sip-sdp] - RTCP | 1909 | 192.0.2.4 rport 61666 | Server Reflexive | 1910 | | candidate | 1911 | ****** Video m=line ********* | ******************* | 1912 | | ********** | 1913 | m=video 62537 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | 1914 | c=IN IP4 203.0.113.141 | [RFC4566] | 1915 | a=mid:video | [RFC5888] Video | 1916 | | m=line part of the | 1917 | | Bundle group with a | 1918 | | unique port number | 1919 | a=msid:ma tb | Identifies | 1920 | | RTCMediaStream ID | 1921 | | (ma) and | 1922 | | RTCMediaStreamTrack | 1923 | | ID (tb) | 1924 | a=sendrecv | [RFC3264] | 1925 | a=rtpmap:120 VP8/90000 | [RFC7741] | 1926 | a=ice-ufrag:6550074c | [I-D.ietf-mmusic-ic | 1927 | | e-sip-sdp] | 1928 | a=ice-pwd:74af08a068a28a397a4c3f31747d1ee34 | [I-D.ietf-mmusic-ic | 1929 | | e-sip-sdp] | 1930 | a=fingerprint:sha-256 19:E2:1C:3B:4B:9F:81: | [RFC8122] | 1931 | E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | 1932 | 4:A9:0E:05:E9:26:33:E8:70:88:A2 | | 1933 | a=setup:actpass | [RFC5763] - Alice | 1934 | | can act as DTLS | 1935 | | client or server | 1936 | a=tls-id:UKA29UQLTF69OJW4WNPNUO2Y0GF1FJOZ | [I-D.ietf-mmusic-dt | 1937 | | ls-sdp] | 1938 | a=rtcp-mux | [RFC5761] | 1939 | a=rtcp:62538 IN IP4 203.0.113.141 | [RFC3605] | 1940 | a=rtcp-rsize | [RFC5506] | 1941 | a=rtcp-fb:120 nack | [RFC4585] | 1942 | a=rtcp-fb:120 nack pli | [RFC4585] | 1943 | a=rtcp-fb:120 ccm fir | [RFC5104] | 1944 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 1945 | hdrext:sdes:mid | p-bundle-negotiatio | 1946 | | n] | 1947 | a=candidate:0 1 UDP 2122194687 192.0.2.4 | [I-D.ietf-mmusic-ic | 1948 | 61886 typ host | e-sip-sdp] - RTP | 1949 | | Host candidate | 1950 | a=candidate:1 1 UDP 1685987071 | [I-D.ietf-mmusic-ic | 1951 | 203.0.113.141 62537 typ srflx raddr | e-sip-sdp] - RTP | 1952 | 192.0.2.4 rport 61886 | Server Reflexive | 1953 | | candidate | 1954 | a=candidate:0 2 UDP 2122194687 192.0.2.4 | [I-D.ietf-mmusic-ic | 1955 | 61888 typ host | e-sip-sdp] - RTCP | 1956 | | host candidate | 1957 | a=candidate:1 2 UDP 1685987071 | [I-D.ietf-mmusic-ic | 1958 | 203.0.113.141 62538 typ srflx raddr | e-sip-sdp] - RTCP | 1959 | 192.0.2.4 rport 61888 | Server Reflexive | 1960 | | candidate | 1961 +---------------------------------------------+---------------------+ 1963 Table 15: 5.2.7 SDP Offer w/BUNDLE 1965 +---------------------------------------------+---------------------+ 1966 | Answer SDP Contents | RFC#/Notes | 1967 +---------------------------------------------+---------------------+ 1968 | v=0 | [RFC4566] | 1969 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] | 1970 | s=- | [RFC4566] | 1971 | t=0 0 | [RFC4566] | 1972 | a=group:BUNDLE audio video | [I-D.ietf-mmusic-sd | 1973 | | p-bundle-negotiatio | 1974 | | n] Bob supports | 1975 | | BUNDLE semantics. | 1976 | a=group:LS audio video | [RFC5888] | 1977 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 1978 | | ickle-ice] | 1979 | ****** Audio m=line ********* | ******************* | 1980 | | ********** | 1981 | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 1982 | c=IN IP4 203.0.113.77 | [RFC4566] | 1983 | a=mid:audio | [RFC5888] Audio | 1984 | | m=line part of the | 1985 | | BUNDLE group | 1986 | a=msid:ma ta | Identifies | 1987 | | RTCMediaStream ID | 1988 | | (ma) and | 1989 | | RTCMediaStreamTrack | 1990 | | ID (ta) | 1991 | a=sendrecv | [RFC3264] | 1992 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 1993 | a=maxptime:120 | [RFC4566] | 1994 | a=ice-ufrag:c300d85b | [I-D.ietf-mmusic-ic | 1995 | | e-sip-sdp] | 1996 | a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [I-D.ietf-mmusic-ic | 1997 | | e-sip-sdp] | 1998 | a=fingerprint:sha-256 6B:8B:F0:65:5F:78:E2: | [RFC8122] | 1999 | 51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | | 2000 | 4:C2:43:F0:A1:58:D0:A1:2C:19:08 | | 2001 | a=setup:active | [RFC5763] - Bob is | 2002 | | the DTLS client | 2003 | a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 | [I-D.ietf-mmusic-dt | 2004 | | ls-sdp] | 2005 | a=rtcp-mux | [RFC5761] | 2006 | a=rtcp-rsize | [RFC5506] | 2007 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 2008 | audio-level | | 2009 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 2010 | hdrext:sdes:mid | p-bundle-negotiatio | 2011 | | n] | 2012 | a=candidate:0 1 UDP 2122194687 198.51.100.7 | [I-D.ietf-mmusic-ic | 2013 | 49203 typ host | e-sip-sdp] | 2014 | a=candidate:1 1 UDP 1685987071 203.0.113.77 | [I-D.ietf-mmusic-ic | 2015 | 51556 typ srflx raddr 198.51.100.7 rport | e-sip-sdp] | 2016 | 49203 | | 2017 | ****** Video m=line ********* | ******************* | 2018 | | ********** | 2019 | m=video 0 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | 2020 | c=IN IP4 203.0.113.77 | [RFC4566] | 2021 | a=bundle-only | [I-D.ietf-mmusic-sd | 2022 | | p-bundle-negotiatio | 2023 | | n] | 2024 | a=mid:video | [RFC5888] Video | 2025 | | m=line part of the | 2026 | | BUNDLE group with | 2027 | | the port from audio | 2028 | | line repeated | 2029 | a=msid:ma tb | Identifies | 2030 | | RTCMediaStream ID | 2031 | | (ma) and | 2032 | | RTCMediaStreamTrack | 2033 | | ID (tb) | 2034 | a=sendrecv | [RFC3264] | 2035 | a=rtpmap:120 VP8/90000 | [RFC7741] | 2036 | a=rtcp-fb:120 nack | [RFC4585] | 2037 | a=rtcp-fb:120 nack pli | [RFC4585] | 2038 | a=rtcp-fb:120 ccm fir | [RFC5104] | 2039 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 2040 | hdrext:sdes:mid | p-bundle-negotiatio | 2041 | | n] | 2042 +---------------------------------------------+---------------------+ 2043 Table 16: 5.2.7 SDP Answer w/BUNDLE 2045 5.2.8. Audio, Video and Data Session 2047 This example shows SDP for negotiating a session with Audio, Video 2048 and data streams between Alice and Bob with BUNDLE support known. 2050 Audio,Video,Data with BUNDLE support known 2052 Alice Bob 2053 | | 2054 | | 2055 | Alice indicates BUNDLE support with | 2056 | identical address across all the m=lines | 2057 | | 2058 | | 2059 | Offer(Audio:Opus Video:VP8 Data) | 2060 |------------------------------------------->| 2061 | |Bob does 2062 | |the same 2063 | Answer(Audio:Opus,Video:VP8 Data) | 2064 |<-------------------------------------------| 2065 | | 2066 | | 2067 | | 2068 | Two-way Audio,Video, Data multiplexed | 2069 |............................................| 2070 | | 2071 | | 2073 +---------------------------------------------+---------------------+ 2074 | Offer SDP Contents | RFC#/Notes | 2075 +---------------------------------------------+---------------------+ 2076 | v=0 | [RFC4566] | 2077 | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | 2078 | s=- | [RFC4566] | 2079 | t=0 0 | [RFC4566] | 2080 | a=group:BUNDLE audio video data | [I-D.ietf-mmusic-sd | 2081 | | p-bundle-negotiatio | 2082 | | n] | 2083 | a=group:LS audio video | [RFC5888] | 2084 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 2085 | | ickle-ice] | 2086 | ****** Audio m=line ********* | ******************* | 2087 | | ********** | 2088 | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 2089 | c=IN IP4 203.0.113.141 | [RFC4566] | 2090 | a=msid:ma ta | Identifies | 2091 | | RTCMediaStream ID | 2092 | | (ma) and | 2093 | | RTCMediaStreamTrack | 2094 | | ID (ta) | 2095 | a=mid:audio | [RFC5888] | 2096 | a=sendrecv | [RFC3264] | 2097 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 2098 | a=maxptime:120 | [RFC4566] | 2099 | a=ice-ufrag:074c6550 | [I-D.ietf-mmusic-ic | 2100 | | e-sip-sdp] | 2101 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [I-D.ietf-mmusic-ic | 2102 | | e-sip-sdp] | 2103 | a=fingerprint:sha-256 19:E2:1C:3B:4B:9F:81: | [RFC8122] | 2104 | E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | 2105 | 4:A9:0E:05:E9:26:33:E8:70:88:A2 | | 2106 | a=setup:actpass | [RFC5763] | 2107 | a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 | [I-D.ietf-mmusic-dt | 2108 | | ls-sdp] | 2109 | a=rtcp-mux | [RFC5761] | 2110 | a=rtcp-mux-only | [I-D.ietf-mmusic-mu | 2111 | | x-exclusive] | 2112 | a=rtcp-rsize | [RFC5506] | 2113 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 2114 | audio-level | | 2115 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 2116 | hdrext:sdes:mid | p-bundle-negotiatio | 2117 | | n] | 2118 | a=candidate:0 1 UDP 2122194687 192.0.2.4 | [I-D.ietf-mmusic-ic | 2119 | 61665 typ host | e-sip-sdp] | 2120 | a=candidate:1 1 UDP 1685987071 | [I-D.ietf-mmusic-ic | 2121 | 203.0.113.141 54609 typ srflx raddr | e-sip-sdp] | 2122 | 192.0.2.4 rport 61665 | | 2123 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 2124 | | ickle-ice] | 2125 | ****** Video m=line ********* | ******************* | 2126 | | ********** | 2127 | m=video 0 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | 2128 | c=IN IP4 203.0.113.141 | [RFC4566] | 2129 | a=bundle-only | [I-D.ietf-mmusic-sd | 2130 | | p-bundle-negotiatio | 2131 | | n] | 2132 | a=mid:video | [RFC5888] | 2133 | a=msid:ma tb | Identifies | 2134 | | RTCMediaStream ID | 2135 | | (ma) and | 2136 | | RTCMediaStreamTrack | 2137 | | ID (tb) | 2138 | a=sendrecv | [RFC3264] | 2139 | a=rtpmap:120 VP8/90000 | [RFC7741] | 2140 | a=rtcp-fb:120 nack | [RFC4585] | 2141 | a=rtcp-fb:120 nack pli | [RFC4585] | 2142 | a=rtcp-fb:120 ccm fir | [RFC5104] | 2143 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 2144 | hdrext:sdes:mid | p-bundle-negotiatio | 2145 | | n] | 2146 | ****** Application m=line ********* | ******************* | 2147 | | ********** | 2148 | m=application 0 UDP/DTLS/SCTP webrtc- | [I-D.ietf-rtcweb-da | 2149 | datachannel | ta-channel] | 2150 | c=IN IP4 203.0.113.141 | [RFC4566] | 2151 | a=bundle-only | [I-D.ietf-mmusic-sd | 2152 | | p-bundle-negotiatio | 2153 | | n] | 2154 | a=mid:data | [RFC5888] | 2155 | a=sctp-port:5000 | [I-D.ietf-mmusic-sc | 2156 | | tp-sdp] | 2157 | a=max-message-size:100000 | [I-D.ietf-mmusic-sc | 2158 | | tp-sdp] | 2159 | a=sendrecv | [RFC3264] | 2160 +---------------------------------------------+---------------------+ 2162 Table 17: 5.2.8 SDP Offer 2164 +---------------------------------------------+---------------------+ 2165 | Answer SDP Contents | RFC#/Notes | 2166 +---------------------------------------------+---------------------+ 2167 | v=0 | [RFC4566] | 2168 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session | 2169 | | Origin Information | 2170 | s=- | [RFC4566] | 2171 | t=0 0 | [RFC4566] | 2172 | a=group:BUNDLE audio video data | [I-D.ietf-mmusic-sd | 2173 | | p-bundle-negotiatio | 2174 | | n] | 2175 | a=group:LS audio video | [RFC5888] | 2176 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 2177 | | ickle-ice] | 2178 | ****** Audio m=line ********* | ******************* | 2179 | | ********** | 2180 | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 2181 | c=IN IP4 203.0.113.77 | [RFC4566] | 2182 | a=msid:ma ta | Identifies | 2183 | | RTCMediaStream ID | 2184 | | (ma) and | 2185 | | RTCMediaStreamTrack | 2186 | | ID (ta) | 2187 | a=mid:audio | [RFC5888] | 2188 | a=sendrecv | [RFC3264] | 2189 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 2190 | a=maxptime:120 | [RFC4566] | 2191 | a=ice-ufrag:c300d85b | [I-D.ietf-mmusic-ic | 2192 | | e-sip-sdp] | 2193 | a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [I-D.ietf-mmusic-ic | 2194 | | e-sip-sdp] | 2195 | a=fingerprint:sha-256 6B:8B:F0:65:5F:78:E2: | [RFC8122] | 2196 | 51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | | 2197 | 4:C2:43:F0:A1:58:D0:A1:2C:19:08 | | 2198 | a=setup:active | [RFC5763] | 2199 | a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 | [I-D.ietf-mmusic-dt | 2200 | | ls-sdp] | 2201 | a=rtcp-mux | [RFC5761] | 2202 | a=rtcp-mux-only | [I-D.ietf-mmusic-mu | 2203 | | x-exclusive] | 2204 | a=rtcp-rsize | [RFC5506] | 2205 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 2206 | audio-level | | 2207 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 2208 | hdrext:sdes:mid | p-bundle-negotiatio | 2209 | | n] | 2210 | a=candidate:0 1 UDP 2122194687 198.51.100.7 | [I-D.ietf-mmusic-ic | 2211 | 51556 typ host | e-sip-sdp] | 2212 | a=candidate:1 1 UDP 1685987071 203.0.113.77 | [I-D.ietf-mmusic-ic | 2213 | 49203 typ srflx raddr 198.51.100.7 rport | e-sip-sdp] | 2214 | 51556 | | 2215 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 2216 | | ickle-ice] | 2217 | ****** Video m=line ********* | ******************* | 2218 | | ********** | 2219 | m=video 0 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | 2220 | c=IN IP4 203.0.113.77 | [RFC4566] | 2221 | a=bundle-only | [I-D.ietf-mmusic-sd | 2222 | | p-bundle-negotiatio | 2223 | | n] | 2224 | a=mid:video | [RFC5888] | 2225 | a=msid:ma tb | Identifies | 2226 | | RTCMediaStream ID | 2227 | | (ma) and | 2228 | | RTCMediaStreamTrack | 2229 | | ID (tb) | 2230 | a=sendrecv | [RFC3264] | 2231 | a=rtpmap:120 VP8/90000 | [RFC7741] | 2232 | a=rtcp-fb:120 nack | [RFC4585] | 2233 | a=rtcp-fb:120 nack pli | [RFC4585] | 2234 | a=rtcp-fb:120 ccm fir | [RFC5104] | 2235 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 2236 | hdrext:sdes:mid | p-bundle-negotiatio | 2237 | | n] | 2238 | ****** Application m=line ********* | ******************* | 2239 | | ********** | 2240 | m=application 0 UDP/DTLS/SCTP webrtc- | [I-D.ietf-mmusic-sc | 2241 | datachannel | tp-sdp] | 2242 | c=IN IP4 203.0.113.77 | [RFC4566] | 2243 | a=bundle-only | [I-D.ietf-mmusic-sd | 2244 | | p-bundle-negotiatio | 2245 | | n] | 2246 | a=mid:data | [RFC5888] | 2247 | a=sctp-port:5000 | [I-D.ietf-mmusic-sc | 2248 | | tp-sdp] | 2249 | a=max-message-size:100000 | [I-D.ietf-mmusic-sc | 2250 | | tp-sdp] | 2251 | a=sendrecv | [RFC3264] | 2252 +---------------------------------------------+---------------------+ 2254 Table 18: 5.2.8 SDP Answer 2256 5.2.9. Audio, Video Session with BUNDLE Unsupported 2258 This use-case illustrates SDP Offer/Answer exchange where the far-end 2259 (Bob) either doesn't support media bundling or doesn't want to group 2260 m=lines over a single 5-tuple. 2262 The same is indicated by dropping the "a=group:BUNDLE" line and 2263 BUNDLE RTP header extension in the Answer SDP. 2265 On successful Offer/Answer exchange, Alice and Bob each end up using 2266 unique 5-tuple for audio and video media streams respectively. 2268 Two-Way Secure Audio,Video with BUNDLE Unsupported 2270 Alice Bob 2271 | | 2272 | | 2273 | Alice offers BUNDLE support with unique address | 2274 | for the audio and video m-line | 2275 | | 2276 | | 2277 | Offer(Audio:Opus Video:VP8) | 2278 |----------------------------------------------------->| 2279 | |Bob 2280 | |doesn't 2281 | |support 2282 | |BUNDLE 2283 | Answer(Audio:Opus Video:VP8) | 2284 |<-----------------------------------------------------| 2285 | |Bob uses 2286 | |unique 2287 | |addresses 2288 | |across the 2289 | |m=lines 2290 | | 2291 |2Way Call with Audio and Video on different 5-tuples | 2292 |......................................................| 2293 | | 2294 | | 2296 +---------------------------------------------+---------------------+ 2297 | Offer SDP Contents | RFC#/Notes | 2298 +---------------------------------------------+---------------------+ 2299 | v=0 | [RFC4566] | 2300 | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | 2301 | s=- | [RFC4566] | 2302 | t=0 0 | [RFC4566] | 2303 | a=group:BUNDLE audio video | [I-D.ietf-mmusic-sd | 2304 | | p-bundle-negotiatio | 2305 | | n] Alice supports | 2306 | | grouping of m=lines | 2307 | | under BUNDLE | 2308 | | semantics | 2309 | a=group:LS audio video | [RFC5888] | 2310 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 2311 | | ickle-ice] | 2312 | ****** Audio m=line ********* | ******************* | 2313 | | ********** | 2314 | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 2315 | c=IN IP4 203.0.113.141 | [RFC4566] | 2316 | a=mid:audio | [RFC5888] Audio | 2317 | | m=line part of | 2318 | | BUNDLE group with a | 2319 | | unique port number | 2320 | a=msid:ma ta | Identifies | 2321 | | RTCMediaStream ID | 2322 | | (ma) and | 2323 | | RTCMediaStreamTrack | 2324 | | ID (ta) | 2325 | a=sendrecv | [RFC3264] | 2326 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 2327 | a=maxptime:120 | [RFC4566] | 2328 | a=ice-ufrag:074c6550 | [I-D.ietf-mmusic-ic | 2329 | | e-sip-sdp] | 2330 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [I-D.ietf-mmusic-ic | 2331 | | e-sip-sdp] | 2332 | a=fingerprint:sha-256 19:E2:1C:3B:4B:9F:81: | [RFC8122] | 2333 | E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | 2334 | 4:A9:0E:05:E9:26:33:E8:70:88:A2 | | 2335 | a=setup:actpass | [RFC5763] - Alice | 2336 | | can act as DTLS | 2337 | | client or server | 2338 | a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 | [I-D.ietf-mmusic-dt | 2339 | | ls-sdp] | 2340 | a=rtcp-mux | [RFC5761] | 2341 | a=rtcp:55232 IN IP4 203.0.113.141 | [RFC3605] - RTCP | 2342 | | port different from | 2343 | | RTP port | 2344 | a=rtcp-rsize | [RFC5506] | 2345 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 2346 | audio-level | | 2347 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 2348 | hdrext:sdes:mid | p-bundle-negotiatio | 2349 | | n] | 2350 | a=candidate:0 1 UDP 2122194687 192.0.2.4 | [I-D.ietf-mmusic-ic | 2351 | 61665 typ host | e-sip-sdp] | 2352 | a=candidate:1 1 UDP 1685987071 | [I-D.ietf-mmusic-ic | 2353 | 203.0.113.141 54609 typ srflx raddr | e-sip-sdp] | 2354 | 192.0.2.4 rport 61665 | | 2355 | a=candidate:0 2 UDP 2122194687 192.0.2.4 | [I-D.ietf-mmusic-ic | 2356 | 61666 typ host | e-sip-sdp] | 2357 | a=candidate:1 2 UDP 1685987071 | [I-D.ietf-mmusic-ic | 2358 | 203.0.113.141 55232 typ srflx raddr | e-sip-sdp] | 2359 | 192.0.2.4 rport 61666 | | 2360 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 2361 | | ickle-ice] | 2362 | ****** Video m=line ********* | ******************* | 2363 | | ********** | 2364 | m=video 54332 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | 2365 | c=IN IP4 203.0.113.141 | [RFC4566] | 2366 | a=mid:video | [RFC5888] Video | 2367 | | m=line part of the | 2368 | | BUNDLE group with a | 2369 | | unique port number | 2370 | a=msid:ma tb | Identifies | 2371 | | RTCMediaStream ID | 2372 | | (ma) and | 2373 | | RTCMediaStreamTrack | 2374 | | ID (tb) | 2375 | a=sendrecv | [RFC3264] | 2376 | a=rtpmap:120 VP8/90000 | [RFC7741] | 2377 | a=ice-ufrag:7872093 | [I-D.ietf-mmusic-ic | 2378 | | e-sip-sdp] | 2379 | a=ice-pwd:ee3474af08a068a28a397a4c3f31747d1 | [I-D.ietf-mmusic-ic | 2380 | | e-sip-sdp] | 2381 | a=fingerprint:sha-256 19:E2:1C:3B:4B:9F:81: | [RFC8122] | 2382 | E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | 2383 | 4:A9:0E:05:E9:26:33:E8:70:88:A2 | | 2384 | a=setup:actpass | [RFC5763] - Alice | 2385 | | can act as DTLS | 2386 | | client or server | 2387 | a=tls-id:UKA29UQLTF69OJW4WNPNUO2Y0GF1FJOZ | [I-D.ietf-mmusic-dt | 2388 | | ls-sdp] | 2389 | a=rtcp-mux | [RFC5761] | 2390 | a=rtcp:60052 IN IP4 203.0.113.141 | [RFC3605] | 2391 | a=rtcp-rsize | [RFC5506] | 2392 | a=rtcp-fb:120 nack | [RFC4585] | 2393 | a=rtcp-fb:120 nack pli | [RFC4585] | 2394 | a=rtcp-fb:120 ccm fir | [RFC5104] | 2395 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 2396 | hdrext:sdes:mid | p-bundle-negotiatio | 2397 | | n] | 2398 | a=candidate:0 1 UDP 2122194687 192.0.2.4 | [I-D.ietf-mmusic-ic | 2399 | 71775 typ host | e-sip-sdp] | 2400 | a=candidate:1 1 UDP 1685987071 | [I-D.ietf-mmusic-ic | 2401 | 203.0.113.141 54332 typ srflx raddr | e-sip-sdp] | 2402 | 192.0.2.4 rport 71775 | | 2403 | a=candidate:0 2 UDP 2122194687 192.0.2.4 | [I-D.ietf-mmusic-ic | 2404 | 71776 typ host | e-sip-sdp] | 2405 | a=candidate:1 2 UDP 1685987071 | [I-D.ietf-mmusic-ic | 2406 | 203.0.113.141 60052 typ srflx raddr | e-sip-sdp] | 2407 | 192.0.2.4 rport 71776 | | 2408 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 2409 | | ickle-ice] | 2410 +---------------------------------------------+---------------------+ 2411 Table 19: 5.2.9 SDP Offer w/BUNDLE 2413 +-------------------------------------------------+-----------------+ 2414 | Answer SDP Contents | RFC#/Notes | 2415 +-------------------------------------------------+-----------------+ 2416 | v=0 | [RFC4566] | 2417 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] | 2418 | s=- | [RFC4566] | 2419 | t=0 0 | [RFC4566] | 2420 | a=group:LS audio video | [RFC5888] | 2421 | a=ice-options:trickle | [I-D.ietf-mmusi | 2422 | | c-trickle-ice] | 2423 | ****** Audio m=line ********* | *************** | 2424 | | ************** | 2425 | m=audio 53214 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 2426 | c=IN IP4 203.0.113.77 | [RFC4566] | 2427 | a=mid:audio | [RFC5888] | 2428 | a=msid:ma ta | Identifies | 2429 | | RTCMediaStream | 2430 | | ID (ma) and RTC | 2431 | | MediaStreamTrac | 2432 | | k ID (ta) | 2433 | a=sendrecv | [RFC3264] | 2434 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 2435 | a=maxptime:120 | [RFC4566] | 2436 | a=ice-ufrag:c300d85b | [I-D.ietf-mmusi | 2437 | | c-ice-sip-sdp] | 2438 | a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [I-D.ietf-mmusi | 2439 | | c-ice-sip-sdp] | 2440 | a=fingerprint:sha-256 6B:8B:F0:65:5F:78:E2:51:3 | [RFC8122] | 2441 | B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:24:C2:43: | | 2442 | F0:A1:58:D0:A1:2C:19:08 | | 2443 | a=setup:active | [RFC5763] - Bob | 2444 | | is the DTLS | 2445 | | client | 2446 | a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 | [I-D.ietf-mmusi | 2447 | | c-dtls-sdp] | 2448 | a=rtcp-mux | [RFC5761] | 2449 | a=rtcp-rsize | [RFC5506] | 2450 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 2451 | audio-level | | 2452 | a=candidate:0 1 UDP 2122194687 198.51.100.7 | [I-D.ietf-mmusi | 2453 | 51556 typ host | c-ice-sip-sdp] | 2454 | a=candidate:1 1 UDP 1685987071 203.0.113.77 | [I-D.ietf-mmusi | 2455 | 53214 typ srflx raddr 198.51.100.7 rport 51556 | c-ice-sip-sdp] | 2456 | a=candidate:0 2 UDP 2122194687 198.51.100.7 | [I-D.ietf-mmusi | 2457 | 51558 typ host | c-ice-sip-sdp] | 2458 | a=candidate:1 2 UDP 1685987071 203.0.113.77 | [I-D.ietf-mmusi | 2459 | 60065 typ srflx raddr 198.51.100.7 rport 51558 | c-ice-sip-sdp] | 2460 | ****** Video m=line ********* | *************** | 2461 | | ************** | 2462 | m=video 58679 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | 2463 | c=IN IP4 203.0.113.77 | [RFC4566] | 2464 | a=mid:video | [RFC5888] | 2465 | a=msid:ma tb | Identifies | 2466 | | RTCMediaStream | 2467 | | ID (ma) and RTC | 2468 | | MediaStreamTrac | 2469 | | k ID (tb) | 2470 | a=sendrecv | [RFC3264] | 2471 | a=rtpmap:120 VP8/90000 | [RFC7741] | 2472 | a=ice-ufrag:85bC300 | [I-D.ietf-mmusi | 2473 | | c-ice-sip-sdp] | 2474 | a=ice-pwd:325921d5d47efbabd9a2de4e99bd291c | [I-D.ietf-mmusi | 2475 | | c-ice-sip-sdp] | 2476 | a=fingerprint:sha-256 | [RFC8122] | 2477 | 6B:8B:F0:65:5F:78:E2:51:3B:AC:6F:F3:3F:46:1B:35 | | 2478 | :DC:B8:5F:64:1A:24:C2:43:F0:A1:58:D0:A1:2C:19:0 | | 2479 | 8 | | 2480 | a=setup:active | [RFC5763] - Bob | 2481 | | is the DTLS | 2482 | | client | 2483 | a=tls-id:9AIFS8AQ009IXF5D6QQUJ7P8BXPEZJ8G | [I-D.ietf-mmusi | 2484 | | c-dtls-sdp] | 2485 | a=rtcp-mux | [RFC5761] | 2486 | a=rtcp-rsize | [RFC5506] | 2487 | a=rtcp-fb:120 nack | [RFC4585] | 2488 | a=rtcp-fb:120 nack pli | [RFC4585] | 2489 | a=rtcp-fb:120 ccm fir | [RFC5104] | 2490 | a=candidate:0 1 UDP 2122194687 198.51.100.7 | [I-D.ietf-mmusi | 2491 | 61556 typ host | c-ice-sip-sdp] | 2492 | a=candidate:1 1 UDP 1685987071 203.0.113.77 | [I-D.ietf-mmusi | 2493 | 58679 typ srflx raddr 198.51.100.7 rport 61556 | c-ice-sip-sdp] | 2494 | a=end-of-candidates | [I-D.ietf-mmusi | 2495 | | c-trickle-ice] | 2496 +-------------------------------------------------+-----------------+ 2498 Table 20: 5.2.9 SDP Answer without BUNDLE 2500 5.2.10. Audio, Video BUNDLED, but Data (Not BUNDLED) 2502 This example show-cases SDP for negotiating a session with Audio, 2503 Video and data streams between Alice and Bob with data stream not 2504 being part of the BUNDLE group. This is shown by assigning unique 2505 port for data media section and not adding the "mid" identification 2506 tag to the BUNDLE group. 2508 Audio, Video, with Data (Not in BUNDLE) 2510 Alice Bob 2511 | | 2512 | | 2513 |Alice wants to multiplex audio, video but not data | 2514 | | 2515 | | 2516 | Offer(Audio:Opus Video:VP8, Data(not in BUNDLE)) | 2517 |----------------------------------------------------->| 2518 | | 2519 | | 2520 | Answer(Audio:Opus Video:VP8, Data) | 2521 |<-----------------------------------------------------| 2522 | | 2523 | | 2524 |2 Way Call with Audio, Video Multiplexed except data | 2525 |......................................................| 2526 | | 2528 +---------------------------------------------+---------------------+ 2529 | Offer SDP Contents | RFC#/Notes | 2530 +---------------------------------------------+---------------------+ 2531 | v=0 | [RFC4566] | 2532 | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | 2533 | s=- | [RFC4566] | 2534 | t=0 0 | [RFC4566] | 2535 | a=group:BUNDLE audio video | [I-D.ietf-mmusic-sd | 2536 | | p-bundle-negotiatio | 2537 | | n] Alice wants to | 2538 | | BUNDLE only audio | 2539 | | and video media. | 2540 | a=group:LS audio video | [RFC5888] | 2541 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 2542 | | ickle-ice] | 2543 | ****** Audio m=line ********* | ******************* | 2544 | | ********** | 2545 | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 2546 | c=IN IP4 203.0.113.141 | [RFC4566] | 2547 | a=mid:audio | [RFC5888] | 2548 | a=msid:ma ta | Identifies | 2549 | | RTCMediaStream ID | 2550 | | (ma) and | 2551 | | RTCMediaStreamTrack | 2552 | | ID (ta) | 2553 | a=sendrecv | [RFC3264] | 2554 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 2555 | a=maxptime:120 | [RFC4566] | 2556 | a=ice-ufrag:074c6550 | [I-D.ietf-mmusic-ic | 2557 | | e-sip-sdp] | 2558 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [I-D.ietf-mmusic-ic | 2559 | | e-sip-sdp] | 2560 | a=fingerprint:sha-256 19:E2:1C:3B:4B:9F:81: | [RFC8122] | 2561 | E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | 2562 | 4:A9:0E:05:E9:26:33:E8:70:88:A2 | | 2563 | a=setup:actpass | [RFC5763] | 2564 | a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 | [I-D.ietf-mmusic-dt | 2565 | | ls-sdp] | 2566 | a=rtcp-mux | [RFC5761] | 2567 | a=rtcp-mux-only | [I-D.ietf-mmusic-mu | 2568 | | x-exclusive] | 2569 | a=rtcp-rsize | [RFC5506] | 2570 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 2571 | audio-level | | 2572 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 2573 | hdrext:sdes:mid | p-bundle-negotiatio | 2574 | | n] | 2575 | a=candidate:0 1 UDP 2113667327 192.0.2.4 | [I-D.ietf-mmusic-ic | 2576 | 54609 typ host | e-sip-sdp] | 2577 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 2578 | | ickle-ice] | 2579 | ****** Video m=line ********* | ******************* | 2580 | | ********** | 2581 | m=video 0 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | 2582 | c=IN IP4 203.0.113.141 | [RFC4566] | 2583 | a=bundle-only | [I-D.ietf-mmusic-sd | 2584 | | p-bundle-negotiatio | 2585 | | n] | 2586 | a=mid:video | [RFC5888] | 2587 | a=msid:ma tb | Identifies | 2588 | | RTCMediaStream ID | 2589 | | (ma) and | 2590 | | RTCMediaStreamTrack | 2591 | | ID (tb) | 2592 | a=sendrecv | [RFC3264] | 2593 | a=rtpmap:120 VP8/90000 | [RFC7741] | 2594 | a=rtcp-fb:120 nack | [RFC4585] | 2595 | a=rtcp-fb:120 nack pli | [RFC4585] | 2596 | a=rtcp-fb:120 ccm fir | [RFC5104] | 2597 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 2598 | hdrext:sdes:mid | p-bundle-negotiatio | 2599 | | n] | 2600 | ****** Application m=line ********* | ******************* | 2601 | | ********** | 2602 | m=application 10000 UDP/DTLS/SCTP webrtc- | [I-D.ietf-rtcweb-da | 2603 | datachannel | ta-channel] | 2604 | c=IN IP4 203.0.113.141 | [RFC4566] | 2605 | a=mid:data | [RFC5888] | 2606 | a=sctp-port:5000 | [I-D.ietf-mmusic-sc | 2607 | | tp-sdp] | 2608 | a=max-message-size:100000 | [I-D.ietf-mmusic-sc | 2609 | | tp-sdp] | 2610 | a=sendrecv | [RFC3264] | 2611 | a=setup:actpass | [RFC5763] | 2612 | a=tls-id:UKA29UQLTF69OJW4WNPNUO2Y0GF1FJOZ | [I-D.ietf-mmusic-dt | 2613 | | ls-sdp] | 2614 | a=ice-ufrag:89819013 | [I-D.ietf-mmusic-ic | 2615 | | e-sip-sdp] | 2616 | a=ice-pwd:1747d1ee3474af08a068a28a397a4c3f3 | [I-D.ietf-mmusic-ic | 2617 | | e-sip-sdp] | 2618 | a=fingerprint:sha-256 29:E2:1C:3B:4B:9F:81: | [RFC8122] | 2619 | E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | 2620 | 4:A9:0E:05:E9:26:33:E8:70:88:A2 | | 2621 | a=candidate:0 1 UDP 2113667327 192.0.2.4 | [I-D.ietf-mmusic-ic | 2622 | 10000 typ host | e-sip-sdp] | 2623 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 2624 | | ickle-ice] | 2625 +---------------------------------------------+---------------------+ 2627 Table 21: 5.2.10 SDP Offer 2629 +---------------------------------------------+---------------------+ 2630 | Answer SDP Contents | RFC#/Notes | 2631 +---------------------------------------------+---------------------+ 2632 | v=0 | [RFC4566] | 2633 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session | 2634 | | Origin Information | 2635 | s=- | [RFC4566] | 2636 | t=0 0 | [RFC4566] | 2637 | a=group:BUNDLE audio video | [I-D.ietf-mmusic-sd | 2638 | | p-bundle-negotiatio | 2639 | | n] | 2640 | a=group:LS audio video | [RFC5888] | 2641 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 2642 | | ickle-ice] | 2643 | ****** Audio m=line ********* | ******************* | 2644 | | ********** | 2645 | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 2646 | c=IN IP4 203.0.113.77 | [RFC4566] | 2647 | a=mid:audio | [RFC5888] | 2648 | a=msid:ma ta | Identifies | 2649 | | RTCMediaStream ID | 2650 | | (ma) and | 2651 | | RTCMediaStreamTrack | 2652 | | ID (ta) | 2653 | a=sendrecv | [RFC3264] | 2654 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 2655 | a=maxptime:120 | [RFC4566] | 2656 | a=ice-ufrag:c300d85b | [I-D.ietf-mmusic-ic | 2657 | | e-sip-sdp] | 2658 | a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [I-D.ietf-mmusic-ic | 2659 | | e-sip-sdp] | 2660 | a=fingerprint:sha-256 6B:8B:F0:65:5F:78:E2: | [RFC8122] | 2661 | 51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | | 2662 | 4:C2:43:F0:A1:58:D0:A1:2C:19:08 | | 2663 | a=setup:active | [RFC5763] | 2664 | a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 | [I-D.ietf-mmusic-dt | 2665 | | ls-sdp] | 2666 | a=rtcp-mux | [RFC5761] | 2667 | a=rtcp-mux-only | [I-D.ietf-mmusic-mu | 2668 | | x-exclusive] | 2669 | a=rtcp-rsize | [RFC5506] | 2670 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 2671 | audio-level | | 2672 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 2673 | hdrext:sdes:mid | p-bundle-negotiatio | 2674 | | n] | 2675 | a=candidate:0 1 UDP 2113667327 198.51.100.7 | [I-D.ietf-mmusic-ic | 2676 | 49203 typ host | e-sip-sdp] | 2677 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 2678 | | ickle-ice] | 2679 | ****** Video m=line ********* | ******************* | 2680 | | ********** | 2681 | m=video 0 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | 2682 | c=IN IP4 203.0.113.77 | [RFC4566] | 2683 | a=bundle-only | [I-D.ietf-mmusic-sd | 2684 | | p-bundle-negotiatio | 2685 | | n] | 2686 | a=mid:video | [RFC5888] | 2687 | a=msid:ma tb | Identifies | 2688 | | RTCMediaStream ID | 2689 | | (ma) and | 2690 | | RTCMediaStreamTrack | 2691 | | ID (tb) | 2692 | a=sendrecv | [RFC3264] | 2693 | a=rtpmap:120 VP8/90000 | [RFC7741] | 2694 | a=rtcp-fb:120 nack | [RFC4585] | 2695 | a=rtcp-fb:120 nack pli | [RFC4585] | 2696 | a=rtcp-fb:120 ccm fir | [RFC5104] | 2697 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 2698 | hdrext:sdes:mid | p-bundle-negotiatio | 2699 | | n] | 2700 | ****** Application m=line ********* | ******************* | 2701 | | ********** | 2702 | m=application 20000 UDP/DTLS/SCTP webrtc- | [I-D.ietf-mmusic-sc | 2703 | datachannel | tp-sdp] | 2704 | c=IN IP4 203.0.113.77 | [RFC4566] | 2705 | a=mid:data | [RFC5888] | 2706 | a=sctp-port:5000 | [I-D.ietf-mmusic-sc | 2707 | | tp-sdp] | 2708 | a=max-message-size:100000 | [I-D.ietf-mmusic-sc | 2709 | | tp-sdp] | 2710 | a=setup:active | [RFC5763] | 2711 | a=tls-id:9AIFS8AQ009IXF5D6QQUJ7P8BXPEZJ8G | [I-D.ietf-mmusic-dt | 2712 | | ls-sdp] | 2713 | a=sendrecv | [RFC3264] | 2714 | a=ice-ufrag:991Ca2a5e | [I-D.ietf-mmusic-ic | 2715 | | e-sip-sdp] | 2716 | a=ice-pwd:921d5d47efbabd9a2de4e99bd291c325 | [I-D.ietf-mmusic-ic | 2717 | | e-sip-sdp] | 2718 | a=fingerprint:sha-256 7B:8B:F0:65:5F:78:E2: | [RFC8122] | 2719 | 51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | | 2720 | 4:C2:43:F0:A1:58:D0:A1:2C:19:08 | | 2721 | a=candidate:0 1 UDP 2113667327 198.51.100.7 | [I-D.ietf-mmusic-ic | 2722 | 20000 typ host | e-sip-sdp] | 2723 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 2724 | | ickle-ice] | 2725 +---------------------------------------------+---------------------+ 2727 Table 22: 5.2.10 SDP Answer 2729 5.2.11. Audio Only, Add Video to BUNDLE 2731 This example involves 2 Offer/Answer exchanges. First one is used to 2732 negotiate and setup BUNDLE support for Audio-only session followed by 2733 an updated Offer/Answer exchange to add video stream to the ongoing 2734 session. Also the newly added video stream is BUNDLED with the audio 2735 stream. 2737 Audio Only , Add Video and BUNDLE 2739 Alice Bob 2740 | | 2741 | | 2742 | Alice indicates support for BUNDLE | 2743 | | 2744 | Offer(Audio:Opus) | 2745 |----------------------------------------------------->| 2746 | |Bob 2747 | |supports 2748 | |BUNDLE 2749 | Answer(Audio:Opus) | 2750 |<-----------------------------------------------------| 2751 | |Alice adds 2752 | |video stream 2753 | Updated Offer(Audio:Opus, Video:VP8) |to BUNDLE 2754 |----------------------------------------------------->| 2755 | | 2756 | |Bob accepts 2757 | Updated Answer(Audio:Opus, Video:VP8) | 2758 |<-----------------------------------------------------| 2759 | | 2760 | 2Way Call with Audio and Video Multiplexed | 2761 |......................................................| 2762 | | 2763 | | 2765 +---------------------------------------------+---------------------+ 2766 | Offer SDP Contents | RFC#/Notes | 2767 +---------------------------------------------+---------------------+ 2768 | v=0 | [RFC4566] | 2769 | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | 2770 | s=- | [RFC4566] | 2771 | t=0 0 | [RFC4566] | 2772 | a=group:BUNDLE audio | [I-D.ietf-mmusic-sd | 2773 | | p-bundle-negotiatio | 2774 | | n] Alice adds audio | 2775 | | m=line to the | 2776 | | BUNDLE group | 2777 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 2778 | | ickle-ice] | 2779 | ****** Audio m=line ********* | ******************* | 2780 | | ********** | 2781 | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 2782 | c=IN IP4 203.0.113.141 | [RFC4566] | 2783 | a=mid:audio | [RFC5888] | 2784 | a=msid:ma ta | Identifies | 2785 | | RTCMediaStream ID | 2786 | | (ma) and | 2787 | | RTCMediaStreamTrack | 2788 | | ID (ta) | 2789 | a=sendrecv | [RFC3264] | 2790 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 2791 | a=maxptime:120 | [RFC4566] | 2792 | a=ice-ufrag:074c6550 | [I-D.ietf-mmusic-ic | 2793 | | e-sip-sdp] | 2794 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [I-D.ietf-mmusic-ic | 2795 | | e-sip-sdp] | 2796 | a=fingerprint:sha-256 19:E2:1C:3B:4B:9F:81: | [RFC8122] | 2797 | E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | 2798 | 4:A9:0E:05:E9:26:33:E8:70:88:A2 | | 2799 | a=setup:actpass | [RFC5763] | 2800 | a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 | [I-D.ietf-mmusic-dt | 2801 | | ls-sdp] | 2802 | a=rtcp-mux | [RFC5761] | 2803 | a=rtcp-mux-only | [I-D.ietf-mmusic-mu | 2804 | | x-exclusive] | 2805 | a=rtcp-rsize | [RFC5506] | 2806 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 2807 | audio-level | | 2808 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 2809 | hdrext:sdes:mid | p-bundle-negotiatio | 2810 | | n] | 2811 | a=candidate:0 1 UDP 2113667327 192.0.2.4 | [I-D.ietf-mmusic-ic | 2812 | 61665 typ host | e-sip-sdp] | 2813 | a=candidate:1 1 UDP 694302207 203.0.113.141 | [I-D.ietf-mmusic-ic | 2814 | 54609 typ srflx raddr 192.0.2.4 rport 61665 | e-sip-sdp] | 2815 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 2816 | | ickle-ice] | 2817 +---------------------------------------------+---------------------+ 2819 Table 23: 5.2.11 SDP Offer 2821 +---------------------------------------------+---------------------+ 2822 | Answer SDP Contents | RFC#/Notes | 2823 +---------------------------------------------+---------------------+ 2824 | v=0 | [RFC4566] | 2825 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session | 2826 | | Origin Information | 2827 | s=- | [RFC4566] | 2828 | t=0 0 | [RFC4566] | 2829 | a=group:BUNDLE audio | [I-D.ietf-mmusic-sd | 2830 | | p-bundle-negotiatio | 2831 | | n] | 2832 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 2833 | | ickle-ice] | 2834 | ****** Audio m=line ********* | ******************* | 2835 | | ********** | 2836 | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 2837 | c=IN IP4 203.0.113.77 | [RFC4566] | 2838 | a=mid:audio | [RFC5888] | 2839 | a=msid:ma ta | Identifies | 2840 | | RTCMediaStream ID | 2841 | | (ma) and | 2842 | | RTCMediaStreamTrack | 2843 | | ID (ta) | 2844 | a=sendrecv | [RFC3264] | 2845 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 2846 | a=maxptime:120 | [RFC4566] | 2847 | a=ice-ufrag:c300d85b | [I-D.ietf-mmusic-ic | 2848 | | e-sip-sdp] | 2849 | a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [I-D.ietf-mmusic-ic | 2850 | | e-sip-sdp] | 2851 | a=fingerprint:sha-256 6B:8B:F0:65:5F:78:E2: | [RFC8122] | 2852 | 51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | | 2853 | 4:C2:43:F0:A1:58:D0:A1:2C:19:08 | | 2854 | a=setup:active | [RFC5763] | 2855 | a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 | [I-D.ietf-mmusic-dt | 2856 | | ls-sdp] | 2857 | a=rtcp-mux | [RFC5761] | 2858 | a=rtcp-mux-only | [I-D.ietf-mmusic-mu | 2859 | | x-exclusive] | 2860 | a=rtcp-rsize | [RFC5506] | 2861 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 2862 | audio-level | | 2863 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 2864 | hdrext:sdes:mid | p-bundle-negotiatio | 2865 | | n] | 2866 | a=candidate:0 1 UDP 2113667327 198.51.100.7 | [I-D.ietf-mmusic-ic | 2867 | 51556 typ host | e-sip-sdp] | 2868 | a=candidate:1 1 UDP 1694302207 203.0.113.77 | [I-D.ietf-mmusic-ic | 2869 | 49203 typ srflx raddr 198.51.100.7 rport | e-sip-sdp] | 2870 | 51556 | | 2871 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 2872 | | ickle-ice] | 2873 +---------------------------------------------+---------------------+ 2875 Table 24: 5.2.10 SDP Answer 2877 +---------------------------------------------+---------------------+ 2878 | Updated Offer SDP Contents | RFC#/Notes | 2879 +---------------------------------------------+---------------------+ 2880 | v=0 | Version number | 2881 | | incremented | 2882 | | [RFC4566] | 2883 | o=- 20518 1 IN IP4 0.0.0.0 | [RFC4566] | 2884 | s=- | [RFC4566] | 2885 | t=0 0 | [RFC4566] | 2886 | a=group:BUNDLE audio video | [I-D.ietf-mmusic-sd | 2887 | | p-bundle-negotiatio | 2888 | | n] | 2889 | a=group:LS audio video | [RFC5888] | 2890 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 2891 | | ickle-ice] | 2892 | ****** Audio m=line ********* | ******************* | 2893 | | ********** | 2894 | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 2895 | c=IN IP4 203.0.113.141 | [RFC4566] | 2896 | a=mid:audio | [RFC5888] | 2897 | a=msid:ma ta | Identifies | 2898 | | RTCMediaStream ID | 2899 | | (ma) and | 2900 | | RTCMediaStreamTrack | 2901 | | ID (ta) | 2902 | a=sendrecv | [RFC3264] | 2903 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 2904 | a=maxptime:120 | [RFC4566] | 2905 | a=ice-ufrag:074c6550 | [I-D.ietf-mmusic-ic | 2906 | | e-sip-sdp] | 2907 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [I-D.ietf-mmusic-ic | 2908 | | e-sip-sdp] | 2909 | a=fingerprint:sha-256 19:E2:1C:3B:4B:9F:81: | [RFC8122] | 2910 | E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | 2911 | 4:A9:0E:05:E9:26:33:E8:70:88:A2 | | 2912 | a=setup:actpass | [RFC5763] | 2913 | a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 | [I-D.ietf-mmusic-dt | 2914 | | ls-sdp]Alice want's | 2915 | | to use the same | 2916 | | DTLS association | 2917 | a=rtcp-mux | [RFC5761] | 2918 | a=rtcp-mux-only | [I-D.ietf-mmusic-mu | 2919 | | x-exclusive] | 2920 | a=rtcp-rsize | [RFC5506] | 2921 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 2922 | audio-level | | 2923 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 2924 | hdrext:sdes:mid | p-bundle-negotiatio | 2925 | | n] | 2926 | a=candidate:0 1 UDP 2113667327 192.0.2.4 | [I-D.ietf-mmusic-ic | 2927 | 61665 typ host | e-sip-sdp] | 2928 | a=candidate:1 1 UDP 694302207 203.0.113.141 | [I-D.ietf-mmusic-ic | 2929 | 54609 typ srflx raddr 192.0.2.4 rport 61665 | e-sip-sdp] | 2930 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 2931 | | ickle-ice] | 2932 | ****** Video m=line ********* | ******************* | 2933 | | ********** | 2934 | m=video 0 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | 2935 | c=IN IP4 203.0.113.141 | [RFC4566] | 2936 | a=bundle-only | [I-D.ietf-mmusic-sd | 2937 | | p-bundle-negotiatio | 2938 | | n] | 2939 | a=mid:video | [RFC5888] | 2940 | a=msid:ma tb | Identifies | 2941 | | RTCMediaStream ID | 2942 | | (ma) and | 2943 | | RTCMediaStreamTrack | 2944 | | ID (tb) | 2945 | a=sendrecv | [RFC3264] | 2946 | a=rtpmap:120 VP8/90000 | [RFC7741] | 2947 | a=rtcp-fb:120 nack | [RFC4585] | 2948 | a=rtcp-fb:120 nack pli | [RFC4585] | 2949 | a=rtcp-fb:120 ccm fir | [RFC5104] | 2950 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 2951 | hdrext:sdes:mid | p-bundle-negotiatio | 2952 | | n] | 2953 +---------------------------------------------+---------------------+ 2955 Table 25: 5.2.11 SDP Updated Offer 2957 +---------------------------------------------+---------------------+ 2958 | Updated Answer SDP Contents | RFC#/Notes | 2959 +---------------------------------------------+---------------------+ 2960 | v=0 | [RFC4566] Version | 2961 | | number incremented | 2962 | o=- 16833 1 IN IP4 0.0.0.0 | [RFC4566] - Session | 2963 | | Origin Information | 2964 | s=- | [RFC4566] | 2965 | t=0 0 | [RFC4566] | 2966 | a=group:BUNDLE audio video | [I-D.ietf-mmusic-sd | 2967 | | p-bundle-negotiatio | 2968 | | n] | 2969 | a=group:LS audio video | [RFC5888] | 2970 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 2971 | | ickle-ice] | 2972 | ****** Audio m=line ********* | ******************* | 2973 | | ********** | 2974 | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 2975 | c=IN IP4 203.0.113.77 | [RFC4566] | 2976 | a=mid:audio | [RFC5888] | 2977 | a=msid:ma ta | Identifies | 2978 | | RTCMediaStream ID | 2979 | | (ma) and | 2980 | | RTCMediaStreamTrack | 2981 | | ID (ta) | 2982 | a=sendrecv | [RFC3264] | 2983 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 2984 | a=maxptime:120 | [RFC4566] | 2985 | a=ice-ufrag:c300d85b | [I-D.ietf-mmusic-ic | 2986 | | e-sip-sdp] | 2987 | a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [I-D.ietf-mmusic-ic | 2988 | | e-sip-sdp] | 2989 | a=fingerprint:sha-256 6B:8B:F0:65:5F:78:E2: | [RFC8122] | 2990 | 51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | | 2991 | 4:C2:43:F0:A1:58:D0:A1:2C:19:08 | | 2992 | a=setup:active | [RFC5763] | 2993 | a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 | [I-D.ietf-mmusic-dt | 2994 | | ls-sdp] - Bob | 2995 | | agrees to use the | 2996 | | same DTLS | 2997 | | association | 2998 | a=rtcp-mux | [RFC5761] | 2999 | a=rtcp-mux-only | [I-D.ietf-mmusic-mu | 3000 | | x-exclusive] | 3001 | a=rtcp-rsize | [RFC5506] | 3002 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 3003 | audio-level | | 3004 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 3005 | hdrext:sdes:mid | p-bundle-negotiatio | 3006 | | n] | 3007 | a=candidate:0 1 UDP 2113667327 198.51.100.7 | [I-D.ietf-mmusic-ic | 3008 | 51556 typ host | e-sip-sdp] | 3009 | a=candidate:1 1 UDP 1694302207 203.0.113.77 | [I-D.ietf-mmusic-ic | 3010 | 49203 typ srflx raddr 198.51.100.7 rport | e-sip-sdp] | 3011 | 51556 | | 3012 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 3013 | | ickle-ice] | 3014 | ****** Video m=line ********* | ******************* | 3015 | | ********** | 3016 | m=video 0 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | 3017 | c=IN IP4 203.0.113.77 | [RFC4566] | 3018 | a=bundle-only | [I-D.ietf-mmusic-sd | 3019 | | p-bundle-negotiatio | 3020 | | n] | 3021 | a=mid:video | [RFC5888] | 3022 | a=msid:ma tb | Identifies | 3023 | | RTCMediaStream ID | 3024 | | (ma) and | 3025 | | RTCMediaStreamTrack | 3026 | | ID (tb) | 3027 | a=sendrecv | [RFC3264] | 3028 | a=rtpmap:120 VP8/90000 | [RFC7741] | 3029 | a=rtcp-fb:120 nack | [RFC4585] | 3030 | a=rtcp-fb:120 nack pli | [RFC4585] | 3031 | a=rtcp-fb:120 ccm fir | [RFC5104] | 3032 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 3033 | hdrext:sdes:mid | p-bundle-negotiatio | 3034 | | n] | 3035 +---------------------------------------------+---------------------+ 3037 Table 26: 5.2.11 SDP Updated Answer 3039 5.3. MultiResolution, RTX, FEC Examples 3041 This section provides examples related to multi-source, multi-stream 3042 negotiation such as layered coding, simulcast. Further included are 3043 few examples that cover techniques to deal with providing robustness 3044 against transmission errors such as FEC and RTX. Also to note, 3045 mechanisms such as FEC and RTX could be envisioned in the above basic 3046 scenarios as well. 3048 5.3.1. Sendonly Simulcast Session with 2 cameras and 2 encodings per 3049 camera 3051 The SDP below shows Offer/Answer exchange with one audio and two 3052 video sources (say 2 video cameras). Each of the video source can be 3053 sent at two different resolutions. 3055 One video source corresponds to VP8 encoding, while the other 3056 corresponds to H.264 encoding. 3058 [I-D.ietf-mmusic-rid] framework is used to further constrain the 3059 media format encodings and map the payload types (PT) to the 'rid' 3060 identifiers. 3062 [I-D.ietf-mmusic-sdp-simulcast] framework identifies the simulcast 3063 streams via their 'rid' identifiers. 3065 bundle-only attribute is used for the video sources in the Offer to 3066 ensure enabling video sources in the context of BUNDLE alone. 3068 BUNDLE grouping framework enables multiplexing of all the 5 Source 3069 RTP Streams (1 audio stream + 4 video streams) over a single RTP 3070 Session. 3072 Also, the audio and one video source RTP stream form a lip sync group 3073 while the other video source RTP stream represents a non-interactive 3074 media data. 3076 1 Way Successful Simulcast w/BUNDLE 3078 Alice Bob 3079 | | 3080 | | 3081 | Alice offers 2 sendonly video sources | 3082 | with 2 simulcast encodings per source | 3083 | and bundle-only for video | 3084 | | 3085 | | 3086 | Offer(Audio:Opus,Video1:VP8,Video2:H.264) | 3087 |------------------------------------------------>| 3088 | | 3089 | | 3090 | Answer(Audio:Opus Video1:VP8,Video2:H.264) | 3091 |<------------------------------------------------| 3092 | | 3093 |One-Way 1 Opus, 2 H.264 and 2 VP8 video streams, | 3094 | all multiplexed | 3095 |.................................................| 3096 | | 3097 | | 3099 +---------------------------------------------+---------------------+ 3100 | Offer SDP Contents | RFC#/Notes | 3101 +---------------------------------------------+---------------------+ 3102 | v=0 | [RFC4566] | 3103 | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 3104 | s=- | [RFC4566] | 3105 | t=0 0 | [RFC4566] | 3106 | a=group:BUNDLE m0 m1 m2 | [I-D.ietf-mmusic-sd | 3107 | | p-bundle-negotiatio | 3108 | | n] Alice supports | 3109 | | grouping of m=lines | 3110 | | under BUNDLE | 3111 | | semantics | 3112 | a=group:LS m0 m1 | [RFC5888] | 3113 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 3114 | | ickle-ice] | 3115 | ****** Audio m=line ********* | ******************* | 3116 | | ********** | 3117 | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 3118 | c=IN IP4 203.0.113.141 | [RFC4566] | 3119 | a=mid:m0 | [RFC5888] | 3120 | a=msid:ma ta | Identifies | 3121 | | RTCMediaStream ID | 3122 | | (ma) and | 3123 | | RTCMediaStreamTrack | 3124 | | ID (ta) | 3125 | a=sendonly | [RFC3264] | 3126 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 3127 | a=maxptime:120 | [RFC4566] | 3128 | a=ice-ufrag:074c6550 | [I-D.ietf-mmusic-ic | 3129 | | e-sip-sdp] | 3130 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [I-D.ietf-mmusic-ic | 3131 | | e-sip-sdp] | 3132 | a=fingerprint:sha-256 19:E2:1C:3B:4B:9F:81: | [RFC8122] | 3133 | E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | 3134 | 4:A9:0E:05:E9:26:33:E8:70:88:A2 | | 3135 | a=setup:actpass | [RFC5763] | 3136 | a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 | [I-D.ietf-mmusic-dt | 3137 | | ls-sdp] | 3138 | a=rtcp-mux | [RFC5761] | 3139 | a=rtcp-rsize | [RFC5506] | 3140 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 3141 | audio-level | | 3142 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 3143 | hdrext:sdes:mid | p-bundle-negotiatio | 3144 | | n] | 3145 | a=candidate:0 1 UDP 2113667327 192.0.2.4 | [I-D.ietf-mmusic-ic | 3146 | 61665 typ host | e-sip-sdp] | 3147 | a=candidate:1 1 UDP 694302207 203.0.113.141 | [I-D.ietf-mmusic-ic | 3148 | 54609 typ srflx raddr 192.0.2.4 rport 61665 | e-sip-sdp] | 3149 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 3150 | | ickle-ice] | 3151 | ****** Video-1 m=line ********* | ******************* | 3152 | | ********** | 3153 | m=video 0 UDP/TLS/RTP/SAVPF 98 100 | bundle-only video | 3154 | | line with port | 3155 | | number set to zero | 3156 | c=IN IP4 203.0.113.141 | [RFC4566] | 3157 | a=bundle-only | [I-D.ietf-mmusic-sd | 3158 | | p-bundle-negotiatio | 3159 | | n] | 3160 | a=mid:m1 | [RFC5888] Video | 3161 | | m=line part of | 3162 | | BUNDLE group | 3163 | a=msid:ma tb | Identifies | 3164 | | RTCMediaStream ID | 3165 | | (ma) and | 3166 | | RTCMediaStreamTrack | 3167 | | ID (tb) | 3168 | a=sendonly | [RFC3264] - Send | 3169 | | only video stream | 3170 | a=rtpmap:98 VP8/90000 | [RFC7741] | 3171 | a=fmtp:98 max-fr=30 | [RFC4566] | 3172 | a=rtpmap:100 VP8/90000 | [RFC7741] | 3173 | a=fmtp:100 max-fr=15 | [RFC4566] | 3174 | a=rtcp-fb:* nack | [RFC4585] | 3175 | a=rtcp-fb:* nack pli | [RFC4585] | 3176 | a=rtcp-fb:* ccm fir | [RFC5104] | 3177 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 3178 | hdrext:sdes:mid | p-bundle-negotiatio | 3179 | | n] | 3180 | a=extmap:3 urn:ietf:params:rtp- | [I-D.ietf-avtext-ri | 3181 | hdrext:sdes:rtp-stream-id | d] | 3182 | a=rid:1 send pt=98;max-width=1280;max- | [I-D.ietf-mmusic-ri | 3183 | height=720 | d] 1:1 rid mapping | 3184 | | to payload type and | 3185 | | specify resolution | 3186 | | constraints | 3187 | a=rid:2 send pt=100;max-width=640;max- | [I-D.ietf-mmusic-ri | 3188 | height=480 | d] 1:1 rid mapping | 3189 | | to payload type and | 3190 | | specify resolution | 3191 | | constraints | 3192 | a=simulcast:send 1;~2 | [I-D.ietf-mmusic-sd | 3193 | | p-simulcast] Alice | 3194 | | can send 2 | 3195 | | resolutions | 3196 | | identified by the | 3197 | | 'rid' identifiers | 3198 | | Also, the second | 3199 | | stream is initially | 3200 | | paused. | 3201 | ****** Video-2 m=line ********* | ******************* | 3202 | | ********** | 3203 | m=video 0 UDP/TLS/RTP/SAVPF 101 102 | bundle-only video | 3204 | | line with port | 3205 | | number set to zero | 3206 | c=IN IP4 203.0.113.141 | [RFC4566] | 3207 | a=bundle-only | [I-D.ietf-mmusic-sd | 3208 | | p-bundle-negotiatio | 3209 | | n] | 3210 | a=mid:m2 | [RFC5888] Video | 3211 | | m=line part of | 3212 | | BUNDLE group | 3213 | a=msid:ma tc | Identifies | 3214 | | RTCMediaStream ID | 3215 | | (ma) and | 3216 | | RTCMediaStreamTrack | 3217 | | ID (tc) | 3218 | a=sendonly | [RFC3264] - Send | 3219 | | only video stream | 3220 | a=rtpmap:101 H264/90000 | [RFC6184] | 3221 | a=rtpmap:102 H264/90000 | [RFC6184] | 3222 | a=fmtp:101 profile-level- | [RFC6184]Camera-2,E | 3223 | id=42401f;packetization-mode=0;max-fr=30 | ncoding-1 | 3224 | a=fmtp:102 profile-level- | [RFC6184]Camera-2,E | 3225 | id=42401f;packetization-mode=1;max-fr=15 | ncoding-2 | 3226 | a=rtcp-fb:* nack | [RFC4585] | 3227 | a=rtcp-fb:* nack pli | [RFC4585] | 3228 | a=rtcp-fb:* ccm fir | [RFC5104] | 3229 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 3230 | hdrext:sdes:mid | p-bundle-negotiatio | 3231 | | n] | 3232 | a=extmap:3 urn:ietf:params:rtp- | [I-D.ietf-avtext-ri | 3233 | hdrext:sdes:rtp-stream-id | d] | 3234 | a=rid:3 send pt=101;max-width=1280;max- | [I-D.ietf-mmusic-ri | 3235 | height=720 | d] 1:1 rid mapping | 3236 | | to payload type and | 3237 | | specify resolution | 3238 | | constraints | 3239 | a=rid:4 send pt=102;max-width=640;max- | [I-D.ietf-mmusic-ri | 3240 | height=360 | d] 1:1 rid mapping | 3241 | | to payload type and | 3242 | | specify resolution | 3243 | | constraints | 3244 | a=simulcast:send 3;4 | [I-D.ietf-mmusic-sd | 3245 | | p-simulcast] Alice | 3246 | | can send 2 | 3247 | | resolutions | 3248 | | identified by the | 3249 | | 'rid' identifiers | 3250 +---------------------------------------------+---------------------+ 3252 Table 27: 5.3.1 SDP Offer 3254 +---------------------------------------------+---------------------+ 3255 | Answer SDP Contents | RFC#/Notes | 3256 +---------------------------------------------+---------------------+ 3257 | v=0 | [RFC4566] | 3258 | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 3259 | s=- | [RFC4566] | 3260 | t=0 0 | [RFC4566] | 3261 | a=group:BUNDLE m0 m1 m2 | [I-D.ietf-mmusic-sd | 3262 | | p-bundle-negotiatio | 3263 | | n] Alice supports | 3264 | | grouping of m=lines | 3265 | | under BUNDLE | 3266 | | semantics | 3267 | a=group:LS m0 m1 | [RFC5888] | 3268 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 3269 | | ickle-ice] | 3270 | ****** Audio m=line ********* | ******************* | 3271 | | ********** | 3272 | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 3273 | c=IN IP4 203.0.113.77 | [RFC4566] | 3274 | a=mid:m0 | [RFC5888] | 3275 | a=msid:ma ta | Identifies | 3276 | | RTCMediaStream ID | 3277 | | (ma) and | 3278 | | RTCMediaStreamTrack | 3279 | | ID (ta) | 3280 | a=recvonly | [RFC3264] | 3281 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 3282 | a=maxptime:120 | [RFC4566] | 3283 | a=ice-ufrag:c300d85b | [I-D.ietf-mmusic-ic | 3284 | | e-sip-sdp] | 3285 | a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [I-D.ietf-mmusic-ic | 3286 | | e-sip-sdp] | 3287 | a=fingerprint:sha-256 6B:8B:F0:65:5F:78:E2: | [RFC8122] | 3288 | 51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | | 3289 | 4:C2:43:F0:A1:58:D0:A1:2C:19:08 | | 3290 | a=setup:active | [RFC5763] | 3291 | a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 | [I-D.ietf-mmusic-dt | 3292 | | ls-sdp] | 3293 | a=rtcp-mux | [RFC5761] | 3294 | a=rtcp-rsize | [RFC5506] | 3295 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 3296 | audio-level | | 3297 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 3298 | hdrext:sdes:mid | p-bundle-negotiatio | 3299 | | n] | 3300 | a=candidate:0 1 UDP 2113667327 198.51.100.7 | [I-D.ietf-mmusic-ic | 3301 | 61665 typ host | e-sip-sdp] | 3302 | a=candidate:1 1 UDP 694302207 203.0.113.77 | [I-D.ietf-mmusic-ic | 3303 | 49203 typ srflx raddr 198.51.100.7 rport | e-sip-sdp] | 3304 | 61665 | | 3305 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 3306 | | ickle-ice] | 3307 | ****** Video-1 m=line ********* | ******************* | 3308 | | ********** | 3309 | m=video 0 UDP/TLS/RTP/SAVPF 98 100 | BUNDLE accepted | 3310 | c=IN IP4 203.0.113.77 | [RFC4566] | 3311 | a=bundle-only | [I-D.ietf-mmusic-sd | 3312 | | p-bundle-negotiatio | 3313 | | n] | 3314 | a=mid:m1 | [RFC5888] Video | 3315 | | m=line part of | 3316 | | BUNDLE group | 3317 | a=msid:ma tb | Identifies | 3318 | | RTCMediaStream ID | 3319 | | (ma) and | 3320 | | RTCMediaStreamTrack | 3321 | | ID (tb) | 3322 | a=recvonly | [RFC3264] - receive | 3323 | | only video stream | 3324 | a=rtpmap:98 VP8/90000 | [RFC7741] | 3325 | a=rtpmap:100 VP8/90000 | [RFC7741] | 3326 | a=fmtp:98 max-fr=30 | [RFC4566] | 3327 | a=fmtp:100 max-fr=15 | [RFC4566] | 3328 | a=rtcp-fb:* nack | [RFC4585] | 3329 | a=rtcp-fb:* nack pli | [RFC4585] | 3330 | a=rtcp-fb:* ccm fir | [RFC5104] | 3331 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 3332 | hdrext:sdes:mid | p-bundle-negotiatio | 3333 | | n] | 3334 | a=extmap:3 urn:ietf:params:rtp- | [I-D.ietf-avtext-ri | 3335 | hdrext:sdes:rtp-stream-id | d] | 3336 | a=rid:1 recv pt=98;max-width=1280;max- | [I-D.ietf-mmusic-ri | 3337 | height=720 | d] Bob accepts the | 3338 | | offered payload | 3339 | | format constraints | 3340 | a=rid:2 recv pt=100;max-width=640;max- | [I-D.ietf-mmusic-ri | 3341 | height=480 | d] Bob accepts the | 3342 | | offered payload | 3343 | | format constraints | 3344 | a=simulcast:recv 1;2 | [I-D.ietf-mmusic-sd | 3345 | | p-simulcast] Bob | 3346 | | accepts the offered | 3347 | | simulcast streams | 3348 | | and removes the | 3349 | | paused state of | 3350 | | stream with 'rid' | 3351 | | value 2. | 3352 | ****** Video-2 m=line ********* | ******************* | 3353 | | ********** | 3354 | m=video 0 UDP/TLS/RTP/SAVPF 101 102 | BUNDLE accepted | 3355 | c=IN IP4 203.0.113.77 | [RFC4566] | 3356 | a=bundle-only | [I-D.ietf-mmusic-sd | 3357 | | p-bundle-negotiatio | 3358 | | n] | 3359 | a=mid:m2 | [RFC5888] Video | 3360 | | m=line part of | 3361 | | BUNDLE group | 3362 | a=msid:ma tc | Identifies | 3363 | | RTCMediaStream ID | 3364 | | (ma) and | 3365 | | RTCMediaStreamTrack | 3366 | | ID (tc) | 3367 | a=recvonly | [RFC3264] | 3368 | a=rtpmap:101 H264/90000 | [RFC6184] | 3369 | a=rtpmap:102 H264/90000 | [RFC6184] | 3370 | a=fmtp:101 profile-level- | [RFC6184] | 3371 | id=42401f;packetization-mode=1;max-fr=30 | | 3372 | a=fmtp:102 profile-level- | [RFC6184] | 3373 | id=42401f;packetization-mode=1;max-fr=15 | | 3374 | a=rtcp-fb:* nack | [RFC4585] | 3375 | a=rtcp-fb:* nack pli | [RFC4585] | 3376 | a=rtcp-fb:* ccm fir | [RFC5104] | 3377 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 3378 | hdrext:sdes:mid | p-bundle-negotiatio | 3379 | | n] | 3380 | a=extmap:3 urn:ietf:params:rtp- | [I-D.ietf-avtext-ri | 3381 | hdrext:sdes:rtp-stream-id | d] | 3382 | a=rid:3 recv pt=101;max-width=1280;max- | [I-D.ietf-mmusic-ri | 3383 | height=720 | d] Bob accepts the | 3384 | | offered payload | 3385 | | format constraints | 3386 | a=rid:4 recv pt=102;max-width=640;max- | [I-D.ietf-mmusic-ri | 3387 | height=360 | d] Bob accepts the | 3388 | | offered payload | 3389 | | format constraints | 3390 | a=simulcast:recv 3;4 | [I-D.ietf-mmusic-sd | 3391 | | p-simulcast] Bob | 3392 | | accepts the offered | 3393 | | simulcast streams. | 3394 +---------------------------------------------+---------------------+ 3396 Table 28: 5.3.1 SDP Answer 3398 5.3.2. Successful SVC Video Session 3400 This section shows an SDP Offer/Answer for a session with an audio 3401 and a single video source. The video source being encoded both as 3402 non-scalable and scalable H.264-SVC RTP stream (in the SST mode). 3404 The Answerer picks the payload type corresponding to scalable 3405 encoding. 3407 SVC Session - 3 Layers w/BUNDLE 3409 Alice Bob 3410 | | 3411 | | 3412 | Alice offers sendonly video stream | 3413 | with non-scalable and scalable encodings. | 3414 | | 3415 | | 3416 | Offer(Video:H.264/H.264-SVC) | 3417 |------------------------------------------------>| 3418 | | 3419 | |Bob accepts Alice's 3420 | |offered Codec 3421 | |operation points 3422 | | 3423 | Answer(Video:H.264-SVC) | 3424 |<------------------------------------------------| 3425 | | 3426 |One-Way H.264-SVC video streams | 3427 |.................................................| 3428 | | 3429 | | 3431 +---------------------------------------------+---------------------+ 3432 | Offer SDP Contents | RFC#/Notes | 3433 +---------------------------------------------+---------------------+ 3434 | v=0 | [RFC4566] | 3435 | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 3436 | s=- | [RFC4566] | 3437 | t=0 0 | [RFC4566] | 3438 | a=group:BUNDLE m0 m1 | [I-D.ietf-mmusic-sd | 3439 | | p-bundle-negotiatio | 3440 | | n] Alice supports | 3441 | | grouping of m=lines | 3442 | | under BUNDLE | 3443 | | semantics | 3444 | a=group:LS m0 m1 | [RFC5888] | 3445 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 3446 | | ickle-ice] | 3447 | ****** Audio m=line ********* | ******************* | 3448 | | ********** | 3449 | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 3450 | c=IN IP4 203.0.113.141 | [RFC4566] | 3451 | a=mid:m0 | [RFC5888] Audio | 3452 | | m=line part of | 3453 | | BUNDLE group with a | 3454 | | unique port number | 3455 | a=msid:ma ta | Identifies | 3456 | | RTCMediaStream ID | 3457 | | (ma) and | 3458 | | RTCMediaStreamTrack | 3459 | | ID (ta) | 3460 | a=sendonly | [RFC3264] | 3461 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 3462 | a=maxptime:120 | [RFC4566] | 3463 | a=ice-ufrag:074c6550 | [I-D.ietf-mmusic-ic | 3464 | | e-sip-sdp] | 3465 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [I-D.ietf-mmusic-ic | 3466 | | e-sip-sdp] | 3467 | a=fingerprint:sha-256 19:E2:1C:3B:4B:9F:81: | [RFC8122] | 3468 | E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | 3469 | 4:A9:0E:05:E9:26:33:E8:70:88:A2 | | 3470 | a=setup:actpass | [RFC5763] | 3471 | a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 | [I-D.ietf-mmusic-dt | 3472 | | ls-sdp] | 3473 | a=rtcp-mux | [RFC5761] | 3474 | a=rtcp-rsize | [RFC5506] | 3475 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 3476 | audio-level | | 3477 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 3478 | hdrext:sdes:mid | p-bundle-negotiatio | 3479 | | n] | 3480 | a=candidate:0 1 UDP 2113667327 192.0.2.4 | [I-D.ietf-mmusic-ic | 3481 | 61665 typ host | e-sip-sdp] | 3482 | a=candidate:1 1 UDP 694302207 203.0.113.141 | [I-D.ietf-mmusic-ic | 3483 | 54609 typ srflx raddr 192.0.2.4 rport 61665 | e-sip-sdp] | 3484 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 3485 | | ickle-ice] | 3486 | ****** Video m=line ********* | ******************* | 3487 | | ********** | 3488 | m=video 0 UDP/TLS/RTP/SAVPF 96 100 | bundle-only video | 3489 | | line with port | 3490 | | number set to zero | 3491 | c=IN IP4 203.0.113.141 | [RFC4566] | 3492 | a=bundle-only | [I-D.ietf-mmusic-sd | 3493 | | p-bundle-negotiatio | 3494 | | n] | 3495 | a=mid:m1 | [RFC5888] Video | 3496 | | m=line part of | 3497 | | BUNDLE group | 3498 | a=msid:ma tb | Identifies | 3499 | | RTCMediaStream ID | 3500 | | (ma) and | 3501 | | RTCMediaStreamTrack | 3502 | | ID (tc) | 3503 | a=sendonly | [RFC3264] - Send | 3504 | | only video stream | 3505 | a=rtpmap:96 H264/90000 | [RFC6184] | 3506 | a=fmtp:96 profile-level-id=4d0028; | [RFC6184]H.264 Non | 3507 | packetization-mode=1;max-fr=30;max-fs=8040 | Scalable | 3508 | a=rtpmap:100 H264-SVC/90000 | [RFC6190] | 3509 | a=fmtp:100 profile-level- | [RFC6190] H.264 | 3510 | id=53001f;packetization-mode=0 | Scalable Encoding | 3511 | a=rtcp-fb:* nack | [RFC4585] | 3512 | a=rtcp-fb:* nack pli | [RFC4585] | 3513 | a=rtcp-fb:* ccm fir | [RFC5104] | 3514 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 3515 | hdrext:sdes:mid | p-bundle-negotiatio | 3516 | | n] | 3517 +---------------------------------------------+---------------------+ 3519 Table 29: 5.3.2 SDP Offer with SVC 3521 +---------------------------------------------+---------------------+ 3522 | Answer SDP Contents | RFC#/Notes | 3523 +---------------------------------------------+---------------------+ 3524 | v=0 | [RFC4566] | 3525 | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 3526 | s=- | [RFC4566] | 3527 | t=0 0 | [RFC4566] | 3528 | a=group:BUNDLE m0 m1 | [I-D.ietf-mmusic-sd | 3529 | | p-bundle-negotiatio | 3530 | | n] | 3531 | a=group:LS m0 m1 | [RFC5888] | 3532 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 3533 | | ickle-ice] | 3534 | ****** Audio m=line ********* | ******************* | 3535 | | ********** | 3536 | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 3537 | c=IN IP4 203.0.113.77 | [RFC4566] | 3538 | a=mid:m0 | [RFC5888] | 3539 | a=msid:ma ta | Identifies | 3540 | | RTCMediaStream ID | 3541 | | (ma) and | 3542 | | RTCMediaStreamTrack | 3543 | | ID (ta) | 3544 | a=recvonly | [RFC3264] | 3545 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 3546 | a=maxptime:120 | [RFC4566] | 3547 | a=ice-ufrag:074c6550 | [I-D.ietf-mmusic-ic | 3548 | | e-sip-sdp] | 3549 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [I-D.ietf-mmusic-ic | 3550 | | e-sip-sdp] | 3551 | a=fingerprint:sha-256 6B:8B:F0:65:5F:78:E2: | [RFC8122] | 3552 | 51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | | 3553 | 4:C2:43:F0:A1:58:D0:A1:2C:19:08 | | 3554 | a=setup:active | [RFC5763] | 3555 | a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 | [I-D.ietf-mmusic-dt | 3556 | | ls-sdp] | 3557 | a=rtcp-mux | [RFC5761] | 3558 | a=rtcp-rsize | [RFC5506] | 3559 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 3560 | audio-level | | 3561 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 3562 | hdrext:sdes:mid | p-bundle-negotiatio | 3563 | | n] | 3564 | a=candidate:0 1 UDP 2113667326 198.51.100.7 | [I-D.ietf-mmusic-ic | 3565 | 51556 typ host | e-sip-sdp] | 3566 | a=candidate:1 1 UDP 1694302206 203.0.113.77 | [I-D.ietf-mmusic-ic | 3567 | 49203 typ srflx raddr 198.51.100.7 rport | e-sip-sdp] | 3568 | 51556 | | 3569 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 3570 | | ickle-ice] | 3571 | ****** Video m=line ********* | ******************* | 3572 | | ********** | 3573 | m=video 0 UDP/TLS/RTP/SAVPF 100 | BUNDLE accepted. | 3574 | c=IN IP4 203.0.113.77 | [RFC4566] | 3575 | a=bundle-only | [I-D.ietf-mmusic-sd | 3576 | | p-bundle-negotiatio | 3577 | | n] | 3578 | a=mid:m1 | [RFC5888] Video | 3579 | | m=line part of | 3580 | | BUNDLE group | 3581 | a=msid:ma tb | Identifies | 3582 | | RTCMediaStream ID | 3583 | | (ma) and | 3584 | | RTCMediaStreamTrack | 3585 | | ID (tb) | 3586 | a=recvonly | [RFC3264] - Receive | 3587 | | only video stream | 3588 | a=rtpmap:100 H264-SVC/90000 | [RFC6190] | 3589 | a=fmtp:100 profile-level- | [RFC6190] | 3590 | id=53001f;packetization-mode=0 | | 3591 | a=rtcp-fb:* nack | [RFC4585] | 3592 | a=rtcp-fb:* nack pli | [RFC4585] | 3593 | a=rtcp-fb:* ccm fir | [RFC5104] | 3594 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 3595 | hdrext:sdes:mid | p-bundle-negotiatio | 3596 | | n] | 3597 +---------------------------------------------+---------------------+ 3599 Table 30: 5.3.2 SDP Answer with SVC 3601 5.3.3. Successful Simulcast Video Session with Retransmission 3603 This section shows an SDP Offer/Answer exchange for a simulcast 3604 scenario with 3 resolutions and has [RFC4588] style re-transmission 3605 flows. 3607 [I-D.ietf-mmusic-rid] framework is used to specify all the (3) 3608 resolution constraints mapped to a single Payload Type (98). 3610 [I-D.ietf-mmusic-sdp-simulcast] framework identifies the simulcast 3611 streams via their 'rid' identifiers. 3613 Simulcast Streams with Retransmission 3615 Alice Bob 3616 | | 3617 | | 3618 |Alice offers single audio and simulcasted video streams | 3619 | | 3620 | | 3621 | Offer(Audio:Opus Video:VP8 with 3 resolutions) | 3622 | & RTX stream | 3623 |-------------------------------------------------------->| 3624 | | 3625 | | 3626 | Answer (Bob accepts Alice's offer) | 3627 |<--------------------------------------------------------| 3628 | | 3629 | | 3630 |One-Way 1 Opus, 3 VP8 and RTX video streams,all muxed | 3631 |.........................................................| 3632 | | 3633 | | 3635 +---------------------------------------------+---------------------+ 3636 | Offer SDP Contents | RFC#/Notes | 3637 +---------------------------------------------+---------------------+ 3638 | v=0 | [RFC4566] | 3639 | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 3640 | s=- | [RFC4566] | 3641 | t=0 0 | [RFC4566] | 3642 | a=group:BUNDLE m0 m1 | [I-D.ietf-mmusic-sd | 3643 | | p-bundle-negotiatio | 3644 | | n] Alice supports | 3645 | | grouping of m=lines | 3646 | | under BUNDLE | 3647 | | semantics | 3648 | a=group:LS m0 m1 | [RFC5888] | 3649 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 3650 | | ickle-ice] | 3651 | ****** Audio m=line ********* | ******************* | 3652 | | ********** | 3653 | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 3654 | c=IN IP4 203.0.113.141 | [RFC4566] | 3655 | a=mid:m0 | [RFC5888] Audio | 3656 | | m=line part of | 3657 | | BUNDLE group with a | 3658 | | unique port number | 3659 | a=msid:ma ta | Identifies | 3660 | | RTCMediaStream ID | 3661 | | (ma) and | 3662 | | RTCMediaStreamTrack | 3663 | | ID (ta) | 3664 | a=sendonly | [RFC3264] | 3665 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 3666 | a=maxptime:120 | [RFC4566] | 3667 | a=ice-ufrag:074c6550 | [I-D.ietf-mmusic-ic | 3668 | | e-sip-sdp] | 3669 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [I-D.ietf-mmusic-ic | 3670 | | e-sip-sdp] | 3671 | a=fingerprint:sha-256 19:E2:1C:3B:4B:9F:81: | [RFC8122] | 3672 | E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | 3673 | 4:A9:0E:05:E9:26:33:E8:70:88:A2 | | 3674 | a=setup:actpass | [RFC5763] | 3675 | a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 | [I-D.ietf-mmusic-dt | 3676 | | ls-sdp] | 3677 | a=rtcp-mux | [RFC5761] | 3678 | a=rtcp-rsize | [RFC5506] | 3679 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 3680 | audio-level | | 3681 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 3682 | hdrext:sdes:mid | p-bundle-negotiatio | 3683 | | n] | 3684 | a=candidate:0 1 UDP 2113667327 192.0.2.4 | [I-D.ietf-mmusic-ic | 3685 | 61665 typ host | e-sip-sdp] | 3686 | a=candidate:1 1 UDP 694302207 203.0.113.141 | [I-D.ietf-mmusic-ic | 3687 | 54609 typ srflx raddr 192.0.2.4 rport 61665 | e-sip-sdp] | 3688 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 3689 | | ickle-ice] | 3690 | ****** Video m=line ********* | ******************* | 3691 | | ********** | 3692 | m=video 0 UDP/TLS/RTP/SAVPF 98 103 | bundle-only video | 3693 | | line with port | 3694 | | number set to zero | 3695 | c=IN IP4 203.0.113.141 | [RFC4566] | 3696 | a=bundle-only | [I-D.ietf-mmusic-sd | 3697 | | p-bundle-negotiatio | 3698 | | n] | 3699 | a=mid:m1 | [RFC5888] | 3700 | a=msid:ma tb | Identifies | 3701 | | RTCMediaStream ID | 3702 | | (ma) and | 3703 | | RTCMediaStreamTrack | 3704 | | ID (tb) | 3705 | a=sendonly | [RFC3264] | 3706 | a=rtpmap:98 VP8/90000 | [RFC7741] | 3707 | a=fmtp:98 max-fr=30 | [RFC4566] | 3708 | a=rtpmap:103 rtx/90000 | [RFC4588] | 3709 | a=fmtp:103 apt=98;rtx-time=200 | [RFC4588] | 3710 | a=rtcp-fb:* nack | [RFC4585] | 3711 | a=rtcp-fb:* nack pli | [RFC4585] | 3712 | a=rtcp-fb:* ccm fir | [RFC5104] | 3713 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 3714 | hdrext:sdes:mid | p-bundle-negotiatio | 3715 | | n] | 3716 | a=extmap:3 urn:ietf:params:rtp- | [I-D.ietf-avtext-ri | 3717 | hdrext:sdes:rtp-stream-id | d] | 3718 | a=extmap:4 urn:ietf:params:rtp- | [I-D.ietf-avtext-ri | 3719 | hdrext:sdes:repaired-rtp-stream-id | d] | 3720 | a=rid:1 send pt=98;max-fs=921600;max-fr=30 | [I-D.ietf-mmusic-ri | 3721 | | d] | 3722 | a=rid:2 send pt=98;max-fs=614400;max-fr=15 | [I-D.ietf-mmusic-ri | 3723 | | d] | 3724 | a=rid:3 send pt=98;max-fs=230400;max-fr=30 | [I-D.ietf-mmusic-ri | 3725 | | d] | 3726 | a=simulcast:send 1;2;3 | [I-D.ietf-mmusic-sd | 3727 | | p-simulcast] Alice | 3728 | | can send all the | 3729 | | simulcast streams | 3730 +---------------------------------------------+---------------------+ 3732 Table 31: 5.3.3 SDP Offer w/Simulcast, RTX 3734 +---------------------------------------------+---------------------+ 3735 | Answer SDP Contents | RFC#/Notes | 3736 +---------------------------------------------+---------------------+ 3737 | v=0 | [RFC4566] | 3738 | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 3739 | s=- | [RFC4566] | 3740 | t=0 0 | [RFC4566] | 3741 | a=group:BUNDLE m0 m1 | [I-D.ietf-mmusic-sd | 3742 | | p-bundle-negotiatio | 3743 | | n] Bob supports | 3744 | | grouping of m=lines | 3745 | | under BUNDLE | 3746 | | semantics | 3747 | a=group:LS m0 m1 | [RFC5888] | 3748 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 3749 | | ickle-ice] | 3750 | ****** Audio m=line ********* | ******************* | 3751 | | ********** | 3752 | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 3753 | c=IN IP4 203.0.113.77 | [RFC4566] | 3754 | a=mid:m0 | [RFC5888] | 3755 | a=msid:ma ta | Identifies | 3756 | | RTCMediaStream ID | 3757 | | (ma) and | 3758 | | RTCMediaStreamTrack | 3759 | | ID (ta) | 3760 | a=recvonly | [RFC3264] | 3761 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 3762 | a=maxptime:120 | [RFC4566] | 3763 | a=ice-ufrag:074c6550 | [I-D.ietf-mmusic-ic | 3764 | | e-sip-sdp] | 3765 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [I-D.ietf-mmusic-ic | 3766 | | e-sip-sdp] | 3767 | a=fingerprint:sha-256 6B:8B:F0:65:5F:78:E2: | [RFC8122] | 3768 | 51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | | 3769 | 4:C2:43:F0:A1:58:D0:A1:2C:19:08 | | 3770 | a=setup:active | [RFC5763] | 3771 | a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 | [I-D.ietf-mmusic-dt | 3772 | | ls-sdp] | 3773 | a=rtcp-mux | [RFC5761] | 3774 | a=rtcp-rsize | [RFC5506] | 3775 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 3776 | audio-level | | 3777 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 3778 | hdrext:sdes:mid | p-bundle-negotiatio | 3779 | | n] | 3780 | a=candidate:0 1 UDP 2113667326 198.51.100.7 | [I-D.ietf-mmusic-ic | 3781 | 51556 typ host | e-sip-sdp] | 3782 | a=candidate:1 1 UDP 1694302206 203.0.113.77 | [I-D.ietf-mmusic-ic | 3783 | 49203 typ srflx raddr 198.51.100.7 rport | e-sip-sdp] | 3784 | 51556 | | 3785 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 3786 | | ickle-ice] | 3787 | ****** Video m=line ********* | ******************* | 3788 | | ********** | 3789 | m=video 0 UDP/TLS/RTP/SAVPF 98 103 | BUNDLE accepted | 3790 | c=IN IP4 203.0.113.77 | [RFC4566] | 3791 | a=bundle-only | [I-D.ietf-mmusic-sd | 3792 | | p-bundle-negotiatio | 3793 | | n] | 3794 | a=mid:m1 | [RFC5888] Video | 3795 | | m=line part of | 3796 | | BUNDLE group | 3797 | a=msid:ma tb | Identifies | 3798 | | RTCMediaStream ID | 3799 | | (ma) and | 3800 | | RTCMediaStreamTrack | 3801 | | ID (tb) | 3802 | a=recvonly | [RFC3264] | 3803 | a=rtpmap:98 VP8/90000 | [RFC7741] | 3804 | a=fmtp:98 max-fr=30 | [RFC4566] | 3805 | a=rtpmap:103 rtx/90000 | [RFC4588] | 3806 | a=fmtp:103 apt=98;rtx-time=200 | [RFC4588] | 3807 | a=rtcp-fb:* nack | [RFC4585] | 3808 | a=rtcp-fb:* nack pli | [RFC4585] | 3809 | a=rtcp-fb:* ccm fir | [RFC5104] | 3810 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 3811 | hdrext:sdes:mid | p-bundle-negotiatio | 3812 | | n] | 3813 | a=extmap:3 urn:ietf:params:rtp- | [I-D.ietf-avtext-ri | 3814 | hdrext:sdes:rtp-stream-id | d] | 3815 | a=extmap:4 urn:ietf:params:rtp- | [I-D.ietf-avtext-ri | 3816 | hdrext:sdes:repaired-rtp-stream-id | d] | 3817 | a=rid:1 recv pt=98;max-fs=921600;max-fr=30 | [I-D.ietf-mmusic-ri | 3818 | | d] | 3819 | a=rid:2 recv pt=98;max-fs=614400;max-fr=15 | [I-D.ietf-mmusic-ri | 3820 | | d] | 3821 | a=rid:3 recv pt=98;max-fs=230400;max-fr=30 | [I-D.ietf-mmusic-ri | 3822 | | d] | 3823 | a=simulcast:recv 1;2;3 | [I-D.ietf-mmusic-sd | 3824 | | p-simulcast] Bob | 3825 | | accepts the offered | 3826 | | simulcast streams | 3827 +---------------------------------------------+---------------------+ 3829 Table 32: 5.3.3 SDP Answer w/Simulcast, RTX 3831 5.3.4. Successful 1-way Simulcast Session with 2 resolutions and RTX - 3832 One resolution rejected 3834 This section shows an SDP Offer/Answer exchange for a simulcast 3835 scenario with 2 two resolutions. 3837 It also showcases where Bob rejects one of the Simulcast Video Stream 3838 which results in the rejection of the associated repair stream 3839 implicitly. 3841 Simulcast Streams with Retransmission Rejected 3843 Alice Bob 3844 | | 3845 | | 3846 |Alice offers single audio and simulcasted video streams | 3847 | with bundle-only for video | 3848 | | 3849 | | 3850 |Offer(Audio:Opus Video:VP8 with 2 resolutions,RTX Stream)| 3851 |-------------------------------------------------------->| 3852 | | 3853 | |Bob accepts 1 3854 | |simulcast,rtx 3855 | |rejects the 3856 | |other 3857 | Answer(Audio:Opus Video:VP8 with 1 res & RTX Stream) | 3858 |<--------------------------------------------------------| 3859 | | 3860 | | 3861 |1-way audio,video session and its associated RTX stream, | 3862 | all multiplexed | 3863 |.........................................................| 3864 | | 3865 | | 3867 +---------------------------------------------+---------------------+ 3868 | Offer SDP Contents | RFC#/Notes | 3869 +---------------------------------------------+---------------------+ 3870 | v=0 | [RFC4566] | 3871 | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 3872 | s=- | [RFC4566] | 3873 | t=0 0 | [RFC4566] | 3874 | a=group:BUNDLE m0 m1 | [I-D.ietf-mmusic-sd | 3875 | | p-bundle-negotiatio | 3876 | | n] Alice supports | 3877 | | grouping of m=lines | 3878 | | under BUNDLE | 3879 | | semantics | 3880 | a=group:LS m0 m1 | [RFC5888] | 3881 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 3882 | | ickle-ice] | 3883 | ****** Audio m=line ********* | ******************* | 3884 | | ********** | 3885 | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 3886 | c=IN IP4 203.0.113.141 | [RFC4566] | 3887 | a=mid:m0 | [RFC5888] | 3888 | a=msid:ma ta | Identifies | 3889 | | RTCMediaStream ID | 3890 | | (ma) and | 3891 | | RTCMediaStreamTrack | 3892 | | ID (ta) | 3893 | a=sendonly | [RFC3264] | 3894 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 3895 | a=maxptime:120 | [RFC4566] | 3896 | a=ice-ufrag:074c6550 | [I-D.ietf-mmusic-ic | 3897 | | e-sip-sdp] | 3898 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [I-D.ietf-mmusic-ic | 3899 | | e-sip-sdp] | 3900 | a=fingerprint:sha-256 19:E2:1C:3B:4B:9F:81: | [RFC8122] | 3901 | E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | 3902 | 4:A9:0E:05:E9:26:33:E8:70:88:A2 | | 3903 | a=setup:actpass | [RFC5763] | 3904 | a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 | [I-D.ietf-mmusic-dt | 3905 | | ls-sdp] | 3906 | a=rtcp-mux | [RFC5761] | 3907 | a=rtcp-rsize | [RFC5506] | 3908 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 3909 | audio-level | | 3910 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 3911 | hdrext:sdes:mid | p-bundle-negotiatio | 3912 | | n] | 3913 | a=candidate:0 1 UDP 2113667327 192.0.2.4 | [I-D.ietf-mmusic-ic | 3914 | 61665 typ host | e-sip-sdp] | 3915 | a=candidate:1 1 UDP 694302207 203.0.113.141 | [I-D.ietf-mmusic-ic | 3916 | 54609 typ srflx raddr 192.0.2.4 rport 61665 | e-sip-sdp] | 3917 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 3918 | | ickle-ice] | 3919 | ****** Video m=line ********* | ******************* | 3920 | | ********** | 3921 | m=video 0 UDP/TLS/RTP/SAVPF 98 100 101 103 | bundle-only video | 3922 | | line with port | 3923 | | number set to zero | 3924 | c=IN IP4 203.0.113.141 | [RFC4566] | 3925 | a=bundle-only | [I-D.ietf-mmusic-sd | 3926 | | p-bundle-negotiatio | 3927 | | n] | 3928 | a=mid:m1 | [RFC5888] | 3929 | a=msid:ma tb | Identifies | 3930 | | RTCMediaStream ID | 3931 | | (ma) and | 3932 | | RTCMediaStreamTrack | 3933 | | ID (tb | 3934 | a=sendonly | [RFC3264] | 3935 | a=rtpmap:98 VP8/90000 | [RFC7741] | 3936 | a=rtpmap:100 VP8/90000 | [RFC7741] | 3937 | a=rtpmap:101 rtx/90000 | [RFC4588] | 3938 | a=rtpmap:103 rtx/90000 | [RFC4588] | 3939 | a=fmtp:98 max-fr=30;max-fs=8040 | [RFC4566] | 3940 | a=fmtp:100 max-fr=15;max-fs=1200 | [RFC4566] | 3941 | a=fmtp:101 apt=98;rtx-time=200 | [RFC4588] | 3942 | a=fmtp:103 apt=100;rtx-time=200 | [RFC4588] | 3943 | a=rtcp-fb:* nack | [RFC4585] | 3944 | a=rtcp-fb:* nack pli | [RFC4585] | 3945 | a=rtcp-fb:* ccm fir | [RFC5104] | 3946 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 3947 | hdrext:sdes:mid | p-bundle-negotiatio | 3948 | | n] | 3949 | a=extmap:3 urn:ietf:params:rtp- | [I-D.ietf-avtext-ri | 3950 | hdrext:sdes:rtp-stream-id | d] | 3951 | a=extmap:4 urn:ietf:params:rtp- | [I-D.ietf-avtext-ri | 3952 | hdrext:sdes:repaired-rtp-stream-id | d] | 3953 | a=rid:1 send pt=98 | [I-D.ietf-mmusic-ri | 3954 | | d] 1:1 mapping | 3955 | | between the PT and | 3956 | | the 'rid' | 3957 | | identifier | 3958 | a=rid:2 send pt=100 | [I-D.ietf-mmusic-ri | 3959 | | d] 1:1 mapping | 3960 | | between the PT and | 3961 | | the 'rid' | 3962 | | identifier | 3963 | a=simulcast:send 1;2 | [I-D.ietf-mmusic-sd | 3964 | | p-simulcast] | 3965 +---------------------------------------------+---------------------+ 3967 Table 33: 5.3.4 SDP Offer w/Simulcast, RTX 3969 +---------------------------------------------+---------------------+ 3970 | Answer SDP Contents | RFC#/Notes | 3971 +---------------------------------------------+---------------------+ 3972 | v=0 | [RFC4566] | 3973 | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 3974 | s=- | [RFC4566] | 3975 | t=0 0 | [RFC4566] | 3976 | a=group:BUNDLE m0 m1 | [I-D.ietf-mmusic-sd | 3977 | | p-bundle-negotiatio | 3978 | | n] Bob supports | 3979 | | grouping of m=lines | 3980 | | under BUNDLE | 3981 | | semantics | 3982 | a=group:LS m0 m1 | [RFC5888] | 3983 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 3984 | | ickle-ice] | 3985 | ****** Audio m=line ********* | ******************* | 3986 | | ********** | 3987 | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 3988 | c=IN IP4 203.0.113.77 | [RFC4566] | 3989 | a=mid:m0 | [RFC5888] | 3990 | a=msid:ma ta | Identifies | 3991 | | RTCMediaStream ID | 3992 | | (ma) and | 3993 | | RTCMediaStreamTrack | 3994 | | ID (ta) | 3995 | a=recvonly | [RFC3264] | 3996 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 3997 | a=maxptime:120 | [RFC4566] | 3998 | a=ice-ufrag:074c6550 | [I-D.ietf-mmusic-ic | 3999 | | e-sip-sdp] | 4000 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [I-D.ietf-mmusic-ic | 4001 | | e-sip-sdp] | 4002 | a=fingerprint:sha-256 6B:8B:F0:65:5F:78:E2: | [RFC8122] | 4003 | 51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | | 4004 | 4:C2:43:F0:A1:58:D0:A1:2C:19:08 | | 4005 | a=setup:active | [RFC5763] | 4006 | a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 | [I-D.ietf-mmusic-dt | 4007 | | ls-sdp] | 4008 | a=rtcp-mux | [RFC5761] | 4009 | a=rtcp-rsize | [RFC5506] | 4010 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 4011 | audio-level | | 4012 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 4013 | hdrext:sdes:mid | p-bundle-negotiatio | 4014 | | n] | 4015 | a=candidate:0 1 UDP 2113667326 198.51.100.7 | [I-D.ietf-mmusic-ic | 4016 | 51556 typ host | e-sip-sdp] | 4017 | a=candidate:1 1 UDP 1694302206 203.0.113.77 | [I-D.ietf-mmusic-ic | 4018 | 49203 typ srflx raddr 198.51.100.7 rport | e-sip-sdp] | 4019 | 51556 | | 4020 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 4021 | | ickle-ice] | 4022 | ****** Video m=line ********* | ******************* | 4023 | | ********** | 4024 | m=video 0 UDP/TLS/RTP/SAVPF 98 101 | BUNDLE accepted | 4025 | c=IN IP4 203.0.113.77 | [RFC4566] | 4026 | a=bundle-only | [I-D.ietf-mmusic-sd | 4027 | | p-bundle-negotiatio | 4028 | | n] | 4029 | a=mid:m1 | [RFC5888] | 4030 | a=msid:ma tb | Identifies | 4031 | | RTCMediaStream ID | 4032 | | (ma) and | 4033 | | RTCMediaStreamTrack | 4034 | | ID (tb) | 4035 | a=recvonly | [RFC3264] | 4036 | a=rtpmap:98 VP8/90000 | [RFC7741] | 4037 | a=rtpmap:101 rtx/90000 | [RFC4588] | 4038 | a=fmtp:101 apt=98;rtx-time=200 | [RFC4588] | 4039 | a=rtcp-fb:* nack | [RFC4585] | 4040 | a=rtcp-fb:* nack pli | [RFC4585] | 4041 | a=rtcp-fb:* ccm fir | [RFC5104] | 4042 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 4043 | hdrext:sdes:mid | p-bundle-negotiatio | 4044 | | n] | 4045 | a=extmap:3 urn:ietf:params:rtp- | [I-D.ietf-avtext-ri | 4046 | hdrext:sdes:rtp-stream-id | d] | 4047 | a=extmap:4 urn:ietf:params:rtp- | [I-D.ietf-avtext-ri | 4048 | hdrext:sdes:repaired-rtp-stream-id | d] | 4049 | a=rid:1 recv pt=98 | [I-D.ietf-mmusic-ri | 4050 | | d] | 4051 | a=simulcast:recv 1 | [I-D.ietf-mmusic-sd | 4052 | | p-simulcast] Bob | 4053 | | rejects the second | 4054 | | simulcast stream | 4055 | | and the associated | 4056 | | rtx stream. | 4057 +---------------------------------------------+---------------------+ 4059 Table 34: 5.3.4 SDP Answer (one Simulcast Rejected) 4061 5.3.5. Simulcast Video Session with Forward Error Correction 4063 This section shows an SDP Offer/Answer exchange for Simulcast video 4064 stream at two resolutions and and has [RFC5956] style FEC flows. 4066 On completion of the Offer/Answer exchange mechanism we end up one 4067 audio stream, 2 simulcast video streams and 2 associated FEC streams 4068 are sent over a single 5-tuple. 4070 Simulcast Streams with Forward Error Correction 4072 Alice Bob 4073 | | 4074 | | 4075 | | 4076 |Alice offers single audio and simulcasted video streams | 4077 |with bundle-only | 4078 | | 4079 | | 4080 |Offer(Audio:Opus Video:VP8 with 2 resolutions with FEC Streams)| 4081 |-------------------------------------------------------------->| 4082 | | 4083 | |Bob 4084 | |accepts 4085 | |Alice's 4086 | |offer 4087 |Answer(Audio:Opus Video:VP8 with 2 resolutions w/FEC Streams) | 4088 |<--------------------------------------------------------------| 4089 | | 4090 |One-Way Audio,Video session with 4 video streams(Simulcast | 4091 | and FEC) all multiplexed | 4092 |...............................................................| 4093 | | 4094 | | 4095 | | 4097 +---------------------------------------------+---------------------+ 4098 | Offer SDP Contents | RFC#/Notes | 4099 +---------------------------------------------+---------------------+ 4100 | v=0 | [RFC4566] | 4101 | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 4102 | s=- | [RFC4566] | 4103 | t=0 0 | [RFC4566] | 4104 | a=group:BUNDLE m0 m1 | [I-D.ietf-mmusic-sd | 4105 | | p-bundle-negotiatio | 4106 | | n] Alice supports | 4107 | | grouping of m=lines | 4108 | | under BUNDLE | 4109 | | semantics | 4110 | a=group:LS m0 m1 | [RFC5888] | 4111 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 4112 | | ickle-ice] | 4113 | ****** Audio m=line ********* | ******************* | 4114 | | ********** | 4115 | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 4116 | c=IN IP4 203.0.113.141 | [RFC4566] | 4117 | a=mid:m0 | [RFC5888] | 4118 | a=msid:ma ta | Identifies | 4119 | | RTCMediaStream ID | 4120 | | (ma) and | 4121 | | RTCMediaStreamTrack | 4122 | | ID (ta) | 4123 | a=sendonly | [RFC3264] | 4124 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 4125 | a=maxptime:120 | [RFC4566] | 4126 | a=ice-ufrag:074c6550 | [I-D.ietf-mmusic-ic | 4127 | | e-sip-sdp] | 4128 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [I-D.ietf-mmusic-ic | 4129 | | e-sip-sdp] | 4130 | a=fingerprint:sha-256 19:E2:1C:3B:4B:9F:81: | [RFC8122] | 4131 | E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | 4132 | 4:A9:0E:05:E9:26:33:E8:70:88:A2 | | 4133 | a=setup:actpass | [RFC5763] | 4134 | a=rtcp-mux | [RFC5761] | 4135 | a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 | [I-D.ietf-mmusic-dt | 4136 | | ls-sdp] | 4137 | a=rtcp-rsize | [RFC5506] | 4138 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 4139 | audio-level | | 4140 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 4141 | hdrext:sdes:mid | p-bundle-negotiatio | 4142 | | n] | 4143 | a=candidate:0 1 UDP 2113667327 192.0.2.4 | [I-D.ietf-mmusic-ic | 4144 | 61665 typ host | e-sip-sdp] | 4145 | a=candidate:1 1 UDP 694302207 203.0.113.141 | [I-D.ietf-mmusic-ic | 4146 | 54609 typ srflx raddr 192.0.2.4 rport 61665 | e-sip-sdp] | 4147 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 4148 | | ickle-ice] | 4149 | ****** Video m=line ********* | ******************* | 4150 | | ********** | 4151 | m=video 0 UDP/TLS/RTP/SAVPF 98 100 101 | bundle-only video | 4152 | | line with port | 4153 | | number set to zero | 4154 | c=IN IP4 203.0.113.141 | [RFC4566] | 4155 | a=bundle-only | [I-D.ietf-mmusic-sd | 4156 | | p-bundle-negotiatio | 4157 | | n] | 4158 | a=mid:m1 | [RFC5888] Video | 4159 | | m=line part of | 4160 | | BUNDLE group | 4161 | a=msid:ma tb | Identifies | 4162 | | RTCMediaStream ID | 4163 | | (ma) and | 4164 | | RTCMediaStreamTrack | 4165 | | ID (tb) | 4166 | a=sendonly | [RFC3264] | 4167 | a=rtpmap:98 VP8/90000 | [RFC7741] | 4168 | a=rtpmap:100 VP8/90000 | [RFC7741] | 4169 | a=rtpmap:101 flexfec/90000 | [I-D.ietf-payload-f | 4170 | | lexible-fec-scheme] | 4171 | a=fmtp:98 max-fr=30;max-fs=8040 | [RFC4566] | 4172 | a=fmtp:100 max-fr=15;max-fs=1200 | [RFC4566] | 4173 | a=fmtp:101 L=5; D=10; ToP=2; repair- | [I-D.ietf-payload-f | 4174 | window=200000 | lexible-fec-scheme] | 4175 | a=rtcp-fb:* nack pli | [RFC4585] | 4176 | a=rtcp-fb:* ccm fir | [RFC5104] | 4177 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 4178 | hdrext:sdes:mid | p-bundle-negotiatio | 4179 | | n] | 4180 | a=extmap:3 urn:ietf:params:rtp- | [I-D.ietf-avtext-ri | 4181 | hdrext:sdes:rtp-stream-id | d] | 4182 | a=extmap:4 urn:ietf:params:rtp- | [I-D.ietf-avtext-ri | 4183 | hdrext:sdes:repaired-rtp-stream-id | d] | 4184 | a=rid:1 send pt=98 | [I-D.ietf-mmusic-ri | 4185 | | d] 1:1 mapping | 4186 | | between the PT and | 4187 | | the 'rid' | 4188 | | identifier | 4189 | a=rid:2 send pt=100 | [I-D.ietf-mmusic-ri | 4190 | | d] 1:1 mapping | 4191 | | between the PT and | 4192 | | the 'rid' | 4193 | | identifier | 4194 | a=simulcast:send 1;2 | [I-D.ietf-mmusic-sd | 4195 | | p-simulcast] | 4196 +---------------------------------------------+---------------------+ 4198 Table 35: 5.3.5 SDP Offer 4200 +---------------------------------------------+---------------------+ 4201 | Answer SDP Contents | RFC#/Notes | 4202 +---------------------------------------------+---------------------+ 4203 | v=0 | [RFC4566] | 4204 | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 4205 | s=- | [RFC4566] | 4206 | t=0 0 | [RFC4566] | 4207 | a=group:BUNDLE m0 m1 | [I-D.ietf-mmusic-sd | 4208 | | p-bundle-negotiatio | 4209 | | n] | 4210 | a=group:LS m0 m1 | [RFC5888] | 4211 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 4212 | | ickle-ice] | 4213 | ****** Audio m=line ********* | ******************* | 4214 | | ********** | 4215 | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 4216 | c=IN IP4 203.0.113.77 | [RFC4566] | 4217 | a=mid:m0 | [RFC5888] Audio | 4218 | | m=line part of | 4219 | | BUNDLE group with a | 4220 | | unique port number | 4221 | a=msid:ma ta | Identifies | 4222 | | RTCMediaStream ID | 4223 | | (ma) and | 4224 | | RTCMediaStreamTrack | 4225 | | ID (ta) | 4226 | a=recvonly | [RFC3264] | 4227 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 4228 | a=maxptime:120 | [RFC4566] | 4229 | a=ice-ufrag:074c6550 | [I-D.ietf-mmusic-ic | 4230 | | e-sip-sdp] | 4231 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [I-D.ietf-mmusic-ic | 4232 | | e-sip-sdp] | 4233 | a=fingerprint:sha-256 6B:8B:F0:65:5F:78:E2: | [RFC8122] | 4234 | 51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | | 4235 | 4:C2:43:F0:A1:58:D0:A1:2C:19:08 | | 4236 | a=setup:active | [RFC5763] | 4237 | a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 | [I-D.ietf-mmusic-dt | 4238 | | ls-sdp] | 4239 | a=rtcp-mux | [RFC5761] | 4240 | a=rtcp-rsize | [RFC5506] | 4241 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 4242 | audio-level | | 4243 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 4244 | hdrext:sdes:mid | p-bundle-negotiatio | 4245 | | n] | 4246 | a=candidate:0 1 UDP 2113667326 198.51.100.7 | [I-D.ietf-mmusic-ic | 4247 | 51556 typ host | e-sip-sdp] | 4248 | a=candidate:1 1 UDP 1694302206 203.0.113.77 | [I-D.ietf-mmusic-ic | 4249 | 49203 typ srflx raddr 198.51.100.7 rport | e-sip-sdp] | 4250 | 51556 | | 4251 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 4252 | | ickle-ice] | 4253 | ****** Video m=line ********* | ******************* | 4254 | | ********** | 4255 | m=video 0 UDP/TLS/RTP/SAVPF 98 100 101 | BUNDLE accepted. | 4256 | c=IN IP4 203.0.113.77 | [RFC4566] | 4257 | a=bundle-only | [I-D.ietf-mmusic-sd | 4258 | | p-bundle-negotiatio | 4259 | | n] | 4260 | a=mid:m1 | [RFC5888] Video | 4261 | | m=line part of | 4262 | | BUNDLE group | 4263 | a=msid:ma tb | Identifies | 4264 | | RTCMediaStream ID | 4265 | | (ma) and | 4266 | | RTCMediaStreamTrack | 4267 | | ID (tb) | 4268 | a=recvonly | [RFC3264] | 4269 | a=rtpmap:98 VP8/90000 | [RFC7741] | 4270 | a=rtpmap:100 VP8/90000 | [RFC7741] | 4271 | a=rtpmap:101 flexfec/90000 | [I-D.ietf-payload-f | 4272 | | lexible-fec-scheme] | 4273 | a=fmtp:98 max-fr=30;max-fs=8040 | [RFC4566] | 4274 | a=fmtp:100 max-fr=15;max-fs=1200 | [RFC4566] | 4275 | a=fmtp:101 L=5; D=10; ToP=2; repair- | [I-D.ietf-payload-f | 4276 | window=200000 | lexible-fec-scheme] | 4277 | a=rtcp-fb:* nack pli | [RFC4585] | 4278 | a=rtcp-fb:* ccm fir | [RFC5104] | 4279 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 4280 | hdrext:sdes:mid | p-bundle-negotiatio | 4281 | | n] | 4282 | a=extmap:3 urn:ietf:params:rtp- | [I-D.ietf-avtext-ri | 4283 | hdrext:sdes:rtp-stream-id | d] | 4284 | a=extmap:4 urn:ietf:params:rtp- | [I-D.ietf-avtext-ri | 4285 | hdrext:sdes:repaired-rtp-stream-id | d] | 4286 | a=rid:1 recv pt=98 | [I-D.ietf-mmusic-ri | 4287 | | d] | 4288 | a=rid:2 recv pt=100 | [I-D.ietf-mmusic-ri | 4289 | | d] | 4290 | a=simulcast:recv 1;2 | [I-D.ietf-mmusic-sd | 4291 | | p-simulcast] | 4292 +---------------------------------------------+---------------------+ 4294 Table 36: 5.3.5 SDP Answer 4296 5.4. Others 4298 The examples in the section provide SDP Offer/Answer exchange for a 4299 variety of scenarios related to RTP Header extension for conference 4300 usages, Legacy Interop scenarios and more. 4302 5.4.1. Audio Session - Voice Activity Detection 4304 This example shows Alice indicating the support of the RTP header 4305 extension to include the audio-level of the audio sample carried in 4306 the RTP packet. 4308 2-Way Audio with VAD 4310 Alice Bob 4311 | | 4312 | | 4313 |Alice indicates support for including | 4314 |audio level in RTP header | 4315 | | 4316 | Offer(Audio:Opus,PCMU,PCMA) | 4317 |---------------------------------------->| 4318 | | 4319 | | 4320 | Answer(Audio:Opus,PCMU,PCMA) | 4321 |<----------------------------------------| 4322 | | 4323 | |Bob accepts and 4324 | |indicates his 4325 | |support as well 4326 | | 4327 | Two way Opus Audio | 4328 |.........................................| 4329 | | 4330 |Per packet audio-level is included in the| 4331 |RTP header | 4332 | | 4334 +---------------------------------------------+---------------------+ 4335 | Offer SDP Contents | RFC#/Notes | 4336 +---------------------------------------------+---------------------+ 4337 | v=0 | [RFC4566] | 4338 | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | 4339 | s=- | [RFC4566] | 4340 | t=0 0 | [RFC4566] | 4341 | a=group:BUNDLE audio | [I-D.ietf-mmusic-sd | 4342 | | p-bundle-negotiatio | 4343 | | n] | 4344 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 4345 | | ickle-ice] | 4346 | ****** Audio m=line ********* | ******************* | 4347 | | ********** | 4348 | m=audio 54609 UDP/TLS/RTP/SAVPF 109 0 8 | [RFC4566] | 4349 | c=IN IP4 203.0.113.141 | [RFC4566] | 4350 | a=mid:audio | [RFC5888] | 4351 | a=msid:ma ta | Identifies | 4352 | | RTCMediaStream ID | 4353 | | (ma) and | 4354 | | RTCMediaStreamTrack | 4355 | | ID (ta) | 4356 | a=sendrecv | [RFC3264] | 4357 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 4358 | a=rtpmap:0 PCMU/8000 | [RFC3551] | 4359 | a=rtpmap:8 PCMA/8000 | [RFC3551] | 4360 | a=maxptime:120 | [RFC4566] | 4361 | a=ice-ufrag:074c6550 | [I-D.ietf-mmusic-ic | 4362 | | e-sip-sdp] | 4363 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [I-D.ietf-mmusic-ic | 4364 | | e-sip-sdp] | 4365 | a=fingerprint:sha-256 19:E2:1C:3B:4B:9F:81: | [RFC8122] | 4366 | E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | 4367 | 4:A9:0E:05:E9:26:33:E8:70:88:A2 | | 4368 | a=setup:actpass | [RFC5763] | 4369 | a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 | [I-D.ietf-mmusic-dt | 4370 | | ls-sdp] | 4371 | a=rtcp-mux | [RFC5761] | 4372 | a=rtcp-rsize | [RFC5506] | 4373 | a=rtcp-fb:* nack | [RFC4585] | 4374 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 4375 | audio-level | | 4376 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 4377 | hdrext:sdes:mid | p-bundle-negotiatio | 4378 | | n] | 4379 | a=candidate:0 1 UDP 2113667327 192.0.2.4 | [I-D.ietf-mmusic-ic | 4380 | 61665 typ host | e-sip-sdp] | 4381 | a=candidate:1 1 UDP 694302207 203.0.113.141 | [I-D.ietf-mmusic-ic | 4382 | 54609 typ srflx raddr 192.0.2.4 rport 61665 | e-sip-sdp] | 4383 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 4384 | | ickle-ice] | 4385 +---------------------------------------------+---------------------+ 4387 Table 37: 5.4.1 SDP Offer 4389 +---------------------------------------------+---------------------+ 4390 | Answer SDP Contents | RFC#/Notes | 4391 +---------------------------------------------+---------------------+ 4392 | v=0 | [RFC4566] | 4393 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] | 4394 | s=- | [RFC4566] | 4395 | t=0 0 | [RFC4566] | 4396 | a=group:BUNDLE audio | [I-D.ietf-mmusic-sd | 4397 | | p-bundle-negotiatio | 4398 | | n] | 4399 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 4400 | | ickle-ice] | 4401 | ****** Audio m=line ********* | ******************* | 4402 | | ********** | 4403 | m=audio 49203 UDP/TLS/RTP/SAVPF 109 0 8 | [RFC4566] | 4404 | c=IN IP4 203.0.113.77 | [RFC4566] | 4405 | a=mid:audio | [RFC5888] | 4406 | a=msid:ma ta | Identifies | 4407 | | RTCMediaStream ID | 4408 | | (ma) and | 4409 | | RTCMediaStreamTrack | 4410 | | ID (ta) | 4411 | a=sendrecv | [RFC3264] - Bob can | 4412 | | send and recv audio | 4413 | a=rtpmap:109 opus/48000/2 | [RFC7587] - Bob | 4414 | | accepts only Opus | 4415 | | Codec | 4416 | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMU | 4417 | | Audio Codec | 4418 | a=rtpmap:8 PCMA/8000 | [RFC3551] PCMA | 4419 | | Audio Codec | 4420 | a=maxptime:120 | [RFC4566] | 4421 | a=ice-ufrag:c300d85b | [I-D.ietf-mmusic-ic | 4422 | | e-sip-sdp] | 4423 | a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [I-D.ietf-mmusic-ic | 4424 | | e-sip-sdp] | 4425 | a=fingerprint:sha-256 6B:8B:F0:65:5F:78:E2: | [RFC8122] | 4426 | 51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | | 4427 | 4:C2:43:F0:A1:58:D0:A1:2C:19:08 | | 4428 | a=setup:active | [RFC5763] | 4429 | a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 | [I-D.ietf-mmusic-dt | 4430 | | ls-sdp] | 4431 | a=rtcp-mux | [RFC5761] - Bob can | 4432 | | perform RTP/RTCP | 4433 | | Muxing on port | 4434 | | 49203 | 4435 | a=rtcp-rsize | [RFC5506] | 4436 | a=rtcp-fb:* nack | [RFC4585] | 4437 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 4438 | audio-level | | 4439 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 4440 | hdrext:sdes:mid | p-bundle-negotiatio | 4441 | | n] | 4442 | a=candidate:0 1 UDP 2113667327 198.51.100.7 | [I-D.ietf-mmusic-ic | 4443 | 51556 typ host | e-sip-sdp] | 4444 | a=candidate:1 1 UDP 1694302207 203.0.113.77 | [I-D.ietf-mmusic-ic | 4445 | 49203 typ srflx raddr 198.51.100.7 rport | e-sip-sdp] | 4446 | 51556 | | 4447 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 4448 | | ickle-ice] | 4449 +---------------------------------------------+---------------------+ 4451 Table 38: 5.4.1 SDP Answer 4453 5.4.2. Audio Conference - Voice Activity Detection 4455 This example shows SDP for RTP header extension that allows RTP-level 4456 mixers in audio conferences to deliver information about the audio 4457 level of individual participants. 4459 Audio Conference with VAD Support 4461 Alice Mixer 4462 | | 4463 |Alice indicates her interest to audio | 4464 |levels for the contributing sources | 4465 | | 4466 |Offer(Audio:Opus,PCMU,PCMA) | 4467 |---------------------------------------->| 4468 | | 4469 | | 4470 |Answer(Audio:Opus,PCMU,PCMA) | 4471 |<----------------------------------------| 4472 | | 4473 | |Mixer indicates 4474 | |it can provide 4475 | |audio-levels 4476 |Two way Opus Audio | 4477 |.........................................| 4478 | | 4479 |Audio-levels per CSRCS is included in the| 4480 |RTP header | 4481 | | 4483 +---------------------------------------------+---------------------+ 4484 | Offer SDP Contents | RFC#/Notes | 4485 +---------------------------------------------+---------------------+ 4486 | v=0 | [RFC4566] | 4487 | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] - Session | 4488 | | Origin Information | 4489 | s=- | [RFC4566] | 4490 | t=0 0 | [RFC4566] | 4491 | a=group:BUNDLE audio | [I-D.ietf-mmusic-sd | 4492 | | p-bundle-negotiatio | 4493 | | n] | 4494 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 4495 | | ickle-ice] | 4496 | ****** Audio m=line ********* | ******************* | 4497 | | ********** | 4498 | m=audio 54609 UDP/TLS/RTP/SAVPF 109 0 8 | [RFC4566] | 4499 | c=IN IP4 203.0.113.141 | [RFC4566] | 4500 | a=mid:audio | [RFC5888] | 4501 | a=msid:ma ta | Identifies | 4502 | | RTCMediaStream ID | 4503 | | (ma) and | 4504 | | RTCMediaStreamTrack | 4505 | | ID (ta) | 4506 | a=sendrecv | [RFC3264] - Alice | 4507 | | can send and recv | 4508 | | audio | 4509 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 4510 | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMU | 4511 | | Audio Codec | 4512 | a=rtpmap:8 PCMA/8000 | [RFC3551] PCMA | 4513 | | Audio Codec | 4514 | a=maxptime:120 | [RFC4566] | 4515 | a=ice-ufrag:074c6550 | [I-D.ietf-mmusic-ic | 4516 | | e-sip-sdp] | 4517 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [I-D.ietf-mmusic-ic | 4518 | | e-sip-sdp] | 4519 | a=fingerprint:sha-256 19:E2:1C:3B:4B:9F:81: | [RFC8122] | 4520 | E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | 4521 | 4:A9:0E:05:E9:26:33:E8:70:88:A2 | | 4522 | a=setup:actpass | [RFC5763] | 4523 | a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 | [I-D.ietf-mmusic-dt | 4524 | | ls-sdp] | 4525 | a=rtcp-mux | [RFC5761] | 4526 | a=rtcp-rsize | [RFC5506] | 4527 | a=rtcp-fb:* nack | [RFC4585] | 4528 | a=extmap:1/recvonly urn:ietf:params:rtp- | [RFC6465] | 4529 | hdrext:csrc-audio-level | | 4530 | a=extmap:2 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 4531 | audio-level | | 4532 | a=extmap:3 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 4533 | hdrext:sdes:mid | p-bundle-negotiatio | 4534 | | n] | 4535 | a=candidate:0 1 UDP 2113667327 192.0.2.4 | [I-D.ietf-mmusic-ic | 4536 | 61665 typ host | e-sip-sdp] | 4537 | a=candidate:1 1 UDP 694302207 203.0.113.141 | [I-D.ietf-mmusic-ic | 4538 | 54609 typ srflx raddr 192.0.2.4 rport 61665 | e-sip-sdp] | 4539 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 4540 | | ickle-ice] | 4541 +---------------------------------------------+---------------------+ 4543 Table 39: 5.4.2 SDP Offer 4545 +---------------------------------------------+---------------------+ 4546 | Answer SDP Contents | RFC#/Notes | 4547 +---------------------------------------------+---------------------+ 4548 | v=0 | [RFC4566] | 4549 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session | 4550 | | Origin Information | 4551 | s=- | [RFC4566] | 4552 | t=0 0 | [RFC4566] | 4553 | a=group:BUNDLE audio | [I-D.ietf-mmusic-sd | 4554 | | p-bundle-negotiatio | 4555 | | n] | 4556 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 4557 | | ickle-ice] | 4558 | ****** Audio m=line ********* | ******************* | 4559 | | ********** | 4560 | m=audio 49203 UDP/TLS/RTP/SAVPF 109 0 8 | [RFC4566] | 4561 | c=IN IP4 203.0.113.77 | [RFC4566] | 4562 | a=mid:audio | [RFC5888] | 4563 | a=msid:ma ta | Identifies | 4564 | | RTCMediaStream ID | 4565 | | (ma) and | 4566 | | RTCMediaStreamTrack | 4567 | | ID (ta) | 4568 | a=sendrecv | [RFC3264] | 4569 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 4570 | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMU | 4571 | | Audio Codec | 4572 | a=rtpmap:8 PCMA/8000 | [RFC3551] PCMA | 4573 | | Audio Codec | 4574 | a=maxptime:120 | [RFC4566] | 4575 | a=ice-ufrag:c300d85b | [I-D.ietf-mmusic-ic | 4576 | | e-sip-sdp] | 4577 | a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [I-D.ietf-mmusic-ic | 4578 | | e-sip-sdp] | 4579 | a=fingerprint:sha-256 6B:8B:F0:65:5F:78:E2: | [RFC8122] | 4580 | 51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | | 4581 | 4:C2:43:F0:A1:58:D0:A1:2C:19:08 | | 4582 | a=setup:active | [RFC5763] | 4583 | a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 | [I-D.ietf-mmusic-dt | 4584 | | ls-sdp] | 4585 | a=rtcp-mux | [RFC5761] | 4586 | a=rtcp-rsize | [RFC5506] | 4587 | a=rtcp-fb:* nack | [RFC4585] | 4588 | a=extmap:1/sendonly urn:ietf:params:rtp- | [RFC6465] | 4589 | hdrext:csrc-audio-level | | 4590 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 4591 | hdrext:sdes:mid | p-bundle-negotiatio | 4592 | | n] | 4593 | a=candidate:0 1 UDP 2113667327 198.51.100.7 | [I-D.ietf-mmusic-ic | 4594 | 51556 typ host | e-sip-sdp] | 4595 | a=candidate:1 1 UDP 1694302207 203.0.113.77 | [I-D.ietf-mmusic-ic | 4596 | 49203 typ srflx raddr 198.51.100.7 rport | e-sip-sdp] | 4597 | 51556 | | 4598 | a=end-of-candidates | [I-D.ietf-mmusic-tr | 4599 | | ickle-ice] | 4600 +---------------------------------------------+---------------------+ 4602 Table 40: 5.4.2 SDP Answer 4604 5.4.3. Successful legacy Interop Fallback with bundle-only 4606 In the scenario described below, Alice is a multi-stream capable 4607 WebRTC endpoint while Bob is a legacy VOIP end-point. The SDP Offer/ 4608 Answer exchange demonstrates successful session setup with fallback 4609 to audio only stream negotiated via bundle-only framework between the 4610 end-points. Specifically, 4612 o Offer from Alice describes 2 cameras via 2 video m=lines with both 4613 marked as bundle-only. 4615 o Bob doesn't recognize BUNDLE mechanism and since Alice has marked 4616 both the video m=lines with port 0, Bob accepts just the audio 4617 stream from Alice. 4619 NOTE: Since Alice is unaware of Bob's support for BUNDLE framework, 4620 Alice includes separate RTP/RTCP ports and candidate information. 4622 Successful 2-Way WebRTC <-> VOIP Interop 4624 Alice Bob 4625 | | 4626 | | 4627 | Alice is a multistream capable WebRTC end-point | 4628 | & Bob is behind a legacy VOIP system | 4629 | | 4630 |Offer(Audio:Opus Video:2 VP8,2 H.264 Streams) with | 4631 | bundle-only | 4632 |---------------------------------------------------------->| 4633 | Alice marks both the video streams as bundle-only | 4634 | | 4635 | | 4636 | Answer(Audio:Opus) | 4637 |<----------------------------------------------------------| 4638 | |Bob 4639 | |accepts 4640 | |audio 4641 | |stream, 4642 | |since he 4643 | |doesn't 4644 | |recognize 4645 | |bundle-only 4646 | | 4647 | Two way Opus Audio | 4648 |...........................................................| 4649 | | 4650 | | 4652 +---------------------------------------------+---------------------+ 4653 | Offer SDP Contents | RFC#/Notes | 4654 +---------------------------------------------+---------------------+ 4655 | v=0 | [RFC4566] | 4656 | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 4657 | s=- | [RFC4566] | 4658 | t=0 0 | [RFC4566] | 4659 | a=group:BUNDLE m0 m1 m2 | [I-D.ietf-mmusic-sd | 4660 | | p-bundle-negotiatio | 4661 | | n] Alice supports | 4662 | | grouping of m=lines | 4663 | | under BUNDLE | 4664 | | semantics | 4665 | a=group:LS m0 m1 | [RFC5888] | 4666 | a=ice-options:trickle | [I-D.ietf-mmusic-tr | 4667 | | ickle-ice] | 4668 | ****** Audio m=line ********* | ******************* | 4669 | | ********** | 4670 | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 4671 | c=IN IP4 203.0.113.141 | [RFC4566] | 4672 | a=mid:m0 | [RFC5888] Audio | 4673 | | m=line part of | 4674 | | BUNDLE group with a | 4675 | | unique port number | 4676 | a=msid:ma ta | Identifies | 4677 | | RTCMediaStream ID | 4678 | | (ma) and | 4679 | | RTCMediaStreamTrack | 4680 | | ID (ta) | 4681 | a=sendrecv | [RFC3264] | 4682 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 4683 | a=maxptime:120 | [RFC4566] | 4684 | a=ice-ufrag:074c6550 | [I-D.ietf-mmusic-ic | 4685 | | e-sip-sdp] | 4686 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [I-D.ietf-mmusic-ic | 4687 | | e-sip-sdp] | 4688 | a=fingerprint:sha-256 19:E2:1C:3B:4B:9F:81: | [RFC8122] | 4689 | E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | 4690 | 4:A9:0E:05:E9:26:33:E8:70:88:A2 | | 4691 | a=setup:actpass | [RFC5763] | 4692 | a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 | [I-D.ietf-mmusic-dt | 4693 | | ls-sdp] | 4694 | a=rtcp-mux | [RFC5761] | 4695 | a=rtcp:64678 IN IP4 203.0.113.141 | [RFC3605] | 4696 | a=rtcp-rsize | [RFC5506] | 4697 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 4698 | audio-level | | 4699 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 4700 | hdrext:sdes:mid | p-bundle-negotiatio | 4701 | | n] | 4702 | a=candidate:0 1 UDP 2113667327 192.0.2.4 | [I-D.ietf-mmusic-ic | 4703 | 61665 typ host | e-sip-sdp] | 4704 | a=candidate:1 1 UDP 694302207 203.0.113.141 | [I-D.ietf-mmusic-ic | 4705 | 54609 typ srflx raddr 192.0.2.4 rport 61665 | e-sip-sdp] | 4706 | a=candidate:0 1 UDP 2113667326 192.0.2.4 | [I-D.ietf-mmusic-ic | 4707 | 61667 typ host | e-sip-sdp] | 4708 | a=candidate:1 1 UDP 1694302206 | [I-D.ietf-mmusic-ic | 4709 | 203.0.113.141 64678 typ srflx raddr | e-sip-sdp] | 4710 | 192.0.2.4 rport 61667 | | 4711 | ****** Video-1 m=line ********* | ******************* | 4712 | | ********** | 4713 | m=video 0 UDP/TLS/RTP/SAVPF 98 | bundle-only video | 4714 | | line with port | 4715 | | number set to zero | 4716 | c=IN IP4 203.0.113.141 | [RFC4566] | 4717 | a=bundle-only | [I-D.ietf-mmusic-sd | 4718 | | p-bundle-negotiatio | 4719 | | n] | 4720 | a=mid:m1 | [RFC5888] Video | 4721 | | m=line part of | 4722 | | BUNDLE group | 4723 | a=msid:ma tb | Identifies | 4724 | | RTCMediaStream ID | 4725 | | (ma) and | 4726 | | RTCMediaStreamTrack | 4727 | | ID (tb) | 4728 | a=sendrecv | [RFC3264] | 4729 | a=rtpmap:98 VP8/90000 | [RFC7741] | 4730 | a=imageattr:98 [x=1280,y=720] | [RFC6236] | 4731 | a=fmtp:98 max-fr=30 | [RFC4566] | 4732 | a=rtcp-fb:* nack | [RFC4585] | 4733 | a=rtcp-fb:* nack pli | [RFC4585] | 4734 | a=rtcp-fb:* ccm fir | [RFC5104] | 4735 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 4736 | hdrext:sdes:mid | p-bundle-negotiatio | 4737 | | n] | 4738 | ****** Video-2 m=line ********* | ******************* | 4739 | | ********** | 4740 | m=video 0 UDP/TLS/RTP/SAVPF 101 103 | bundle-only video | 4741 | | line with port | 4742 | | number set to zero | 4743 | c=IN IP4 203.0.113.141 | [RFC4566] | 4744 | a=bundle-only | [I-D.ietf-mmusic-sd | 4745 | | p-bundle-negotiatio | 4746 | | n] | 4747 | a=mid:m2 | [RFC5888] Video | 4748 | | m=line part of | 4749 | | BUNDLE group | 4750 | a=msid:ma tc | Identifies | 4751 | | RTCMediaStream ID | 4752 | | (ma) and | 4753 | | RTCMediaStreamTrack | 4754 | | ID (tc) | 4755 | a=sendrecv | [RFC3264] | 4756 | a=rtpmap:101 H264/90000 | [RFC6184] | 4757 | a=rtpmap:103 H264/90000 | [RFC6184] | 4758 | a=fmtp:101 profile-level- | [RFC6184]Camera-2,E | 4759 | id=4d0028;packetization-mode=1;max-fr=30 | ncoding-1 | 4760 | | Resolution | 4761 | a=rtcp-fb:* nack | [RFC4585] | 4762 | a=rtcp-fb:* nack pli | [RFC4585] | 4763 | a=rtcp-fb:* ccm fir | [RFC5104] | 4764 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sd | 4765 | hdrext:sdes:mid | p-bundle-negotiatio | 4766 | | n] | 4767 +---------------------------------------------+---------------------+ 4769 Table 41: 5.4.3 SDP Simulcast bundle-only 4771 +-------------------------------------------------+-----------------+ 4772 | Answer SDP Contents | RFC#/Notes | 4773 +-------------------------------------------------+-----------------+ 4774 | v=0 | [RFC4566] | 4775 | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 4776 | s=- | [RFC4566] | 4777 | t=0 0 | [RFC4566] | 4778 | ****** Audio m=line ********* | *************** | 4779 | | ************** | 4780 | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 4781 | c=IN IP4 203.0.113.141 | [RFC4566] | 4782 | a=rtcp:60065 IN IP4 203.0.113.141 | [RFC3605] | 4783 | a=sendrecv | [RFC3264] | 4784 | a=rtpmap:109 opus/48000/2 | [RFC7587] | 4785 | a=maxptime:120 | [RFC4566] | 4786 | a=ice-ufrag:c300d85b | [I-D.ietf-mmusi | 4787 | | c-ice-sip-sdp] | 4788 | a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [I-D.ietf-mmusi | 4789 | | c-ice-sip-sdp] | 4790 | a=fingerprint:sha-256 6B:8B:F0:65:5F:78:E2:51:3 | [RFC8122] | 4791 | B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:24:C2:43: | | 4792 | F0:A1:58:D0:A1:2C:19:08 | | 4793 | a=setup:active | [RFC5763] | 4794 | a=rtcp-rsize | [RFC5506] | 4795 | a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | 4796 | audio-level | | 4797 | a=candidate:0 1 UDP 2113667327 198.51.100.7 | [I-D.ietf-mmusi | 4798 | 51556 typ host | c-ice-sip-sdp] | 4799 | a=candidate:1 1 UDP 694302207 203.0.113.77 | [I-D.ietf-mmusi | 4800 | 49203 typ srflx raddr 198.51.100.7 rport 51556 | c-ice-sip-sdp] | 4801 | a=candidate:0 2 UDP 2113667326 198.51.100.7 | [I-D.ietf-mmusi | 4802 | 51558 typ host | c-ice-sip-sdp] | 4803 | a=candidate:1 2 UDP 1694302206 203.0.113.77 | [I-D.ietf-mmusi | 4804 | 60065 typ srflx raddr 198.51.100.7 rport 51558 | c-ice-sip-sdp] | 4805 | ****** Video m=line ********* | *************** | 4806 | | ************** | 4807 | m=video 0 UDP/TLS/RTP/SAVPF 98 100 | Bob doesn't | 4808 | | recognize | 4809 | | bundle-only and | 4810 | | hence the | 4811 | | m=line is | 4812 | | rejected | 4813 | | implicitly due | 4814 | | to port 0 | 4815 | ****** Video m=line ********* | *************** | 4816 | | ************** | 4817 | m=video 0 UDP/TLS/RTP/SAVPF 98 100 | Bob doesn't | 4818 | | recognize | 4819 | | bundle-only and | 4820 | | hence the | 4821 | | m=line is | 4822 | | rejected | 4823 | | implicitly due | 4824 | | to port 0 | 4825 +-------------------------------------------------+-----------------+ 4827 Table 42: 5.4.3 SDP Answer 4829 5.4.4. Legacy Interop with RTP/AVP profile 4831 In the scenario described below, Alice is a legacy end-point which 4832 sends [RFC3264] Offer with RTP/AVP based audio and video descriptions 4833 along with DTLS fingerprint and RTCP feedback information. 4835 On the other hand, Bob being a WebRTC end-point follows procedures in 4836 section 5.1.2 of [I-D.ietf-rtcweb-jsep] and accepts the Alice's offer 4837 for DTLS-SRTP based session with RTCP feedback. 4839 Successful 2-Way WebRTC <-> VOIP Interop 4841 Alice Bob 4842 | | 4843 | | 4844 |Alice is a legacy VOIP End-point & Bob is a WebRTC End-Point| 4845 | | 4846 | | 4847 | | 4848 | Offer(Audio:Opus Video:H.264) | 4849 |----------------------------------------------------------->| 4850 | | 4851 | | 4852 |Alice includes : | 4853 |Legacy compliant media description (RTP/AVP) with dtls | 4854 |fingerprint and rtcp feedback support | 4855 | | 4856 | Answer(Audio:Opus, Video:H.264) | 4857 |<-----------------------------------------------------------| 4858 | |Bob 4859 | |accepts 4860 | |"legacy 4861 | |compliant" 4862 | |m=line 4863 | | 4864 | | 4865 | Two way Opus Audio, H.264 Video | 4866 |............................................................| 4867 | Session also supports RTP/RTCP Mux, RTCP Feedback | 4868 | | 4870 +-------------------------------------------------+-----------------+ 4871 | Offer SDP Contents | RFC#/Notes | 4872 +-------------------------------------------------+-----------------+ 4873 | v=0 | [RFC4566] | 4874 | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | 4875 | s=- | [RFC4566] | 4876 | t=0 0 | [RFC4566] | 4877 | a=ice-ufrag:074c6550 | [I-D.ietf-mmusi | 4878 | | c-ice-sip-sdp] | 4879 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [I-D.ietf-mmusi | 4880 | | c-ice-sip-sdp] | 4881 | a=rtcp-rsize | [RFC5506] | 4882 | ****** Audio m=line ********* | *************** | 4883 | | ************** | 4884 | m=audio 54732 RTP/AVP 109 | [RFC4566]Alice | 4885 | | includes | 4886 | | RTP/AVP audio | 4887 | | stream | 4888 | | description | 4889 | c=IN IP4 203.0.113.141 | [RFC4566] | 4890 | a=fingerprint:sha-256 19:E2:1C:3B:4B:9F:81:E6:B | [RFC8122] | 4891 | 8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:04:A9:0E: | | 4892 | 05:E9:26:33:E8:70:88:A2 | | 4893 | a=rtpmap:109 opus/48000 | | 4894 | a=ptime:20 | | 4895 | a=sendrecv | [RFC3264] | 4896 | a=rtcp-mux | [RFC5761]Alice | 4897 | | still includes | 4898 | | RTP/RTCP Mux | 4899 | | support | 4900 | a=rtcp:64678 IN IP4 203.0.113.141 | [RFC3605] | 4901 | a=candidate:0 1 UDP 2113667327 192.0.2.4 54732 | [I-D.ietf-mmusi | 4902 | typ host | c-ice-sip-sdp] | 4903 | a=candidate:1 1 UDP 694302207 203.0.113.141 | [I-D.ietf-mmusi | 4904 | 54732 typ srflx raddr 192.0.2.4 rport 54732 | c-ice-sip-sdp] | 4905 | a=candidate:0 2 UDP 2113667326 192.0.2.4 64678 | [I-D.ietf-mmusi | 4906 | typ host | c-ice-sip-sdp] | 4907 | a=candidate:1 2 UDP 1694302206 203.0.113.141 | [I-D.ietf-mmusi | 4908 | 64678 typ srflx raddr 192.0.2.4 rport 64678 | c-ice-sip-sdp] | 4909 | ****** Video m=line ********* | *************** | 4910 | | ************** | 4911 | m=video 62445 RTP/AVP 120 | [RFC4566]Alice | 4912 | | includes | 4913 | | RTP/AVP video | 4914 | | stream | 4915 | | description | 4916 | c=IN IP4 203.0.113.141 | [RFC4566] | 4917 | a=fingerprint:sha-256 DC:B8:5F:64:1A:24:C2:43:F | [RFC8122] | 4918 | 0:A1:58:D0:A1:2C:19:08:6B:8B:F0:65:5F:78:E2:51: | | 4919 | 3B:AC:6F:F3:3F:46:1B:35 | | 4920 | a=rtpmap:120 VP8/90000 | [RFC7741] | 4921 | a=sendrecv | [RFC3264] | 4922 | a=rtcp-mux | [RFC5761]Alice | 4923 | | intends to | 4924 | | perform | 4925 | | RTP/RTCP Mux | 4926 | a=rtcp:54721 IN IP4 203.0.113.141 | [RFC3605] | 4927 | a=candidate:0 1 UDP 2113667327 192.0.2.4 62445 | [I-D.ietf-mmusi | 4928 | typ host | c-ice-sip-sdp] | 4929 | a=candidate:1 1 UDP 1694302207 203.0.113.141 | [I-D.ietf-mmusi | 4930 | 62537 typ srflx raddr 192.0.2.4 rport 62445 | c-ice-sip-sdp] | 4931 | a=candidate:0 2 UDP 2113667326 192.0.2.4 54721 | [I-D.ietf-mmusi | 4932 | typ host | c-ice-sip-sdp] | 4933 | a=candidate:1 2 UDP 1694302206 203.0.113.141 | [I-D.ietf-mmusi | 4934 | 54721 typ srflx raddr 192.0.2.4 rport 54721 | c-ice-sip-sdp] | 4935 | a=rtcp-fb:120 nack pli | [RFC4585] Alice | 4936 | | indicates | 4937 | | support for | 4938 | | Picture loss | 4939 | | Indication and | 4940 | | NACK RTCP | 4941 | | feedback | 4942 | a=rtcp-fb:120 ccm fir | [RFC5104] | 4943 +-------------------------------------------------+-----------------+ 4945 Table 43: 5.4.5 SDP Offer 4947 +-------------------------------------------------+-----------------+ 4948 | Answer SDP Contents | RFC#/Notes | 4949 +-------------------------------------------------+-----------------+ 4950 | v=0 | [RFC4566] | 4951 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] | 4952 | s=- | [RFC4566] | 4953 | t=0 0 | [RFC4566] | 4954 | ****** Audio m=line ********* | *************** | 4955 | | ************** | 4956 | m=audio 49203 RTP/AVP 109 | [RFC4566] Bob | 4957 | | accepts RTP/AVP | 4958 | | based audio | 4959 | | stream | 4960 | c=IN IP4 203.0.113.77 | [RFC4566] | 4961 | a=rtpmap:109 opus/48000 | | 4962 | a=ptime:20 | | 4963 | a=sendrecv | [RFC3264] | 4964 | a=ice-ufrag:c300d85b | [I-D.ietf-mmusi | 4965 | | c-ice-sip-sdp] | 4966 | a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [I-D.ietf-mmusi | 4967 | | c-ice-sip-sdp] | 4968 | a=fingerprint:sha-256 BB:05:2F:70:9F:04:A9:0E:0 | [RFC8122] | 4969 | 5:E9:26:33:E8:70:88:A2:19:E2:1C:3B:4B:9F:81:E6: | | 4970 | B8:5C:F4:A5:A8:D8:73:04 | | 4971 | a=rtcp-mux | [RFC5761] | 4972 | a=candidate:0 1 UDP 2113667327 198.51.100.7 | [I-D.ietf-mmusi | 4973 | 49203 typ host | c-ice-sip-sdp] | 4974 | a=candidate:1 1 UDP 1694302207 203.0.113.77 | [I-D.ietf-mmusi | 4975 | 49203 typ srflx raddr 198.51.100.7 rport 49203 | c-ice-sip-sdp] | 4976 | ****** Video m=line ********* | *************** | 4977 | | ************** | 4978 | m=video 63130 RTP/AVP 120 | [RFC4566] Bob | 4979 | | accepts RTP/AVP | 4980 | | based video | 4981 | | stram | 4982 | c=IN IP4 203.0.113.77 | [RFC4566] | 4983 | a=rtpmap:120 VP8/90000 | [RFC7741] | 4984 | a=sendrecv | [RFC3264] | 4985 | a=ice-ufrag:e39091na | [I-D.ietf-mmusi | 4986 | | c-ice-sip-sdp] | 4987 | a=ice-pwd:dbc325921d5dd29e4e99147efbabd9a2 | [I-D.ietf-mmusi | 4988 | | c-ice-sip-sdp] | 4989 | a=fingerprint:sha-256 BB:0A:0E:05:E9:26:33:E8:7 | [RFC8122] | 4990 | 0:88:A2:2F:70:9F:04:19:E2:1C:3B:4B:9F:81:56:2F: | | 4991 | 70:9F:04:F4:A5:A8:D8 | | 4992 | a=rtcp-mux | [RFC5761] | 4993 | a=candidate:0 1 UDP 2113667327 198.51.100.7 | [I-D.ietf-mmusi | 4994 | 63130 typ host | c-ice-sip-sdp] | 4995 | a=candidate:1 1 UDP 1694302207 203.0.113.77 | [I-D.ietf-mmusi | 4996 | 63130 typ srflx raddr 198.51.100.7 rport 63130 | c-ice-sip-sdp] | 4997 | a=rtcp-fb:120 nack pli | [RFC4585] | 4998 | a=rtcp-fb:120 ccm fir | [RFC5104] | 4999 +-------------------------------------------------+-----------------+ 5001 Table 44: 5.4.5 SDP Answer 5003 6. IANA Considerations 5005 This document requires no actions from IANA. 5007 7. Security Considerations 5009 The IETF has published separate documents 5010 [I-D.ietf-rtcweb-security-arch] [I-D.ietf-rtcweb-security] describing 5011 the security architecture for WebRTC as a whole. 5013 In addition, since the SDP offer and answer messages can contain 5014 private information about addresses and sessions to be established 5015 between parties, if this information needs to be kept private, some 5016 security mechanism (using TLS transport for example) in the protocol 5017 used to carry the offers and answers must be used. 5019 8. Acknowledgments 5021 We would like to thank Justin Uberti, Chris Flo, Paul Kyzivat, Nils 5022 Ohlmeier, Flemming Andreason, Magnus Westerlund for their detailed 5023 review and inputs. Thanks to Adam Roach for providing syntax 5024 validation script to help highlight syntax and formatting errors. 5026 9. Change Log 5028 [RFC EDITOR NOTE: Please remove this section when publishing] 5030 Changes from draft-ietf-rtcweb-sdp-11 5032 o Address Magnus Westerlund Review comments. 5034 o Remove reference to RFC5245 and use ice-sip-sdp instead. 5036 o Add an ice2 example for RFC8445. 5038 Changes from draft-ietf-rtcweb-sdp-09 5040 o Review feedback incorporated from Flemming Andreason in 5041 Section 5.4 5043 Changes from draft-ietf-rtcweb-sdp-08 5045 o Fixed formatting and syntax issues pointed out by Adam Roach's 5046 validator script. List of issues are here: 5047 https://github.com/fluffy/ietf/issues?q=is%3Aissue+is%3Aclosed 5049 o Align examples to match latest bundle specification as pointed by 5050 Christer Holmberg 5052 Changes from draft-ietf-rtcweb-sdp-07 5054 o Incorporate review from Nils. 5056 Changes from draft-ietf-rtcweb-sdp-06 5058 o Keep Alive Version. 5060 Changes from draft-ietf-rtcweb-sdp-05 5062 o Title change. 5064 Changes from draft-ietf-rtcweb-sdp-04 5066 o Add IPv6 Example. 5068 o Add a=rtcp-mux-only and fix a=rtcp in examples. 5070 o Fix Idnits. 5072 o Add Security Considerations section. 5074 Changes from draft-ietf-rtcweb-sdp-02 to draft-ietf-rtcweb-sdp-04 5076 o Alignment with JSEP-19. 5078 o Added a=identity example. 5080 o Added a=dtls-id, a=group:LS in the examples. 5082 o Added Appendix section to capture list of checklists for the 5083 attributes. 5085 o Removed SSRC lines to match JSEP-19. 5087 o Closed open issues on a=fingerprint, a=rtcp and a=rtcp-mux-only 5088 from ietf96 to reflect JSEP-19. 5090 o Simplied Inter-op example 5092 Changes from draft-ietf-rtcweb-sdp-02 5094 o Version increment to avoid expiry 5096 Changes from draft-ietf-rtcweb-sdp-01 5098 o Complete face-lift 5100 o Added visual markers around m=lines to indicate their type, added 5101 spacing between tables for aiding readers 5103 o Updated table names to indicate offer vs answer 5105 o Attempted to align to latest versions of SCTP, BUNDLE, MSID drafts 5107 o Added mid header extensions to all the lines 5109 o Harmonized BUNDLE semantics and conventions updated. 5111 Changes from draft-ietf-rtcweb-sdp-00 5113 o Updated Simulcast/FEC/RTX examples to use RID framework 5115 o Fixed BUNDLE references for a=bundle-only 5117 Changes from draft-nandakumar-rtcweb-sdp-08 5119 o Fixed typos 5121 o Moved to a WG version 5122 Changes from draft-nandakumar-rtcweb-sdp-06 and draft-nandakumar- 5123 rtcweb-sdp-07 5125 o Added clarification on Call-Flow diagram usage 5127 o More cleanups 5129 Changes from draft-nandakumar-rtcweb-sdp-05 5131 o Added Ascii chart for all the SDP Eaxamples 5133 o Improved text and updated SDP Examples for Simulcast and FEC 5135 o Fixed MediaStream ID Semantics SDP Errors 5137 Changes from draft-nandakumar-rtcweb-sdp-04 5139 o Interim version of the draft to avert expiry 5141 o Corrected placement of c= line as per RFC4566 5143 o Updated simulcast SDP to reflect draft-westerlund-avtcore-rtp- 5144 simulcast-04 5146 Changes from draft-nandakumar-rtcweb-sdp-03 5148 o Aligned more closely with JSEP version -05 5150 o Added Conventions to help readability 5152 o Add more examples to clarify BUNDLE use-cases 5154 Changes from draft-nandakumar-rtcweb-sdp-02 5156 o Major refactoring was done to group the examples in to categories 5158 o SDP was updated through out to reflect JSEP-04 style of defining 5159 attributes per m=line than at the session level. 5161 o Added 8 new examples. 5163 o Updated references for Trickle, Unified Plan 5165 o Add section to explain the syntax conventions followed in the 5166 examples. 5168 Changes from draft-nandakumar-rtcweb-sdp-01 5169 o Updated references to OPUS RTP Payload Specification. 5171 o Updated BUNDLE examples based on the latest draft-ietf-mmusic-sdp- 5172 bundle-negotiation. 5174 o Added examples for multiple audio and video flows based on Unified 5175 Plan. 5177 o Added new examples for RTX and FEC streams 5179 o Updated Simulcast and SVC examples 5181 Changes from draft-nandakumar-rtcweb-sdp-00 5183 o Fixed editorial comments on the mailing list. 5185 o Updated Data-channel SDP information based on draft-ietf-mmusic- 5186 sctp-sdp. 5188 o Updated BUNDLE examples based on draft-ietf-mmusic-sdp-bundle- 5189 negotiation. 5191 o Added examples for few more BUNDLE variants 5193 o Added new examples for Simulcast and SVC 5195 10. Informative References 5197 [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model 5198 with Session Description Protocol (SDP)", RFC 3264, 5199 DOI 10.17487/RFC3264, June 2002, . 5202 [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session 5203 Description Protocol", RFC 4566, DOI 10.17487/RFC4566, 5204 July 2006, . 5206 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 5207 Requirement Levels", BCP 14, RFC 2119, 5208 DOI 10.17487/RFC2119, March 1997, . 5211 [RFC5506] Johansson, I. and M. Westerlund, "Support for Reduced-Size 5212 Real-Time Transport Control Protocol (RTCP): Opportunities 5213 and Consequences", RFC 5506, DOI 10.17487/RFC5506, April 5214 2009, . 5216 [RFC3551] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and 5217 Video Conferences with Minimal Control", STD 65, RFC 3551, 5218 DOI 10.17487/RFC3551, July 2003, . 5221 [RFC4796] Hautakorpi, J. and G. Camarillo, "The Session Description 5222 Protocol (SDP) Content Attribute", RFC 4796, 5223 DOI 10.17487/RFC4796, February 2007, . 5226 [RFC5761] Perkins, C. and M. Westerlund, "Multiplexing RTP Data and 5227 Control Packets on a Single Port", RFC 5761, 5228 DOI 10.17487/RFC5761, April 2010, . 5231 [RFC5763] Fischl, J., Tschofenig, H., and E. Rescorla, "Framework 5232 for Establishing a Secure Real-time Transport Protocol 5233 (SRTP) Security Context Using Datagram Transport Layer 5234 Security (DTLS)", RFC 5763, DOI 10.17487/RFC5763, May 5235 2010, . 5237 [RFC5104] Wenger, S., Chandra, U., Westerlund, M., and B. Burman, 5238 "Codec Control Messages in the RTP Audio-Visual Profile 5239 with Feedback (AVPF)", RFC 5104, DOI 10.17487/RFC5104, 5240 February 2008, . 5242 [RFC4585] Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey, 5243 "Extended RTP Profile for Real-time Transport Control 5244 Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585, 5245 DOI 10.17487/RFC4585, July 2006, . 5248 [RFC4588] Rey, J., Leon, D., Miyazaki, A., Varsa, V., and R. 5249 Hakenberg, "RTP Retransmission Payload Format", RFC 4588, 5250 DOI 10.17487/RFC4588, July 2006, . 5253 [RFC5956] Begen, A., "Forward Error Correction Grouping Semantics in 5254 the Session Description Protocol", RFC 5956, 5255 DOI 10.17487/RFC5956, September 2010, . 5258 [RFC5888] Camarillo, G. and H. Schulzrinne, "The Session Description 5259 Protocol (SDP) Grouping Framework", RFC 5888, 5260 DOI 10.17487/RFC5888, June 2010, . 5263 [RFC6236] Johansson, I. and K. Jung, "Negotiation of Generic Image 5264 Attributes in the Session Description Protocol (SDP)", 5265 RFC 6236, DOI 10.17487/RFC6236, May 2011, 5266 . 5268 [RFC6184] Wang, Y., Even, R., Kristensen, T., and R. Jesup, "RTP 5269 Payload Format for H.264 Video", RFC 6184, 5270 DOI 10.17487/RFC6184, May 2011, . 5273 [RFC6190] Wenger, S., Wang, Y., Schierl, T., and A. Eleftheriadis, 5274 "RTP Payload Format for Scalable Video Coding", RFC 6190, 5275 DOI 10.17487/RFC6190, May 2011, . 5278 [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. 5279 Jacobson, "RTP: A Transport Protocol for Real-Time 5280 Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550, 5281 July 2003, . 5283 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 5284 A., Peterson, J., Sparks, R., Handley, M., and E. 5285 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 5286 DOI 10.17487/RFC3261, June 2002, . 5289 [RFC3605] Huitema, C., "Real Time Control Protocol (RTCP) attribute 5290 in Session Description Protocol (SDP)", RFC 3605, 5291 DOI 10.17487/RFC3605, October 2003, . 5294 [RFC4733] Schulzrinne, H. and T. Taylor, "RTP Payload for DTMF 5295 Digits, Telephony Tones, and Telephony Signals", RFC 4733, 5296 DOI 10.17487/RFC4733, December 2006, . 5299 [RFC6464] Lennox, J., Ed., Ivov, E., and E. Marocco, "A Real-time 5300 Transport Protocol (RTP) Header Extension for Client-to- 5301 Mixer Audio Level Indication", RFC 6464, 5302 DOI 10.17487/RFC6464, December 2011, . 5305 [RFC6465] Ivov, E., Ed., Marocco, E., Ed., and J. Lennox, "A Real- 5306 time Transport Protocol (RTP) Header Extension for Mixer- 5307 to-Client Audio Level Indication", RFC 6465, 5308 DOI 10.17487/RFC6465, December 2011, . 5311 [RFC7587] Spittka, J., Vos, K., and JM. Valin, "RTP Payload Format 5312 for the Opus Speech and Audio Codec", RFC 7587, 5313 DOI 10.17487/RFC7587, June 2015, . 5316 [RFC7656] Lennox, J., Gross, K., Nandakumar, S., Salgueiro, G., and 5317 B. Burman, Ed., "A Taxonomy of Semantics and Mechanisms 5318 for Real-Time Transport Protocol (RTP) Sources", RFC 7656, 5319 DOI 10.17487/RFC7656, November 2015, . 5322 [RFC7741] Westin, P., Lundin, H., Glover, M., Uberti, J., and F. 5323 Galligan, "RTP Payload Format for VP8 Video", RFC 7741, 5324 DOI 10.17487/RFC7741, March 2016, . 5327 [RFC7826] Schulzrinne, H., Rao, A., Lanphier, R., Westerlund, M., 5328 and M. Stiemerling, Ed., "Real-Time Streaming Protocol 5329 Version 2.0", RFC 7826, DOI 10.17487/RFC7826, December 5330 2016, . 5332 [RFC8122] Lennox, J. and C. Holmberg, "Connection-Oriented Media 5333 Transport over the Transport Layer Security (TLS) Protocol 5334 in the Session Description Protocol (SDP)", RFC 8122, 5335 DOI 10.17487/RFC8122, March 2017, . 5338 [RFC8445] Keranen, A., Holmberg, C., and J. Rosenberg, "Interactive 5339 Connectivity Establishment (ICE): A Protocol for Network 5340 Address Translator (NAT) Traversal", RFC 8445, 5341 DOI 10.17487/RFC8445, July 2018, . 5344 [I-D.ietf-mmusic-sdp-bundle-negotiation] 5345 Holmberg, C., Alvestrand, H., and C. Jennings, 5346 "Negotiating Media Multiplexing Using the Session 5347 Description Protocol (SDP)", draft-ietf-mmusic-sdp-bundle- 5348 negotiation-53 (work in progress), September 2018. 5350 [I-D.ietf-mmusic-sdp-simulcast] 5351 Burman, B., Westerlund, M., Nandakumar, S., and M. Zanaty, 5352 "Using Simulcast in SDP and RTP Sessions", draft-ietf- 5353 mmusic-sdp-simulcast-13 (work in progress), June 2018. 5355 [I-D.ietf-mmusic-rid] 5356 Roach, A., "RTP Payload Format Restrictions", draft-ietf- 5357 mmusic-rid-15 (work in progress), May 2018. 5359 [I-D.ietf-mmusic-ice-sip-sdp] 5360 Petit-Huguenin, M., Nandakumar, S., and A. Keranen, 5361 "Session Description Protocol (SDP) Offer/Answer 5362 procedures for Interactive Connectivity Establishment 5363 (ICE)", draft-ietf-mmusic-ice-sip-sdp-21 (work in 5364 progress), June 2018. 5366 [I-D.ietf-rtcweb-jsep] 5367 Uberti, J., Jennings, C., and E. Rescorla, "JavaScript 5368 Session Establishment Protocol", draft-ietf-rtcweb-jsep-24 5369 (work in progress), October 2017. 5371 [I-D.ietf-mmusic-trickle-ice] 5372 Ivov, E., Rescorla, E., and J. Uberti, "Trickle ICE: 5373 Incremental Provisioning of Candidates for the Interactive 5374 Connectivity Establishment (ICE) Protocol", draft-ietf- 5375 mmusic-trickle-ice-02 (work in progress), January 2015. 5377 [I-D.ietf-mmusic-msid] 5378 Alvestrand, H., "WebRTC MediaStream Identification in the 5379 Session Description Protocol", draft-ietf-mmusic-msid-16 5380 (work in progress), February 2017. 5382 [I-D.ietf-mmusic-sctp-sdp] 5383 Holmberg, C., Shpount, R., Loreto, S., and G. Camarillo, 5384 "Session Description Protocol (SDP) Offer/Answer 5385 Procedures For Stream Control Transmission Protocol (SCTP) 5386 over Datagram Transport Layer Security (DTLS) Transport.", 5387 draft-ietf-mmusic-sctp-sdp-26 (work in progress), April 5388 2017. 5390 [I-D.ietf-rtcweb-data-channel] 5391 Jesup, R., Loreto, S., and M. Tuexen, "WebRTC Data 5392 Channels", draft-ietf-rtcweb-data-channel-13 (work in 5393 progress), January 2015. 5395 [I-D.ietf-payload-flexible-fec-scheme] 5396 Zanaty, M., Singh, V., Begen, A., and G. Mandyam, "RTP 5397 Payload Format for Flexible Forward Error Correction 5398 (FEC)", draft-ietf-payload-flexible-fec-scheme-08 (work in 5399 progress), July 2018. 5401 [I-D.ietf-mmusic-mux-exclusive] 5402 Holmberg, C., "Indicating Exclusive Support of RTP/RTCP 5403 Multiplexing using SDP", draft-ietf-mmusic-mux- 5404 exclusive-12 (work in progress), May 2017. 5406 [I-D.ietf-mmusic-dtls-sdp] 5407 Holmberg, C. and R. Shpount, "Session Description Protocol 5408 (SDP) Offer/Answer Considerations for Datagram Transport 5409 Layer Security (DTLS) and Transport Layer Security (TLS)", 5410 draft-ietf-mmusic-dtls-sdp-32 (work in progress), October 5411 2017. 5413 [I-D.ietf-rtcweb-security-arch] 5414 Rescorla, E., "WebRTC Security Architecture", draft-ietf- 5415 rtcweb-security-arch-15 (work in progress), July 2018. 5417 [I-D.ietf-rtcweb-security] 5418 Rescorla, E., "Security Considerations for WebRTC", draft- 5419 ietf-rtcweb-security-10 (work in progress), January 2018. 5421 [I-D.ietf-avtext-rid] 5422 Roach, A., Nandakumar, S., and P. Thatcher, "RTP Stream 5423 Identifier Source Description (SDES)", draft-ietf-avtext- 5424 rid-09 (work in progress), October 2016. 5426 [WebRTC] W3C, "WebRTC 1.0: Real-time Communication Between 5427 Browsers", 5428 . 5430 Appendix A. Appendix 5432 A.1. JSEP SDP Attributes Checklist 5434 This section compiles a high-level checklist of the required SDP 5435 attributes to be verified against the examples defined in this 5436 specification. The goal here is to ensure that the examples are 5437 compliant to the rules defined in section 5 of the 5438 [I-D.ietf-rtcweb-jsep] specification. 5440 A.1.1. Common Checklist 5442 This subsection lists SDP attributes that mostly apply at the session 5443 level. 5445 o v=0 MUST be the first SDP line. 5447 o o= line MUST follow with values '-' for username, 64 bit value for 5448 session id and dummy values for 'nettype', 'addrtype' and 5449 'unicast-address' (for example: IN IP4 0.0.0.0). 5451 o o= line MUST have the session version incremented in the cases of 5452 subsequent offers. 5454 o s= MUST be the third line with the value of '-'. 5456 o t= line MUST follow with the values for 'start-time' and 'stop- 5457 time' set to zeroes. 5459 o a=identity line MUST be included at the session level if WEBRTC 5460 Identity mechanism is being used. 5462 o a=ice-options:trickle MUST be present at the session level in all 5463 offers and answers when supported. 5465 A.1.2. RTP Media Description Checklist 5467 Following set of checklist items apply to RTP audio and video media 5468 descriptions. 5470 o The media description's port value MUST either be set to dummy 5471 value of '9' or MUST use the port from the default candidate, if 5472 available. 5474 o The media description's proto value MUST be 'UDP/TLS/RTP/SAVPF' 5475 for JSEP offers. 5477 o JSEP answerer MUST support any combination of "RTP/[S]AVP[F]" for 5478 interoperability scenarios as defined in section 5 of 5479 [I-D.ietf-rtcweb-jsep] 5481 o c= line MUST be the first line in a media description. A dummy 5482 value of 'IN IP 0.0.0.0' is set if there are no candidates 5483 gathered or its value MUST match the default candidate. 5485 o a=mid attribute MUST be in included. 5487 o One of a=sendrecv/a=sendonly/a=recvonly/a=inactive SDP direction 5488 attributes MUST be present. 5490 o a=rtpmap and a=fmtp attributes per primary, retransmission and 5491 forward error correction media format MUST be included. 5493 o a=rtcp-fb lines for each supported feedback mechanism MUST be 5494 included when using RTP with feedback 5496 o a=imageattr can be optionally present for video media 5497 descriptions. 5499 o a=msid line MUST be included for all the media senders identifying 5500 the MediaStreamTrack (i.e when a=sendonly/a=sendrecv attribute is 5501 present). 5503 o a=extmap line identifying the BUNDLE header extension MUST be 5504 present. 5506 o a=extmap lines for other supported RTP header extensions MUST be 5507 included. 5509 o a=rid line 'per encoding' with the direction of 'send' MUST be 5510 included when further constraining the media format or multiple 5511 encodings per media format is needed. 5513 o a=simulcast line MUST be present if there exists more than one 5514 'a=rid' lines for the media senders. 5516 o a=bundle-only attribute MUST be present for media descriptions 5517 that are impacted by various bundle policies (such as max-bundle/ 5518 balanced) 5520 o For media descriptions that aren't "a=bundle-only" and that have 5521 unique address, following attributes MUST be present: 5523 * a=ice-ufrag and a=ice-pwd 5525 * a=fingerprint 5527 * a=setup with value 'actpass' in the offers and a value of 5528 'active'/'passive' in the answerer. 5530 * a=tls-id 5532 * a=rtcp 5534 * a=rtcp-mux 5536 * For offerers requiring RTCP to be multiplexed, 'a=rtcp-mux- 5537 only' line 5539 * a=rtcp-rsize 5541 o a=group:BUNDLE line with all the 'mid' identifiers part of the 5542 BUNDLE group is included at the session level. 5544 o a=group:LS session level attribute MUST be included wth the 'mid' 5545 identifiers that are part of the lip same sync group. 5547 A.1.3. DataChannel Media Description checklist 5549 If a datachannel is required, an 'application' type media description 5550 MUST be included with the following properties: 5552 o Media description's proto value MUST be 'UDP/DTLS/SCTP' in the 5553 JSEP offers. 5555 o An JSEP answerer MUST support reception of 5556 'UDP/DTLS/SCTP'/'TCP/DTLS/SCTP'/'DTLS/SCTP' for backward 5557 compatibility reasons. 5559 o A value of 'webrtc-datachannel' MUST be used for the media 5560 description 'fmt' value. 5562 o a=mid line MUST be present. 5564 o a=sctp-port with SCTP port number MUST be included. 5566 o a=max-message-size MAY be included, if appropriate. 5568 Authors' Addresses 5570 Suhas Nandakumar 5571 Cisco 5572 170 West Tasman Drive 5573 San Jose, CA 95134 5574 USA 5576 Email: snandaku@cisco.com 5578 Cullen Jennings 5579 Cisco 5580 170 West Tasman Drive 5581 San Jose, CA 95134 5582 USA 5584 Phone: +1 408 421-9990 5585 Email: fluffy@cisco.com