idnits 2.17.1 draft-ietf-rtcweb-sdp-02.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 : ---------------------------------------------------------------------------- ** The document seems to lack a Security Considerations section. ** There is 1 instance of too long lines in the document, the longest one being 3 characters in excess of 72. ** The abstract seems to contain references ([RFC4566], [RFC3264], [WebRTC]), which it shouldn't. Please replace those with straight textual mentions of the documents in question. == There are 206 instances of lines with non-RFC6890-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. == There are 124 instances of lines with private range IPv4 addresses in the document. If these are generic example addresses, they should be changed to use any of the ranges defined in RFC 6890 (or successor): 192.0.2.x, 198.51.100.x or 203.0.113.x. 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 (July 7, 2016) is 2844 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Unused Reference: 'RFC3952' is defined on line 4630, but no explicit reference was found in the text == Unused Reference: 'RFC3556' is defined on line 4645, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-mmusic-msid' is defined on line 4771, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-rtcweb-data-channel' is defined on line 4782, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-payload-flexible-fec-scheme' is defined on line 4787, but no explicit reference was found in the text == Unused Reference: 'I-D.ietf-mmusic-mux-exclusive' is defined on line 4793, but no explicit reference was found in the text -- Obsolete informational reference (is this intentional?): RFC 4566 (Obsoleted by RFC 8866) -- Obsolete informational reference (is this intentional?): RFC 5245 (Obsoleted by RFC 8445, RFC 8839) -- Obsolete informational reference (is this intentional?): RFC 3984 (Obsoleted by RFC 6184) -- Obsolete informational reference (is this intentional?): RFC 2326 (Obsoleted by RFC 7826) -- Obsolete informational reference (is this intentional?): RFC 2833 (Obsoleted by RFC 4733, RFC 4734) == Outdated reference: A later version (-54) exists of draft-ietf-mmusic-sdp-bundle-negotiation-24 == Outdated reference: A later version (-14) exists of draft-ietf-mmusic-sdp-simulcast-03 == Outdated reference: A later version (-15) exists of draft-ietf-mmusic-rid-04 == Outdated reference: A later version (-26) exists of draft-ietf-rtcweb-jsep-12 == Outdated reference: A later version (-17) exists of draft-ietf-mmusic-msid-11 == Outdated reference: A later version (-26) exists of draft-ietf-mmusic-sctp-sdp-15 == Outdated reference: A later version (-20) exists of draft-ietf-payload-flexible-fec-scheme-01 == Outdated reference: A later version (-12) exists of draft-ietf-mmusic-mux-exclusive-08 Summary: 3 errors (**), 0 flaws (~~), 18 warnings (==), 6 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: January 8, 2017 July 7, 2016 7 SDP for the WebRTC 8 draft-ietf-rtcweb-sdp-02 10 Abstract 12 The Web Real-Time Communication [WebRTC] working group is charged to 13 provide protocol support for direct interactive rich communication 14 using audio, video and data between two peers' web browsers. With in 15 the WebRTC framework, Session Description protocol (SDP) [RFC4566] is 16 used for negotiating session capabilities between the peers. Such a 17 negotiation happens based on the SDP Offer/Answer exchange mechanism 18 described in [RFC3264]. 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 WebRTC use-cases. 24 This SDP examples provided in this document is still a work in 25 progress, but it aims to align closest to the evolving standards 26 work. 28 Status of This Memo 30 This Internet-Draft is submitted in full conformance with the 31 provisions of BCP 78 and BCP 79. 33 Internet-Drafts are working documents of the Internet Engineering 34 Task Force (IETF). Note that other groups may also distribute 35 working documents as Internet-Drafts. The list of current Internet- 36 Drafts is at http://datatracker.ietf.org/drafts/current/. 38 Internet-Drafts are draft documents valid for a maximum of six months 39 and may be updated, replaced, or obsoleted by other documents at any 40 time. It is inappropriate to use Internet-Drafts as reference 41 material or to cite them other than as "work in progress." 43 This Internet-Draft will expire on January 8, 2017. 45 Copyright Notice 47 Copyright (c) 2016 IETF Trust and the persons identified as the 48 document authors. All rights reserved. 50 This document is subject to BCP 78 and the IETF Trust's Legal 51 Provisions Relating to IETF Documents 52 (http://trustee.ietf.org/license-info) in effect on the date of 53 publication of this document. Please review these documents 54 carefully, as they describe your rights and restrictions with respect 55 to this document. Code Components extracted from this document must 56 include Simplified BSD License text as described in Section 4.e of 57 the Trust Legal Provisions and are provided without warranty as 58 described in the Simplified BSD License. 60 Table of Contents 62 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 63 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 64 3. SDP and the WebRTC . . . . . . . . . . . . . . . . . . . . . 3 65 4. Offer/Answer and the WebRTC . . . . . . . . . . . . . . . . . 5 66 5. WebRTC Session Description Examples . . . . . . . . . . . . . 6 67 5.1. Some Conventions . . . . . . . . . . . . . . . . . . . . 7 68 5.2. Basic Examples . . . . . . . . . . . . . . . . . . . . . 9 69 5.2.1. Audio Only Session . . . . . . . . . . . . . . . . . 9 70 5.2.2. Audio/Video Session . . . . . . . . . . . . . . . . . 12 71 5.2.3. Data Only Session . . . . . . . . . . . . . . . . . . 17 72 5.2.4. Audio Call On Hold . . . . . . . . . . . . . . . . . 19 73 5.2.5. Audio with DTMF Session . . . . . . . . . . . . . . . 22 74 5.2.6. One Way Audio/Video Session - Document Camera . . . . 26 75 5.2.7. Audio, Video Session with BUNDLE Support Unknown . . 30 76 5.2.8. Audio, Video and Data Session . . . . . . . . . . . . 35 77 5.2.9. Audio, Video Session with BUNDLE Unsupported . . . . 40 78 5.2.10. Audio, Video BUNDLED, but Data (Not BUNDLED) . . . . 45 79 5.2.11. Audio Only, Add Video to BUNDLE . . . . . . . . . . . 50 80 5.3. MultiResolution, RTX, FEC Examples . . . . . . . . . . . 57 81 5.3.1. Sendonly Simulcast Session with 2 cameras and 2 82 encodings per camera . . . . . . . . . . . . . . 57 83 5.3.2. Successful SVC Video Session . . . . . . . . . . . . 64 84 5.3.3. Successful Simulcast Video Session with 85 Retransmission . . . . . . . . . . . . . . . . . . . 69 86 5.3.4. Successful 1-way Simulcast Session with 2 resolutions 87 and RTX - One resolution rejected . . . . . . 74 88 5.3.5. Simulcast Video Session with Forward Error Correction 79 89 5.4. Others . . . . . . . . . . . . . . . . . . . . . . . . . 84 90 5.4.1. Audio Session - Voice Activity Detection . . . . . . 84 91 5.4.2. Audio Conference - Voice Activity Detection . . . . . 87 92 5.4.3. Successful legacy Interop Fallback with bundle-only . 90 93 5.4.4. Legacy Interop with RTP/AVP profile . . . . . . . . . 95 94 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 100 95 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 100 96 8. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 100 97 9. Informative References . . . . . . . . . . . . . . . . . . . 102 98 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 107 100 1. Introduction 102 Javascript Session Exchange Protocol(JSEP) [I-D.ietf-rtcweb-jsep] 103 specifies a generic protocol needed to generate [RFC3264] Offers and 104 Answers negotiated between the WebRTC peers for setting up, updating 105 and tearing down a WebRTC session. For this purpose, SDP is used to 106 construct [RFC3264] Offers/Answers for describing (media and non- 107 media) streams as appropriate for the recipients of the session 108 description to participate in the session. 110 The remainder of this document is organized as follows: Sections 3 111 and 4 provides an overview of SDP and the Offer/Answer exchange 112 mechanism. Section 5 provides sample SDP generated for the most 113 common WebRTC use-cases. 115 2. Terminology 117 The key words "MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD NOT", 118 "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be 119 interpreted as described in [RFC2119]. 121 3. SDP and the WebRTC 123 The purpose of this section is to provide a general overview of SDP 124 and its components. For a more in-depth understanding, the readers 125 are advised to refer to [RFC4566]. 127 The Session Description Protocol (SDP) [RFC4566] describes multimedia 128 sessions, which can contain audio, video, whiteboard, fax, modem, and 129 other streams. SDP provides a general purpose, standard 130 representation to describe various aspects of multimedia session such 131 as media capabilities, transport addresses and related metadata in a 132 transport agnostic manner, for the purposes of session announcement, 133 session invitation and parameter negotiation. 135 As of today SDP is widely used in the context of Session Initiation 136 Protocol [RFC3261], Real-time Transport Protocol [RFC3550] and Real- 137 time Streaming Protocol applications [RFC2326]. 139 Below figure introduces high-level breakup of SDP into components 140 that semantically describe a multimedia session, in our case, a 141 WebRTC session [WebRTC]. It by no means captures everything about 142 SDP and hence, should be used for informational purposes only. 144 +---------------------+ 145 | v= | 146 +---------------------+ 147 +---------------------+ +---------------------+ 148 ==== | Session Metadata | ===== | o= | 149 | +---------------------+ +---------------------- 150 | +---------------------+ 151 | | t= | 152 | +---------------------+ 153 | 154 | 155 | +---------------------+ 156 | | c= | 157 | +---------------------+ 158 | +---------------------+ 159 ==== | Network Description | ===== 160 | +---------------------+ 161 | +---------------------+ 162 | | a=candidate | 163 | +---------------------+ 164 | 165 | 166 | +---------------------+ 167 | | m= | 168 | +---------------------+ 169 | +---------------------+ +---------------------+ 170 ==== | Stream Description | ===== | a=rtpmap | 171 | +---------------------+ +---------------------- 172 | +---------------------+ 173 | | a=fmtp | 174 | +---------------------+ 175 | +---------------------+ 176 | | a=sendrecv.. | 177 | +---------------------+ 178 +---------------+ 179 | SEMANTIC | 180 | COMPONENTS OF | 181 | SDP | 182 +---------------+ 183 | +---------------------+ 184 | | a=crypto | 185 | +---------------------+ 186 | +---------------------+ +---------------------+ 187 ==== |Security Descriptions| =====| a=ice-frag | 188 | +---------------------+ +---------------------- 189 | +---------------------+ 190 | | a=ice-pwd | 191 | +---------------------+ 192 | +---------------------+ 193 | | a=fingerprint | 194 | +---------------------+ 195 | 196 | 197 | 198 | +---------------------+ 199 | | a=rtcp-fb | 200 | +---------------------+ 201 | +---------------------+ +---------------------+ 202 ==== | Qos,Grouping | | | 203 | Descriptions | =====| a=group | 204 +---------------------+ +---------------------- 205 +---------------------+ 206 | a=rtcpmux | 207 +---------------------+ 209 Figure 1: Semantic Components of SDP 211 [WebRTC] proposes JavaScript application to fully specify and control 212 the signaling plane of a multimedia session as described in the JSEP 213 specification [I-D.ietf-rtcweb-jsep]. JSEP provides mechanisms to 214 create session characterization and media definition information to 215 conduct the session based on SDP exchanges. 217 In this context, SDP serves two purposes: 219 1. Provide grammatical structure syntactically. 221 2. Semantically convey participant's intention and capabilities 222 required to successfully negotiate a session. 224 4. Offer/Answer and the WebRTC 226 This section introduces SDP Offer/Answer Exchange mechanism mandated 227 by WebRTC for negotiating session capabilities while setting up, 228 updating and tearing down a WebRTC session. This section is 229 intentionally brief in nature and interested readers are recommended 230 to refer [RFC3264] for specific details on the protocol operation. 232 The Offer/Answer [RFC3264] model specifies rule for the bilateral 233 exchange of Session Description Protocol (SDP) messages for creation 234 of multimedia streams. It defines protocol with involved 235 participants exchanging desired session characteristics from each 236 others perspective constructed as SDP to negotiate the session 237 between them. 239 In the most basic form,the protocol operation begins by one of the 240 participants sending an initial SDP Offer describing its intent to 241 start a multimedia communication session. The participant receiving 242 the offer MAY generate an SDP Answer accepting the offer or it MAY 243 reject the offer. If the session is accepted the Offer/Answer model 244 guarantees a common view of the multimedia session between the 245 participants. 247 At any time, either participant MAY generate a new SDP offer that 248 updates the session in progress. 250 With in the context of WebRTC, the Offer/Answer model defines the 251 state-machinery for WebRTC peers to negotiate session descriptions 252 between them during the initial setup stages as well as for eventual 253 session updates. Javascript Session Establishment Protocol 254 specification [I-D.ietf-rtcweb-jsep] for WebRTC provides the 255 mechanism for generating [RFC3264] SDP Offers and Answers in order 256 for both sides of the session to agree upon details such as list of 257 media formats to be sent/received, bandwidth information, crypto 258 parameters, transport parameters, for example. 260 5. WebRTC Session Description Examples 262 A typical web based real-time multimedia communication session can be 263 characterized as below: 265 o It has zero or more Audio only, Video only or Audio/Video RTP 266 Sessions, 268 o MAY contain zero or more non-media data sessions, 270 o All the sessions are secured with DTLS-SRTP, 272 o Supports NAT traversal using ICE mechanism, 274 o Provides RTCP based feedback mechanisms, 276 o Sessions can be over IPv4-only, IPv6-only, dual-stack based 277 clients. 279 5.1. Some Conventions 281 The examples given in this document follow the conventions listed 282 below: 284 o In all the examples, Alice and Bob are assumed to be the WebRTC 285 peers. 287 o It is assumed that for most of the examples, the support for 288 [I-D.ietf-mmusic-sdp-bundle-negotiation] is established apriori 289 either out-of-band or as a consequence of successful Offer/Answer 290 negotiation between Alice and Bob, unless explicitly stated 291 otherwise. 293 o Call-flow diagrams that accompany the use-cases capture only the 294 prominent aspects of the system behavior and intentionally is not 295 detailed to improve readability. 297 o Eventhough the call-flow diagrams shows SDP being exchanged 298 between the parties, it doesn't represent the only way an WebRTC 299 setup is expected to work. Other approaches may involve WebRTC 300 applications to exchange the media setup information via non-SDP 301 mechanisms as long as they confirm to the [I-D.ietf-rtcweb-jsep] 302 API specification. 304 o The SDP examples deviate from actual on-the-wire SDP notation in 305 several ways. This is done to facilitate readability and to 306 conform to the restrictions imposed by the RFC formatting rules. 308 * Visual markers/Empty lines in any SDP example are inserted to 309 make functional divisions in the SDP clearer, and are not 310 actually part of the SDP syntax. 312 * Any SDP line that is indented (compared to the initial line in 313 the SDP block) is a continuation of the preceding line. The 314 line break and indent are to be interpreted as a single space 315 character. 317 * Excepting the above two conventions, line endings are to be 318 interpreted as pairs (that is, an ASCII 13 followed by 319 an ASCII 10). 321 o Against each SDP line, pointers to the appropriate RFCs are 322 provided for further informational reference. Also an attempt has 323 been made to provide explanatory notes to enable better 324 understanding of the SDP usage, wherever appropriate. 326 o Following SDP details are common across all the use-cases defined 327 in this document unless mentioned otherwise. 329 * DTLS fingerprint for SRTP (a=fingerprint) 331 * RTP/RTCP Multiplexing (a=rtcp-mux) 333 * RTCP Feedback support (a=rtcp-fb) 335 * Host and server-reflexive candidate lines (a=candidate) 337 * SRTP Setup framework parameters (a=setup) 339 * RTCP attribute (a=rtcp) 341 * RTP header extension indicating audio-levels from client to the 342 mixer 344 For specific details, readers must refer to [I-D.ietf-rtcweb-jsep] 345 specification. 347 o The term "Session" is used rather loosely in this document to 348 refer to either a "Communication Session" or a "RTP Session" or a 349 "RTP Stream" depending on the context. 351 o Payload type 109 is usually used for OPUS, 0 for PCMU, 8 for PCMA, 352 99 for H.264 and 120 for VP8 in most of the examples to maintain 353 uniformity. 355 o The IP Address:Port combinations '192.168.1.4:61665' (host) and 356 '24.23.204.141:54609' (Server Reflexive) is typically used for 357 Alice. 359 o The IP Address:Port combinations '192.168.1.7:51556' (host) and 360 '98.248.92.77:49203' (Server Reflexive) is typically used for Bob. 362 o SSRC cname 'cname:EocUG1f0fcg/yvY7' applies to Alice and the cname 363 'cname:Q/NWs1ao1HmN4Xa5' corresponds to Bob. 365 o The SSRCs values '12345', '56789' and '11111' till '66666' usually 366 represent Alice's RTP Streams and the values '54321', '98765' and 367 '77777' till '99999' represent Bob's RTP Streams. 369 o In the actual use the values that represent SSRCs, ICE candidate 370 foundations, WebRTC Mediastream and MediaStreamTrack Ids shall be 371 much larger and/or random than the ones shown in the examples. 373 5.2. Basic Examples 375 5.2.1. Audio Only Session 377 This common scenario shows SDP for secure two-way audio session with 378 Alice offering Opus, PCMU, PCMA and Bob accepting all the offered 379 audio codecs. 381 2-Way Audio Only Session 383 Alice Bob 384 | | 385 | | 386 | Offer(Audio:Opus,PCMU,PCMA) | 387 |------------------------------------>| 388 | | 389 | | 390 | Answer(Audio:Opus,PCMU,PCMA) | 391 |<------------------------------------| 392 | | 393 | | 394 |Two-way Opus Audio (preferred-codec) | 395 |.....................................| 396 | | 397 | | 399 +-----------------------------------+-------------------------------+ 400 | Offer SDP Contents | RFC#/Notes | 401 +-----------------------------------+-------------------------------+ 402 | v=0 | [RFC4566] | 403 | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | 404 | | Information | 405 | s=- | [RFC4566] | 406 | t=0 0 | [RFC4566] | 407 | a=group:BUNDLE audio | [I-D.ietf-mmusic-sdp-bundle-n | 408 | | egotiation] | 409 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 410 | ****** Audio m=line ********* | ***************************** | 411 | m=audio 54609 UDP/TLS/RTP/SAVPF | [RFC4566] | 412 | 109 0 8 | | 413 | c=IN IP4 24.23.204.141 | [RFC4566] | 414 | a=rtcp:60065 IN IP4 24.23.204.141 | [RFC3605] | 415 | a=mid:audio | [RFC5888] | 416 | a=msid:ma ta | Identifies RTCMediaStream ID | 417 | | (ma) and RTCMediaStreamTrack | 418 | | ID (ta) | 419 | a=sendrecv | [RFC3264] - Alice can send | 420 | | and recv audio | 421 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] - | 422 | | Opus Codec 48khz, 2 channels | 423 | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMU Audio Codec | 424 | a=rtpmap:8 PCMA/8000 | [RFC3551] PCMA Audio Codec | 425 | a=maxptime:120 | [RFC4566] | 426 | a=ice-ufrag:074c6550 | [RFC5245] - ICE user fragment | 427 | a=ice-pwd:a28a397a4c3f31747d1ee34 | [RFC5245] - ICE password | 428 | 74af08a068 | | 429 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] - DTLS Fingerprint | 430 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | for SRTP | 431 | :04 :BB:05:2F:70:9F:04:A9:0E:05:E | | 432 | 9:26:33:E8:70:88:A2 | | 433 | a=setup:actpass | [RFC4145] - Alice can perform | 434 | | DTLS before Answer arrives | 435 | a=rtcp-mux | [RFC5761] - Alice can perform | 436 | | RTP/RTCP Muxing | 437 | a=rtcp-rsize | [RFC5506] - Alice intends to | 438 | | use reduced size RTCP for | 439 | | this session | 440 | a=rtcp-fb:109 nack | [RFC5104] - Indicates NACK | 441 | | RTCP feedback support | 442 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] Alice supports RTP | 443 | hdrext:ssrc-audio-level | header extension to indicate | 444 | | audio levels | 445 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 446 | hdrext:sdes:mid | egotiation] | 447 | a=ssrc:12345 | [RFC5576] - Alice's audio | 448 | cname:EocUG1f0fcg/yvY7 | stream SSRC. | 449 | a=candidate:0 1 UDP 2122194687 | [RFC5245] - RTP Host | 450 | 192.168.1.4 61665 typ host | Candidate | 451 | a=candidate:1 1 UDP 1685987071 | [RFC5245] - RTP Server | 452 | 24.23.204.141 54609 typ srflx | Reflexive ICE Candidate | 453 | raddr 192.168.1.4 rport 61665 | | 454 | a=candidate:0 2 UDP 2122194687 | [RFC5245] - RTCP Host | 455 | 192.168.1.4 61667 typ host | Candidate | 456 | a=candidate:1 2 UDP 1685987071 | [RFC5245] - RTCP Server | 457 | 24.23.204.141 60065 typ srflx | Reflexive ICE Candidate | 458 | raddr 192.168.1.4 rport 61667 | | 459 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 460 +-----------------------------------+-------------------------------+ 462 Table 1: 5.2.1 SDP Offer 464 +-----------------------------------+-------------------------------+ 465 | Answer SDP Contents | RFC#/Notes | 466 +-----------------------------------+-------------------------------+ 467 | v=0 | [RFC4566] | 468 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | 469 | | Information | 470 | s=- | [RFC4566] | 471 | t=0 0 | [RFC4566] | 472 | a=group:BUNDLE audio | [I-D.ietf-mmusic-sdp-bundle-n | 473 | | egotiation] | 474 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 475 | ****** Audio m=line ********* | ***************************** | 476 | m=audio 49203 UDP/TLS/RTP/SAVPF | [RFC4566] | 477 | 109 0 8 | | 478 | c=IN IP4 98.248.92.77 | [RFC4566] | 479 | a=rtcp:49203 IN IP4 98.248.92.77 | [RFC3605] | 480 | a=mid:audio | [RFC5888] | 481 | a=msid:ma ta | Identifies RTCMediaStream ID | 482 | | (ma) and RTCMediaStreamTrack | 483 | | ID (ta) | 484 | a=sendrecv | [RFC3264] - Bob can send and | 485 | | recv audio | 486 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] | 487 | | Opus Codec | 488 | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMU Audio Codec | 489 | a=rtpmap:8 PCMA/8000 | [RFC3551] PCMA Audio Codec | 490 | a=maxptime:120 | [RFC4566] | 491 | a=ice-ufrag:05067423 | [RFC5245] - ICE user fragment | 492 | a=ice-pwd:1747d1ee3474a28a397a4c3 | [RFC5245] - ICE password | 493 | f3af08a068 | parameter | 494 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] - DTLS Fingerprint | 495 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | for SRTP | 496 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 497 | 1:58:D0:A1:2C:19:08 | | 498 | a=setup:active | [RFC4145] - Bob carries out | 499 | | DTLS Handshake in parallel | 500 | a=rtcp-mux | [RFC5761] - Bob can perform | 501 | | RTP/RTCP Muxing on port 49203 | 502 | a=rtcp-rsize | [RFC5506] - Bob intends to | 503 | | use reduced size RTCP for | 504 | | this session | 505 | a=rtcp-fb:109 nack | [RFC5104] - Indicates NACK | 506 | | RTCP feedback support | 507 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] Bob supports audio | 508 | hdrext:ssrc-audio-level | level RTP header extension as | 509 | | well | 510 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 511 | hdrext:sdes:mid | egotiation] | 512 | a=ssrc:54321 | [RFC5576] - Bob's audio | 513 | cname:Q/NWs1ao1HmN4Xa5 | stream SSRC. | 514 | a=candidate:0 1 UDP 2122194687 | [RFC5245] - RTP/RTCP Host ICE | 515 | 192.168.1.7 51556 typ host | Candidate | 516 | a=candidate:1 1 UDP 1685987071 | [RFC5245] - RTP/RTCP Server | 517 | 98.248.92.77 49203 typ srflx | Reflexive ICE Candidate | 518 | raddr 192.168.1.7 rport 51556 | | 519 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 520 +-----------------------------------+-------------------------------+ 522 Table 2: 5.2.1 SDP Answer 524 5.2.2. Audio/Video Session 526 Alice and Bob establish a two-way audio and video session with Opus 527 as the audio codec and H.264 as the video codec. 529 2-Way Audio,Video Session 531 Alice Bob 532 | | 533 | | 534 |Offer(Audio:Opus,PCMU,PCMA Video:H.264,VP8) | 535 |------------------------------------------->| 536 | | 537 | | 538 | Answer(Audio:Opus,Video:H.264) | 539 |<-------------------------------------------| 540 | | 541 | | 542 | Two-way Opus Audio, H.264 Video | 543 |............................................| 544 | | 546 +-----------------------------------+-------------------------------+ 547 | Offer SDP Contents | RFC#/Notes | 548 +-----------------------------------+-------------------------------+ 549 | v=0 | [RFC4566] | 550 | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | 551 | | Information | 552 | s=- | [RFC4566] | 553 | t=0 0 | [RFC4566] | 554 | a=group:BUNDLE audio video | [I-D.ietf-mmusic-sdp-bundle-n | 555 | | egotiation] | 556 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 557 | ****** Audio m=line ********* | ***************************** | 558 | m=audio 54609 UDP/TLS/RTP/SAVPF | [RFC4566] | 559 | 109 0 8 | | 560 | c=IN IP4 24.23.204.141 | [RFC4566] | 561 | a=rtcp:54609 IN IP4 24.23.204.141 | [RFC3605] | 562 | a=mid:audio | [RFC5888] | 563 | a=msid:ma ta | Identifies RTCMediaStream ID | 564 | | (ma) and RTCMediaStreamTrack | 565 | | ID (ta) | 566 | a=sendrecv | [RFC3264] - Alice can send | 567 | | and recv audio | 568 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] - | 569 | | Opus Codec 48khz, 2 channels | 570 | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMU Audio Codec | 571 | a=rtpmap:8 PCMA/8000 | [RFC3551] PCMA Audio Codec | 572 | a=maxptime:120 | [RFC4566] | 573 | a=ice-ufrag:074c6550 | [RFC5245] - ICE user fragment | 574 | a=ice-pwd:a28a397a4c3f31747d1ee34 | [RFC5245] - ICE password | 575 | 74af08a068 | parameter | 576 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] - DTLS Fingerprint | 577 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | for SRTP | 578 | :04 :BB:05:2F:70:9F:0 | | 579 | 4:A9:0E:05:E9:26:33:E8:70:88:A2 | | 580 | a=setup:actpass | [RFC4145] - Alice can perform | 581 | | DTLS before Answer arrives | 582 | a=rtcp-mux | [RFC5761] - Alice can perform | 583 | | RTP/RTCP Muxing | 584 | a=rtcp-rsize | [RFC5506] - Alice intends to | 585 | | use reduced size RTCP for | 586 | | this session | 587 | a=rtcp-fb:109 nack | [RFC5104] - Indicates NACK | 588 | | RTCP feedback support | 589 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 590 | hdrext:ssrc-audio-level | | 591 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 592 | hdrext:sdes:mid | egotiation] | 593 | a=ssrc:12345 | [RFC5576] | 594 | cname:EocUG1f0fcg/yvY7 | | 595 | a=candidate:0 1 UDP 2122194687 | [RFC5245] - RTP/RTCP Host | 596 | 192.168.1.4 61665 typ host | Candidate | 597 | a=candidate:1 1 UDP 1685987071 | [RFC5245] - RTP/RTCP Server | 598 | 24.23.204.141 54609 typ srflx | Reflexive ICE Candidate | 599 | raddr 192.168.1.4 rport 61665 | | 600 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 601 | ****** Video m=line ********* | ***************************** | 602 | m=video 54609 UDP/TLS/RTP/SAVPF | [RFC4566] | 603 | 99 120 | | 604 | c=IN IP4 24.23.204.141 | [RFC4566] | 605 | a=rtcp:54609 IN IP4 24.23.204.141 | [RFC3605] | 606 | a=mid:video | [RFC5888] | 607 | a=msid:ma tb | Identifies RTCMediaStream ID | 608 | | (ma) and RTCMediaStreamTrack | 609 | | ID (tb) | 610 | a=sendrecv | [RFC3264] - Alice can send | 611 | | and recv video | 612 | a=rtpmap:99 H264/90000 | [RFC3984] - H.264 Video Codec | 613 | a=fmtp:99 profile-level-id=4d0028 | [RFC3984] | 614 | ;packetization-mode=1 | | 615 | a=rtpmap:120 VP8/90000 | [I-D.ietf-payload-vp8] - VP8 | 616 | | video codec | 617 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] - DTLS Fingerprint | 618 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | for SRTP | 619 | :04 :BB:05:2F:70:9F:04:A9:0E:05:E | | 620 | 9:26:33:E8:70:88:A2 | | 621 | a=setup:actpass | [RFC4145] - Alice can perform | 622 | | DTLS before Answer arrives | 623 | a=rtcp-mux | [RFC5761] - Alice can perform | 624 | | RTP/RTCP Muxing | 625 | a=rtcp-rsize | [RFC5506] - Alice intends to | 626 | | use reduced size RTCP for | 627 | | this session | 628 | a=rtcp-fb:99 nack | [RFC5104] - Indicates NACK | 629 | | RTCP feedback support | 630 | a=rtcp-fb:99 nack pli | [RFC5104] - Indicates support | 631 | | for Picture loss Indication | 632 | | and NACK | 633 | a=rtcp-fb:99 ccm fir | [RFC5104] - Full Intra Frame | 634 | | Request-Codec Control Message | 635 | | support | 636 | a=rtcp-fb:120 nack | [RFC5104] - Indicates NACK | 637 | | RTCP feedback support | 638 | a=rtcp-fb:120 nack pli | [RFC5104] - Indicates support | 639 | | for Picture loss Indication | 640 | | and NACK | 641 | a=rtcp-fb:120 ccm fir | [RFC5104] - Full Intra Frame | 642 | | Request-Codec Control Message | 643 | | support | 644 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 645 | hdrext:sdes:mid | egotiation] | 646 | a=ssrc:56789 | [RFC5576] | 647 | cname:EocUG1f0fcg/yvY7 | | 648 +-----------------------------------+-------------------------------+ 650 Table 3: 5.2.2 SDP Offer 652 +-----------------------------------+-------------------------------+ 653 | Answer SDP Contents | RFC#/Notes | 654 +-----------------------------------+-------------------------------+ 655 | v=0 | [RFC4566] | 656 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | 657 | | Information | 658 | s=- | [RFC4566] | 659 | t=0 0 | [RFC4566] | 660 | a=group:BUNDLE audio video | [I-D.ietf-mmusic-sdp-bundle-n | 661 | | egotiation] | 662 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 663 | ****** Audio m=line ********* | ***************************** | 664 | m=audio 49203 UDP/TLS/RTP/SAVPF | [RFC4566] | 665 | 109 | | 666 | c=IN IP4 98.248.92.77 | [RFC4566] | 667 | a=rtcp:49203 IN IP4 98.248.92.77 | [RFC3605] | 668 | a=mid:audio | [RFC5888] | 669 | a=msid:ma ta | Identifies RTCMediaStream ID | 670 | | (ma) and RTCMediaStreamTrack | 671 | | ID (ta) | 672 | a=sendrecv | [RFC3264] - Bob can send and | 673 | | recv audio | 674 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] - | 675 | | Bob accepts only Opus Codec | 676 | a=maxptime:120 | [RFC4566] | 677 | a=ice-ufrag:c300d85b | [RFC5245] - ICE username | 678 | | frag | 679 | a=ice-pwd:de4e99bd291c325921d5d47 | [RFC5245] - ICE password | 680 | efbabd9a2 | | 681 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] - DTLS Fingerprint | 682 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | for SRTP | 683 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 684 | 1:58:D0:A1:2C:19:08 | | 685 | a=setup:active | [RFC4145] - Bob carries out | 686 | | DTLS Handshake in parallel | 687 | a=rtcp-mux | [RFC5761] - Bob can perform | 688 | | RTP/RTCP Muxing | 689 | a=rtcp-rsize | [RFC5506] - Bob intends to | 690 | | use reduced size RTCP for | 691 | | this session | 692 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 693 | hdrext:ssrc-audio-level | | 694 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 695 | hdrext:sdes:mid | egotiation] | 696 | a=ssrc:54321 | [RFC5576] | 697 | cname:Q/NWs1ao1HmN4Xa5 | | 698 | a=candidate:0 1 UDP 3618095783 | [RFC5245] - RTP/RTCP Host ICE | 699 | 192.168.1.7 49203 typ host | Candidate | 700 | a=candidate:1 1 UDP 565689203 | [RFC5245] - RTP/RTCP Server | 701 | 98.248.92.77 49203 typ srflx | Reflexive ICE Candidate | 702 | raddr 192.168.1.7 rport 51556 | | 703 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 704 | ****** Video m=line ********* | ***************************** | 705 | m=video 49203 UDP/TLS/RTP/SAVPF | [RFC4566] | 706 | 99 | | 707 | c=IN IP4 98.248.92.77 | [RFC4566] | 708 | a=rtcp:49203 IN IP4 98.248.92.77 | [RFC3605] | 709 | a=mid:video | [RFC5888] | 710 | a=msid:ma tb | Identifies RTCMediaStream ID | 711 | | (ma) and RTCMediaStreamTrack | 712 | | ID (tb) | 713 | a=sendrecv | [RFC3264] - Bob can send and | 714 | | recv video | 715 | a=rtpmap:99 H264/90000 | [RFC3984] - Bob accepts H.264 | 716 | | Video Codec. | 717 | a=fmtp:99 profile-level-id=4d0028 | [RFC3984] | 718 | ;packetization-mode=1 | | 719 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] - DTLS Fingerprint | 720 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | for SRTP | 721 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 722 | 1:58:D0:A1:2C:19:08 | | 723 | a=setup:active | [RFC4145] - Bob carries out | 724 | | DTLS Handshake in parallel | 725 | a=rtcp-mux | [RFC5761] - Bob can perform | 726 | | RTP/RTCP Muxing | 727 | a=rtcp-rsize | [RFC5506] - Bob intends to | 728 | | use reduced size RTCP for | 729 | | this session | 730 | a=rtcp-fb:99 nack | [RFC5104] - Indicates support | 731 | | for NACK based RTCP feedback | 732 | a=rtcp-fb:99 nack pli | [RFC5104] - Indicates support | 733 | | for Picture loss Indication | 734 | | and NACK | 735 | a=rtcp-fb:99 ccm fir | [RFC5104] - Full Intra Frame | 736 | | Request- Codec Control | 737 | | Message support | 738 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 739 | hdrext:sdes:mid | egotiation] | 740 | a=ssrc:98765 | [RFC5576] | 741 | cname:Q/NWs1ao1HmN4Xa5 | | 742 +-----------------------------------+-------------------------------+ 744 Table 4: 5.2.2 SDP Answer 746 5.2.3. Data Only Session 748 This scenario illustrates SDP negotiated to setup a data-only session 749 based on SCTP Data Channel, thus enabling use-cases such as file- 750 transfer for example. 752 2-Way DataChannel Session 754 Alice Bob 755 | | 756 | | 757 | | 758 | Offer(DataChannel) | 759 |-------------------------------->| 760 | | 761 | | 762 | Answer(DataChannel) | 763 |<--------------------------------| 764 | | 765 | | 766 | Two-way SCTP based DataChannel | 767 |.................................| 768 | | 769 | | 770 +-----------------------------------+-------------------------------+ 771 | Offer SDP Contents | RFC#/Notes | 772 +-----------------------------------+-------------------------------+ 773 | v=0 | [RFC4566] | 774 | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | 775 | | Information | 776 | s=- | [RFC4566] | 777 | t=0 0 | [RFC4566] | 778 | a=group:BUNDLE data | [I-D.ietf-mmusic-sdp-bundle-n | 779 | | egotiation] | 780 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 781 | ****** Application m=line | ***************************** | 782 | ********* | | 783 | m=application 54609 UDP/DTLS/SCTP | [I-D.ietf-rtcweb-data-channel | 784 | webrtc-datachannel | ] | 785 | c=IN IP4 24.23.204.141 | [RFC4566] | 786 | a=mid:data | [RFC5888] | 787 | a=sendrecv | [RFC3264] - Alice can send | 788 | | and recv non-media data | 789 | a=sctp-port:5000 | [I-D.ietf-mmusic-sctp-sdp] | 790 | a=max-message-size:100000 | [I-D.ietf-mmusic-sctp-sdp] | 791 | a=setup:actpass | [RFC4145] - Alice can perform | 792 | | DTLS before Answer arrives | 793 | a=connection:new | [RFC4145] | 794 | a=ice-ufrag:074c6550 | [RFC5245] - Session Level ICE | 795 | | parameter | 796 | a=ice-pwd:a28a397a4c3f31747d1ee34 | [RFC5245] - Session Level ICE | 797 | 74af08a068 | parameter | 798 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] - Session DTLS | 799 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | Fingerprint for SRTP | 800 | :04 :BB:05:2F:70:9F:04:A9:0E:05:E | | 801 | 9:26:33:E8:70:88:A2 | | 802 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 803 | 192.168.1.4 61665 typ host | | 804 | a=candidate:1 1 UDP 1694302207 | [RFC5245] | 805 | 24.23.204.141 54609 typ srflx | | 806 | raddr 192.168.1.4 rport 61665 | | 807 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 808 +-----------------------------------+-------------------------------+ 810 Table 5: 5.2.3 SDP Offer 812 +-----------------------------------+-------------------------------+ 813 | Answer SDP Contents | RFC#/Notes | 814 +-----------------------------------+-------------------------------+ 815 | v=0 | [RFC4566] | 816 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | 817 | | Information | 818 | s=- | [RFC4566] | 819 | t=0 0 | [RFC4566] | 820 | a=group:BUNDLE data | [I-D.ietf-mmusic-sdp-bundle-n | 821 | | egotiation] | 822 | ****** Application m=line | ***************************** | 823 | ********* | | 824 | m=application 49203 UDP/DTLS/SCTP | [I-D.ietf-mmusic-sctp-sdp] | 825 | webrtc-datachannel | | 826 | c=IN IP4 98.248.92.771 | [RFC4566] | 827 | a=mid:data | [RFC5888] | 828 | a=sendrecv | [RFC3264] - Bob can send and | 829 | | recv non-media data | 830 | a=sctp-port:5000 | [I-D.ietf-mmusic-sctp-sdp] | 831 | a=max-message-size:100000 | [I-D.ietf-mmusic-sctp-sdp] | 832 | a=setup:active | [RFC4145] - Bob carries out | 833 | | DTLS Handshake in parallel | 834 | a=ice-ufrag:c300d85b | [RFC5245] - Session Level ICE | 835 | | username frag | 836 | a=ice-pwd:de4e99bd291c325921d5d47 | [RFC5245] - Session Level ICE | 837 | efbabd9a2 | password | 838 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] - Session DTLS | 839 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | Fingerprint for SRTP | 840 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 841 | 1:58:D0:A1:2C:19:08 | | 842 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 843 | 192.168.1.7 51556 typ host | | 844 | a=candidate:1 1 UDP 1694302207 | [RFC5245] | 845 | 98.248.92.77 49203 typ srflx | | 846 | raddr 192.168.1.7 rport 51556 | | 847 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 848 +-----------------------------------+-------------------------------+ 850 Table 6: 5.2.3 SDP Answer 852 5.2.4. Audio Call On Hold 854 Alice calls Bob, but when Bob answers he places Alice on hold by 855 setting the SDP direction attribute to a=inactive in the Answer. 857 Audio On Hold 859 Alice Bob 860 | | 861 | | 862 | Offer(Audio:Opus) | 863 |-------------------------------->| 864 | | 865 | | 866 | Answer(Audio:Opus,a=inactive) | 867 |<--------------------------------| 868 | | 869 | | 870 | One-way Opus Audio | 871 |.................................| 872 | | 873 | 875 +-----------------------------------+-------------------------------+ 876 | Offer SDP Contents | RFC#/Notes | 877 +-----------------------------------+-------------------------------+ 878 | v=0 | [RFC4566] | 879 | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | 880 | | Information | 881 | s=- | [RFC4566] | 882 | t=0 0 | [RFC4566] | 883 | a=group:BUNDLE audio | [I-D.ietf-mmusic-sdp-bundle-n | 884 | | egotiation] | 885 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 886 | ****** Audio m=line ********* | ***************************** | 887 | m=audio 54609 UDP/TLS/RTP/SAVPF | [RFC4566] | 888 | 109 | | 889 | c=IN IP4 24.23.204.141 | [RFC4566] | 890 | a=rtcp:54609 IN IP4 24.23.204.141 | [RFC3605] | 891 | a=mid:audio | [RFC5888] | 892 | a=msid:ma ta | Identifies RTCMediaStream ID | 893 | | (ma) and RTCMediaStreamTrack | 894 | | ID (ta) | 895 | a=sendrecv | [RFC3264] - Alice can send | 896 | | and recv audio | 897 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] - | 898 | | Opus Codec 48khz, 2 channels | 899 | a=maxptime:120 | [RFC4566] | 900 | a=ice-ufrag:074c6550 | [RFC5245] - ICE user | 901 | | fragment | 902 | a=ice-pwd:a28a397a4c3f31747d1ee34 | [RFC5245] - ICE password | 903 | 74af08a068 | | 904 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] - DTLS Fingerprint | 905 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | for SRTP | 906 | :04 :BB:05:2F:70:9F:04:A9:0E:05:E | | 907 | 9:26:33:E8:70:88:A2 | | 908 | a=setup:actpass | [RFC4145] - Alice can perform | 909 | | DTLS before Answer arrives | 910 | a=rtcp-mux | [RFC5761] - Alice can perform | 911 | | RTP/RTCP Muxing | 912 | a=rtcp-rsize | [RFC5506] | 913 | a=rtcp-fb:109 nack | [RFC5104] - Indicates NACK | 914 | | RTCP feedback support | 915 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 916 | hdrext:ssrc-audio-level | | 917 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 918 | hdrext:sdes:mid | egotiation] | 919 | a=ssrc:12345 | [RFC5576] | 920 | cname:EocUG1f0fcg/yvY7 | | 921 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 922 | 192.168.1.4 61665 typ host | | 923 | a=candidate:1 1 UDP 1685987071 | [RFC5245] | 924 | 24.23.204.141 54609 typ srflx | | 925 | raddr 192.168.1.4 rport 61665 | | 926 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 927 +-----------------------------------+-------------------------------+ 929 Table 7: 5.2.4 SDP Offer 931 +-----------------------------------+-------------------------------+ 932 | Answer SDP Contents | RFC#/Notes | 933 +-----------------------------------+-------------------------------+ 934 | v=0 | [RFC4566] | 935 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | 936 | | Information | 937 | s=- | [RFC4566] | 938 | t=0 0 | [RFC4566] | 939 | a=group:BUNDLE audio | [I-D.ietf-mmusic-sdp-bundle-n | 940 | | egotiation] | 941 | ****** Audio m=line ********* | ***************************** | 942 | m=audio 49203 UDP/TLS/RTP/SAVPF | [RFC4566] | 943 | 109 | | 944 | c=IN IP4 98.248.92.77 | [RFC4566] | 945 | a=rtcp:49203 IN IP4 24.23.204.141 | [RFC3605] | 946 | a=mid:audio | [RFC5888] | 947 | a=msid:ma ta | Identifies RTCMediaStream ID | 948 | | (ma) and RTCMediaStreamTrack | 949 | | ID (ta) | 950 | a=inactive | [RFC3264] - Bob puts call On | 951 | | Hold | 952 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] - | 953 | | Bob accepts Opus Codec | 954 | a=maxptime:120 | [RFC4566] | 955 | a=ice-ufrag:c300d85b | [RFC5245] - ICE username frag | 956 | a=ice-pwd:de4e99bd291c325921d5d47 | [RFC5245] - ICE password | 957 | efbabd9a2 | | 958 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] - DTLS Fingerprint | 959 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | for SRTP | 960 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 961 | 1:58:D0:A1:2C:19:08 | | 962 | a=setup:active | [RFC4145] - Bob carries out | 963 | | DTLS Handshake in parallel | 964 | a=rtcp-mux | [RFC5761] - Bob can perform | 965 | | RTP/RTCP Muxing | 966 | a=rtcp-rsize | [RFC5506] | 967 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 968 | hdrext:ssrc-audio-level | | 969 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 970 | hdrext:sdes:mid | egotiation] | 971 | a=ssrc:54321 | [RFC5576] | 972 | cname:Q/NWs1ao1HmN4Xa5 | | 973 | a=candidate:0 1 UDP 2113667327 | [RFC5245] - Host candidate | 974 | 192.168.1.7 51556 typ host | | 975 | a=candidate:1 1 UDP 1685987071 | [RFC5245] - Server Reflexive | 976 | 24.23.204.141 49203 typ srflx | candidate | 977 | raddr 192.168.1.7 rport 51556 | | 978 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 979 +-----------------------------------+-------------------------------+ 981 Table 8: 5.2.4 SDP Answer 983 5.2.5. Audio with DTMF Session 985 In this example, Alice wishes to establish two separate audio 986 streams, one for normal audio and the other for telephone-events. 987 Alice offers first audio stream with three codecs and the other with 988 [RFC2833] tones (for DTMF). Bob accepts both the audio streams by 989 choosing Opus as the audio codec and telephone-event for the other 990 stream. 992 Audio Session with DTMF 994 Alice Bob 995 | | 996 | | 997 | | 998 | Offer(Audio:Opus,PCMU,PCMA Audio:telephone-event)| 999 |-------------------------------------------------->| 1000 | | 1001 | | 1002 | Answer(Audio:Opus, Audio:telephone-event) | 1003 |<--------------------------------------------------| 1004 | | 1005 | | 1006 | Opus audio stream and telephone-event stream | 1007 |...................................................| 1008 | | 1010 +-----------------------------------+-------------------------------+ 1011 | Offer SDP Contents | RFC#/Notes | 1012 +-----------------------------------+-------------------------------+ 1013 | v=0 | [RFC4566] | 1014 | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | 1015 | | Information | 1016 | s=- | [RFC4566] | 1017 | t=0 0 | [RFC4566] | 1018 | a=group:BUNDLE audio dtmf | [I-D.ietf-mmusic-sdp-bundle-n | 1019 | | egotiation] | 1020 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 1021 | ****** Audio m=line ********* | ***************************** | 1022 | m=audio 54609 UDP/TLS/RTP/SAVPF | [RFC4566] | 1023 | 109 0 8 | | 1024 | c=IN IP4 24.23.204.141 | [RFC4566] | 1025 | a=rtcp:54609 IN IP4 24.23.204.141 | [RFC3605] | 1026 | a=mid:audio | [RFC5888] | 1027 | a=msid:ma ta | Identifies RTCMediaStream ID | 1028 | | (ma) and RTCMediaStreamTrack | 1029 | | ID (ta) | 1030 | a=sendrecv | [RFC3264] - Alice can send | 1031 | | and recv audio | 1032 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] - | 1033 | | Opus Codec 48khz, 2 channels | 1034 | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMU Audio Codec | 1035 | a=rtpmap:8 PCMA/8000 | [RFC3551] PCMA Audio Codec | 1036 | a=maxptime:120 | [RFC4566] | 1037 | a=ice-ufrag:074c6550 | [RFC5245] - ICE user | 1038 | | fragment | 1039 | a=ice-pwd:a28a397a4c3f31747d1ee34 | [RFC5245] - ICE password | 1040 | 74af08a068 | parameter | 1041 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] - DTLS Fingerprint | 1042 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | for SRTP | 1043 | :04 :BB:05:2F:70:9F:04:A9:0E:05:E | | 1044 | 9:26:33:E8:70:88:A2 | | 1045 | a=setup:actpass | [RFC4145] - Alice can perform | 1046 | | DTLS before Answer arrives | 1047 | a=rtcp-mux | [RFC5761] - Alice can perform | 1048 | | RTP/RTCP Muxing | 1049 | a=rtcp-rsize | [RFC5506] | 1050 | a=rtcp-fb:109 nack | [RFC5104] - Indicates NACK | 1051 | | RTCP feedback support | 1052 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 1053 | hdrext:ssrc-audio-level | | 1054 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 1055 | hdrext:sdes:mid | egotiation] | 1056 | a=ssrc:12345 | [RFC5576] | 1057 | cname:EocUG1f0fcg/yvY7 | | 1058 | a=candidate:0 1 UDP 2122194687 | [RFC5245] | 1059 | 192.168.1.4 61665 typ host | | 1060 | a=candidate:1 1 UDP 1685987071 | [RFC5245] | 1061 | 24.23.204.141 54609 typ srflx | | 1062 | raddr 192.168.1.4 rport 61665 | | 1063 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 1064 | ****** DTMF m=line ********* | ***************************** | 1065 | m=audio 54609 UDP/TLS/RTP/SAVPF | [RFC4566] | 1066 | 126 | | 1067 | c=IN IP4 24.23.204.141 | [RFC4566] | 1068 | a=rtcp:54609 IN IP4 24.23.204.141 | [RFC3605] | 1069 | a=mid:dtmf | [RFC5888] | 1070 | a=msid:ma tb | Identifies RTCMediaStream ID | 1071 | | (ma) and RTCMediaStreamTrack | 1072 | | ID (tb) | 1073 | a=sendonly | [RFC3264] - Alice can send | 1074 | | DTMF Events | 1075 | a=rtpmap:126 telephone-event/8000 | [RFC2833] | 1076 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] - DTLS Fingerprint | 1077 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | for SRTP | 1078 | :04 :BB:05:2F:70:9F:04:A9:0E:05:E | | 1079 | 9:26:33:E8:70:88:A2 | | 1080 | a=setup:actpass | [RFC4145] - Alice can perform | 1081 | | DTLS before Answer arrives | 1082 | a=rtcp-mux | [RFC5761] | 1083 | a=rtcp-rsize | [RFC5506] | 1084 | a=rtcp-fb:109 nack | [RFC5104] - Indicates NACK | 1085 | | RTCP feedback support | 1086 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 1087 | hdrext:sdes:mid | egotiation] | 1088 | a=ssrc:56789 | [RFC5576] | 1089 | cname:EocUG1f0fcg/yvY7 | | 1090 +-----------------------------------+-------------------------------+ 1092 Table 9: 5.2.5 SDP Offer 1094 +-----------------------------------+-------------------------------+ 1095 | Answer SDP Contents | RFC#/Notes | 1096 +-----------------------------------+-------------------------------+ 1097 | v=0 | [RFC4566] | 1098 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | 1099 | | Information | 1100 | s=- | [RFC4566] | 1101 | t=0 0 | [RFC4566] | 1102 | a=group:BUNDLE audio dtmf | [I-D.ietf-mmusic-sdp-bundle-n | 1103 | | egotiation] | 1104 | ****** Audio m=line ********* | ***************************** | 1105 | m=audio 49203 UDP/TLS/RTP/SAVPF | [RFC4566] | 1106 | 109 | | 1107 | c=IN IP4 98.248.92.77 | [RFC4566] | 1108 | a=rtcp:49203 IN IP4 24.23.204.141 | [RFC3605] | 1109 | a=mid:audio | [RFC5888] | 1110 | a=msid:ma ta | Identifies RTCMediaStream ID | 1111 | | (ma) and RTCMediaStreamTrack | 1112 | | ID (ta) | 1113 | a=sendrecv | [RFC3264] - Bob can send and | 1114 | | receive Opus audio | 1115 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] - | 1116 | | Bob accepts Opus Codec | 1117 | a=maxptime:120 | [RFC4566] | 1118 | a=ice-ufrag:c300d85b | [RFC5245] - ICE username | 1119 | | frag | 1120 | a=ice-pwd:de4e99bd291c325921d5d47 | [RFC5245] - ICE password | 1121 | efbabd9a2 | | 1122 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] - Fingerprint for | 1123 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | SRTP | 1124 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 1125 | 1:58:D0:A1:2C:19:08 | | 1126 | a=setup:active | [RFC4145] - Bob carries out | 1127 | | DTLS Handshake in parallel | 1128 | a=rtcp-mux | [RFC5761] - Bob can perform | 1129 | | RTP/RTCP Muxing on port 49203 | 1130 | a=rtcp-rsize | [RFC5506] - Alice intends to | 1131 | | use reduced size RTCP for | 1132 | | this session | 1133 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 1134 | hdrext:ssrc-audio-level | | 1135 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 1136 | hdrext:sdes:mid | egotiation] | 1137 | a=ssrc:54321 | [RFC5576] | 1138 | cname:Q/NWs1ao1HmN4Xa5 | | 1139 | a=candidate:0 1 UDP 2122194687 | [RFC5245] | 1140 | 192.168.1.7 51556 typ host | | 1141 | a=candidate:1 1 UDP 1685987071 | [RFC5245] | 1142 | 98.248.92.77 49203 typ srflx | | 1143 | raddr 192.168.1.7 rport 51556 | | 1144 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 1145 | ****** DTMF m=line ********* | ***************************** | 1146 | m=audio 49203 UDP/TLS/RTP/SAVPF | [RFC4566] | 1147 | 126 | | 1148 | c=IN IP4 98.248.92.77 | [RFC4566] | 1149 | a=rtcp:49203 IN IP4 24.23.204.141 | [RFC3605] | 1150 | a=mid:dtmf | [RFC5888] | 1151 | a=msid:ma tb | Identifies RTCMediaStream ID | 1152 | | (ma) and RTCMediaStreamTrack | 1153 | | ID (tb) | 1154 | a=recvonly | [RFC3264] - Alice can receive | 1155 | | DTMF events | 1156 | a=rtpmap:126 telephone-event/8000 | [RFC2833] | 1157 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] - Fingerprint for | 1158 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | SRTP | 1159 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 1160 | 1:58:D0:A1:2C:19:08 | | 1161 | a=setup:active | [RFC4145] - Bob carries out | 1162 | | DTLS Handshake in parallel | 1163 | a=rtcp-mux | [RFC5761] | 1164 | a=rtcp-rsize | [RFC5506] - Bob intends to | 1165 | | use reduced size RTCP for | 1166 | | this session | 1167 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 1168 | hdrext:sdes:mid | egotiation] | 1169 | a=ssrc:98765 | [RFC5576] | 1170 | cname:Q/NWs1ao1HmN4Xa5 | | 1171 +-----------------------------------+-------------------------------+ 1173 Table 10: 5.2.5 SDP Answer 1175 5.2.6. One Way Audio/Video Session - Document Camera 1177 In this scenario Alice and Bob engage in a 1 way audio and video 1178 session with Bob receiving Alice's audio and her presentation slides 1179 as video stream. 1181 One Way Audio & Video Session - Document Camera 1183 Alice Bob 1184 | | 1185 | | 1186 | | 1187 | Alice Offers sendonly audio and video streams. | 1188 | The video stream corresponds to her presentation | 1189 | | 1190 | Offer(Audio:Opus, Video: VP8) | 1191 |----------------------------------------------------->| 1192 | | 1193 | | 1194 | (Audio:Opus, Video: VP8) | 1195 |<-----------------------------------------------------| 1196 | | 1197 | | 1198 | One-way Opus Audio, VP8 Video | 1199 |......................................................| 1200 | Bob can hear Alice and see her presentation slides.| 1201 | | 1202 | | 1204 +-----------------------------------+-------------------------------+ 1205 | Offer SDP Contents | RFC#/Notes | 1206 +-----------------------------------+-------------------------------+ 1207 | v=0 | [RFC4566] | 1208 | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 1209 | s=- | [RFC4566] | 1210 | t=0 0 | [RFC4566] | 1211 | a=group:BUNDLE audio video | [I-D.ietf-mmusic-sdp-bundle-n | 1212 | | egotiation] | 1213 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 1214 | ****** Audio m=line ********* | ***************************** | 1215 | m=audio 54609 UDP/TLS/RTP/SAVPF | [RFC4566] | 1216 | 109 | | 1217 | c=IN IP4 24.23.204.141 | [RFC4566] | 1218 | a=rtcp:54609 IN IP4 24.23.204.141 | [RFC3605] | 1219 | a=mid:audio | [RFC5888] | 1220 | a=msid:ma ta | Identifies RTCMediaStream ID | 1221 | | (ma) and RTCMediaStreamTrack | 1222 | | ID (ta) | 1223 | a=sendonly | [RFC3264] - Send only audio | 1224 | | stream | 1225 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] | 1226 | a=maxptime:120 | [RFC4566] | 1227 | a=ice-ufrag:074c6550 | [RFC5245] | 1228 | a=ice-pwd:a28a397a4c3f31747d1ee34 | [RFC5245] | 1229 | 74af08a068 | | 1230 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] | 1231 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | | 1232 | :04 :BB:05:2F:70:9F:04:A9:0E:05:E | | 1233 | 9:26:33:E8:70:88:A2 | | 1234 | a=setup:actpass | [RFC4145] - Alice can perform | 1235 | | DTLS before Answer arrives | 1236 | a=rtcp-mux | [RFC5761] | 1237 | a=rtcp-rsize | [RFC5506] | 1238 | a=rtcp-fb:109 nack | [RFC5104] | 1239 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 1240 | hdrext:ssrc-audio-level | | 1241 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 1242 | hdrext:sdes:mid | egotiation] | 1243 | a=ssrc:12345 | [RFC5576] | 1244 | cname:EocUG1f0fcg/yvY7 | | 1245 | a=candidate:0 1 UDP 2122194687 | [RFC5245] | 1246 | 24.23.204.141 54609 typ host | | 1247 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 1248 | ****** Video m=line ********* | ***************************** | 1249 | m=video 54609 UDP/TLS/RTP/SAVPF | [RFC4566] | 1250 | 120 | | 1251 | c=IN IP4 24.23.204.141 | [RFC4566] | 1252 | a=rtcp:54609 IN IP4 24.23.204.141 | [RFC3605] | 1253 | a=mid:video | [RFC5888] | 1254 | a=msid:ma tb | Identifies RTCMediaStream ID | 1255 | | (ma) and RTCMediaStreamTrack | 1256 | | ID (tb) | 1257 | a=sendonly | [RFC3264] - Send only video | 1258 | | stream | 1259 | a=rtpmap:120 VP8/90000 | [I-D.ietf-payload-vp8] | 1260 | a=content:slides | [RFC4796] -Alice's | 1261 | | presentation video stream | 1262 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] | 1263 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | | 1264 | :04 :BB:05:2F:70:9F:04:A9:0E:05:E | | 1265 | 9:26:33:E8:70:88:A2 | | 1266 | a=setup:actpass | [RFC4145] - Alice can perform | 1267 | | DTLS before Answer arrives | 1268 | a=rtcp-mux | [RFC5761] | 1269 | a=rtcp-rsize | [RFC5506] | 1270 | a=rtcp-fb:120 nack | [RFC5104] | 1271 | a=rtcp-fb:120 nack pli | [RFC5104] | 1272 | a=rtcp-fb:120 ccm fir | [RFC5104] | 1273 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 1274 | hdrext:sdes:mid | egotiation] | 1275 | a=ssrc:56789 | [RFC5576] | 1276 | cname:EocUG1f0fcg/yvY7 | | 1277 +-----------------------------------+-------------------------------+ 1279 Table 11: 5.2.6 SDP Offer 1281 +-----------------------------------+-------------------------------+ 1282 | Answer SDP Contents | RFC#/Notes | 1283 +-----------------------------------+-------------------------------+ 1284 | v=0 | [RFC4566] | 1285 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] | 1286 | s=- | [RFC4566] | 1287 | t=0 0 | [RFC4566] | 1288 | a=group:BUNDLE audio video | [I-D.ietf-mmusic-sdp-bundle-n | 1289 | | egotiation] | 1290 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 1291 | ****** Audio m=line ********* | ***************************** | 1292 | m=audio 49203 UDP/TLS/RTP/SAVPF | [RFC4566] | 1293 | 109 | | 1294 | c=IN IP4 98.248.92.77 | [RFC4566] | 1295 | a=rtcp:49203 IN IP4 24.23.204.141 | [RFC3605] | 1296 | a=mid:audio | [RFC5888] | 1297 | a=msid:ma ta | Identifies RTCMediaStream ID | 1298 | | (ma) and RTCMediaStreamTrack | 1299 | | ID (ta) | 1300 | a=recvonly | [RFC3264] - Receive only | 1301 | | audio stream | 1302 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] | 1303 | a=maxptime:120 | [RFC4566] | 1304 | a=ice-ufrag:c300d85b | [RFC5245] | 1305 | a=ice-pwd:de4e99bd291c325921d5d47 | [RFC5245] | 1306 | efbabd9a2 | | 1307 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] | 1308 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | | 1309 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 1310 | 1:58:D0:A1:2C:19:08 | | 1311 | a=setup:active | [RFC4145] - Bob carries out | 1312 | | DTLS Handshake in parallel | 1313 | a=rtcp-mux | [RFC5761] | 1314 | a=rtcp-rsize | [RFC5506] | 1315 | a=rtcp-fb:109 nack | [RFC5104] | 1316 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 1317 | hdrext:ssrc-audio-level | | 1318 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 1319 | hdrext:sdes:mid | egotiation] | 1320 | a=ssrc:54321 | [RFC5576] | 1321 | cname:Q/NWs1ao1HmN4Xa5 | | 1322 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 1323 | 98.248.92.77 49203 typ host | | 1324 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 1325 | ****** Video m=line ********* | ***************************** | 1326 | m=video 49203 UDP/TLS/RTP/SAVPF | [RFC4566] | 1327 | 120 | | 1328 | c=IN IP4 98.248.92.77 | [RFC4566] | 1329 | a=mid:video | [RFC5888] | 1330 | a=msid:ma tb | Identifies RTCMediaStream ID | 1331 | | (ma) and RTCMediaStreamTrack | 1332 | | ID (tb) | 1333 | a=recvonly | [RFC3264] | 1334 | a=rtpmap:120 VP8/90000 | [I-D.ietf-payload-vp8] | 1335 | a=content:slides | [RFC4796]presentation stream | 1336 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] | 1337 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | | 1338 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 1339 | 1:58:D0:A1:2C:19:08 | | 1340 | a=setup:active | [RFC4145] - Bob carries out | 1341 | | DTLS Handshake in parallel | 1342 | a=rtcp-mux | [RFC5761] | 1343 | a=rtcp-rsize | [RFC5506] | 1344 | a=rtcp-fb:120 nack | [RFC5104] | 1345 | a=rtcp-fb:120 nack pli | [RFC5104] | 1346 | a=rtcp-fb:120 ccm fir | [RFC5104] | 1347 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 1348 | hdrext:sdes:mid | egotiation] | 1349 | a=ssrc:98765 | [RFC5576] | 1350 | cname:Q/NWs1ao1HmN4Xa5 | | 1351 +-----------------------------------+-------------------------------+ 1353 Table 12: 5.2.6 SDP Answer 1355 5.2.7. Audio, Video Session with BUNDLE Support Unknown 1357 In this example, since Alice is unsure of the Bob's support of the 1358 BUNDLE framework, following steps are performed in order to negotiate 1359 and setup a BUNDLE Address for the session 1361 o An SDP Offer, in which the Alice assigns unique addresses to each 1362 "m=" line in the BUNDLE group, and requests the Answerer to select 1363 the Offerer's BUNDLE address. 1365 o An SDP Answer, in which the Bob indicates its support for BUNDLE, 1366 selects the offerer's BUNDLE address, selects its own BUNDLE 1367 address and associates it with each BUNDLED m=line within the 1368 BUNDLE group. 1370 Once the Offer/Answer exchange completes, both Alice and Bob each end 1371 up using single RTP Session for both the Media Streams. 1373 Two-Way Secure Audio,Video with BUNDLE support unknown 1375 Alice Bob 1376 | | 1377 | | 1378 | Alice offers BUNDLE support with unique address | 1379 | for the audio and video m-line | 1380 | | 1381 | | 1382 | Offer(Audio:Opus Video:VP8) | 1383 |----------------------------------------------------->| 1384 | |Bob 1385 | |supports 1386 | |BUNDLE, 1387 | |Uses 1388 | |identical 1389 | |address 1390 | Answer(Audio:Opus Video:VP8) | 1391 |<-----------------------------------------------------| 1392 | | 1393 | 2 Way Call with Audio and Video Multiplexed | 1394 |......................................................| 1395 | | 1397 +-----------------------------------+-------------------------------+ 1398 | Offer SDP Contents | RFC#/Notes | 1399 +-----------------------------------+-------------------------------+ 1400 | v=0 | [RFC4566] | 1401 | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | 1402 | s=- | [RFC4566] | 1403 | t=0 0 | [RFC4566] | 1404 | a=group:BUNDLE audio video | [I-D.ietf-mmusic-sdp-bundle-n | 1405 | | egotiation] Alice supports | 1406 | | grouping of m=lines under | 1407 | | BUNDLE semantics | 1408 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 1409 | ****** Audio m=line ********* | ***************************** | 1410 | m=audio 54609 UDP/TLS/RTP/SAVPF | [RFC4566] | 1411 | 109 | | 1412 | c=IN IP4 24.23.204.141 | [RFC4566] | 1413 | a=rtcp:54610 IN IP4 24.23.204.141 | [RFC3605] - RTCP port | 1414 | | different from RTP Port | 1415 | a=mid:audio | [RFC5888] Audio m=line part | 1416 | | of BUNDLE group with a unique | 1417 | | port number | 1418 | a=msid:ma ta | Identifies RTCMediaStream ID | 1419 | | (ma) and RTCMediaStreamTrack | 1420 | | ID (ta) | 1421 | a=sendrecv | [RFC3264] | 1422 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] | 1423 | a=maxptime:120 | [RFC4566] | 1424 | a=ice-ufrag:074c6550 | [RFC5245] | 1425 | a=ice-pwd:a28a397a4c3f31747d1ee34 | [RFC5245] | 1426 | 74af08a068 | | 1427 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] | 1428 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | | 1429 | :04 :BB:05:2F:70:9F:04:A9:0E:05:E | | 1430 | 9:26:33:E8:70:88:A2 | | 1431 | a=setup:actpass | [RFC4145] - Alice can perform | 1432 | | DTLS before Answer arrives | 1433 | a=rtcp-mux | [RFC5761] | 1434 | a=rtcp-rsize | [RFC5506] | 1435 | a=rtcp-fb:109 nack | [RFC5104] | 1436 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 1437 | hdrext:ssrc-audio-level | | 1438 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 1439 | hdrext:sdes:mid | egotiation] | 1440 | a=ssrc:12345 | [RFC5576] | 1441 | cname:EocUG1f0fcg/yvY7 | | 1442 | a=candidate:0 1 UDP 2122194687 | [RFC5245] - RTP host | 1443 | 192.168.1.4 61665 typ host | candidate | 1444 | a=candidate:1 1 UDP 1685987071 | [RFC5245] - RTP Server | 1445 | 24.23.204.141 54609 typ srflx | Reflexive candidate | 1446 | raddr 192.168.1.4 rport 61665 | | 1447 | a=candidate:0 2 UDP 2122194687 | [RFC5245] - RTCP host | 1448 | 192.168.1.4 61666 typ host | candidate | 1449 | a=candidate:1 2 UDP 1685987071 | [RFC5245] - RTCP Server | 1450 | 24.23.204.141 54610 typ srflx | Reflexive candidate | 1451 | raddr 192.168.1.4 rport 61666 | | 1452 | ****** Video m=line ********* | ***************************** | 1453 | m=video 62537 UDP/TLS/RTP/SAVPF | [RFC4566] | 1454 | 120 | | 1455 | c=IN IP4 24.23.204.141 | [RFC4566] | 1456 | a=rtcp:62538 IN IP4 24.23.204.141 | [RFC3605] | 1457 | a=mid:video | [RFC5888] Video m=line part | 1458 | | of the Bundle group with a | 1459 | | unique port number | 1460 | a=msid:ma tb | Identifies RTCMediaStream ID | 1461 | | (ma) and RTCMediaStreamTrack | 1462 | | ID (tb) | 1463 | a=sendrecv | [RFC3264] | 1464 | a=rtpmap:120 VP8/90000 | [I-D.ietf-payload-vp8] | 1465 | a=ice-ufrag:6550074c | [RFC5245] | 1466 | a=ice-pwd:74af08a068a28a397a4c3f3 | [RFC5245] | 1467 | 1747d1ee34 | | 1468 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] | 1469 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | | 1470 | :04 :BB:05:2F:70:9F:04:A9:0E:05:E | | 1471 | 9:26:33:E8:70:88:A2 | | 1472 | a=setup:actpass | [RFC4145] - Alice can perform | 1473 | | DTLS before Answer arrives | 1474 | a=rtcp-mux | [RFC5761] | 1475 | a=rtcp-rsize | [RFC5506] | 1476 | a=rtcp-fb:120 nack | [RFC5104] | 1477 | a=rtcp-fb:120 nack pli | [RFC5104] | 1478 | a=rtcp-fb:120 ccm fir | [RFC5104] | 1479 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 1480 | hdrext:sdes:mid | egotiation] | 1481 | a=ssrc:56789 | [RFC5576] | 1482 | cname:EocUG1f0fcg/yvY7 | | 1483 | a=candidate:0 1 UDP 2122194687 | [RFC5245] - RTP Host | 1484 | 192.168.1.4 61886 typ host | candidate | 1485 | a=candidate:1 1 UDP 1685987071 | [RFC5245] - RTP Server | 1486 | 24.23.204.141 62537 typ srflx | Reflexive candidate | 1487 | raddr 192.168.1.4 rport 61886 | | 1488 | a=candidate:0 2 2122194687 | [RFC5245] - RTCP host | 1489 | 192.168.1.4 61888 typ host | candidate | 1490 | a=candidate:1 2 UDP 1685987071 | [RFC5245] - RTCP Server | 1491 | 24.23.204.141 62538 typ srflx | Reflexive candidate | 1492 | raddr 192.168.1.4 rport 61888 | | 1493 +-----------------------------------+-------------------------------+ 1495 Table 13: 5.2.7 SDP Offer w/BUNDLE 1497 +-----------------------------------+-------------------------------+ 1498 | Answer SDP Contents | RFC#/Notes | 1499 +-----------------------------------+-------------------------------+ 1500 | v=0 | [RFC4566] | 1501 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] | 1502 | s=- | [RFC4566] | 1503 | t=0 0 | [RFC4566] | 1504 | a=group:BUNDLE audio video | [I-D.ietf-mmusic-sdp-bundle-n | 1505 | | egotiation] Bob supports | 1506 | | BUNDLE semantics. | 1507 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 1508 | ****** Audio m=line ********* | ***************************** | 1509 | m=audio 49203 UDP/TLS/RTP/SAVPF | [RFC4566] | 1510 | 109 | | 1511 | c=IN IP4 98.248.92.77 | [RFC4566] | 1512 | a=rtcp:49203 IN IP4 98.248.92.77 | [RFC3605] | 1513 | a=mid:audio | [RFC5888] Audio m=line part | 1514 | | of the BUNDLE group | 1515 | a=msid:ma ta | Identifies RTCMediaStream ID | 1516 | | (ma) and RTCMediaStreamTrack | 1517 | | ID (ta) | 1518 | a=sendrecv | [RFC3264] | 1519 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] | 1520 | a=maxptime:120 | [RFC4566] | 1521 | a=ice-ufrag:c300d85b | [RFC5245] | 1522 | a=ice-pwd:de4e99bd291c325921d5d47 | [RFC5245] | 1523 | efbabd9a2 | | 1524 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] | 1525 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | | 1526 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 1527 | 1:58:D0:A1:2C:19:08 | | 1528 | a=setup:active | [RFC4145] - Bob carries out | 1529 | | DTLS Handshake in parallel | 1530 | a=rtcp-mux | [RFC5761] | 1531 | a=rtcp-rsize | [RFC5506] | 1532 | a=rtcp-fb:109 nack | [RFC5104] | 1533 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 1534 | hdrext:ssrc-audio-level | | 1535 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 1536 | hdrext:sdes:mid | egotiation] | 1537 | a=ssrc:54321 | [RFC5576] | 1538 | cname:Q/NWs1ao1HmN4Xa5 | | 1539 | a=candidate:0 1 UDP 2122194687 | [RFC5245] | 1540 | 192.168.1.7 49203 typ host | | 1541 | a=candidate:1 1 UDP 1685987071 | [RFC5245] | 1542 | 98.248.92.77 51556 typ srflx | | 1543 | raddr 192.168.1.7 rport 49203 | | 1544 | ****** Video m=line ********* | ***************************** | 1545 | m=video 49203 UDP/TLS/RTP/SAVPF | [RFC4566] | 1546 | 120 | | 1547 | c=IN IP4 98.248.92.77 | [RFC4566] | 1548 | a=rtcp:49203 IN IP4 98.248.92.77 | [RFC3605] | 1549 | a=mid:video | [RFC5888] Video m=line part | 1550 | | of the BUNDLE group with the | 1551 | | port from audio line repeated | 1552 | a=msid:ma tb | Identifies RTCMediaStream ID | 1553 | | (ma) and RTCMediaStreamTrack | 1554 | | ID (tb) | 1555 | a=sendrecv | [RFC3264] | 1556 | a=rtpmap:120 VP8/90000 | [I-D.ietf-payload-vp8] | 1557 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] | 1558 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | | 1559 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 1560 | 1:58:D0:A1:2C:19:08 | | 1561 | a=setup:active | [RFC4145] - Bob carries out | 1562 | | DTLS Handshake in parallel | 1563 | a=rtcp-mux | [RFC5761] | 1564 | a=rtcp-rsize | [RFC5506] | 1565 | a=rtcp-fb:120 nack | [RFC5104] | 1566 | a=rtcp-fb:120 nack pli | [RFC5104] | 1567 | a=rtcp-fb:120 ccm fir | [RFC5104] | 1568 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 1569 | hdrext:sdes:mid | egotiation] | 1570 | a=ssrc:98765 | [RFC5576] | 1571 | cname:Q/NWs1ao1HmN4Xa5 | | 1572 +-----------------------------------+-------------------------------+ 1574 Table 14: 5.2.7 SDP Answer w/BUNDLE 1576 5.2.8. Audio, Video and Data Session 1578 This example shows SDP for negotiating a session with Audio, Video 1579 and data streams between Alice and Bob with BUNDLE support known. 1581 Audio,Video,Data with BUNDLE support known 1583 Alice Bob 1584 | | 1585 | | 1586 | Alice indicates BUNDLE support with | 1587 | identical address across all the m=lines | 1588 | | 1589 | | 1590 | Offer(Audio:Opus Video:VP8 Data) | 1591 |------------------------------------------->| 1592 | |Bob does 1593 | |the same 1594 | Answer(Audio:Opus,Video:VP8 Data) | 1595 |<-------------------------------------------| 1596 | | 1597 | | 1598 | | 1599 | Two-way Audio,Video, Data multiplexed | 1600 |............................................| 1601 | | 1602 | | 1604 +-----------------------------------+-------------------------------+ 1605 | Offer SDP Contents | RFC#/Notes | 1606 +-----------------------------------+-------------------------------+ 1607 | v=0 | [RFC4566] | 1608 | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | 1609 | s=- | [RFC4566] | 1610 | t=0 0 | [RFC4566] | 1611 | a=group:BUNDLE audio video data | [I-D.ietf-mmusic-sdp-bundle-n | 1612 | | egotiation] | 1613 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 1614 | ****** Audio m=line ********* | ***************************** | 1615 | m=audio 54609 UDP/TLS/RTP/SAVPF | [RFC4566] | 1616 | 109 | | 1617 | c=IN IP4 24.23.204.141 | [RFC4566] | 1618 | a=rtcp:54609 IN IP4 24.23.204.141 | [RFC3605] | 1619 | a=msid:ma ta | Identifies RTCMediaStream ID | 1620 | | (ma) and RTCMediaStreamTrack | 1621 | | ID (ta) | 1622 | a=mid:audio | [RFC5888] | 1623 | a=sendrecv | [RFC3264] | 1624 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] | 1625 | a=maxptime:120 | [RFC4566] | 1626 | a=ice-ufrag:074c6550 | [RFC5245] | 1627 | a=ice-pwd:a28a397a4c3f31747d1ee34 | [RFC5245] | 1628 | 74af08a068 | | 1629 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] | 1630 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | | 1631 | :04 :BB:05:2F:70:9F:04:A9:0E:05:E | | 1632 | 9:26:33:E8:70:88:A2 | | 1633 | a=setup:actpass | [RFC4145] | 1634 | a=rtcp-mux | [RFC5761] | 1635 | a=rtcp-rsize | [RFC5506] | 1636 | a=rtcp-fb:109 nack | [RFC5104] | 1637 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 1638 | hdrext:ssrc-audio-level | | 1639 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 1640 | hdrext:sdes:mid | egotiation] | 1641 | a=ssrc:12345 | [RFC5576] | 1642 | cname:EocUG1f0fcg/yvY7 | | 1643 | a=candidate:0 1 UDP 2122194687 | [RFC5245] | 1644 | 192.168.1.4 61665 typ host | | 1645 | a=candidate:1 1 UDP 1685987071 | [RFC5245] | 1646 | 24.23.204.141 54609 typ srflx | | 1647 | raddr 192.168.1.4 rport 61665 | | 1648 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 1649 | ****** Video m=line ********* | ***************************** | 1650 | m=video 54609 UDP/TLS/RTP/SAVPF | [RFC4566] | 1651 | 120 | | 1652 | c=IN IP4 24.23.204.141 | [RFC4566] | 1653 | a=rtcp:54609 IN IP4 24.23.204.141 | [RFC3605] | 1654 | a=mid:video | [RFC5888] | 1655 | a=msid:ma tb | Identifies RTCMediaStream ID | 1656 | | (ma) and RTCMediaStreamTrack | 1657 | | ID (tb) | 1658 | a=sendrecv | [RFC3264] | 1659 | a=rtpmap:120 VP8/90000 | [I-D.ietf-payload-vp8] | 1660 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] | 1661 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | | 1662 | :04 :BB:05:2F:70:9F:04:A9:0E:05:E | | 1663 | 9:26:33:E8:70:88:A2 | | 1664 | a=setup:actpass | [RFC4145] | 1665 | a=rtcp-mux | [RFC5761] | 1666 | a=rtcp-rsize | [RFC5506] | 1667 | a=rtcp-fb:120 nack | [RFC5104] | 1668 | a=rtcp-fb:120 nack pli | [RFC5104] | 1669 | a=rtcp-fb:120 ccm fir | [RFC5104] | 1670 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 1671 | hdrext:sdes:mid | egotiation] | 1672 | a=ssrc:56789 | [RFC5576] | 1673 | cname:EocUG1f0fcg/yvY7 | | 1674 | ****** Application m=line | ***************************** | 1675 | ********* | | 1676 | m=application 54609 UDP/DTLS/SCTP | [I-D.ietf-rtcweb-data-channel | 1677 | webrtc-datachannel | ] | 1678 | c=IN IP4 24.23.204.141 | [RFC4566] | 1679 | a=mid:data | [RFC5888] | 1680 | a=sctp-port:5000 | [I-D.ietf-mmusic-sctp-sdp] | 1681 | a=max-message-size:100000 | [I-D.ietf-mmusic-sctp-sdp] | 1682 | a=sendrecv | [RFC3264] | 1683 | a=setup:actpass | [RFC4145] | 1684 | a=connection:new | [RFC4145] | 1685 | a=ice-ufrag:074c6550 | [RFC5245] | 1686 | a=ice-pwd:a28a397a4c3f31747d1ee34 | [RFC5245] | 1687 | 74af08a068 | | 1688 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] | 1689 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | | 1690 | :04 :BB:05:2F:70:9F:04:A9:0E:05:E | | 1691 | 9:26:33:E8:70:88:A2 | | 1692 +-----------------------------------+-------------------------------+ 1694 Table 15: 5.2.8 SDP Offer 1696 +-----------------------------------+-------------------------------+ 1697 | Answer SDP Contents | RFC#/Notes | 1698 +-----------------------------------+-------------------------------+ 1699 | v=0 | [RFC4566] | 1700 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | 1701 | | Information | 1702 | s=- | [RFC4566] | 1703 | t=0 0 | [RFC4566] | 1704 | a=group:BUNDLE audio video data | [I-D.ietf-mmusic-sdp-bundle-n | 1705 | | egotiation] | 1706 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 1707 | ****** Audio m=line ********* | ***************************** | 1708 | m=audio 49203 UDP/TLS/RTP/SAVPF | [RFC4566] | 1709 | 109 | | 1710 | c=IN IP4 98.248.92.77 | [RFC4566] | 1711 | a=rtcp:49203 IN IP4 98.248.92.77 | [RFC3605] | 1712 | a=msid:ma ta | Identifies RTCMediaStream ID | 1713 | | (ma) and RTCMediaStreamTrack | 1714 | | ID (ta) | 1715 | a=mid:audio | [RFC5888] | 1716 | a=sendrecv | [RFC3264] | 1717 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] | 1718 | a=maxptime:120 | [RFC4566] | 1719 | a=ice-ufrag:c300d85b | [RFC5245] | 1720 | a=ice-pwd:de4e99bd291c325921d5d47 | [RFC5245] | 1721 | efbabd9a2 | | 1722 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] | 1723 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | | 1724 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 1725 | 1:58:D0:A1:2C:19:08 | | 1726 | a=setup:active | [RFC4145] | 1727 | a=rtcp-mux | [RFC5761] | 1728 | a=rtcp-rsize | [RFC5506] | 1729 | a=rtcp-fb:109 nack | [RFC5104] | 1730 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 1731 | hdrext:ssrc-audio-level | | 1732 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 1733 | hdrext:sdes:mid | egotiation] | 1734 | a=ssrc:54321 | [RFC5576] | 1735 | cname:Q/NWs1ao1HmN4Xa5 | | 1736 | a=candidate:0 1 UDP 2122194687 | [RFC5245] | 1737 | 192.168.1.7 51556 typ host | | 1738 | a=candidate:1 1 UDP 1685987071 | [RFC5245] | 1739 | 98.248.92.77 49203 typ srflx | | 1740 | raddr 192.168.1.7 rport 51556 | | 1741 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 1742 | ****** Video m=line ********* | ***************************** | 1743 | m=video 49203 UDP/TLS/RTP/SAVPF | [RFC4566] | 1744 | 120 | | 1745 | c=IN IP4 98.248.92.77 | [RFC4566] | 1746 | a=rtcp:49203 IN IP4 98.248.92.77 | [RFC3605] | 1747 | a=mid:video | [RFC5888] | 1748 | a=msid:ma tb | Identifies RTCMediaStream ID | 1749 | | (ma) and RTCMediaStreamTrack | 1750 | | ID (tb) | 1751 | a=sendrecv | [RFC3264] | 1752 | a=rtpmap:120 VP8/90000 | [I-D.ietf-payload-vp8] | 1753 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] | 1754 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | | 1755 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 1756 | 1:58:D0:A1:2C:19:08 | | 1757 | a=setup:active | [RFC4145] | 1758 | a=rtcp-mux | [RFC5761] | 1759 | a=rtcp-rsize | [RFC5506] | 1760 | a=rtcp-fb:120 nack | [RFC5104] | 1761 | a=rtcp-fb:120 nack pli | [RFC5104] | 1762 | a=rtcp-fb:120 ccm fir | [RFC5104] | 1763 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 1764 | hdrext:sdes:mid | egotiation] | 1765 | a=ssrc:98765 | [RFC5576] | 1766 | cname:Q/NWs1ao1HmN4Xa5 | | 1767 | ****** Application m=line | ***************************** | 1768 | ********* | | 1769 | m=application 49203 UDP/DTLS/SCTP | [I-D.ietf-mmusic-sctp-sdp] | 1770 | webrtc-datachannel | | 1771 | c=IN IP4 98.248.92.771 | [RFC4566] | 1772 | a=mid:data | [RFC5888] | 1773 | a=sctp-port:5000 | [I-D.ietf-mmusic-sctp-sdp] | 1774 | a=max-message-size:100000 | [I-D.ietf-mmusic-sctp-sdp] | 1775 | a=setup:active | [RFC4145] | 1776 | a=sendrecv | [RFC3264] | 1777 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] | 1778 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | | 1779 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 1780 | 1:58:D0:A1:2C:19:08 | | 1781 +-----------------------------------+-------------------------------+ 1783 Table 16: 5.2.8 SDP Answer 1785 5.2.9. Audio, Video Session with BUNDLE Unsupported 1787 This use-case illustrates SDP Offer/Answer exchange where the far-end 1788 (Bob) either doesn't support media bundling or doesn't want to group 1789 m=lines over a single 5-tuple. 1791 The same is indicated by dropping the "a=group:BUNDLE" line and 1792 BUNDLE RTP header extension in the Answer SDP. 1794 On successful Offer/Answer exchange, Alice and Bob each end up using 1795 unique 5-tuple for audio and video media streams respectively. 1797 Two-Way Secure Audio,Video with BUNDLE Unsupported 1799 Alice Bob 1800 | | 1801 | | 1802 | Alice offers BUNDLE support with unique address | 1803 | for the audio and video m-line | 1804 | | 1805 | | 1806 | Offer(Audio:Opus Video:VP8) | 1807 |----------------------------------------------------->| 1808 | |Bob 1809 | |doesn't 1810 | |support 1811 | |BUNDLE 1812 | Answer(Audio:Opus Video:VP8) | 1813 |<-----------------------------------------------------| 1814 | |Bob uses 1815 | |unique 1816 | |addresses 1817 | |across the 1818 | |m=lines 1819 | | 1820 |2Way Call with Audio and Video on different 5-tuples | 1821 |......................................................| 1822 | | 1823 | | 1825 +-----------------------------------+-------------------------------+ 1826 | Offer SDP Contents | RFC#/Notes | 1827 +-----------------------------------+-------------------------------+ 1828 | v=0 | [RFC4566] | 1829 | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | 1830 | s=- | [RFC4566] | 1831 | t=0 0 | [RFC4566] | 1832 | a=group:BUNDLE audio video | [I-D.ietf-mmusic-sdp-bundle-n | 1833 | | egotiation] Alice supports | 1834 | | grouping of m=lines under | 1835 | | BUNDLE semantics | 1836 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 1837 | ****** Audio m=line ********* | ***************************** | 1838 | m=audio 54609 UDP/TLS/RTP/SAVPF | [RFC4566] | 1839 | 109 | | 1840 | c=IN IP4 24.23.204.141 | [RFC4566] | 1841 | a=rtcp:55232 IN IP4 24.23.204.141 | [RFC3605] - RTCP port | 1842 | | different from RTP port | 1843 | a=mid:audio | [RFC5888] Audio m=line part | 1844 | | of BUNDLE group with a unique | 1845 | | port number | 1846 | a=msid:ma ta | Identifies RTCMediaStream ID | 1847 | | (ma) and RTCMediaStreamTrack | 1848 | | ID (ta) | 1849 | a=sendrecv | [RFC3264] | 1850 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] | 1851 | a=maxptime:120 | [RFC4566] | 1852 | a=ice-ufrag:074c6550 | [RFC5245] | 1853 | a=ice-pwd:a28a397a4c3f31747d1ee34 | [RFC5245] | 1854 | 74af08a068 | | 1855 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] | 1856 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | | 1857 | :04 :BB:05:2F:70:9F:04:A9:0E:05:E | | 1858 | 9:26:33:E8:70:88:A2 | | 1859 | a=setup:actpass | [RFC4145] - Alice can perform | 1860 | | DTLS before Answer arrives | 1861 | a=rtcp-mux | [RFC5761] | 1862 | a=rtcp-rsize | [RFC5506] | 1863 | a=rtcp-fb:109 nack | [RFC5104] | 1864 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 1865 | hdrext:ssrc-audio-level | | 1866 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 1867 | hdrext:sdes:mid | egotiation] | 1868 | a=ssrc:12345 | [RFC5576] | 1869 | cname:EocUG1f0fcg/yvY7 | | 1870 | a=candidate:0 1 UDP 2122194687 | [RFC5245] | 1871 | 192.168.1.4 61665 typ host | | 1872 | a=candidate:1 1 UDP 1685987071 | [RFC5245] | 1873 | 24.23.204.141 54609 typ srflx | | 1874 | raddr 192.168.1.4 rport 61665 | | 1875 | a=candidate:0 2 UDP 2122194687 | [RFC5245] | 1876 | 192.168.1.4 61666 typ host | | 1877 | a=candidate:1 2 UDP 1685987071 | [RFC5245] | 1878 | 24.23.204.141 55232 typ srflx | | 1879 | raddr 192.168.1.4 rport 61666 | | 1880 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 1881 | ****** Video m=line ********* | ***************************** | 1882 | m=video 54332 UDP/TLS/RTP/SAVPF | [RFC4566] | 1883 | 120 | | 1884 | c=IN IP4 24.23.204.141 | [RFC4566] | 1885 | a=rtcp:60052 IN IP4 24.23.204.141 | [RFC3605] | 1886 | a=mid:video | [RFC5888] Video m=line part | 1887 | | of the BUNDLE group with a | 1888 | | unique port number | 1889 | a=msid:ma tb | Identifies RTCMediaStream ID | 1890 | | (ma) and RTCMediaStreamTrack | 1891 | | ID (tb) | 1892 | a=sendrecv | [RFC3264] | 1893 | a=rtpmap:120 VP8/90000 | [I-D.ietf-payload-vp8] | 1894 | a=ice-ufrag:7872093 | [RFC5245] | 1895 | a=ice-pwd:ee3474af08a068a28a397a4 | [RFC5245] | 1896 | c3f31747d1 | | 1897 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] | 1898 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | | 1899 | :04 :BB:05:2F:70:9F:04:A9:0E:05:E | | 1900 | 9:26:33:E8:70:88:A2 | | 1901 | a=setup:actpass | [RFC4145] - Alice can perform | 1902 | | DTLS before Answer arrives | 1903 | a=rtcp-mux | [RFC5761] | 1904 | a=rtcp-rsize | [RFC5506] | 1905 | a=rtcp-fb:120 nack | [RFC5104] | 1906 | a=rtcp-fb:120 nack pli | [RFC5104] | 1907 | a=rtcp-fb:120 ccm fir | [RFC5104] | 1908 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 1909 | hdrext:sdes:mid | egotiation] | 1910 | a=ssrc:56789 | [RFC5576] | 1911 | cname:EocUG1f0fcg/yvY7 | | 1912 | a=candidate:0 1 UDP 2122194687 | [RFC5245] | 1913 | 192.168.1.4 71775 typ host | | 1914 | a=candidate:1 1 UDP 1685987071 | [RFC5245] | 1915 | 24.23.204.141 54332 typ srflx | | 1916 | raddr 192.168.1.4 rport 71775 | | 1917 | a=candidate:0 2 2122194687 | [RFC5245] | 1918 | 192.168.1.4 71776 typ host | | 1919 | a=candidate:1 2 UDP 1685987071 | [RFC5245] | 1920 | 24.23.204.141 60052 typ srflx | | 1921 | raddr 192.168.1.4 rport 71776 | | 1922 +-----------------------------------+-------------------------------+ 1924 Table 17: 5.2.9 SDP Offer w/BUNDLE 1926 +----------------------------------------+--------------------------+ 1927 | Answer SDP Contents | RFC#/Notes | 1928 +----------------------------------------+--------------------------+ 1929 | v=0 | [RFC4566] | 1930 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] | 1931 | s=- | [RFC4566] | 1932 | t=0 0 | [RFC4566] | 1933 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle | 1934 | | -ice] | 1935 | ****** Audio m=line ********* | ************************ | 1936 | | ***** | 1937 | m=audio 53214 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 1938 | c=IN IP4 98.248.92.77 | [RFC4566] | 1939 | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] | 1940 | a=msid:ma ta | Identifies | 1941 | | RTCMediaStream ID (ma) | 1942 | | and RTCMediaStreamTrack | 1943 | | ID (ta) | 1944 | a=sendrecv | [RFC3264] | 1945 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-op | 1946 | | us] | 1947 | a=maxptime:120 | [RFC4566] | 1948 | a=ice-ufrag:c300d85b | [RFC5245] | 1949 | a=ice- | [RFC5245] | 1950 | pwd:de4e99bd291c325921d5d47efbabd9a2 | | 1951 | a=fingerprint:sha-256 6B:8B:F0:65:5F:7 | [RFC5245] | 1952 | 8:E2:51:3B:AC:6F:F3:3F:46:1B:35 :DC:B8 | | 1953 | :5F:64:1A:24:C2:43:F0:A1:58:D0:A1:2C:1 | | 1954 | 9:08 | | 1955 | a=setup:active | [RFC4145] - Bob carries | 1956 | | out DTLS Handshake in | 1957 | | parallel | 1958 | a=rtcp-rsize | [RFC5506] | 1959 | a=rtcp-fb:109 nack | [RFC5104] | 1960 | a=extmap:1 urn:ietf:params:rtp-hdrext | [RFC6464] | 1961 | :ssrc-audio-level | | 1962 | a=ssrc:54321 cname:Q/NWs1ao1HmN4Xa5 | [RFC5576] | 1963 | a=candidate:0 1 UDP 2122194687 | [RFC5245] | 1964 | 192.168.1.7 51556 typ host | | 1965 | a=candidate:1 1 UDP 1685987071 | [RFC5245] | 1966 | 98.248.92.77 53214 typ srflx raddr | | 1967 | 192.168.1.7 rport 51556 | | 1968 | a=candidate:0 2 UDP 2122194687 | [RFC5245] | 1969 | 192.168.1.7 51558 typ host | | 1970 | a=candidate:1 2 UDP 1685987071 | [RFC5245] | 1971 | 98.248.92.77 60065 typ srflx raddr | | 1972 | 192.168.1.7 rport 51558 | | 1973 | ****** Video m=line ********* | ************************ | 1974 | | ***** | 1975 | m=video 58679 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | 1976 | c=IN IP4 98.248.92.77 | [RFC4566] | 1977 | a=rtcp:56507 IN IP4 98.248.92.77 | [RFC3605] | 1978 | a=msid:ma tb | Identifies | 1979 | | RTCMediaStream ID (ma) | 1980 | | and RTCMediaStreamTrack | 1981 | | ID (tb) | 1982 | a=sendrecv | [RFC3264] | 1983 | a=rtpmap:120 VP8/90000 | [I-D.ietf-payload-vp8] | 1984 | a=ice-ufrag:85bC300 | [RFC5245] | 1985 | a=ice- | [RFC5245] | 1986 | pwd:325921d5d47efbabd9a2de4e99bd291c | | 1987 | a=fingerprint:sha-256 6B:8B:F0:65:5F:7 | [RFC5245] | 1988 | 8:E2:51:3B:AC:6F:F3:3F:46:1B:35 :DC:B8 | | 1989 | :5F:64:1A:24:C2:43:F0:A1:58:D0:A1:2C:1 | | 1990 | 9:08 | | 1991 | a=setup:active | [RFC4145] - Bob carries | 1992 | | out DTLS Handshake in | 1993 | | parallel | 1994 | a=rtcp-rsize | [RFC5506] | 1995 | a=rtcp-fb:120 nack | [RFC5104] | 1996 | a=rtcp-fb:120 nack pli | [RFC5104] | 1997 | a=rtcp-fb:120 ccm fir | [RFC5104] | 1998 | a=ssrc:98765 cname:Q/NWs1ao1HmN4Xa5 | [RFC5576] | 1999 | a=candidate:0 1 UDP 2122194687 | [RFC5245] | 2000 | 192.168.1.7 61556 typ host | | 2001 | a=candidate:1 1 UDP 1685987071 | [RFC5245] | 2002 | 98.248.92.77 58679 typ srflx raddr | | 2003 | 192.168.1.7 rport 61556 | | 2004 | a=candidate:0 1 UDP 2122194687 | [RFC5245] | 2005 | 192.168.1.7 61558 typ host | | 2006 | a=candidate:1 1 UDP 1685987071 | [RFC5245] | 2007 | 98.248.92.77 56507 typ srflx raddr | | 2008 | 192.168.1.7 rport 61558 | | 2009 +----------------------------------------+--------------------------+ 2011 Table 18: 5.2.9 SDP Answer without BUNDLE 2013 5.2.10. Audio, Video BUNDLED, but Data (Not BUNDLED) 2015 This example show-cases SDP for negotiating a session with Audio, 2016 Video and data streams between Alice and Bob with data stream not 2017 being part of the BUNDLE group. This is shown by assigning unique 2018 port for data media section and not adding the "mid" identification 2019 tag to the BUNDLE group. 2021 Audio, Video, with Data (Not in BUNDLE) 2023 Alice Bob 2024 | | 2025 | | 2026 |Alice wants to multiplex audio, video but not data | 2027 | | 2028 | | 2029 | Offer(Audio:Opus Video:VP8, Data(not in BUNDLE)) | 2030 |----------------------------------------------------->| 2031 | | 2032 | | 2033 | Answer(Audio:Opus Video:VP8, Data) | 2034 |<-----------------------------------------------------| 2035 | | 2036 | | 2037 |2 Way Call with Audio, Video Multiplexed except data | 2038 |......................................................| 2039 | | 2041 +-----------------------------------+-------------------------------+ 2042 | Offer SDP Contents | RFC#/Notes | 2043 +-----------------------------------+-------------------------------+ 2044 | v=0 | [RFC4566] | 2045 | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | 2046 | s=- | [RFC4566] | 2047 | t=0 0 | [RFC4566] | 2048 | a=group:BUNDLE audio video | [I-D.ietf-mmusic-sdp-bundle-n | 2049 | | egotiation] Alice wants to | 2050 | | BUNDLE only audio and video | 2051 | | media. | 2052 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 2053 | ****** Audio m=line ********* | ***************************** | 2054 | m=audio 54609 UDP/TLS/RTP/SAVPF | [RFC4566] | 2055 | 109 | | 2056 | c=IN IP4 24.23.204.141 | [RFC4566] | 2057 | a=rtcp:54609 IN IP4 24.23.204.141 | [RFC3605] | 2058 | a=mid:audio | [RFC5888] | 2059 | a=msid:ma ta | Identifies RTCMediaStream ID | 2060 | | (ma) and RTCMediaStreamTrack | 2061 | | ID (ta) | 2062 | a=sendrecv | [RFC3264] | 2063 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] | 2064 | a=maxptime:120 | [RFC4566] | 2065 | a=ice-ufrag:074c6550 | [RFC5245] | 2066 | a=ice-pwd:a28a397a4c3f31747d1ee34 | [RFC5245] | 2067 | 74af08a068 | | 2068 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] | 2069 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | | 2070 | :04 :BB:05:2F:70:9F:04:A9:0E:05:E | | 2071 | 9:26:33:E8:70:88:A2 | | 2072 | a=setup:actpass | [RFC4145] | 2073 | a=rtcp-mux | [RFC5761] | 2074 | a=rtcp-rsize | [RFC5506] | 2075 | a=rtcp-fb:109 nack | [RFC5104] | 2076 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 2077 | hdrext:ssrc-audio-level | | 2078 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 2079 | hdrext:sdes:mid | egotiation] | 2080 | a=ssrc:12345 | [RFC5576] | 2081 | cname:EocUG1f0fcg/yvY7 | | 2082 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 2083 | 192.168.1.4 54609 typ host | | 2084 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 2085 | ****** Video m=line ********* | ***************************** | 2086 | m=video 54609 UDP/TLS/RTP/SAVPF | [RFC4566] | 2087 | 120 | | 2088 | c=IN IP4 24.23.204.141 | [RFC4566] | 2089 | a=rtcp:54609 IN IP4 24.23.204.141 | [RFC3605] | 2090 | a=mid:video | [RFC5888] | 2091 | a=msid:ma tb | Identifies RTCMediaStream ID | 2092 | | (ma) and RTCMediaStreamTrack | 2093 | | ID (tb) | 2094 | a=sendrecv | [RFC3264] | 2095 | a=rtpmap:120 VP8/90000 | [I-D.ietf-payload-vp8] | 2096 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] | 2097 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | | 2098 | :04 :BB:05:2F:70:9F:04:A9:0E:05:E | | 2099 | 9:26:33:E8:70:88:A2 | | 2100 | a=setup:actpass | [RFC4145] | 2101 | a=rtcp-mux | [RFC5761] | 2102 | a=rtcp-rsize | [RFC5506] | 2103 | a=rtcp-fb:120 nack | [RFC5104] | 2104 | a=rtcp-fb:120 nack pli | [RFC5104] | 2105 | a=rtcp-fb:120 ccm fir | [RFC5104] | 2106 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 2107 | hdrext:sdes:mid | egotiation] | 2108 | a=ssrc:56789 | [RFC5576] | 2109 | cname:EocUG1f0fcg/yvY7 | | 2110 | ****** Application m=line | ***************************** | 2111 | ********* | | 2112 | m=application 10000 UDP/DTLS/SCTP | [I-D.ietf-rtcweb-data-channel | 2113 | webrtc-datachannel | ] | 2114 | c=IN IP4 24.23.204.141 | [RFC4566] | 2115 | a=mid:data | [RFC5888] | 2116 | a=sctp-port:5000 | [I-D.ietf-mmusic-sctp-sdp] | 2117 | a=max-message-size:100000 | [I-D.ietf-mmusic-sctp-sdp] | 2118 | a=sendrecv | [RFC3264] | 2119 | a=setup:actpass | [RFC4145] | 2120 | a=connection:new | [RFC4145] | 2121 | a=ice-ufrag:89819013 | [RFC5245] | 2122 | a=ice-pwd:1747d1ee3474af08a068a28 | [RFC5245] | 2123 | a397a4c3f3 | | 2124 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] | 2125 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | | 2126 | :04 :BB:05:2F:70:9F:04:A9:0E:05:E | | 2127 | 9:26:33:E8:70:88:A2 | | 2128 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 2129 | 192.168.1.4 10000 typ host | | 2130 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 2131 +-----------------------------------+-------------------------------+ 2133 Table 19: 5.2.10 SDP Offer 2135 +-----------------------------------+-------------------------------+ 2136 | Answer SDP Contents | RFC#/Notes | 2137 +-----------------------------------+-------------------------------+ 2138 | v=0 | [RFC4566] | 2139 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | 2140 | | Information | 2141 | s=- | [RFC4566] | 2142 | t=0 0 | [RFC4566] | 2143 | a=group:BUNDLE audio video | [I-D.ietf-mmusic-sdp-bundle-n | 2144 | | egotiation] | 2145 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 2146 | ****** Audio m=line ********* | ***************************** | 2147 | m=audio 49203 UDP/TLS/RTP/SAVPF | [RFC4566] | 2148 | 109 | | 2149 | c=IN IP4 98.248.92.77 | [RFC4566] | 2150 | a=rtcp:49203 IN IP4 98.248.92.77 | [RFC3605] | 2151 | a=mid:audio | [RFC5888] | 2152 | a=msid:ma ta | Identifies RTCMediaStream ID | 2153 | | (ma) and RTCMediaStreamTrack | 2154 | | ID (ta) | 2155 | a=sendrecv | [RFC3264] | 2156 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] | 2157 | a=maxptime:120 | [RFC4566] | 2158 | a=ice-ufrag:c300d85b | [RFC5245] | 2159 | a=ice-pwd:de4e99bd291c325921d5d47 | [RFC5245] | 2160 | efbabd9a2 | | 2161 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] | 2162 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | | 2163 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 2164 | 1:58:D0:A1:2C:19:08 | | 2165 | a=setup:active | [RFC4145] | 2166 | a=rtcp-mux | [RFC5761] | 2167 | a=rtcp-rsize | [RFC5506] | 2168 | a=rtcp-fb:109 nack | [RFC5104] | 2169 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 2170 | hdrext:ssrc-audio-level | | 2171 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 2172 | hdrext:sdes:mid | egotiation] | 2173 | a=ssrc:54321 | [RFC5576] | 2174 | cname:Q/NWs1ao1HmN4Xa5 | | 2175 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 2176 | 192.168.1.7 49203 typ host | | 2177 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 2178 | ****** Video m=line ********* | ***************************** | 2179 | m=video 49203 UDP/TLS/RTP/SAVPF | [RFC4566] | 2180 | 120 | | 2181 | c=IN IP4 98.248.92.771 | [RFC4566] | 2182 | a=rtcp:49203 IN IP4 98.248.92.77 | [RFC3605] | 2183 | a=mid:video | [RFC5888] | 2184 | a=msid:ma tb | Identifies RTCMediaStream ID | 2185 | | (ma) and RTCMediaStreamTrack | 2186 | | ID (tb) | 2187 | a=sendrecv | [RFC3264] | 2188 | a=rtpmap:120 VP8/90000 | [I-D.ietf-payload-vp8] | 2189 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] | 2190 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | | 2191 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 2192 | 1:58:D0:A1:2C:19:08 | | 2193 | a=setup:active | [RFC4145] | 2194 | a=rtcp-mux | [RFC5761] | 2195 | a=rtcp-rsize | [RFC5506] | 2196 | a=rtcp-fb:120 nack | [RFC5104] | 2197 | a=rtcp-fb:120 nack pli | [RFC5104] | 2198 | a=rtcp-fb:120 ccm fir | [RFC5104] | 2199 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 2200 | hdrext:sdes:mid | egotiation] | 2201 | a=ssrc:98765 | [RFC5576] | 2202 | cname:Q/NWs1ao1HmN4Xa5 | | 2203 | ****** Application m=line | ***************************** | 2204 | ********* | | 2205 | m=application 20000 UDP/DTLS/SCTP | [I-D.ietf-mmusic-sctp-sdp] | 2206 | webrtc-datachannel | | 2207 | c=IN IP4 98.248.92.77 | [RFC4566] | 2208 | a=mid:data | [RFC5888] | 2209 | a=sctp-port:5000 | [I-D.ietf-mmusic-sctp-sdp] | 2210 | a=max-message-size:100000 | [I-D.ietf-mmusic-sctp-sdp] | 2211 | a=setup:active | [RFC4145] | 2212 | a=sendrecv | [RFC3264] | 2213 | a=ice-ufrag:991Ca2a5e | [RFC5245] | 2214 | a=ice-pwd:921d5d47efbabd9a2de4e99 | [RFC5245] | 2215 | bd291c325 | | 2216 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] | 2217 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | | 2218 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 2219 | 1:58:D0:A1:2C:19:08 | | 2220 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 2221 | 192.168.1.7 20000 typ host | | 2222 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 2223 +-----------------------------------+-------------------------------+ 2225 Table 20: 5.2.10 SDP Answer 2227 5.2.11. Audio Only, Add Video to BUNDLE 2229 This example involves 2 Offer/Answer exchanges. First one is used to 2230 negotiate and setup BUNDLE support for Audio-only session followed by 2231 an updated Offer/Answer exchange to add video stream to the ongoing 2232 session. Also the newly added video stream is BUNDLED with the audio 2233 stream. 2235 Audio Only , Add Video and BUNDLE 2237 Alice Bob 2238 | | 2239 | | 2240 | Alice indicates support for BUNDLE | 2241 | | 2242 | Offer(Audio:Opus) | 2243 |----------------------------------------------------->| 2244 | |Bob 2245 | |supports 2246 | |BUNDLE 2247 | Answer(Audio:Opus) | 2248 |<-----------------------------------------------------| 2249 | |Alice adds 2250 | |video stream 2251 | Updated Offer(Audio:Opus, Video:VP8) |to BUNDLE 2252 |----------------------------------------------------->| 2253 | | 2254 | |Bob accepts 2255 | Updated Answer(Audio:Opus, Video:VP8) | 2256 |<-----------------------------------------------------| 2257 | | 2258 | 2Way Call with Audio and Video Multiplexed | 2259 |......................................................| 2260 | | 2261 | | 2263 +-----------------------------------+-------------------------------+ 2264 | Offer SDP Contents | RFC#/Notes | 2265 +-----------------------------------+-------------------------------+ 2266 | v=0 | [RFC4566] | 2267 | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | 2268 | s=- | [RFC4566] | 2269 | t=0 0 | [RFC4566] | 2270 | a=group:BUNDLE audio | [I-D.ietf-mmusic-sdp-bundle-n | 2271 | | egotiation] Alice adds audio | 2272 | | m=line to the BUNDLE group | 2273 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 2274 | ****** Audio m=line ********* | ***************************** | 2275 | m=audio 54609 UDP/TLS/RTP/SAVPF | [RFC4566] | 2276 | 109 | | 2277 | c=IN IP4 24.23.204.141 | [RFC4566] | 2278 | a=rtcp:54609 IN IP4 24.23.204.141 | [RFC3605] | 2279 | a=mid:audio | [RFC5888] | 2280 | a=msid:ma ta | Identifies RTCMediaStream ID | 2281 | | (ma) and RTCMediaStreamTrack | 2282 | | ID (ta) | 2283 | a=sendrecv | [RFC3264] | 2284 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] | 2285 | a=maxptime:120 | [RFC4566] | 2286 | a=ice-ufrag:074c6550 | [RFC5245] | 2287 | a=ice-pwd:a28a397a4c3f31747d1ee34 | [RFC5245] | 2288 | 74af08a068 | | 2289 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] | 2290 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | | 2291 | :04 :BB:05:2F:70:9F:04:A9:0E:05:E | | 2292 | 9:26:33:E8:70:88:A2 | | 2293 | a=setup:actpass | [RFC4145] | 2294 | a=rtcp-mux | [RFC5761] | 2295 | a=rtcp-rsize | [RFC5506] | 2296 | a=rtcp-fb:109 nack | [RFC5104] | 2297 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 2298 | hdrext:ssrc-audio-level | | 2299 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 2300 | hdrext:sdes:mid | egotiation] | 2301 | a=ssrc:12345 | [RFC5576] | 2302 | cname:EocUG1f0fcg/yvY7 | | 2303 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 2304 | 192.168.1.4 61665 typ host | | 2305 | a=candidate:1 1 UDP 694302207 | [RFC5245] | 2306 | 24.23.204.141 54609 typ srflx | | 2307 | raddr 192.168.1.4 rport 61665 | | 2308 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 2309 +-----------------------------------+-------------------------------+ 2311 Table 21: 5.2.11 SDP Offer 2313 +-----------------------------------+-------------------------------+ 2314 | Answer SDP Contents | RFC#/Notes | 2315 +-----------------------------------+-------------------------------+ 2316 | v=0 | [RFC4566] | 2317 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | 2318 | | Information | 2319 | s=- | [RFC4566] | 2320 | t=0 0 | [RFC4566] | 2321 | a=group:BUNDLE audio | [I-D.ietf-mmusic-sdp-bundle-n | 2322 | | egotiation] | 2323 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 2324 | ****** Audio m=line ********* | ***************************** | 2325 | m=audio 49203 UDP/TLS/RTP/SAVPF | [RFC4566] | 2326 | 109 | | 2327 | c=IN IP4 98.248.92.77 | [RFC4566] | 2328 | a=rtcp:49203 IN IP4 98.248.92.77 | [RFC3605] | 2329 | a=mid:audio | [RFC5888] | 2330 | a=msid:ma ta | Identifies RTCMediaStream ID | 2331 | | (ma) and RTCMediaStreamTrack | 2332 | | ID (ta) | 2333 | a=sendrecv | [RFC3264] | 2334 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] | 2335 | a=maxptime:120 | [RFC4566] | 2336 | a=ice-ufrag:c300d85b | [RFC5245] | 2337 | a=ice-pwd:de4e99bd291c325921d5d47 | [RFC5245] | 2338 | efbabd9a2 | | 2339 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] | 2340 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | | 2341 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 2342 | 1:58:D0:A1:2C:19:08 | | 2343 | a=setup:active | [RFC4145] | 2344 | a=rtcp-mux | [RFC5761] | 2345 | a=rtcp-rsize | [RFC5506] | 2346 | a=rtcp-fb:109 nack | [RFC5104] | 2347 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 2348 | hdrext:ssrc-audio-level | | 2349 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 2350 | hdrext:sdes:mid | egotiation] | 2351 | a=ssrc:54321 | [RFC5576] | 2352 | cname:Q/NWs1ao1HmN4Xa5 | | 2353 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 2354 | 192.168.1.7 51556 typ host | | 2355 | a=candidate:1 1 UDP 1694302207 | [RFC5245] | 2356 | 98.248.92.77 49203 typ srflx | | 2357 | raddr 192.168.1.7 rport 51556 | | 2358 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 2359 +-----------------------------------+-------------------------------+ 2361 Table 22: 5.2.10 SDP Answer 2363 +-----------------------------------+-------------------------------+ 2364 | Updated Offer SDP Contents | RFC#/Notes | 2365 +-----------------------------------+-------------------------------+ 2366 | v=1 | Version number incremented | 2367 | | [RFC4566] | 2368 | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | 2369 | s=- | [RFC4566] | 2370 | t=0 0 | [RFC4566] | 2371 | a=group:BUNDLE audio video | [I-D.ietf-mmusic-sdp-bundle-n | 2372 | | egotiation] | 2373 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 2374 | ****** Audio m=line ********* | ***************************** | 2375 | m=audio 54609 UDP/TLS/RTP/SAVPF | [RFC4566] | 2376 | 109 | | 2377 | c=IN IP4 24.23.204.141 | [RFC4566] | 2378 | a=rtcp:54609 IN IP4 24.23.204.141 | [RFC3605] | 2379 | a=mid:audio | [RFC5888] | 2380 | a=msid:ma ta | Identifies RTCMediaStream ID | 2381 | | (ma) and RTCMediaStreamTrack | 2382 | | ID (ta) | 2383 | a=sendrecv | [RFC3264] | 2384 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] | 2385 | a=maxptime:120 | [RFC4566] | 2386 | a=ice-ufrag:074c6550 | [RFC5245] | 2387 | a=ice-pwd:a28a397a4c3f31747d1ee34 | [RFC5245] | 2388 | 74af08a068 | | 2389 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] | 2390 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | | 2391 | :04 :BB:05:2F:70:9F:04:A9:0E:05:E | | 2392 | 9:26:33:E8:70:88:A2 | | 2393 | a=setup:actpass | [RFC4145] | 2394 | a=rtcp-mux | [RFC5761] | 2395 | a=rtcp-rsize | [RFC5506] | 2396 | a=rtcp-fb:109 nack | [RFC5104] | 2397 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 2398 | hdrext:ssrc-audio-level | | 2399 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 2400 | hdrext:sdes:mid | egotiation] | 2401 | a=ssrc:12345 | [RFC5576] | 2402 | cname:EocUG1f0fcg/yvY7 | | 2403 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 2404 | 192.168.1.4 61665 typ host | | 2405 | a=candidate:1 1 UDP 694302207 | [RFC5245] | 2406 | 24.23.204.141 54609 typ srflx | | 2407 | raddr 192.168.1.4 rport 61665 | | 2408 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 2409 | ****** Video m=line ********* | ***************************** | 2410 | m=video 54609 UDP/TLS/RTP/SAVPF | [RFC4566] | 2411 | 120 | | 2412 | c=IN IP4 24.23.204.141 | [RFC4566] | 2413 | a=rtcp:54609 IN IP4 24.23.204.141 | [RFC3605] | 2414 | a=mid:video | [RFC5888] | 2415 | a=msid:ma tb | Identifies RTCMediaStream ID | 2416 | | (ma) and RTCMediaStreamTrack | 2417 | | ID (tb) | 2418 | a=sendrecv | [RFC3264] | 2419 | a=rtpmap:120 VP8/90000 | [I-D.ietf-payload-vp8] | 2420 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] | 2421 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | | 2422 | :04 :BB:05:2F:70:9F:04:A9:0E:05:E | | 2423 | 9:26:33:E8:70:88:A2 | | 2424 | a=setup:actpass | [RFC4145] | 2425 | a=rtcp-mux | [RFC5761] | 2426 | a=rtcp-rsize | [RFC5506] | 2427 | a=rtcp-fb:120 nack | [RFC5104] | 2428 | a=rtcp-fb:120 nack pli | [RFC5104] | 2429 | a=rtcp-fb:120 ccm fir | [RFC5104] | 2430 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 2431 | hdrext:sdes:mid | egotiation] | 2432 | a=ssrc:56789 | [RFC5576] | 2433 | cname:EocUG1f0fcg/yvY7 | | 2434 +-----------------------------------+-------------------------------+ 2436 Table 23: 5.2.11 SDP Updated Offer 2438 +-----------------------------------+-------------------------------+ 2439 | Updated Answer SDP Contents | RFC#/Notes | 2440 +-----------------------------------+-------------------------------+ 2441 | v=1 | [RFC4566] Version number | 2442 | | incremented | 2443 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | 2444 | | Information | 2445 | s=- | [RFC4566] | 2446 | t=0 0 | [RFC4566] | 2447 | a=group:BUNDLE audio video | [I-D.ietf-mmusic-sdp-bundle-n | 2448 | | egotiation] | 2449 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 2450 | ****** Audio m=line ********* | ***************************** | 2451 | m=audio 49203 UDP/TLS/RTP/SAVPF | [RFC4566] | 2452 | 109 | | 2453 | c=IN IP4 98.248.92.77 | [RFC4566] | 2454 | a=rtcp:49203 IN IP4 98.248.92.77 | [RFC3605] | 2455 | a=mid:audio | [RFC5888] | 2456 | a=msid:ma ta | Identifies RTCMediaStream ID | 2457 | | (ma) and RTCMediaStreamTrack | 2458 | | ID (ta) | 2459 | a=sendrecv | [RFC3264] | 2460 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] | 2461 | a=maxptime:120 | [RFC4566] | 2462 | a=ice-ufrag:c300d85b | [RFC5245] | 2463 | a=ice-pwd:de4e99bd291c325921d5d47 | [RFC5245] | 2464 | efbabd9a2 | | 2465 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] | 2466 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | | 2467 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 2468 | 1:58:D0:A1:2C:19:08 | | 2469 | a=setup:active | [RFC4145] | 2470 | a=rtcp-mux | [RFC5761] | 2471 | a=rtcp-rsize | [RFC5506] | 2472 | a=rtcp-fb:109 nack | [RFC5104] | 2473 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 2474 | hdrext:ssrc-audio-level | | 2475 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 2476 | hdrext:sdes:mid | egotiation] | 2477 | a=ssrc:54321 | [RFC5576] | 2478 | cname:Q/NWs1ao1HmN4Xa5 | | 2479 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 2480 | 192.168.1.7 51556 typ host | | 2481 | a=candidate:1 1 UDP 1694302207 | [RFC5245] | 2482 | 98.248.92.77 49203 typ srflx | | 2483 | raddr 192.168.1.7 rport 51556 | | 2484 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 2485 | ****** Video m=line ********* | ***************************** | 2486 | m=video 49203 UDP/TLS/RTP/SAVPF | [RFC4566] | 2487 | 120 | | 2488 | c=IN IP4 98.248.92.77 | [RFC4566] | 2489 | a=rtcp:49203 IN IP4 98.248.92.77 | [RFC3605] | 2490 | a=mid:video | [RFC5888] | 2491 | a=msid:ma tb | Identifies RTCMediaStream ID | 2492 | | (ma) and RTCMediaStreamTrack | 2493 | | ID (tb) | 2494 | a=sendrecv | [RFC3264] | 2495 | a=rtpmap:120 VP8/90000 | [I-D.ietf-payload-vp8] | 2496 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] | 2497 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | | 2498 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 2499 | 1:58:D0:A1:2C:19:08 | | 2500 | a=setup:active | [RFC4145] | 2501 | a=rtcp-mux | [RFC5761] | 2502 | a=rtcp-rsize | [RFC5506] | 2503 | a=rtcp-fb:120 nack | [RFC5104] | 2504 | a=rtcp-fb:120 nack pli | [RFC5104] | 2505 | a=rtcp-fb:120 ccm fir | [RFC5104] | 2506 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 2507 | hdrext:sdes:mid | egotiation] | 2508 | a=ssrc:98765 | [RFC5576] | 2509 | cname:Q/NWs1ao1HmN4Xa5 | | 2510 +-----------------------------------+-------------------------------+ 2512 Table 24: 5.2.11 SDP Updated Answer 2514 5.3. MultiResolution, RTX, FEC Examples 2516 This section deals with scenarios related to multi-source, multi- 2517 stream negotiation such as layered coding, simulcast, along with 2518 techniques that deal with providing robustness against transmission 2519 errors such as FEC and RTX. Also to note, mechanisms such as FEC and 2520 RTX could be envisioned in the above basic scenarios as well. 2522 5.3.1. Sendonly Simulcast Session with 2 cameras and 2 encodings per 2523 camera 2525 The SDP below shows Offer/Answer exchange with one audio and two 2526 video sources. Each of the video source can be sent at two different 2527 resolutions. 2529 One video source corresponds to VP8 encoding, while the other 2530 corresponds to H.264 encoding. 2532 [I-D.ietf-mmusic-rid] framework is used to further constrain the 2533 media format encodings and map the payload types (PT) to the 'rid' 2534 identifiers. 2536 [I-D.ietf-mmusic-sdp-simulcast] framework identifies the simulcast 2537 streams via their 'rid' identifiers. 2539 bundle-only attribute is used for the video sources in the Offer to 2540 ensure enabling video sources in the context of BUNDLE alone. 2542 BUNDLE grouping framework enables multiplexing of all the 5 streams 2543 (1 audio stream + 4 video streams) over a single RTP Session. 2545 1 Way Successful Simulcast w/BUNDLE 2547 Alice Bob 2548 | | 2549 | | 2550 | Alice offers 2 sendonly video sources | 2551 | with 2 simulcast encodings per source | 2552 | and bundle-only for video | 2553 | | 2554 | | 2555 | Offer(Audio:Opus,Video1:VP8,Video2:H.264) | 2556 |------------------------------------------------>| 2557 | | 2558 | | 2559 | Answer(Audio:Opus Video1:VP8,Video2:H.264) | 2560 |<------------------------------------------------| 2561 | | 2562 |One-Way 1 Opus, 2 H.264 and 2 VP8 video streams, | 2563 | all multiplexed | 2564 |.................................................| 2565 | | 2566 | | 2568 +-------------------------------------+-----------------------------+ 2569 | Offer SDP Contents | RFC#/Notes | 2570 +-------------------------------------+-----------------------------+ 2571 | v=0 | [RFC4566] | 2572 | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 2573 | s=- | [RFC4566] | 2574 | t=0 0 | [RFC4566] | 2575 | a=group:BUNDLE m0 m1 m2 | [I-D.ietf-mmusic-sdp-bundle | 2576 | | -negotiation] Alice | 2577 | | supports grouping of | 2578 | | m=lines under BUNDLE | 2579 | | semantics | 2580 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ic | 2581 | | e] | 2582 | ****** Audio m=line ********* | *************************** | 2583 | | ** | 2584 | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 2585 | c=IN IP4 24.23.204.141 | [RFC4566] | 2586 | a=rtcp:54609 IN IP4 24.23.204.141 | [RFC3605] | 2587 | a=mid:m0 | [RFC5888] | 2588 | a=msid:ma ta | Identifies RTCMediaStream | 2589 | | ID (ma) and | 2590 | | RTCMediaStreamTrack ID (ta) | 2591 | a=sendonly | [RFC3264] | 2592 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] | 2593 | a=maxptime:120 | [RFC4566] | 2594 | a=ice-ufrag:074c6550 | [RFC5245] | 2595 | a=ice-pwd:a28a397a4c3f31747d1ee3474 | [RFC5245] | 2596 | af08a068 | | 2597 | a=fingerprint:sha-256 19:E2:1C:3B:4 | [RFC5245] | 2598 | B:9F:81:E6:B8:5C:F4:A5:A8:D8:73:04 | | 2599 | :BB:05:2F:70:9F:04:A9:0E:05:E9:26:3 | | 2600 | 3:E8:70:88:A2 | | 2601 | a=setup:actpass | [RFC4145] | 2602 | a=rtcp-mux | [RFC5761] | 2603 | a=rtcp-rsize | [RFC5506] | 2604 | a=rtcp-fb:109 nack | [RFC5104] | 2605 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 2606 | hdrext:ssrc-audio-level | | 2607 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle | 2608 | hdrext:sdes:mid | -negotiation] | 2609 | a=ssrc:11111 cname:EocUG1f0fcg/yvY7 | [RFC5576] | 2610 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 2611 | 192.168.1.4 61665 typ host | | 2612 | a=candidate:1 1 UDP 694302207 | [RFC5245] | 2613 | 24.23.204.141 54609 typ srflx raddr | | 2614 | 192.168.1.4 rport 61665 | | 2615 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ic | 2616 | | e] | 2617 | ****** Video-1 m=line ********* | *************************** | 2618 | | ** | 2619 | m=video 0 UDP/TLS/RTP/SAVPF 98 100 | bundle-only video line with | 2620 | | port number set to zero | 2621 | c=IN IP4 24.23.204.141 | [RFC4566] | 2622 | a=bundle-only | [I-D.ietf-mmusic-sdp-bundle | 2623 | | -negotiation] | 2624 | a=rtcp:54609 IN IP4 24.23.204.141 | [RFC3605] | 2625 | a=mid:m1 | [RFC5888] Video m=line part | 2626 | | of BUNDLE group | 2627 | a=msid:ma tb | Identifies RTCMediaStream | 2628 | | ID (ma) and | 2629 | | RTCMediaStreamTrack ID (tb) | 2630 | a=sendonly | [RFC3264] - Send only video | 2631 | | stream | 2632 | a=rtpmap:98 VP8/90000 | [I-D.ietf-payload-vp8] | 2633 | a=fmtp:98 max-fr=30 | [RFC4566] | 2634 | a=rtpmap:100 VP8/90000 | [I-D.ietf-payload-vp8] | 2635 | a=fmtp:100 max-fr=15 | [RFC4566] | 2636 | a=fingerprint:sha-256 19:E2:1C:3B:4 | [RFC5245] | 2637 | B:9F:81:E6:B8:5C:F4:A5:A8:D8:73:04 | | 2638 | :BB:05:2F:70:9F:04:A9:0E:05:E9:26:3 | | 2639 | 3:E8:70:88:A2 | | 2640 | a=setup:actpass | [RFC4145] | 2641 | a=rtcp-mux | [RFC5761] | 2642 | a=rtcp-mux-only | [I-D.ietf-mmusic-mux-exclus | 2643 | | ive] | 2644 | a=rtcp-rsize | [RFC5506] | 2645 | a=rtcp-fb:* nack | [RFC5104] | 2646 | a=rtcp-fb:* nack pli | [RFC5104] | 2647 | a=rtcp-fb:* ccm fir | [RFC5104] | 2648 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle | 2649 | hdrext:sdes:mid | -negotiation] | 2650 | a=ssrc:22222 cname:EocUG1f0fcg/yvY7 | [RFC5576] [RFC7022] | 2651 | | Camera-1,Encoding-1 SSRC | 2652 | | with Session CNAME | 2653 | a=ssrc:33333 cname:EocUG1f0fcg/yvY7 | [RFC5576] [RFC7022] | 2654 | | Camera-1,Encoding-2 SSRC | 2655 | | with Session CNAME | 2656 | a=rid:1 send pt=98;max-width=1280 | [I-D.ietf-mmusic-rid] 1:1 | 2657 | ;max-height=720; | rid mapping to payload type | 2658 | | and specify resolution | 2659 | | constraints | 2660 | a=rid:2 send pt=100;max-width=640 | [I-D.ietf-mmusic-rid] 1:1 | 2661 | ;max-height=480; | rid mapping to payload type | 2662 | | and specify resolution | 2663 | | constraints | 2664 | a=simulcast: send 1;~2 | [I-D.ietf-mmusic-sdp-simulc | 2665 | | ast] Alice can send 2 | 2666 | | resolutions identified by | 2667 | | the 'rid' identifiers Also, | 2668 | | the second stream is | 2669 | | initially paused. | 2670 | ****** Video-2 m=line ********* | *************************** | 2671 | | ** | 2672 | m=video 0 UDP/TLS/RTP/SAVPF 101 102 | bundle-only video line with | 2673 | | port number set to zero | 2674 | c=IN IP4 24.23.204.141 | [RFC4566] | 2675 | a=bundle-only | [I-D.ietf-mmusic-sdp-bundle | 2676 | | -negotiation] | 2677 | a=rtcp:54609 IN IP4 24.23.204.141 | [RFC3605] | 2678 | a=mid:m2 | [RFC5888] Video m=line part | 2679 | | of BUNDLE group | 2680 | a=msid:ma tc | Identifies RTCMediaStream | 2681 | | ID (ma) and | 2682 | | RTCMediaStreamTrack ID (tc) | 2683 | a=sendonly | [RFC3264] - Send only video | 2684 | | stream | 2685 | a=rtpmap:101 H264/90000 | [RFC3984] | 2686 | a=rtpmap:102 H264/90000 | [RFC3984] | 2687 | a=fmtp:101 profile-level-id=42401f | [RFC3984]Camera-2,Encoding- | 2688 | ;packetization-mode=0;max-fr=30 | 1 | 2689 | a=fmtp:102 profile-level-id=42401f | [RFC3984]Camera-2,Encoding- | 2690 | ;packetization-mode=1;max-fr=15 | 2 | 2691 | a=fingerprint:sha-256 19:E2:1C:3B:4 | [RFC5245] | 2692 | B:9F:81:E6:B8:5C:F4:A5:A8:D8:73:04 | | 2693 | :BB:05:2F:70:9F:04:A9:0E:05:E9:26:3 | | 2694 | 3:E8:70:88:A2 | | 2695 | a=setup:actpass | [RFC4145] | 2696 | a=rtcp-mux | [RFC5761] | 2697 | a=rtcp-mux-only | [I-D.ietf-mmusic-mux-exclus | 2698 | | ive] | 2699 | a=rtcp-rsize | [RFC5506] | 2700 | a=rtcp-fb:* nack | [RFC5104] | 2701 | a=rtcp-fb:* nack pli | [RFC5104] | 2702 | a=rtcp-fb:* ccm fir | [RFC5104] | 2703 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle | 2704 | hdrext:sdes:mid | -negotiation] | 2705 | a=ssrc:44444 cname:EocUG1f0fcg/yvY7 | [RFC5576] [RFC7022] | 2706 | | Camera-2,Encoding-1 SSRC | 2707 | | with Session CNAME | 2708 | a=ssrc:55555 cname:EocUG1f0fcg/yvY7 | [RFC5576] [RFC7022] | 2709 | | Camera-2,Encoding-2 SSRC | 2710 | | with Session CNAME | 2711 | a=rid:3 send pt=101;max-width=1280 | [I-D.ietf-mmusic-rid] 1:1 | 2712 | ;max-height=720; | rid mapping to payload type | 2713 | | and specify resolution | 2714 | | constraints | 2715 | a=rid:4 send pt=102;max-width=640 | [I-D.ietf-mmusic-rid] 1:1 | 2716 | ;max-height=360; | rid mapping to payload type | 2717 | | and specify resolution | 2718 | | constraints | 2719 | a=simulcast: send 3;4 | [I-D.ietf-mmusic-sdp-simulc | 2720 | | ast] Alice can send 2 | 2721 | | resolutions identified by | 2722 | | the 'rid' identifiers | 2723 +-------------------------------------+-----------------------------+ 2725 Table 25: 5.3.1 SDP Offer 2727 +-------------------------------------+-----------------------------+ 2728 | Answer SDP Contents | RFC#/Notes | 2729 +-------------------------------------+-----------------------------+ 2730 | v=0 | [RFC4566] | 2731 | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 2732 | s=- | [RFC4566] | 2733 | t=0 0 | [RFC4566] | 2734 | a=group:BUNDLE m0 m1 m2 | [I-D.ietf-mmusic-sdp-bundle | 2735 | | -negotiation] Alice | 2736 | | supports grouping of | 2737 | | m=lines under BUNDLE | 2738 | | semantics | 2739 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ic | 2740 | | e] | 2741 | ****** Audio m=line ********* | *************************** | 2742 | | ** | 2743 | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 2744 | c=IN IP4 98.248.92.77 | [RFC4566] | 2745 | a=rtcp:49203 IN IP4 98.248.92.77 | [RFC3605] | 2746 | a=mid:m0 | [RFC5888] | 2747 | a=msid:ma ta | Identifies RTCMediaStream | 2748 | | ID (ma) and | 2749 | | RTCMediaStreamTrack ID (ta) | 2750 | a=recvonly | [RFC3264] | 2751 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] | 2752 | a=rtcp-fb:109 nack | [RFC5104] | 2753 | a=maxptime:120 | [RFC4566] | 2754 | a=ice-ufrag:c300d85b | [RFC5245] | 2755 | a=ice-pwd:de4e99bd291c325921d5d47ef | [RFC5245] | 2756 | babd9a2 | | 2757 | a=fingerprint:sha-256 6B:8B:F0:65:5 | [RFC5245] | 2758 | F:78:E2:51:3B:AC:6F:F3:3F:46:1B:35 | | 2759 | :DC:B8:5F:64:1A:24:C2:43:F0:A1:58:D | | 2760 | 0:A1:2C:19:08 | | 2761 | a=setup:active | [RFC4145] | 2762 | a=rtcp-mux | [RFC5761] | 2763 | a=rtcp-rsize | [RFC5506] | 2764 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 2765 | hdrext:ssrc-audio-level | | 2766 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle | 2767 | hdrext:sdes:mid | -negotiation] | 2768 | a=ssrc:77777 cname:Q/NWs1ao1HmN4Xa5 | [RFC5576] | 2769 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 2770 | 192.168.1.7 61665 typ host | | 2771 | a=candidate:1 1 UDP 694302207 | [RFC5245] | 2772 | 98.248.92.77 49203 typ srflx raddr | | 2773 | 192.168.1.4 rport 61665 | | 2774 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ic | 2775 | | e] | 2776 | ****** Video-1 m=line ********* | *************************** | 2777 | | ** | 2778 | m=video 49203 UDP/TLS/RTP/SAVPF 98 | BUNDLE accepted with port | 2779 | 100 | repeated from the audio | 2780 | | port | 2781 | c=IN IP4 98.248.92.77 | [RFC4566] | 2782 | a=rtcp:49203 IN IP4 98.248.92.77 | [RFC3605] | 2783 | a=mid:m1 | [RFC5888] Video m=line part | 2784 | | of BUNDLE group | 2785 | a=msid:ma tb | Identifies RTCMediaStream | 2786 | | ID (ma) and | 2787 | | RTCMediaStreamTrack ID (tb) | 2788 | a=recvonly | [RFC3264] - receive only | 2789 | | video stream | 2790 | a=rtpmap:98 VP8/90000 | [I-D.ietf-payload-vp8] | 2791 | a=rtpmap:100 VP8/90000 | [I-D.ietf-payload-vp8] | 2792 | a=fmtp:98 max-fr=30 | [RFC4566] | 2793 | a=fmtp:100 max-fr=15 | [RFC4566] | 2794 | a=fingerprint:sha-256 6B:8B:F0:65:5 | [RFC5245] | 2795 | F:78:E2:51:3B:AC:6F:F3:3F:46:1B:35 | | 2796 | :DC:B8:5F:64:1A:24:C2:43:F0:A1:58:D | | 2797 | 0:A1:2C:19:08 | | 2798 | a=setup:active | [RFC4145] | 2799 | a=rtcp-mux | [RFC5576] | 2800 | a=rtcp-rsize | [RFC5506] | 2801 | a=rtcp-fb:* nack | [RFC5104] | 2802 | a=rtcp-fb:* nack pli | [RFC5104] | 2803 | a=rtcp-fb:* ccm fir | [RFC5104] | 2804 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle | 2805 | hdrext:sdes:mid | -negotiation] | 2806 | a=ssrc:88888 cname:Q/NWs1ao1HmN4Xa5 | [RFC5576] - SSRC associated | 2807 | | with the receiver report | 2808 | | from Bob | 2809 | a=rid:1 recv pt=98;max-width=1280 | [I-D.ietf-mmusic-rid] Bob | 2810 | ;max-height=720; | accepts the offered payload | 2811 | | format constraints | 2812 | a=rid:2 recv pt=100;max-width=640 | [I-D.ietf-mmusic-rid] Bob | 2813 | ;max-height=480; | accepts the offered payload | 2814 | | format constraints | 2815 | a=simulcast: recv 1;2 | [I-D.ietf-mmusic-sdp-simulc | 2816 | | ast] Bob accepts the | 2817 | | offered simulcast streams | 2818 | | and removes the paused | 2819 | | state of stream with 'rid' | 2820 | | value 2. | 2821 | ****** Video-2 m=line ********* | *************************** | 2822 | | ** | 2823 | m=video 49203 UDP/TLS/RTP/SAVPF 101 | BUNDLE accepted with port | 2824 | 102 | repeated from the audio | 2825 | | port | 2826 | c=IN IP4 98.248.92.77 | [RFC4566] | 2827 | a=rtcp:49203 IN IP4 98.248.92.77 | [RFC3605] | 2828 | a=mid:m2 | [RFC5888] Video m=line part | 2829 | | of BUNDLE group | 2830 | a=msid:ma tc | Identifies RTCMediaStream | 2831 | | ID (ma) and | 2832 | | RTCMediaStreamTrack ID (tc) | 2833 | a=recvonly | [RFC3264] | 2834 | a=rtpmap:101 H264/90000 | [RFC3984] | 2835 | a=rtpmap:102 H264/90000 | [RFC3984] | 2836 | a=fmtp:101 profile-level-id=42401f | [RFC3984] | 2837 | ;packetization-mode=1;max-fr=30 | | 2838 | a=fmtp:102 profile-level-id=42401f | [RFC3984] | 2839 | ;packetization-mode=1;max-fr=15 | | 2840 | a=fingerprint:sha-256 6B:8B:F0:65:5 | [RFC5245] | 2841 | F:78:E2:51:3B:AC:6F:F3:3F:46:1B:35 | | 2842 | :DC:B8:5F:64:1A:24:C2:43:F0:A1:58:D | | 2843 | 0:A1:2C:19:08 | | 2844 | a=setup:active | [RFC4145] | 2845 | a=rtcp-mux | [RFC5576] | 2846 | a=rtcp-rsize | [RFC5506] | 2847 | a=rtcp-fb:* nack | [RFC5104] | 2848 | a=rtcp-fb:* nack pli | [RFC5104] | 2849 | a=rtcp-fb:* ccm fir | [RFC5104] | 2850 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle | 2851 | hdrext:sdes:mid | -negotiation] | 2852 | a=ssrc:99999 cname:Q/NWs1ao1HmN4Xa5 | [RFC5576] - SSRC associated | 2853 | | with the receiver report | 2854 | | from Bob | 2855 | a=rid:3 recv pt=101;max-width=1280 | [I-D.ietf-mmusic-rid] Bob | 2856 | ;max-height=720; | accepts the offered payload | 2857 | | format constraints | 2858 | a=rid:4 recv pt=102;max-width=640 | [I-D.ietf-mmusic-rid] Bob | 2859 | ;max-height=360; | accepts the offered payload | 2860 | | format constraints | 2861 | a=simulcast: recv 3;4 | [I-D.ietf-mmusic-sdp-simulc | 2862 | | ast] Bob accepts the | 2863 | | offered simulcast streams. | 2864 +-------------------------------------+-----------------------------+ 2866 Table 26: 5.3.1 SDP Answer 2868 5.3.2. Successful SVC Video Session 2870 This section shows an SDP Offer/Answer for a session with an audio 2871 and a single video source. The video source is encoded as layered 2872 coding at 3 different resolutions based on [RFC5583]. The video 2873 m=line shows 3 streams with last stream (payload 100) dependent on 2874 streams with payload 96 and 97 for decoding. 2876 SVC Session - 3 Layers w/BUNDLE 2878 Alice Bob 2879 | | 2880 | | 2881 | Alice offers 3 sendonly video streams | 2882 | as 3 layers of SVC and bundle-only | 2883 | for video streams. | 2884 | | 2885 | Offer(Video:H.264 SVC) | 2886 |------------------------------------------------>| 2887 | | 2888 | |Bob accepts Alice's 2889 | |offered Codec 2890 | |operation points 2891 | | 2892 | Answer(Video:H.264) | 2893 |<------------------------------------------------| 2894 | | 2895 |One-Way H.264 SVC video streams | 2896 |.................................................| 2897 | | 2898 | | 2900 +-----------------------------------+-------------------------------+ 2901 | Offer SDP Contents | RFC#/Notes | 2902 +-----------------------------------+-------------------------------+ 2903 | v=0 | [RFC4566] | 2904 | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 2905 | s=- | [RFC4566] | 2906 | t=0 0 | [RFC4566] | 2907 | a=group:BUNDLE m0 m1 | [I-D.ietf-mmusic-sdp-bundle-n | 2908 | | egotiation] Alice supports | 2909 | | grouping of m=lines under | 2910 | | BUNDLE semantics | 2911 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 2912 | ****** Audio m=line ********* | ***************************** | 2913 | m=audio 54609 UDP/TLS/RTP/SAVPF | [RFC4566] | 2914 | 109 | | 2915 | c=IN IP4 24.23.204.141 | [RFC4566] | 2916 | a=rtcp:54609 IN IP4 24.23.204.141 | [RFC3605] | 2917 | a=mid:m0 | [RFC5888] Audio m=line part | 2918 | | of BUNDLE group with a unique | 2919 | | port number | 2920 | a=msid:ma ta | Identifies RTCMediaStream ID | 2921 | | (ma) and RTCMediaStreamTrack | 2922 | | ID (ta) | 2923 | a=sendonly | [RFC3264] | 2924 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] | 2925 | a=maxptime:120 | [RFC4566] | 2926 | a=ice-ufrag:074c6550 | [RFC5245] | 2927 | a=ice-pwd:a28a397a4c3f31747d1ee34 | [RFC5245] | 2928 | 74af08a068 | | 2929 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] | 2930 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | | 2931 | :04 :BB:05:2F:70:9F:04:A9:0E:05:E | | 2932 | 9:26:33:E8:70:88:A2 | | 2933 | a=setup:actpass | [RFC4145] | 2934 | a=rtcp-mux | [RFC5761] | 2935 | a=rtcp-rsize | [RFC5506] | 2936 | a=rtcp-fb:109 nack | [RFC5104] | 2937 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 2938 | hdrext:ssrc-audio-level | | 2939 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 2940 | hdrext:sdes:mid | egotiation] | 2941 | a=ssrc:11111 | [RFC5576] | 2942 | cname:EocUG1f0fcg/yvY7 | | 2943 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 2944 | 192.168.1.4 61665 typ host | | 2945 | a=candidate:1 1 UDP 694302207 | [RFC5245] | 2946 | 24.23.204.141 54609 typ srflx | | 2947 | raddr 192.168.1.4 rport 61665 | | 2948 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 2949 | ****** Video m=line ********* | ***************************** | 2950 | m=video 0 UDP/TLS/RTP/SAVPF 96 97 | bundle-only video line with | 2951 | 100 | port number set to zero | 2952 | c=IN IP4 24.23.204.141 | [RFC4566] | 2953 | a=bundle-only | [I-D.ietf-mmusic-sdp-bundle-n | 2954 | | egotiation] | 2955 | a=rtcp:54609 IN IP4 24.23.204.141 | [RFC3605] | 2956 | a=mid:m1 | [RFC5888] Video m=line part | 2957 | | of BUNDLE group | 2958 | a=msid:ma tb | Identifies RTCMediaStream ID | 2959 | | (ma) and RTCMediaStreamTrack | 2960 | | ID (tc) | 2961 | a=sendonly | [RFC3264] - Send only video | 2962 | | stream | 2963 | a=rtpmap:96 H264/90000 | [RFC3984] | 2964 | a=fmtp:96 profile-level- | [RFC3984]H.264 Layer 1 | 2965 | id=4d0028; packetization-mode=1 | | 2966 | ;max-fr=30;max-fs=8040 | | 2967 | a=rtpmap:97 H264/90000 | [RFC3984] | 2968 | a=fmtp:97 profile-level-id=4d0028 | [RFC3984] H.264 Layer 2 | 2969 | ;packetization-mode=1; max-fr=15 | | 2970 | ;max-fs=1200 | | 2971 | a=rtpmap:100 H264-SVC/90000 | [RFC3984] | 2972 | a=fmtp:100 profile-level- | [RFC3984] | 2973 | id=4d0028;packetization-mode=1; | | 2974 | max-fr=30;max-fs=8040 | | 2975 | a=depend:100 lay m1:96,97; | [RFC5583]Layer 3 dependent on | 2976 | | layers 1 and 2 | 2977 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] | 2978 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | | 2979 | :04 :BB:05:2F:70:9F:04:A9:0E:05:E | | 2980 | 9:26:33:E8:70:88:A2 | | 2981 | a=setup:actpass | [RFC4145] | 2982 | a=rtcp-mux | [RFC5761] | 2983 | a=rtcp-rsize | [RFC5506] | 2984 | a=rtcp-fb:* nack | [RFC5104] | 2985 | a=rtcp-fb:* nack pli | [RFC5104] | 2986 | a=rtcp-fb:* ccm fir | [RFC5104] | 2987 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 2988 | hdrext:sdes:mid | egotiation] | 2989 | a=ssrc:22222 | [RFC5576] | 2990 | cname:EocUG1f0fcg/yvY7 | | 2991 | a=ssrc:33333 | [RFC5576] | 2992 | cname:EocUG1f0fcg/yvY7 | | 2993 | a=ssrc:44444 | [RFC5576] | 2994 | cname:EocUG1f0fcg/yvY7 | | 2995 +-----------------------------------+-------------------------------+ 2997 Table 27: 5.3.2 SDP Offer with SVC 2999 +-----------------------------------+-------------------------------+ 3000 | Answer SDP Contents | RFC#/Notes | 3001 +-----------------------------------+-------------------------------+ 3002 | v=0 | [RFC4566] | 3003 | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 3004 | s=- | [RFC4566] | 3005 | t=0 0 | [RFC4566] | 3006 | a=group:BUNDLE m0 m1 | [I-D.ietf-mmusic-sdp-bundle-n | 3007 | | egotiation] | 3008 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 3009 | ****** Audio m=line ********* | ***************************** | 3010 | m=audio 49203 UDP/TLS/RTP/SAVPF | [RFC4566] | 3011 | 109 | | 3012 | c=IN IP4 98.248.92.77 | [RFC4566] | 3013 | a=rtcp:49203 IN IP4 98.248.92.77 | [RFC3605] | 3014 | a=mid:m0 | [RFC5888] | 3015 | a=msid:ma ta | Identifies RTCMediaStream ID | 3016 | | (ma) and RTCMediaStreamTrack | 3017 | | ID (ta) | 3018 | a=recvonly | [RFC3264] | 3019 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] | 3020 | a=maxptime:120 | [RFC4566] | 3021 | a=ice-ufrag:074c6550 | [RFC5245] | 3022 | a=ice-pwd:a28a397a4c3f31747d1ee34 | [RFC5245] | 3023 | 74af08a068 | | 3024 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] | 3025 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | | 3026 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 3027 | 1:58:D0:A1:2C:19:08 | | 3028 | a=setup:active | [RFC4145] | 3029 | a=rtcp-mux | [RFC5761] | 3030 | a=rtcp-rsize | [RFC5506] | 3031 | a=rtcp-fb:109 nack | [RFC5104] | 3032 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 3033 | hdrext:ssrc-audio-level | | 3034 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 3035 | hdrext:sdes:mid | egotiation] | 3036 | a=ssrc:88888 | [RFC5576] | 3037 | cname:Q/NWs1ao1HmN4Xa5 | | 3038 | a=candidate:0 1 UDP 2113667326 | [RFC5245] | 3039 | 192.168.1.7 51556 typ host | | 3040 | a=candidate:1 1 UDP 1694302206 | [RFC5245] | 3041 | 98.248.92.77 49203 typ srflx | | 3042 | raddr 192.168.1.5 rport 51556 | | 3043 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 3044 | ****** Video m=line ********* | ***************************** | 3045 | m=video 49203 UDP/TLS/RTP/SAVPF | BUNDLE accepted Bundle | 3046 | 96 100 | address same as audio m=line. | 3047 | c=IN IP4 98.248.92.77 | [RFC4566] | 3048 | a=rtcp:49203 IN IP4 98.248.92.77 | [RFC3605] | 3049 | a=mid:m1 | [RFC5888] Video m=line part | 3050 | | of BUNDLE group | 3051 | a=msid:ma tb | Identifies RTCMediaStream ID | 3052 | | (ma) and RTCMediaStreamTrack | 3053 | | ID (tb) | 3054 | a=recvonly | [RFC3264] - Receive only | 3055 | | video stream | 3056 | a=rtpmap:96 H264/90000 | [RFC3984] | 3057 | a=fmtp:96 profile-level-id=4d0028 | [RFC3984]H.264 Layer 1 | 3058 | ;packetization-mode=1; max-fr=30 | | 3059 | ;max-fs=8040 | | 3060 | a=rtpmap:100 H264-SVC/90000 | [RFC3984] | 3061 | a=fmtp:100 profile-level- | [RFC3984] | 3062 | id=4d0028;packetization-mode=1; | | 3063 | max-fr=30;max-fs=8040 | | 3064 | a=depend:100 lay m1:96; | [RFC5583] Bob chooses 2 Codec | 3065 | | Operation points | 3066 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] | 3067 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | | 3068 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 3069 | 1:58:D0:A1:2C:19:08 | | 3070 | a=setup:active | [RFC4145] | 3071 | a=rtcp-mux | [RFC5761] | 3072 | a=rtcp-rsize | [RFC5506] | 3073 | a=rtcp-fb:* nack | [RFC5104] | 3074 | a=rtcp-fb:* nack pli | [RFC5104] | 3075 | a=rtcp-fb:* ccm fir | [RFC5104] | 3076 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 3077 | hdrext:sdes:mid | egotiation] | 3078 | a=ssrc:99999 | [RFC5576] | 3079 | cname:Q/NWs1ao1HmN4Xa5 | | 3080 +-----------------------------------+-------------------------------+ 3082 Table 28: 5.3.2 SDP Answer with SVC 3084 5.3.3. Successful Simulcast Video Session with Retransmission 3086 This section shows an SDP Offer/Answer exchange for a simulcast 3087 scenario with 3 resolutions and has [RFC4588] style re-transmission 3088 flows. 3090 [I-D.ietf-mmusic-rid] framework is used to specify all the (3) 3091 resolution constraints mapped to a single Payload Type (98). 3093 [I-D.ietf-mmusic-sdp-simulcast] framework identifies the simulcast 3094 streams via their 'rid' identifiers. 3096 Simulcast Streams with Retransmission 3098 Alice Bob 3099 | | 3100 | | 3101 |Alice offers single audio and simulcasted video streams | 3102 | | 3103 | | 3104 | Offer(Audio:Opus Video:VP8 with 3 resolutions) | 3105 | & RTX stream | 3106 |-------------------------------------------------------->| 3107 | | 3108 | | 3109 | Answer (Bob accepts Alice's offer) | 3110 |<--------------------------------------------------------| 3111 | | 3112 | | 3113 |One-Way 1 Opus, 3 VP8 and RTX video streams,all muxed | 3114 |.........................................................| 3115 | | 3116 | | 3118 +-----------------------------------+-------------------------------+ 3119 | Offer SDP Contents | RFC#/Notes | 3120 +-----------------------------------+-------------------------------+ 3121 | v=0 | [RFC4566] | 3122 | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 3123 | s=- | [RFC4566] | 3124 | t=0 0 | [RFC4566] | 3125 | a=group:BUNDLE m0 m1 | [I-D.ietf-mmusic-sdp-bundle-n | 3126 | | egotiation] Alice supports | 3127 | | grouping of m=lines under | 3128 | | BUNDLE semantics | 3129 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 3130 | ****** Audio m=line ********* | ***************************** | 3131 | m=audio 54609 UDP/TLS/RTP/SAVPF | [RFC4566] | 3132 | 109 | | 3133 | c=IN IP4 24.23.204.141 | [RFC4566] | 3134 | a=rtcp:54609 IN IP4 24.23.204.141 | [RFC3605] | 3135 | a=mid:m0 | [RFC5888] Audio m=line part | 3136 | | of BUNDLE group with a unique | 3137 | | port number | 3138 | a=msid:ma ta | Identifies RTCMediaStream ID | 3139 | | (ma) and RTCMediaStreamTrack | 3140 | | ID (ta) | 3141 | a=sendonly | [RFC3264] | 3142 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] | 3143 | a=maxptime:120 | [RFC4566] | 3144 | a=ice-ufrag:074c6550 | [RFC5245] | 3145 | a=ice-pwd:a28a397a4c3f31747d1ee34 | [RFC5245] | 3146 | 74af08a068 | | 3147 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] | 3148 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | | 3149 | :04 :BB:05:2F:70:9F:04:A9:0E:05:E | | 3150 | 9:26:33:E8:70:88:A2 | | 3151 | a=setup:actpass | [RFC4145] | 3152 | a=rtcp-mux | [RFC5761] | 3153 | a=rtcp-rsize | [RFC5506] | 3154 | a=rtcp-fb:109 nack | [RFC5104] | 3155 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 3156 | hdrext:ssrc-audio-level | | 3157 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 3158 | hdrext:sdes:mid | egotiation] | 3159 | a=ssrc:11111 | [RFC5576] | 3160 | cname:EocUG1f0fcg/yvY7 | | 3161 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 3162 | 192.168.1.4 61665 typ host | | 3163 | a=candidate:1 1 UDP 694302207 | [RFC5245] | 3164 | 24.23.204.141 54609 typ srflx | | 3165 | raddr 192.168.1.4 rport 61665 | | 3166 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 3167 | ****** Video m=line ********* | ***************************** | 3168 | m=video 0 UDP/TLS/RTP/SAVPF 98 | bundle-only video line with | 3169 | 103 | port number set to zero | 3170 | c=IN IP4 24.23.204.141 | [RFC4566] | 3171 | a=bundle-only | [I-D.ietf-mmusic-sdp-bundle-n | 3172 | | egotiation] | 3173 | a=mid:m1 | [RFC5888] | 3174 | a=msid:ma tb | Identifies RTCMediaStream ID | 3175 | | (ma) and RTCMediaStreamTrack | 3176 | | ID (tb) | 3177 | a=sendonly | [RFC3264] | 3178 | a=rtpmap:98 VP8/90000 | [I-D.ietf-payload-vp8] | 3179 | a=fmtp:98 max-fr=30 | [RFC4566] | 3180 | a=rtpmap:103 rtx/90000 | [RFC4588] | 3181 | a=fmtp:103 apt=98;rtx-time=200 | [RFC4588] | 3182 | a=setup:actpass | [RFC4145] | 3183 | a=rtcp-mux | [RFC5761] | 3184 | a=rtcp-rsize | [RFC5506] | 3185 | a=rtcp-fb:* nack | [RFC5104] | 3186 | a=rtcp-fb:* nack pli | [RFC5104] | 3187 | a=rtcp-fb:* ccm fir | [RFC5104] | 3188 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 3189 | hdrext:sdes:mid | egotiation] | 3190 | a=ssrc:22222 | [RFC5576] - Encoding-1 SSRC | 3191 | cname:EocUG1f0fcg/yvY7 | | 3192 | a=ssrc:33333 | [RFC5576] - Encoding-1 RTX | 3193 | cname:EocUG1f0fcg/yvY7 | SSRC | 3194 | a=ssrc-group:FID 22222 33333 | [RFC5888] | 3195 | a=ssrc:44444 | [RFC5576] - Encoding-2 SSRC | 3196 | cname:EocUG1f0fcg/yvY7 | | 3197 | a=ssrc:55555 | [RFC5576] - Encoding-2 RTX | 3198 | cname:EocUG1f0fcg/yvY7 | SSRC | 3199 | a=ssrc-group:FID 44444 55555 | [RFC5888] | 3200 | a=ssrc:66666 | [RFC5576] - Encoding-3 SSRC | 3201 | cname:EocUG1f0fcg/yvY7 | | 3202 | a=ssrc:77777 | [RFC5576] - Encoding-3 RTX | 3203 | cname:EocUG1f0fcg/yvY7 | SSRC | 3204 | a=ssrc-group:FID 66666 77777 | [RFC5888] | 3205 | a=rid:1 send pt=98;max-fs=921600 | [I-D.ietf-mmusic-rid] | 3206 | ;max-fr=30; | | 3207 | a=rid:2 send pt=98;max-fs=614400 | [I-D.ietf-mmusic-rid] | 3208 | ;max-fr=15; | | 3209 | a=rid:3 send pt=98;max-fs=230400 | [I-D.ietf-mmusic-rid] | 3210 | ;max-fr=30; | | 3211 | a=simulcast: send 1;2;3 | [I-D.ietf-mmusic-sdp-simulcas | 3212 | | t] Alice can send all the | 3213 | | simulcast streams | 3214 +-----------------------------------+-------------------------------+ 3216 Table 29: 5.3.3 SDP Offer w/Simulcast, RTX 3218 +-----------------------------------+-------------------------------+ 3219 | Answer SDP Contents | RFC#/Notes | 3220 +-----------------------------------+-------------------------------+ 3221 | v=0 | [RFC4566] | 3222 | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 3223 | s=- | [RFC4566] | 3224 | t=0 0 | [RFC4566] | 3225 | a=group:BUNDLE m0 m1 | [I-D.ietf-mmusic-sdp-bundle-n | 3226 | | egotiation] Bob supports | 3227 | | grouping of m=lines under | 3228 | | BUNDLE semantics | 3229 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 3230 | ****** Audio m=line ********* | ***************************** | 3231 | m=audio 49203 UDP/TLS/RTP/SAVPF | [RFC4566] | 3232 | 109 | | 3233 | c=IN IP4 98.248.92.77 | [RFC4566] | 3234 | a=rtcp:49203 IN IP4 98.248.92.77 | [RFC3605] | 3235 | a=mid:m0 | [RFC5888] | 3236 | a=msid:ma ta | Identifies RTCMediaStream ID | 3237 | | (ma) and RTCMediaStreamTrack | 3238 | | ID (ta) | 3239 | a=recvonly | [RFC3264] | 3240 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] | 3241 | a=maxptime:120 | [RFC4566] | 3242 | a=ice-ufrag:074c6550 | [RFC5245] | 3243 | a=ice-pwd:a28a397a4c3f31747d1ee34 | [RFC5245] | 3244 | 74af08a068 | | 3245 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] | 3246 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | | 3247 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 3248 | 1:58:D0:A1:2C:19:08 | | 3249 | a=setup:active | [RFC4145] | 3250 | a=rtcp-mux | [RFC5761] | 3251 | a=rtcp-rsize | [RFC5506] | 3252 | a=rtcp-fb:109 nack | [RFC5104] | 3253 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 3254 | hdrext:ssrc-audio-level | | 3255 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 3256 | hdrext:sdes:mid | egotiation] | 3257 | a=ssrc:54321 | [RFC5576] | 3258 | cname:EocUG1f0fcg/yvY7 | | 3259 | a=candidate:0 1 UDP 2113667326 | [RFC5245] | 3260 | 192.168.1.7 51556 typ host | | 3261 | a=candidate:1 1 UDP 1694302206 | [RFC5245] | 3262 | 98.248.92.77 49203 typ srflx | | 3263 | raddr 192.168.1.7 rport 51556 | | 3264 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 3265 | ****** Video m=line ********* | ***************************** | 3266 | m=video 49203 UDP/TLS/RTP/SAVPF | BUNDLE accepted with Bundle | 3267 | 98 100 101 103 | address identical to audio | 3268 | | m-line | 3269 | c=IN IP4 98.248.92.77 | [RFC4566] | 3270 | a=rtcp:49203 IN IP4 98.248.92.77 | [RFC3605] | 3271 | a=mid:m1 | [RFC5888] Video m=line part | 3272 | | of BUNDLE group | 3273 | a=msid:ma tb | Identifies RTCMediaStream ID | 3274 | | (ma) and RTCMediaStreamTrack | 3275 | | ID (tb) | 3276 | a=recvonly | [RFC3264] | 3277 | a=rtpmap:98 VP8/90000 | [I-D.ietf-payload-vp8] | 3278 | a=fmtp:98 max-fr=30 | [RFC4566] | 3279 | a=rtpmap:103 rtx/90000 | [RFC4588] | 3280 | a=fmtp:103 apt=98;rtx-time=200 | [RFC4588] | 3281 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] | 3282 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | | 3283 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 3284 | 1:58:D0:A1:2C:19:08 | | 3285 | a=setup:active | [RFC4145] | 3286 | a=rtcp-mux | [RFC5761] | 3287 | a=rtcp-rsize | [RFC5506] | 3288 | a=rtcp-fb:* nack | [RFC5104] | 3289 | a=rtcp-fb:* nack pli | [RFC5104] | 3290 | a=rtcp-fb:* ccm fir | [RFC5104] | 3291 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 3292 | hdrext:sdes:mid | egotiation] | 3293 | a=ssrc:98765 | [RFC5576] | 3294 | cname:EocUG1f0fcg/yvY7 | | 3295 | a=rid:1 recv pt=98;max-fs=921600 | [I-D.ietf-mmusic-rid] | 3296 | ;max-fr=30; | | 3297 | a=rid:2 recv pt=98;max-fs=614400 | [I-D.ietf-mmusic-rid] | 3298 | ;max-fr=15; | | 3299 | a=rid:3 recv pt=98;max-fs=230400 | [I-D.ietf-mmusic-rid] | 3300 | ;max-fr=30; | | 3301 | a=simulcast: recv 1;2;3 | [I-D.ietf-mmusic-sdp-simulcas | 3302 | | t] Bob accepts the offered | 3303 | | simulcast streams | 3304 +-----------------------------------+-------------------------------+ 3306 Table 30: 5.3.3 SDP Answer w/Simulcast, RTX 3308 5.3.4. Successful 1-way Simulcast Session with 2 resolutions and RTX - 3309 One resolution rejected 3311 This section shows an SDP Offer/Answer exchange for a simulcast 3312 scenario with 2 two resolutions. 3314 It also showcases where Bob rejects one of the Simulcast Video Stream 3315 which results in the rejection of the associated repair stream 3316 implicitly. 3318 Simulcast Streams with Retransmission Rejected 3320 Alice Bob 3321 | | 3322 | | 3323 |Alice offers single audio and simulcasted video streams | 3324 | with bundle-only for video | 3325 | | 3326 | | 3327 |Offer(Audio:Opus Video:VP8 with 2 resolutions,RTX Stream)| 3328 |-------------------------------------------------------->| 3329 | | 3330 | |Bob accepts 1 3331 | |simulcast,rtx 3332 | |rejects the 3333 | |other 3334 | Answer(Audio:Opus Video:VP8 with 1 res & RTX Stream) | 3335 |<--------------------------------------------------------| 3336 | | 3337 | | 3338 |1-way audio,video session and its associated RTX stream, | 3339 | all multiplexed | 3340 |.........................................................| 3341 | | 3342 | | 3344 +-----------------------------------+-------------------------------+ 3345 | Offer SDP Contents | RFC#/Notes | 3346 +-----------------------------------+-------------------------------+ 3347 | v=0 | [RFC4566] | 3348 | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 3349 | s=- | [RFC4566] | 3350 | t=0 0 | [RFC4566] | 3351 | a=group:BUNDLE m0 m1 | [I-D.ietf-mmusic-sdp-bundle-n | 3352 | | egotiation] Alice supports | 3353 | | grouping of m=lines under | 3354 | | BUNDLE semantics | 3355 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 3356 | ****** Audio m=line ********* | ***************************** | 3357 | m=audio 54609 UDP/TLS/RTP/SAVPF | [RFC4566] | 3358 | 109 | | 3359 | c=IN IP4 24.23.204.141 | [RFC4566] | 3360 | a=rtcp:54609 IN IP4 24.23.204.141 | [RFC3605] | 3361 | a=mid:m0 | [RFC5888] | 3362 | a=msid:ma ta | Identifies RTCMediaStream ID | 3363 | | (ma) and RTCMediaStreamTrack | 3364 | | ID (ta) | 3365 | a=sendonly | [RFC3264] | 3366 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] | 3367 | a=maxptime:120 | [RFC4566] | 3368 | a=ice-ufrag:074c6550 | [RFC5245] | 3369 | a=ice-pwd:a28a397a4c3f31747d1ee34 | [RFC5245] | 3370 | 74af08a068 | | 3371 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] | 3372 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | | 3373 | :04 :BB:05:2F:70:9F:04:A9:0E:05:E | | 3374 | 9:26:33:E8:70:88:A2 | | 3375 | a=setup:actpass | [RFC4145] | 3376 | a=rtcp-mux | [RFC5761] | 3377 | a=rtcp-rsize | [RFC5506] | 3378 | a=rtcp-fb:109 nack | [RFC5104] | 3379 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 3380 | hdrext:ssrc-audio-level | | 3381 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 3382 | hdrext:sdes:mid | egotiation] | 3383 | a=ssrc:11111 | [RFC5576] | 3384 | cname:EocUG1f0fcg/yvY7 | | 3385 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 3386 | 192.168.1.4 61665 typ host | | 3387 | a=candidate:1 1 UDP 694302207 | [RFC5245] | 3388 | 24.23.204.141 54609 typ srflx | | 3389 | raddr 192.168.1.4 rport 61665 | | 3390 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 3391 | ****** Video m=line ********* | ***************************** | 3392 | m=video 0 UDP/TLS/RTP/SAVPF 98 | bundle-only video line with | 3393 | 100 101 103 | port number set to zero | 3394 | c=IN IP4 24.23.204.141 | [RFC4566] | 3395 | a=bundle-only | [I-D.ietf-mmusic-sdp-bundle-n | 3396 | | egotiation] | 3397 | a=rtcp:54609 IN IP4 24.23.204.141 | [RFC3605] | 3398 | a=mid:m1 | [RFC5888] | 3399 | a=msid:ma tb | Identifies RTCMediaStream ID | 3400 | | (ma) and RTCMediaStreamTrack | 3401 | | ID (tb | 3402 | a=sendonly | [RFC3264] | 3403 | a=rtpmap:98 VP8/90000 | [I-D.ietf-payload-vp8] | 3404 | a=rtpmap:100 VP8/90000 | [I-D.ietf-payload-vp8] | 3405 | a=rtpmap:101 rtx/90000 | [RFC4588] | 3406 | a=rtpmap:103 rtx/90000 | [RFC4588] | 3407 | a=fmtp:98 max-fr=30;max-fs=8040 | [RFC4566] | 3408 | a=fmtp:100 max-fr=15;max-fs=1200 | [RFC4566] | 3409 | a=fmtp:101 apt=98;rtx-time=200 | [RFC4588] | 3410 | a=fmtp:103 apt=100;rtx-time=200 | [RFC4588] | 3411 | a=setup:actpass | [RFC4145] | 3412 | a=rtcp-mux | [RFC5761] | 3413 | a=rtcp-fb:* nack | [RFC5104] | 3414 | a=rtcp-fb:* nack pli | [RFC5104] | 3415 | a=rtcp-fb:* ccm fir | [RFC5104] | 3416 | a=rtcp-rsize | [RFC5506] | 3417 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 3418 | hdrext:sdes:mid | egotiation] | 3419 | a=ssrc:22222 | [RFC5576] - Encoding-1 SSRC | 3420 | cname:EocUG1f0fcg/yvY7 | | 3421 | a=ssrc:33333 | [RFC5576] - Encoding-1 RTX | 3422 | cname:EocUG1f0fcg/yvY7 | SSRC | 3423 | a=ssrc-group:FID 22222 33333 | [RFC5888] | 3424 | a=ssrc:44444 | [RFC5576] - Encoding-2 SSRC | 3425 | cname:EocUG1f0fcg/yvY7 | | 3426 | a=ssrc:55555 | [RFC5576] - Encoding-2 RTX | 3427 | cname:EocUG1f0fcg/yvY7 | SSRC | 3428 | a=ssrc-group:FID 44444 55555 | [RFC5888] | 3429 | a=rid:1 send pt=98; | [I-D.ietf-mmusic-rid] 1:1 | 3430 | | mapping between the PT and | 3431 | | the 'rid' identifier | 3432 | a=rid:2 send pt=100; | [I-D.ietf-mmusic-rid] 1:1 | 3433 | | mapping between the PT and | 3434 | | the 'rid' identifier | 3435 | a=simulcast: send 1;2 | [I-D.ietf-mmusic-sdp-simulcas | 3436 | | t] | 3437 +-----------------------------------+-------------------------------+ 3439 Table 31: 5.3.4 SDP Offer w/Simulcast, RTX 3441 +-----------------------------------+-------------------------------+ 3442 | Answer SDP Contents | RFC#/Notes | 3443 +-----------------------------------+-------------------------------+ 3444 | v=0 | [RFC4566] | 3445 | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 3446 | s=- | [RFC4566] | 3447 | t=0 0 | [RFC4566] | 3448 | a=group:BUNDLE m0 m1 | [I-D.ietf-mmusic-sdp-bundle-n | 3449 | | egotiation] Bob supports | 3450 | | grouping of m=lines under | 3451 | | BUNDLE semantics | 3452 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 3453 | ****** Audio m=line ********* | ***************************** | 3454 | m=audio 49203 UDP/TLS/RTP/SAVPF | [RFC4566] | 3455 | 109 | | 3456 | c=IN IP4 98.248.92.77 | [RFC4566] | 3457 | a=rtcp:49203 IN IP4 98.248.92.77 | [RFC3605] | 3458 | a=mid:m0 | [RFC5888] | 3459 | a=msid:ma ta | Identifies RTCMediaStream ID | 3460 | | (ma) and RTCMediaStreamTrack | 3461 | | ID (ta) | 3462 | a=recvonly | [RFC3264] | 3463 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] | 3464 | a=maxptime:120 | [RFC4566] | 3465 | a=ice-ufrag:074c6550 | [RFC5245] | 3466 | a=ice-pwd:a28a397a4c3f31747d1ee34 | [RFC5245] | 3467 | 74af08a068 | | 3468 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] | 3469 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | | 3470 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 3471 | 1:58:D0:A1:2C:19:08 | | 3472 | a=setup:active | [RFC4145] | 3473 | a=rtcp-mux | [RFC5761] | 3474 | a=rtcp-rsize | [RFC5506] | 3475 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 3476 | hdrext:ssrc-audio-level | | 3477 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 3478 | hdrext:sdes:mid | egotiation] | 3479 | a=ssrc:54321 | [RFC5576] | 3480 | cname:Q/NWs1ao1HmN4Xa5 | | 3481 | a=candidate:0 1 UDP 2113667326 | [RFC5245] | 3482 | 192.168.1.7 51556 typ host | | 3483 | a=candidate:1 1 UDP 1694302206 | [RFC5245] | 3484 | 98.248.92.77 49203 typ srflx | | 3485 | raddr 192.168.1.7 rport 51556 | | 3486 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 3487 | ****** Video m=line ********* | ***************************** | 3488 | m=video 49203 UDP/TLS/RTP/SAVPF | BUNDLE accepted with Bundle | 3489 | 98 101 | address identical to audio | 3490 | | m-line | 3491 | c=IN IP4 98.248.92.77 | [RFC4566] | 3492 | a=rtcp:49203 IN IP4 98.248.92.77 | [RFC3605] | 3493 | a=mid:m1 | [RFC5888] | 3494 | a=msid:ma tb | Identifies RTCMediaStream ID | 3495 | | (ma) and RTCMediaStreamTrack | 3496 | | ID (tb) | 3497 | a=recvonly | [RFC3264] | 3498 | a=rtpmap:98 VP8/90000 | [I-D.ietf-payload-vp8] | 3499 | a=rtpmap:101 VP8/90000 | [I-D.ietf-payload-vp8] | 3500 | a=fmtp:98 max-fr=30;max-fs=8040 | [RFC4566] | 3501 | a=fmtp:101 apt=98;rtx-time=200 | [RFC4588] | 3502 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] | 3503 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | | 3504 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 3505 | 1:58:D0:A1:2C:19:08 | | 3506 | a=setup:active | [RFC4145] | 3507 | a=rtcp-mux | [RFC5761] | 3508 | a=rtcp-rsize | [RFC5506] | 3509 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 3510 | hdrext:sdes:mid | egotiation] | 3511 | a=ssrc:98765 | [RFC5576] | 3512 | cname:Q/NWs1ao1HmN4Xa5 | | 3513 | a=rid:1 recv pt=98; | [I-D.ietf-mmusic-rid] | 3514 | a=simulcast: recv 1 | [I-D.ietf-mmusic-sdp-simulcas | 3515 | | t] Bob rejects the second | 3516 | | simulcast stream and the | 3517 | | associated rtx stream. | 3518 +-----------------------------------+-------------------------------+ 3520 Table 32: 5.3.4 SDP Answer (one Simulcast Rejected) 3522 5.3.5. Simulcast Video Session with Forward Error Correction 3524 This section shows an SDP Offer/Answer exchange for Simulcast video 3525 stream at two resolutions and and has [RFC5956] style FEC flows. 3527 On completion of the Offer/Answer exchange mechanism we end up one 3528 audio stream, 2 simulcast video streams and 2 associated FEC streams 3529 are sent over a single 5-tuple. 3531 Simulcast Streams with Forward Error Correction 3533 Alice Bob 3534 | | 3535 | | 3536 | | 3537 |Alice offers single audio and simulcasted video streams | 3538 |with bundle-only | 3539 | | 3540 | | 3541 |Offer(Audio:Opus Video:VP8 with 2 resolutions with FEC Streams)| 3542 |-------------------------------------------------------------->| 3543 | | 3544 | |Bob 3545 | |accepts 3546 | |Alice's 3547 | |offer 3548 |Answer(Audio:Opus Video:VP8 with 2 resolutions w/FEC Streams) | 3549 |<--------------------------------------------------------------| 3550 | | 3551 |One-Way Audio,Video session with 4 video streams(Simulcast | 3552 | and FEC) all multiplexed | 3553 |...............................................................| 3554 | | 3555 | | 3556 | | 3558 +-----------------------------------+-------------------------------+ 3559 | Offer SDP Contents | RFC#/Notes | 3560 +-----------------------------------+-------------------------------+ 3561 | v=0 | [RFC4566] | 3562 | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 3563 | s=- | [RFC4566] | 3564 | t=0 0 | [RFC4566] | 3565 | a=group:BUNDLE m0 m1 | [I-D.ietf-mmusic-sdp-bundle-n | 3566 | | egotiation] Alice supports | 3567 | | grouping of m=lines under | 3568 | | BUNDLE semantics | 3569 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 3570 | ****** Audio m=line ********* | ***************************** | 3571 | m=audio 54609 UDP/TLS/RTP/SAVPF | [RFC4566] | 3572 | 109 | | 3573 | c=IN IP4 24.23.204.141 | [RFC4566] | 3574 | a=rtcp:54609 IN IP4 24.23.204.141 | [RFC3605] | 3575 | a=mid:m0 | [RFC5888] | 3576 | a=msid:ma ta | Identifies RTCMediaStream ID | 3577 | | (ma) and RTCMediaStreamTrack | 3578 | | ID (ta) | 3579 | a=sendonly | [RFC3264] | 3580 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] | 3581 | a=maxptime:120 | [RFC4566] | 3582 | a=ice-ufrag:074c6550 | [RFC5245] | 3583 | a=ice-pwd:a28a397a4c3f31747d1ee34 | [RFC5245] | 3584 | 74af08a068 | | 3585 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] | 3586 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | | 3587 | :04 :BB:05:2F:70:9F:04:A9:0E:05:E | | 3588 | 9:26:33:E8:70:88:A2 | | 3589 | a=setup:actpass | [RFC4145] | 3590 | a=rtcp-mux | [RFC5761] | 3591 | a=rtcp-rsize | [RFC5506] | 3592 | a=rtcp-fb:109 nack | [RFC5104] | 3593 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 3594 | hdrext:ssrc-audio-level | | 3595 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 3596 | hdrext:sdes:mid | egotiation] | 3597 | a=ssrc:11111 | [RFC5576] | 3598 | cname:EocUG1f0fcg/yvY7 | | 3599 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 3600 | 192.168.1.4 61665 typ host | | 3601 | a=candidate:1 1 UDP 694302207 | [RFC5245] | 3602 | 24.23.204.141 54609 typ srflx | | 3603 | raddr 192.168.1.4 rport 61665 | | 3604 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 3605 | ****** Video m=line ********* | ***************************** | 3606 | m=video 0 UDP/TLS/RTP/SAVPF 98 | bundle-only video line with | 3607 | 100 101 103 | port number set to zero | 3608 | c=IN IP4 24.23.204.141 | [RFC4566] | 3609 | a=bundle-only | [I-D.ietf-mmusic-sdp-bundle-n | 3610 | | egotiation] | 3611 | a=rtcp:54609 IN IP4 24.23.204.141 | [RFC3605] | 3612 | a=mid:m1 | [RFC5888] Video m=line part | 3613 | | of BUNDLE group | 3614 | a=msid:ma tb | Identifies RTCMediaStream ID | 3615 | | (ma) and RTCMediaStreamTrack | 3616 | | ID (tb) | 3617 | a=sendonly | [RFC3264] | 3618 | a=rtpmap:98 VP8/90000 | [I-D.ietf-payload-vp8] | 3619 | a=rtpmap:100 VP8/90000 | [I-D.ietf-payload-vp8] | 3620 | a=rtpmap:101 flexfec/90000 | [I-D.ietf-payload-flexible-fe | 3621 | | c-scheme] | 3622 | a=rtpmap:103 flexfec/90000 | [I-D.ietf-payload-flexible-fe | 3623 | | c-scheme] | 3624 | a=fmtp:98 max-fr=30;max-fs=8040 | [RFC4566] | 3625 | a=fmtp:100 max-fr=15;max-fs=1200 | [RFC4566] | 3626 | a=fmtp:101 L=5; D=10; ToP=2; | [I-D.ietf-payload-flexible-fe | 3627 | repair-window=200000 | c-scheme] | 3628 | a=fmtp:103 L=5; D=10; ToP=2; | [I-D.ietf-payload-flexible-fe | 3629 | repair-window=200000 | c-scheme] | 3630 | a=setup:actpass | [RFC4145] | 3631 | a=rtcp-mux | [RFC5761] | 3632 | a=rtcp-rsize | [RFC5506] | 3633 | a=rtcp-fb:* nack | [RFC5104] | 3634 | a=rtcp-fb:* nack pli | [RFC5104] | 3635 | a=rtcp-fb:* ccm fir | [RFC5104] | 3636 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 3637 | hdrext:sdes:mid | egotiation] | 3638 | a=ssrc:22222 | [RFC5576] | 3639 | cname:EocUG1f0fcg/yvY7 | | 3640 | a=ssrc:33333 | [RFC5576] | 3641 | cname:EocUG1f0fcg/yvY7 | | 3642 | a=ssrc-group:FEC-FR 22222 33333 | [RFC5956] | 3643 | a=ssrc:44444 | [RFC5576] | 3644 | cname:EocUG1f0fcg/yvY7 | | 3645 | a=ssrc:55555 | [RFC5576] | 3646 | cname:EocUG1f0fcg/yvY7 | | 3647 | a=ssrc-group:FEC-FR 44444 55555 | [RFC5956] | 3648 | a=rid:1 send pt=98; | [I-D.ietf-mmusic-rid] 1:1 | 3649 | | mapping between the PT and | 3650 | | the 'rid' identifier | 3651 | a=rid:2 send pt=100; | [I-D.ietf-mmusic-rid] 1:1 | 3652 | | mapping between the PT and | 3653 | | the 'rid' identifier | 3654 | a=simulcast: send 1;2 | [I-D.ietf-mmusic-sdp-simulcas | 3655 | | t] | 3656 +-----------------------------------+-------------------------------+ 3658 Table 33: 5.3.5 SDP Offer 3660 +-----------------------------------+-------------------------------+ 3661 | Answer SDP Contents | RFC#/Notes | 3662 +-----------------------------------+-------------------------------+ 3663 | v=0 | [RFC4566] | 3664 | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 3665 | s=- | [RFC4566] | 3666 | t=0 0 | [RFC4566] | 3667 | a=group:BUNDLE m0 m1 | [I-D.ietf-mmusic-sdp-bundle-n | 3668 | | egotiation] | 3669 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 3670 | ****** Audio m=line ********* | ***************************** | 3671 | m=audio 49203 UDP/TLS/RTP/SAVPF | [RFC4566] | 3672 | 109 | | 3673 | c=IN IP4 98.248.92.77 | [RFC4566] | 3674 | a=rtcp:49203 IN IP4 98.248.92.77 | [RFC3605] | 3675 | a=mid:m0 | [RFC5888] Audio m=line part | 3676 | | of BUNDLE group with a unique | 3677 | | port number | 3678 | a=msid:ma ta | Identifies RTCMediaStream ID | 3679 | | (ma) and RTCMediaStreamTrack | 3680 | | ID (ta) | 3681 | a=recvonly | [RFC3264] | 3682 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] | 3683 | a=maxptime:120 | [RFC4566] | 3684 | a=ice-ufrag:074c6550 | [RFC5245] | 3685 | a=ice-pwd:a28a397a4c3f31747d1ee34 | [RFC5245] | 3686 | 74af08a068 | | 3687 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] | 3688 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | | 3689 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 3690 | 1:58:D0:A1:2C:19:08 | | 3691 | a=setup:active | [RFC4145] | 3692 | a=rtcp-mux | [RFC5761] | 3693 | a=rtcp-rsize | [RFC5506] | 3694 | a=rtcp-fb:109 nack | [RFC5104] | 3695 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 3696 | hdrext:ssrc-audio-level | | 3697 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 3698 | hdrext:sdes:mid | egotiation] | 3699 | a=ssrc:54321 | [RFC5576] | 3700 | cname:Q/NWs1ao1HmN4Xa5 | | 3701 | a=candidate:0 1 UDP 2113667326 | [RFC5245] | 3702 | 192.168.1.7 51556 typ host | | 3703 | a=candidate:1 1 UDP 1694302206 | [RFC5245] | 3704 | 98.248.92.77 49203 typ srflx | | 3705 | raddr 192.168.1.7 rport 51556 | | 3706 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 3707 | ****** Video m=line ********* | ***************************** | 3708 | m=video 49203 UDP/TLS/RTP/SAVPF | BUNDLE accepted with Bundle | 3709 | 98 100 101 103 | Address identical to audio | 3710 | | m=line. | 3711 | c=IN IP4 98.248.92.77 | [RFC4566] | 3712 | a=rtcp:49203 IN IP4 98.248.92.77 | [RFC3605] | 3713 | a=mid:m1 | [RFC5888] Video m=line part | 3714 | | of BUNDLE group | 3715 | a=msid:ma tb | Identifies RTCMediaStream ID | 3716 | | (ma) and RTCMediaStreamTrack | 3717 | | ID (tb) | 3718 | a=recvonly | [RFC3264] | 3719 | a=rtpmap:98 VP8/90000 | [I-D.ietf-payload-vp8] | 3720 | a=rtpmap:100 VP8/90000 | [I-D.ietf-payload-vp8] | 3721 | a=rtpmap:101 flexfec/90000 | [I-D.ietf-payload-flexible-fe | 3722 | | c-scheme] | 3723 | a=rtpmap:103 flexfec/90000 | [I-D.ietf-payload-flexible-fe | 3724 | | c-scheme] | 3725 | a=fmtp:98 max-fr=30;max-fs=8040 | [RFC4566] | 3726 | a=fmtp:100 max-fr=15;max-fs=1200 | [RFC4566] | 3727 | a=fmtp:101 L=5; D=10; ToP=2; | [I-D.ietf-payload-flexible-fe | 3728 | repair-window=200000 | c-scheme] | 3729 | a=fmtp:103 L=5; D=10; ToP=2; | [I-D.ietf-payload-flexible-fe | 3730 | repair-window=200000 | c-scheme] | 3731 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] | 3732 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | | 3733 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 3734 | 1:58:D0:A1:2C:19:08 | | 3735 | a=setup:active | [RFC4145] | 3736 | a=rtcp-mux | [RFC5761] | 3737 | a=rtcp-rsize | [RFC5506] | 3738 | a=rtcp-fb:* nack | [RFC5104] | 3739 | a=rtcp-fb:* nack pli | [RFC5104] | 3740 | a=rtcp-fb:* ccm fir | [RFC5104] | 3741 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 3742 | hdrext:sdes:mid | egotiation] | 3743 | a=ssrc:98765 | [RFC5576] | 3744 | cname:EocUG1f0fcg/yvY7 | | 3745 | a=rid:1 recv pt=98; | [I-D.ietf-mmusic-rid] | 3746 | a=rid:2 recv pt=100; | [I-D.ietf-mmusic-rid] | 3747 | a=simulcast: recv 1;2 | [I-D.ietf-mmusic-sdp-simulcas | 3748 | | t] | 3749 +-----------------------------------+-------------------------------+ 3751 Table 34: 5.3.5 SDP Answer 3753 5.4. Others 3755 The examples in the section provide SDP Offer/Answer exchange for a 3756 variety of scenarios related to RTP Header extension for conference 3757 usages, Legacy Interop scenarios and more. 3759 5.4.1. Audio Session - Voice Activity Detection 3761 This example shows Alice indicating the support of the RTP header 3762 extension to include the audio-level of the audio sample carried in 3763 the RTP packet. 3765 2-Way Audio with VAD 3767 Alice Bob 3768 | | 3769 | | 3770 |Alice indicates support for including | 3771 |audio level in RTP header | 3772 | | 3773 | Offer(Audio:Opus,PCMU,PCMA) | 3774 |---------------------------------------->| 3775 | | 3776 | | 3777 | Answer(Audio:Opus,PCMU,PCMA) | 3778 |<----------------------------------------| 3779 | | 3780 | |Bob accepts and 3781 | |indicates his 3782 | |support as well 3783 | | 3784 | Two way Opus Audio | 3785 |.........................................| 3786 | | 3787 |Per packet audio-level is included in the| 3788 |RTP header | 3789 | | 3791 +-----------------------------------+-------------------------------+ 3792 | Offer SDP Contents | RFC#/Notes | 3793 +-----------------------------------+-------------------------------+ 3794 | v=0 | [RFC4566] | 3795 | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | 3796 | s=- | [RFC4566] | 3797 | t=0 0 | [RFC4566] | 3798 | a=group:BUNDLE audio | [I-D.ietf-mmusic-sdp-bundle-n | 3799 | | egotiation] | 3800 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 3801 | ****** Audio m=line ********* | ***************************** | 3802 | m=audio 54609 UDP/TLS/RTP/SAVPF | [RFC4566] | 3803 | 109 0 8 | | 3804 | c=IN IP4 24.23.204.141 | [RFC4566] | 3805 | a=rtcp:54609 IN IP4 24.23.204.141 | [RFC3605] | 3806 | a=mid:audio | [RFC5888] | 3807 | a=msid:ma ta | Identifies RTCMediaStream ID | 3808 | | (ma) and RTCMediaStreamTrack | 3809 | | ID (ta) | 3810 | a=sendrecv | [RFC3264] | 3811 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] | 3812 | a=rtpmap:0 PCMU/8000 | [RFC3551] | 3813 | a=rtpmap:8 PCMA/8000 | [RFC3551] | 3814 | a=maxptime:120 | [RFC4566] | 3815 | a=ice-ufrag:074c6550 | [RFC5245] | 3816 | a=ice-pwd:a28a397a4c3f31747d1ee34 | [RFC5245] | 3817 | 74af08a068 | | 3818 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] | 3819 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | | 3820 | :04 :BB:05:2F:70:9F:04:A9:0E:05:E | | 3821 | 9:26:33:E8:70:88:A2 | | 3822 | a=setup:actpass | [RFC4145] | 3823 | a=rtcp-mux | [RFC5761] | 3824 | a=rtcp-rsize | [RFC5506] | 3825 | a=rtcp-fb:* nack | [RFC5104] | 3826 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 3827 | hdrext:ssrc-audio-level | | 3828 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 3829 | hdrext:sdes:mid | egotiation] | 3830 | a=ssrc:12345 | [RFC5576] | 3831 | cname:EocUG1f0fcg/yvY7 | | 3832 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 3833 | 192.168.1.4 61665 typ host | | 3834 | a=candidate:1 1 UDP 694302207 | [RFC5245] | 3835 | 24.23.204.141 54609 typ srflx | | 3836 | raddr 192.168.1.4 rport 61665 | | 3837 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 3838 +-----------------------------------+-------------------------------+ 3840 Table 35: 5.4.1 SDP Offer 3842 +-----------------------------------+-------------------------------+ 3843 | Answer SDP Contents | RFC#/Notes | 3844 +-----------------------------------+-------------------------------+ 3845 | v=0 | [RFC4566] | 3846 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] | 3847 | s=- | [RFC4566] | 3848 | t=0 0 | [RFC4566] | 3849 | a=group:BUNDLE audio | [I-D.ietf-mmusic-sdp-bundle-n | 3850 | | egotiation] | 3851 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 3852 | ****** Audio m=line ********* | ***************************** | 3853 | m=audio 49203 UDP/TLS/RTP/SAVPF | [RFC4566] | 3854 | 109 0 98 | | 3855 | c=IN IP4 98.248.92.77 | [RFC4566] | 3856 | a=rtcp:49203 IN IP4 98.248.92.77 | [RFC3605] | 3857 | a=mid:audio | [RFC5888] | 3858 | a=msid:ma ta | Identifies RTCMediaStream ID | 3859 | | (ma) and RTCMediaStreamTrack | 3860 | | ID (ta) | 3861 | a=sendrecv | [RFC3264] - Bob can send and | 3862 | | recv audio | 3863 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] - | 3864 | | Bob accepts only Opus Codec | 3865 | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMU Audio Codec | 3866 | a=rtpmap:0 PCMA/8000 | [RFC3551] PCMA Audio Codec | 3867 | a=maxptime:120 | [RFC4566] | 3868 | a=ice-ufrag:c300d85b | [RFC5245] | 3869 | a=ice-pwd:de4e99bd291c325921d5d47 | [RFC5245] | 3870 | efbabd9a2 | | 3871 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] | 3872 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | | 3873 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 3874 | 1:58:D0:A1:2C:19:08 | | 3875 | a=setup:active | [RFC4145] | 3876 | a=rtcp-mux | [RFC5761] - Bob can perform | 3877 | | RTP/RTCP Muxing on port 49203 | 3878 | a=rtcp-rsize | [RFC5506] | 3879 | a=rtcp-fb:* nack | [RFC5104] | 3880 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 3881 | hdrext:ssrc-audio-level | | 3882 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 3883 | hdrext:sdes:mid | egotiation] | 3884 | a=ssrc:54321 | [RFC5576] | 3885 | cname:Q/NWs1ao1HmN4Xa5 | | 3886 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 3887 | 192.168.1.7 51556 typ host | | 3888 | a=candidate:1 1 UDP 1694302207 | [RFC5245] | 3889 | 98.248.92.77 49203 typ srflx | | 3890 | raddr 192.168.1.7 rport 51556 | | 3891 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 3892 +-----------------------------------+-------------------------------+ 3894 Table 36: 5.4.1 SDP Answer 3896 5.4.2. Audio Conference - Voice Activity Detection 3898 This example shows SDP for RTP header extension that allows RTP-level 3899 mixers in audio conferences to deliver information about the audio 3900 level of individual participants. 3902 Audio Conference with VAD Support 3904 Alice Mixer 3905 | | 3906 |Alice indicates her interest to audio | 3907 |levels for the contributing sources | 3908 | | 3909 |Offer(Audio:Opus,PCMU,PCMA) | 3910 |---------------------------------------->| 3911 | | 3912 | | 3913 |Answer(Audio:Opus,PCMU,PCMA) | 3914 |<----------------------------------------| 3915 | | 3916 | |Mixer indicates 3917 | |it can provide 3918 | |audio-levels 3919 |Two way Opus Audio | 3920 |.........................................| 3921 | | 3922 |Audio-levels per CSRCS is included in the| 3923 |RTP header | 3924 | | 3926 +-----------------------------------+-------------------------------+ 3927 | Offer SDP Contents | RFC#/Notes | 3928 +-----------------------------------+-------------------------------+ 3929 | v=0 | [RFC4566] | 3930 | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | 3931 | | Information | 3932 | s=- | [RFC4566] | 3933 | t=0 0 | [RFC4566] | 3934 | a=group:BUNDLE audio | [I-D.ietf-mmusic-sdp-bundle-n | 3935 | | egotiation] | 3936 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 3937 | ****** Audio m=line ********* | ***************************** | 3938 | m=audio 54609 UDP/TLS/RTP/SAVPF | [RFC4566] | 3939 | 109 0 8 | | 3940 | c=IN IP4 24.23.204.141 | [RFC4566] | 3941 | a=rtcp:54609 IN IP4 24.23.204.141 | [RFC3605] | 3942 | a=mid:audio | [RFC5888] | 3943 | a=msid:ma ta | Identifies RTCMediaStream ID | 3944 | | (ma) and RTCMediaStreamTrack | 3945 | | ID (ta) | 3946 | a=sendrecv | [RFC3264] - Alice can send | 3947 | | and recv audio | 3948 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] | 3949 | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMU Audio Codec | 3950 | a=rtpmap:0 PCMA/8000 | [RFC3551] PCMA Audio Codec | 3951 | a=maxptime:120 | [RFC4566] | 3952 | a=ice-ufrag:074c6550 | [RFC5245] | 3953 | a=ice-pwd:a28a397a4c3f31747d1ee34 | [RFC5245] | 3954 | 74af08a068 | | 3955 | a=fingerprint:sha-256 19:E2:1C:3B | [RFC5245] | 3956 | :4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | | 3957 | :04 :BB:05:2F:70:9F:04:A9:0E:05:E | | 3958 | 9:26:33:E8:70:88:A2 | | 3959 | a=setup:actpass | [RFC4145] | 3960 | a=rtcp-mux | [RFC5761] | 3961 | a=rtcp-rsize | [RFC5506] | 3962 | a=rtcp-fb:* nack | [RFC5104] | 3963 | a=extmap:1/recvonly | [RFC6465] | 3964 | urn:ietf:params:rtp-hdrext:csrc- | | 3965 | audio-level | | 3966 | a=extmap:2 urn:ietf:params:rtp- | [RFC6464] | 3967 | hdrext:ssrc-audio-level | | 3968 | a=extmap:3 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 3969 | hdrext:sdes:mid | egotiation] | 3970 | a=ssrc:12345 | [RFC5576] | 3971 | cname:EocUG1f0fcg/yvY7 | | 3972 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 3973 | 192.168.1.4 61665 typ host | | 3974 | a=candidate:1 1 UDP 694302207 | [RFC5245] | 3975 | 24.23.204.141 54609 typ srflx | | 3976 | raddr 192.168.1.4 rport 61665 | | 3977 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 3978 +-----------------------------------+-------------------------------+ 3980 Table 37: 5.4.2 SDP Offer 3982 +-----------------------------------+-------------------------------+ 3983 | Answer SDP Contents | RFC#/Notes | 3984 +-----------------------------------+-------------------------------+ 3985 | v=0 | [RFC4566] | 3986 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | 3987 | | Information | 3988 | s=- | [RFC4566] | 3989 | t=0 0 | [RFC4566] | 3990 | a=group:BUNDLE audio | [I-D.ietf-mmusic-sdp-bundle-n | 3991 | | egotiation] | 3992 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ice] | 3993 | ****** Audio m=line ********* | ***************************** | 3994 | m=audio 49203 UDP/TLS/RTP/SAVPF | [RFC4566] | 3995 | 109 0 98 | | 3996 | c=IN IP4 98.248.92.77 | [RFC4566] | 3997 | a=rtcp:49203 IN IP4 98.248.92.77 | [RFC3605] | 3998 | a=mid:audio | [RFC5888] | 3999 | a=msid:ma ta | Identifies RTCMediaStream ID | 4000 | | (ma) and RTCMediaStreamTrack | 4001 | | ID (ta) | 4002 | a=sendrecv | [RFC3264] | 4003 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] | 4004 | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMU Audio Codec | 4005 | a=rtpmap:0 PCMA/8000 | [RFC3551] PCMA Audio Codec | 4006 | a=maxptime:120 | [RFC4566] | 4007 | a=ice-ufrag:c300d85b | [RFC5245] | 4008 | a=ice-pwd:de4e99bd291c325921d5d47 | [RFC5245] | 4009 | efbabd9a2 | | 4010 | a=fingerprint:sha-256 6B:8B:F0:65 | [RFC5245] | 4011 | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | | 4012 | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | 4013 | 1:58:D0:A1:2C:19:08 | | 4014 | a=setup:active | [RFC4145] | 4015 | a=rtcp-mux | [RFC5761] | 4016 | a=rtcp-rsize | [RFC5506] | 4017 | a=rtcp-fb:* nack | [RFC5104] | 4018 | a=extmap:1/sendonly | [RFC6465] | 4019 | urn:ietf:params:rtp-hdrext:csrc- | | 4020 | audio-level | | 4021 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle-n | 4022 | hdrext:sdes:mid | egotiation] | 4023 | a=ssrc:54321 | [RFC5576] | 4024 | cname:Q/NWs1ao1HmN4Xa5 | | 4025 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 4026 | 192.168.1.7 51556 typ host | | 4027 | a=candidate:1 1 UDP 1694302207 | [RFC5245] | 4028 | 98.248.92.77 49203 typ srflx | | 4029 | raddr 192.168.1.7 rport 51556 | | 4030 | a=end-of-candidates | [I-D.ietf-mmusic-trickle-ice] | 4031 +-----------------------------------+-------------------------------+ 4033 Table 38: 5.4.2 SDP Answer 4035 5.4.3. Successful legacy Interop Fallback with bundle-only 4037 In the scenario described below, Alice is a multi-stream capable 4038 WebRTC endpoint while Bob is a legacy VOIP end-point. The SDP Offer/ 4039 Answer exchange demonstrates successful session setup with fallback 4040 to audio only stream negotiated via bundle-only framework between the 4041 end-points. Specifically, 4042 o Offer from Alice describes 2 cameras via 2 video m=lines with both 4043 marked as bundle-only. 4045 o Since Bob doesnot recognize either the BUNDLE mechanism or the 4046 bundle-only attribute, he accepts only the audio stream from 4047 Alice. 4049 NOTE: Since Alice is unaware of Bob's support for BUNDLE framework, 4050 Alice ensures to include separate RTP/RTCP ports and candidate 4051 information. 4053 Successful 2-Way WebRTC <-> VOIP Interop 4055 Alice Bob 4056 | | 4057 | | 4058 | Alice is a multistream capable WebRTC end-point | 4059 | & Bob is behind a legacy VOIP system | 4060 | | 4061 |Offer(Audio:Opus Video:2 VP8,2 H2.64 Streams) with | 4062 | bundle-only | 4063 |---------------------------------------------------------->| 4064 | Alice marks both the video streams as bundle-only | 4065 | | 4066 | | 4067 | Answer(Audio:Opus) | 4068 |<----------------------------------------------------------| 4069 | |Bob 4070 | |accepts 4071 | |audio 4072 | |stream, 4073 | |since he 4074 | |doesn't 4075 | |recognize 4076 | |bundle-only 4077 | | 4078 | Two way Opus Audio | 4079 |...........................................................| 4080 | | 4081 | | 4083 +-------------------------------------+-----------------------------+ 4084 | Offer SDP Contents | RFC#/Notes | 4085 +-------------------------------------+-----------------------------+ 4086 | v=0 | [RFC4566] | 4087 | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 4088 | s=- | [RFC4566] | 4089 | t=0 0 | [RFC4566] | 4090 | a=group:BUNDLE m0 m1 m2 | [I-D.ietf-mmusic-sdp-bundle | 4091 | | -negotiation] Alice | 4092 | | supports grouping of | 4093 | | m=lines under BUNDLE | 4094 | | semantics | 4095 | a=ice-options:trickle | [I-D.ietf-mmusic-trickle-ic | 4096 | | e] | 4097 | ****** Audio m=line ********* | *************************** | 4098 | | ** | 4099 | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 4100 | c=IN IP4 24.23.204.141 | [RFC4566] | 4101 | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] | 4102 | a=mid:m0 | [RFC5888] Audio m=line part | 4103 | | of BUNDLE group with a | 4104 | | unique port number | 4105 | a=msid:ma ta | Identifies RTCMediaStream | 4106 | | ID (ma) and | 4107 | | RTCMediaStreamTrack ID (ta) | 4108 | a=sendrecv | [RFC3264] | 4109 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-opus] | 4110 | a=rtcp-fb:109 nack | [RFC5104] | 4111 | a=maxptime:120 | [RFC4566] | 4112 | a=ice-ufrag:074c6550 | [RFC5245] | 4113 | a=ice-pwd:a28a397a4c3f31747d1ee3474 | [RFC5245] | 4114 | af08a068 | | 4115 | a=fingerprint:sha-256 19:E2:1C:3B:4 | [RFC5245] | 4116 | B:9F:81:E6:B8:5C:F4:A5:A8:D8:73:04 | | 4117 | :BB:05:2F:70:9F:04:A9:0E:05:E9:26:3 | | 4118 | 3:E8:70:88:A2 | | 4119 | a=setup:actpass | [RFC4145] | 4120 | a=rtcp-mux | [RFC5761] | 4121 | a=rtcp-rsize | [RFC5506] | 4122 | a=extmap:1 urn:ietf:params:rtp- | [RFC6464] | 4123 | hdrext:ssrc-audio-level | | 4124 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle | 4125 | hdrext:sdes:mid | -negotiation] | 4126 | a=ssrc:12345 cname:EocUG1f0fcg/yvY7 | [RFC5576]E | 4127 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 4128 | 192.168.1.4 61665 typ host | | 4129 | a=candidate:1 1 UDP 694302207 | [RFC5245] | 4130 | 24.23.204.141 54609 typ srflx raddr | | 4131 | 192.168.1.4 rport 61665 | | 4132 | a=candidate:0 1 UDP 2113667326 | [RFC5245] | 4133 | 192.168.1.4 61667 typ host | | 4134 | a=candidate:1 1 UDP 1694302206 | [RFC5245] | 4135 | 24.23.204.141 64678 typ srflx raddr | | 4136 | 192.168.1.4 rport 61667 | | 4137 | ****** Video-1 m=line ********* | *************************** | 4138 | | ** | 4139 | m=video 0 UDP/TLS/RTP/SAVPF 98 100 | bundle-only video line with | 4140 | | port number set to zero | 4141 | c=IN IP4 24.23.204.141 | [RFC4566] | 4142 | a=bundle-only | [I-D.ietf-mmusic-sdp-bundle | 4143 | | -negotiation] | 4144 | a=mid:m1 | [RFC5888] Video m=line part | 4145 | | of BUNDLE group | 4146 | a=msid:ma tb | Identifies RTCMediaStream | 4147 | | ID (ma) and | 4148 | | RTCMediaStreamTrack ID (tb) | 4149 | a=sendrecv | [RFC3264] | 4150 | a=rtpmap:98 VP8/90000 | [I-D.ietf-payload-vp8] | 4151 | a=imageattr:98 [x=1280,y=720] | [RFC6236] | 4152 | a=fmtp:98 max-fr=30 | [RFC4566] | 4153 | a=setup:actpass | [RFC4145] | 4154 | a=rtcp-mux | [RFC5761] | 4155 | a=rtcp-rsize | [RFC5506] | 4156 | a=rtcp-fb:* nack | [RFC5104] | 4157 | a=rtcp-fb:* nack pli | [RFC5104] | 4158 | a=rtcp-fb:* ccm fir | [RFC5104] | 4159 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle | 4160 | hdrext:sdes:mid | -negotiation] | 4161 | a=ssrc:56789 cname:EocUG1f0fcg/yvY7 | [RFC5576] | 4162 | ****** Video-2 m=line ********* | *************************** | 4163 | | ** | 4164 | m=video 0 UDP/TLS/RTP/SAVPF 101 103 | bundle-only video line with | 4165 | | port number set to zero | 4166 | c=IN IP4 24.23.204.141 | [RFC4566] | 4167 | a=bundle-only | [I-D.ietf-mmusic-sdp-bundle | 4168 | | -negotiation] | 4169 | a=mid:m2 | [RFC5888] Video m=line part | 4170 | | of BUNDLE group | 4171 | a=msid:ma tc | Identifies RTCMediaStream | 4172 | | ID (ma) and | 4173 | | RTCMediaStreamTrack ID (tc) | 4174 | a=sendrecv | [RFC3264] | 4175 | a=rtpmap:101 H264/90000 | [RFC3984] | 4176 | a=rtpmap:103 H264/90000 | [RFC3984] | 4177 | a=fmtp:101 profile-level-id=4d0028 | [RFC3984]Camera-2,Encoding- | 4178 | ;packetization-mode=1;max-fr=30 | 1 Resolution | 4179 | a=rtcp-mux | [RFC5761] | 4180 | a=rtcp-rsize | [RFC5506] | 4181 | a=rtcp-fb:* nack | [RFC5104] | 4182 | a=rtcp-fb:* nack pli | [RFC5104] | 4183 | a=rtcp-fb:* ccm fir | [RFC5104] | 4184 | a=extmap:2 urn:ietf:params:rtp- | [I-D.ietf-mmusic-sdp-bundle | 4185 | hdrext:sdes:mid | -negotiation] | 4186 | a=ssrc:67890 cname:EocUG1f0fcg/yvY7 | [RFC5576] | 4187 +-------------------------------------+-----------------------------+ 4189 Table 39: 5.4.3 SDP Simulcast bundle-only 4191 +----------------------------------------+--------------------------+ 4192 | Answer SDP Contents | RFC#/Notes | 4193 +----------------------------------------+--------------------------+ 4194 | v=0 | [RFC4566] | 4195 | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 4196 | s=- | [RFC4566] | 4197 | t=0 0 | [RFC4566] | 4198 | ****** Audio m=line ********* | ************************ | 4199 | | ***** | 4200 | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 4201 | c=IN IP4 24.23.204.141 | [RFC4566] | 4202 | a=rtcp:60065 IN IP4 24.23.204.141 | [RFC3605] | 4203 | a=sendrecv | [RFC3264] | 4204 | a=rtpmap:109 opus/48000/2 | [I-D.ietf-payload-rtp-op | 4205 | | us] | 4206 | a=maxptime:120 | [RFC4566] | 4207 | a=ice-ufrag:ufrag:c300d85b | [RFC5245] | 4208 | a=ice- | [RFC5245] | 4209 | pwd:de4e99bd291c325921d5d47efbabd9a2 | | 4210 | a=fingerprint:sha-256 6B:8B:F0:65:5F:7 | [RFC5245] | 4211 | 8:E2:51:3B:AC:6F:F3:3F:46:1B:35 :DC:B8 | | 4212 | :5F:64:1A:24:C2:43:F0:A1:58:D0:A1:2C:1 | | 4213 | 9:08 | | 4214 | a=setup:active | [RFC4145] | 4215 | a=rtcp-rsize | [RFC5506] | 4216 | a=rtcp-fb:109 nack | [RFC5104] | 4217 | a=extmap:1 urn:ietf:params:rtp-hdrext | [RFC6464] | 4218 | :ssrc-audio-level | | 4219 | a=ssrc:54321 cname:Q/NWs1ao1HmN4Xa5 | [RFC5576] | 4220 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 4221 | 192.168.1.7 51556 typ host | | 4222 | a=candidate:1 1 UDP 694302207 | [RFC5245] | 4223 | 98.248.92.77 49203 typ srflx raddr | | 4224 | 192.168.1.7 rport 51556 | | 4225 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | 4226 | 192.168.1.7 51558 typ host | | 4227 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 4228 | 98.248.92.77 60065 typ srflx raddr | | 4229 | 192.168.1.7 rport 51558 | | 4230 | ****** Video m=line ********* | ************************ | 4231 | | ***** | 4232 | m=video 0 UDP/TLS/RTP/SAVPF 98 100 | Bob doesn't recognize | 4233 | | bundle-only and hence | 4234 | | the m=line is rejected | 4235 | | implicitly due to port 0 | 4236 | ****** Video m=line ********* | ************************ | 4237 | | ***** | 4238 | m=video 0 UDP/TLS/RTP/SAVPF 98 100 | Bob doesn't recognize | 4239 | | bundle-only and hence | 4240 | | the m=line is rejected | 4241 | | implicitly due to port 0 | 4242 +----------------------------------------+--------------------------+ 4244 Table 40: 5.4.3 SDP Answer 4246 5.4.4. Legacy Interop with RTP/AVP profile 4248 In this section, we attempt to provide session descriptions 4249 showcasing inter-operability between a WebRTC end-point and a Legacy 4250 VOIP end-point. The ideas included in here are not fully baked into 4251 the standards and might be controversial in nature. The hope here is 4252 to demonstrate a plausible SDP composition to enchance seamless 4253 inter-operability between the aforementioned communication systems. 4255 In the scenario desribed below, Alice is a legacy end-point which 4256 sends [RFC3264] Offer with two sets of media descriptions per media 4257 type. 4259 One set that correponds to [WebRTC] compliant UDP/TLS/RTP/SAVPF 4260 based audio and video descriptions. 4262 Another set with RTP/AVP based audio and video descriptions for 4263 the legacy Interop purposes. 4265 Also to note, Alice includes session level DTLS information and 4266 media level RTCP feedback information as applicable to both the 4267 sets of media descriptions 4269 On the other hand, Bob being a WebRTC end-point, recognizes accepts 4270 the media descriptions with RTP/AVP profile. The security and 4271 feedback requirements for the session are either handled by a 4272 intermediate gateway or with some combination of Alice's capabilities 4273 and the intermediate gateway. 4275 Successful 2-Way WebRTC <-> VOIP Interop 4277 Alice Bob 4278 | | 4279 | | 4280 | Alice is a legacy VOIP End-point & Bob is a WebRTC End-Point | 4281 | | 4282 | | 4283 | | 4284 | Offer(Audio:Opus Video:H.264) | 4285 |-------------------------------------------------------------->| 4286 | | 4287 | | 4288 |Alice includes 2 copies of media descriptions | 4289 |1. WebRTC compliant media description (UDP/TLS/RTP/SAVPF) | 4290 |2. Legacy compliant media description (RTP/AVP) | 4291 | | 4292 | | 4293 | Answer(Audio:Opus, Video:H.264) | 4294 |<--------------------------------------------------------------| 4295 | |Bob 4296 | |accepts 4297 | |"legacy 4298 | |compliant" 4299 | |m=line 4300 | | 4301 | | 4302 | Two way Opus Audio, H.264 Video | 4303 |...............................................................| 4304 | Session also suports RTP/RTCP Mux, RTCP Feedback | 4305 | | 4307 +----------------------------------------+--------------------------+ 4308 | Offer SDP Contents | RFC#/Notes | 4309 +----------------------------------------+--------------------------+ 4310 | v=0 | [RFC4566] | 4311 | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | 4312 | s=- | [RFC4566] | 4313 | t=0 0 | [RFC4566] | 4314 | a=ice-ufrag:074c6550 | [RFC5245] | 4315 | a=ice- | [RFC5245] | 4316 | pwd:a28a397a4c3f31747d1ee3474af08a068 | | 4317 | a=fingerprint:sha-256 6B:8B:F0:65:5F:7 | [RFC5245] | 4318 | 8:E2:51:3B:AC:6F:F3:3F:46:1B:35 :DC:B8 | | 4319 | :5F:64:1A:24:C2:43:F0:A1:58:D0:A1:2C:1 | | 4320 | 9:08 | | 4321 | a=rtcp-rsize | [RFC5506] | 4322 | ****** Audio m=line ********* | ************************ | 4323 | | ***** | 4324 | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | 4325 | c=IN IP4 24.23.204.141 | [RFC4566] | 4326 | a=rtpmap:109 opus/48000 | | 4327 | a=ptime:20 | | 4328 | a=sendrecv | [RFC3264] | 4329 | a=rtcp-mux | [RFC5761] | 4330 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 4331 | 192.168.1.4 54609 typ host | | 4332 | a=candidate:1 1 UDP 694302207 | [RFC5245] | 4333 | 24.23.204.141 54609 typ srflx raddr | | 4334 | 192.168.1.4 rport 54609 | | 4335 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | 4336 | 192.168.1.4 64678 typ host | | 4337 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 4338 | 24.23.204.141 64678 typ srflx raddr | | 4339 | 192.168.1.4 rport 64678 | | 4340 | a=rtcp-fb:109 nack | [RFC5104] | 4341 | ****** Audio m=line ********* | ************************ | 4342 | | ***** | 4343 | m=video 62537 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | 4344 | c=IN IP4 24.23.204.141 | [RFC4566] | 4345 | a=rtpmap:120 VP8/90000 | [I-D.ietf-payload-vp8] | 4346 | a=sendrecv | [RFC3264] | 4347 | a=rtcp-mux | [RFC5761] | 4348 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 4349 | 192.168.1.4 62537 typ host | | 4350 | a=candidate:1 1 UDP 1694302207 | [RFC5245] | 4351 | 24.23.204.141 62537 typ srflx raddr | | 4352 | 192.168.1.4 rport 62537 | | 4353 | a=candidate:0 2 2113667326 192.168.1.4 | [RFC5245] | 4354 | 54721 typ host | | 4355 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 4356 | 24.23.204.141 54721 typ srflx raddr | | 4357 | 192.168.1.4 rport 54721 | | 4358 | a=rtcp-fb:120 nack pli | [RFC5104] | 4359 | a=rtcp-fb:120 ccm fir | [RFC5104] | 4360 | --------------- | These set of media | 4361 | | descriptions are for | 4362 | | Legacy Inter-op purposes | 4363 | ****** Audio m=line ********* | ************************ | 4364 | | ***** | 4365 | m=audio 54732 RTP/AVP 109 | [RFC4566]Alice includes | 4366 | | RTP/AVP audio stream | 4367 | | description | 4368 | c=IN IP4 24.23.204.141 | [RFC4566] | 4369 | a=fingerprint:sha-256 19:E2:1C:3B:4B:9 | [RFC5245] | 4370 | F:81:E6:B8:5C:F4:A5:A8:D8:73:04 :BB:05 | | 4371 | :2F:70:9F:04:A9:0E:05:E9:26:33:E8:70:8 | | 4372 | 8:A2 | | 4373 | a=rtpmap:109 opus/48000 | | 4374 | a=ptime:20 | | 4375 | a=sendrecv | [RFC3264] | 4376 | a=rtcp-mux | [RFC5761]Alice still | 4377 | | includes RTP/RTCP Mux | 4378 | | support | 4379 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 4380 | 192.168.1.4 54732 typ host | | 4381 | a=candidate:1 1 UDP 694302207 | [RFC5245] | 4382 | 24.23.204.141 54732 typ srflx raddr | | 4383 | 192.168.1.4 rport 54732 | | 4384 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | 4385 | 192.168.1.4 64678 typ host | | 4386 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 4387 | 24.23.204.141 64678 typ srflx raddr | | 4388 | 192.168.1.4 rport 64678 | | 4389 | a=rtcp-fb:109 nack | [RFC5104]She adds her | 4390 | | intent for NACK RTCP | 4391 | | feedback support | 4392 | ****** Video m=line ********* | ************************ | 4393 | | ***** | 4394 | m=video 62445 RTP/AVP 120 | [RFC4566]Alice includes | 4395 | | RTP/AVP video stream | 4396 | | description | 4397 | c=IN IP4 24.23.204.141 | [RFC4566] | 4398 | a=fingerprint:sha-256 DC:B8:5F:64:1A:2 | [RFC5245] | 4399 | 4:C2:43:F0:A1:58:D0:A1:2C:19:08 :6B:8B | | 4400 | :F0:65:5F:78:E2:51:3B:AC:6F:F3:3F:46:1 | | 4401 | B:35 | | 4402 | a=rtpmap:120 VP8/90000 | [I-D.ietf-payload-vp8] | 4403 | a=sendrecv | [RFC3264] | 4404 | a=rtcp-mux | [RFC5761]Alice intends | 4405 | | to perform RTP/RTCP Mux | 4406 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 4407 | 192.168.1.4 62445 typ host | | 4408 | a=candidate:1 1 UDP 1694302207 | [RFC5245] | 4409 | 24.23.204.141 62537 typ srflx raddr | | 4410 | 192.168.1.4 rport 62445 | | 4411 | a=candidate:0 2 2113667326 192.168.1.4 | [RFC5245] | 4412 | 54721 typ host | | 4413 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 4414 | 24.23.204.141 54721 typ srflx raddr | | 4415 | 192.168.1.4 rport 54721 | | 4416 | a=rtcp-fb:120 nack pli | [RFC5104] Alice | 4417 | | indicates support for | 4418 | | Picture loss Indication | 4419 | | and NACK RTCP feedback | 4420 | a=rtcp-fb:120 ccm fir | [RFC5104] | 4421 +----------------------------------------+--------------------------+ 4423 Table 41: 5.4.5 SDP Offer 4425 +----------------------------------------+--------------------------+ 4426 | Answer SDP Contents | RFC#/Notes | 4427 +----------------------------------------+--------------------------+ 4428 | v=0 | [RFC4566] | 4429 | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] | 4430 | s=- | [RFC4566] | 4431 | t=0 0 | [RFC4566] | 4432 | a=ice-ufrag:c300d85b | [RFC5245] | 4433 | a=ice- | [RFC5245] | 4434 | pwd:de4e99bd291c325921d5d47efbabd9a2 | | 4435 | a=fingerprint:sha-256 BB:05:2F:70:9F:0 | [RFC5245] | 4436 | 4:A9:0E:05:E9:26:33:E8:70:88:A2 :19:E2 | | 4437 | :1C:3B:4B:9F:81:E6:B8:5C:F4:A5:A8:D8:7 | | 4438 | 3:04 | | 4439 | ****** Audio m=line ********* | ************************ | 4440 | | ***** | 4441 | m=audio 49203 RTP/AVP 109 | [RFC4566] Bob accepts | 4442 | | RTP/AVP based audio | 4443 | | stream | 4444 | c=IN IP4 98.248.92.77 | [RFC4566] | 4445 | a=rtpmap:109 opus/48000 | | 4446 | a=ptime:20 | | 4447 | a=sendrecv | [RFC3264] | 4448 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 4449 | 192.168.1.7 49203 typ host | | 4450 | a=candidate:1 1 UDP 1694302207 | [RFC5245] | 4451 | 98.248.92.77 49203 typ srflx raddr | | 4452 | 192.168.1.7 rport 49203 | | 4453 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | 4454 | 192.168.1.7 60065 typ host | | 4455 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 4456 | 98.248.92.77 60065 typ srflx raddr | | 4457 | 192.168.1.7 rport 60065 | | 4458 | ****** Video m=line ********* | ************************ | 4459 | | ***** | 4460 | m=video 63130 RTP/SAVP 120 | [RFC4566] Bob accepts | 4461 | | RTP/AVP based video | 4462 | | stram | 4463 | c=IN IP4 98.248.92.771 | [RFC4566] | 4464 | a=rtpmap:120 VP8/90000 | [I-D.ietf-payload-vp8] | 4465 | a=sendrecv | [RFC3264] | 4466 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 4467 | 192.168.1.7 63130 typ host | | 4468 | a=candidate:1 1 UDP 1694302207 | [RFC5245] | 4469 | 98.248.92.77 63130 typ srflx raddr | | 4470 | 192.168.1.7 rport 63130 | | 4471 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | 4472 | 192.168.1.7 56607 typ host | | 4473 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 4474 | 98.248.92.77 56607 typ srflx raddr | | 4475 | 192.168.1.7 rport 56607 | | 4476 +----------------------------------------+--------------------------+ 4478 Table 42: 5.4.5 SDP Answer 4480 6. IANA Considerations 4482 This document requires no actions from IANA. 4484 7. Acknowledgments 4486 We would like to thank Justin Uberti, Chris Flo, Paul Kyzivat for 4487 their detailed review and inputs. 4489 8. Change Log 4491 [RFC EDITOR NOTE: Please remove this section when publishing] 4493 Changes from draft-ietf-rtcweb-sdp-01 4495 o Complete face-lift 4497 o Added visual markers around m=lines to indicate their type, added 4498 spacing between tables for aiding readers 4500 o Updated table names to indicate offer vs answer 4502 o Attempted to align to latest versions of SCTP, BUNDLE, MSID drafts 4504 o Added mid header extensions to all the lines 4506 o Harmonized BUNDLE semantics and conventions updated. 4508 Changes from draft-ietf-rtcweb-sdp-00 4510 o Updated Simulcast/FEC/RTX examples to use RID framework 4511 o Fixed BUNDLE references for a=bundle-only 4513 Changes from draft-nandakumar-rtcweb-sdp-08 4515 o Fixed typos 4517 o Moved to a WG version 4519 Changes from draft-nandakumar-rtcweb-sdp-06 and draft-nandakumar- 4520 rtcweb-sdp-07 4522 o Added clarification on Call-Flow diagram usage 4524 o More cleanups 4526 Changes from draft-nandakumar-rtcweb-sdp-05 4528 o Added Ascii chart for all the SDP Eaxamples 4530 o Improved text and updated SDP Examples for Simulcast and FEC 4532 o Fixed MediaStream ID Semantics SDP Errors 4534 Changes from draft-nandakumar-rtcweb-sdp-04 4536 o Interim version of the draft to avert expiry 4538 o Corrected placement of c= line as per RFC4566 4540 o Updated simulcast SDP to reflect draft-westerlund-avtcore-rtp- 4541 simulcast-04 4543 Changes from draft-nandakumar-rtcweb-sdp-03 4545 o Aligned more closely with JSEP version -05 4547 o Added Conventions to help readability 4549 o Add more examples to clarify BUNDLE use-cases 4551 Changes from draft-nandakumar-rtcweb-sdp-02 4553 o Major refactoring was done to group the examples in to categories 4555 o SDP was updated through out to reflect JSEP-04 style of defining 4556 attributes per m=line than at the session level. 4558 o Added 8 new examples. 4560 o Updated references for Trickle, Unified Plan 4562 o Add section to explain the syntax conventions followed in the 4563 examples. 4565 Changes from draft-nandakumar-rtcweb-sdp-01 4567 o Updated references to OPUS RTP Payload Specification. 4569 o Updated BUNDLE examples based on the latest draft-ietf-mmusic-sdp- 4570 bundle-negotiation. 4572 o Added examples for multiple audio and video flows based on Unified 4573 Plan. 4575 o Added new examples for RTX and FEC streams 4577 o Updated Simulcast and SVC examples 4579 Changes from draft-nandakumar-rtcweb-sdp-00 4581 o Fixed editorial comments on the mailing list. 4583 o Updated Data-channel SDP information based on draft-ietf-mmusic- 4584 sctp-sdp. 4586 o Updated BUNDLE examples based on draft-ietf-mmusic-sdp-bundle- 4587 negotiation. 4589 o Added examples for few more BUNDLE variants 4591 o Added new examples for Simulcast and SVC 4593 9. Informative References 4595 [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model 4596 with Session Description Protocol (SDP)", RFC 3264, DOI 4597 10.17487/RFC3264, June 2002, 4598 . 4600 [RFC4145] Yon, D. and G. Camarillo, "TCP-Based Media Transport in 4601 the Session Description Protocol (SDP)", RFC 4145, DOI 4602 10.17487/RFC4145, September 2005, 4603 . 4605 [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session 4606 Description Protocol", RFC 4566, DOI 10.17487/RFC4566, 4607 July 2006, . 4609 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 4610 Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ 4611 RFC2119, March 1997, 4612 . 4614 [RFC5245] Rosenberg, J., "Interactive Connectivity Establishment 4615 (ICE): A Protocol for Network Address Translator (NAT) 4616 Traversal for Offer/Answer Protocols", RFC 5245, DOI 4617 10.17487/RFC5245, April 2010, 4618 . 4620 [RFC5506] Johansson, I. and M. Westerlund, "Support for Reduced-Size 4621 Real-Time Transport Control Protocol (RTCP): Opportunities 4622 and Consequences", RFC 5506, DOI 10.17487/RFC5506, April 4623 2009, . 4625 [RFC3551] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and 4626 Video Conferences with Minimal Control", STD 65, RFC 3551, 4627 DOI 10.17487/RFC3551, July 2003, 4628 . 4630 [RFC3952] Duric, A. and S. Andersen, "Real-time Transport Protocol 4631 (RTP) Payload Format for internet Low Bit Rate Codec 4632 (iLBC) Speech", RFC 3952, DOI 10.17487/RFC3952, December 4633 2004, . 4635 [RFC4796] Hautakorpi, J. and G. Camarillo, "The Session Description 4636 Protocol (SDP) Content Attribute", RFC 4796, DOI 10.17487/ 4637 RFC4796, February 2007, 4638 . 4640 [RFC5761] Perkins, C. and M. Westerlund, "Multiplexing RTP Data and 4641 Control Packets on a Single Port", RFC 5761, DOI 10.17487/ 4642 RFC5761, April 2010, 4643 . 4645 [RFC3556] Casner, S., "Session Description Protocol (SDP) Bandwidth 4646 Modifiers for RTP Control Protocol (RTCP) Bandwidth", RFC 4647 3556, DOI 10.17487/RFC3556, July 2003, 4648 . 4650 [RFC5104] Wenger, S., Chandra, U., Westerlund, M., and B. Burman, 4651 "Codec Control Messages in the RTP Audio-Visual Profile 4652 with Feedback (AVPF)", RFC 5104, DOI 10.17487/RFC5104, 4653 February 2008, . 4655 [RFC4588] Rey, J., Leon, D., Miyazaki, A., Varsa, V., and R. 4656 Hakenberg, "RTP Retransmission Payload Format", RFC 4588, 4657 DOI 10.17487/RFC4588, July 2006, 4658 . 4660 [RFC5956] Begen, A., "Forward Error Correction Grouping Semantics in 4661 the Session Description Protocol", RFC 5956, DOI 10.17487/ 4662 RFC5956, September 2010, 4663 . 4665 [RFC5888] Camarillo, G. and H. Schulzrinne, "The Session Description 4666 Protocol (SDP) Grouping Framework", RFC 5888, DOI 4667 10.17487/RFC5888, June 2010, 4668 . 4670 [RFC6236] Johansson, I. and K. Jung, "Negotiation of Generic Image 4671 Attributes in the Session Description Protocol (SDP)", RFC 4672 6236, DOI 10.17487/RFC6236, May 2011, 4673 . 4675 [RFC3984] Wenger, S., Hannuksela, M., Stockhammer, T., Westerlund, 4676 M., and D. Singer, "RTP Payload Format for H.264 Video", 4677 RFC 3984, DOI 10.17487/RFC3984, February 2005, 4678 . 4680 [RFC5583] Schierl, T. and S. Wenger, "Signaling Media Decoding 4681 Dependency in the Session Description Protocol (SDP)", RFC 4682 5583, DOI 10.17487/RFC5583, July 2009, 4683 . 4685 [RFC5576] Lennox, J., Ott, J., and T. Schierl, "Source-Specific 4686 Media Attributes in the Session Description Protocol 4687 (SDP)", RFC 5576, DOI 10.17487/RFC5576, June 2009, 4688 . 4690 [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. 4691 Jacobson, "RTP: A Transport Protocol for Real-Time 4692 Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550, 4693 July 2003, . 4695 [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, 4696 A., Peterson, J., Sparks, R., Handley, M., and E. 4697 Schooler, "SIP: Session Initiation Protocol", RFC 3261, 4698 DOI 10.17487/RFC3261, June 2002, 4699 . 4701 [RFC2326] Schulzrinne, H., Rao, A., and R. Lanphier, "Real Time 4702 Streaming Protocol (RTSP)", RFC 2326, DOI 10.17487/ 4703 RFC2326, April 1998, 4704 . 4706 [RFC3605] Huitema, C., "Real Time Control Protocol (RTCP) attribute 4707 in Session Description Protocol (SDP)", RFC 3605, DOI 4708 10.17487/RFC3605, October 2003, 4709 . 4711 [RFC2833] Schulzrinne, H. and S. Petrack, "RTP Payload for DTMF 4712 Digits, Telephony Tones and Telephony Signals", RFC 2833, 4713 DOI 10.17487/RFC2833, May 2000, 4714 . 4716 [RFC6464] Lennox, J., Ed., Ivov, E., and E. Marocco, "A Real-time 4717 Transport Protocol (RTP) Header Extension for Client-to- 4718 Mixer Audio Level Indication", RFC 6464, DOI 10.17487/ 4719 RFC6464, December 2011, 4720 . 4722 [RFC6465] Ivov, E., Ed., Marocco, E., Ed., and J. Lennox, "A Real- 4723 time Transport Protocol (RTP) Header Extension for Mixer- 4724 to-Client Audio Level Indication", RFC 6465, DOI 10.17487/ 4725 RFC6465, December 2011, 4726 . 4728 [RFC7022] Begen, A., Perkins, C., Wing, D., and E. Rescorla, 4729 "Guidelines for Choosing RTP Control Protocol (RTCP) 4730 Canonical Names (CNAMEs)", RFC 7022, DOI 10.17487/RFC7022, 4731 September 2013, . 4733 [I-D.ietf-mmusic-sdp-bundle-negotiation] 4734 Holmberg, C., Alvestrand, H., and C. Jennings, 4735 "Negotiating Media Multiplexing Using the Session 4736 Description Protocol (SDP)", draft-ietf-mmusic-sdp-bundle- 4737 negotiation-24 (work in progress), January 2016. 4739 [I-D.ietf-mmusic-sdp-simulcast] 4740 Burman, B., Westerlund, M., Nandakumar, S., and M. Zanaty, 4741 "Using Simulcast in SDP and RTP Sessions", draft-ietf- 4742 mmusic-sdp-simulcast-03 (work in progress), October 2015. 4744 [I-D.ietf-mmusic-rid] 4745 Thatcher, P., Zanaty, M., Nandakumar, S., Burman, B., 4746 Roach, A., and B. Campen, "RTP Payload Format 4747 Constraints", draft-ietf-mmusic-rid-04 (work in progress), 4748 February 2016. 4750 [I-D.ietf-payload-rtp-opus] 4751 Spittka, J., Vos, K., and J. Valin, "RTP Payload Format 4752 for the Opus Speech and Audio Codec", draft-ietf-payload- 4753 rtp-opus-11 (work in progress), April 2015. 4755 [I-D.ietf-payload-vp8] 4756 Westin, P., Lundin, H., Glover, M., Uberti, J., and F. 4757 Galligan, "RTP Payload Format for VP8 Video", draft-ietf- 4758 payload-vp8-17 (work in progress), September 2015. 4760 [I-D.ietf-rtcweb-jsep] 4761 Uberti, J., Jennings, C., and E. Rescorla, "Javascript 4762 Session Establishment Protocol", draft-ietf-rtcweb-jsep-12 4763 (work in progress), October 2015. 4765 [I-D.ietf-mmusic-trickle-ice] 4766 Ivov, E., Rescorla, E., and J. Uberti, "Trickle ICE: 4767 Incremental Provisioning of Candidates for the Interactive 4768 Connectivity Establishment (ICE) Protocol", draft-ietf- 4769 mmusic-trickle-ice-02 (work in progress), January 2015. 4771 [I-D.ietf-mmusic-msid] 4772 Alvestrand, H., "WebRTC MediaStream Identification in the 4773 Session Description Protocol", draft-ietf-mmusic-msid-11 4774 (work in progress), October 2015. 4776 [I-D.ietf-mmusic-sctp-sdp] 4777 Holmberg, C., Loreto, S., and G. Camarillo, "Stream 4778 Control Transmission Protocol (SCTP)-Based Media Transport 4779 in the Session Description Protocol (SDP)", draft-ietf- 4780 mmusic-sctp-sdp-15 (work in progress), September 2015. 4782 [I-D.ietf-rtcweb-data-channel] 4783 Jesup, R., Loreto, S., and M. Tuexen, "WebRTC Data 4784 Channels", draft-ietf-rtcweb-data-channel-13 (work in 4785 progress), January 2015. 4787 [I-D.ietf-payload-flexible-fec-scheme] 4788 Singh, V., Begen, A., Zanaty, M., and G. Mandyam, "RTP 4789 Payload Format for Flexible Forward Error Correction 4790 (FEC)", draft-ietf-payload-flexible-fec-scheme-01 (work in 4791 progress), October 2015. 4793 [I-D.ietf-mmusic-mux-exclusive] 4794 Holmberg, C., "Indicating Exclusive Support of RTP/RTCP 4795 Multiplexing using SDP", draft-ietf-mmusic-mux- 4796 exclusive-08 (work in progress), June 2016. 4798 [WebRTC] W3C, "WebRTC 1.0: Real-time Communication Between 4799 Browsers", 4800 , . 4802 Authors' Addresses 4804 Suhas Nandakumar 4805 Cisco 4806 170 West Tasman Drive 4807 San Jose, CA 95134 4808 USA 4810 Email: snandaku@cisco.com 4812 Cullen Jennings 4813 Cisco 4814 170 West Tasman Drive 4815 San Jose, CA 95134 4816 USA 4818 Phone: +1 408 421-9990 4819 Email: fluffy@cisco.com