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