idnits 2.17.1 draft-nandakumar-rtcweb-sdp-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack a Security Considerations section. ** 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 90 instances of lines with non-RFC6890-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. == There are 124 instances of lines with private range IPv4 addresses in the document. If these are generic example addresses, they should be changed to use any of the ranges defined in RFC 6890 (or successor): 192.0.2.x, 198.51.100.x or 203.0.113.x. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document seems to lack the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords -- however, there's a paragraph with a matching beginning. Boilerplate error? (The document does seem to have the reference to RFC 2119 which the ID-Checklist requires). -- The document date (October 15, 2012) is 4208 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- ** Obsolete normative reference: RFC 4566 (Obsoleted by RFC 8866) -- Obsolete informational reference (is this intentional?): RFC 5245 (Obsoleted by RFC 8445, RFC 8839) == Outdated reference: A later version (-26) exists of draft-ietf-rtcweb-jsep-01 -- Obsolete informational reference (is this intentional?): RFC 3984 (ref. 'RFC5888') (Obsoleted by RFC 6184) -- Duplicate reference: RFC3984, mentioned in 'RFC3984', was also mentioned in 'RFC5888'. -- Obsolete informational reference (is this intentional?): RFC 3984 (Obsoleted by RFC 6184) Summary: 3 errors (**), 0 flaws (~~), 5 warnings (==), 5 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 18, 2013 October 15, 2012 7 SDP for the WebRTC 8 draft-nandakumar-rtcweb-sdp-00 10 Abstract 12 The Web Real-Time Communication (WebRTC) [WEBRTC] working group is 13 charged to provide protocol support for direct interactive rich 14 communication using audio, video and data between two peers' web 15 browsers. With in the WebRTC framework, Session Description protocol 16 (SDP) [RFC4566] is used for negotiating session capabilities between 17 the peers. Such a negotiataion happens based on the SDP Offer/Answer 18 exchange mechanism described in the RFC 3264 [RFC3264]. 20 This document serves a introductory purpose in describing the role of 21 SDP for the most common WebRTC use-cases. 23 Status of this Memo 25 This Internet-Draft is submitted in full conformance with the 26 provisions of BCP 78 and BCP 79. 28 Internet-Drafts are working documents of the Internet Engineering 29 Task Force (IETF). Note that other groups may also distribute 30 working documents as Internet-Drafts. The list of current Internet- 31 Drafts is at http://datatracker.ietf.org/drafts/current/. 33 Internet-Drafts are draft documents valid for a maximum of six months 34 and may be updated, replaced, or obsoleted by other documents at any 35 time. It is inappropriate to use Internet-Drafts as reference 36 material or to cite them other than as "work in progress." 38 This Internet-Draft will expire on April 18, 2013. 40 Copyright Notice 42 Copyright (c) 2012 IETF Trust and the persons identified as the 43 document authors. All rights reserved. 45 This document is subject to BCP 78 and the IETF Trust's Legal 46 Provisions Relating to IETF Documents 47 (http://trustee.ietf.org/license-info) in effect on the date of 48 publication of this document. Please review these documents 49 carefully, as they describe your rights and restrictions with respect 50 to this document. Code Components extracted from this document must 51 include Simplified BSD License text as described in Section 4.e of 52 the Trust Legal Provisions and are provided without warranty as 53 described in the Simplified BSD License. 55 Table of Contents 57 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 58 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 59 3. SDP and the WebRTC . . . . . . . . . . . . . . . . . . . . . . 3 60 4. Offer/Answer and the WebRTC . . . . . . . . . . . . . . . . . 4 61 5. WebRTC Session Description Examples . . . . . . . . . . . . . 5 62 5.1. Secure Two-Way Audio,Video and Data with RTCP Feedback . . 5 63 5.2. Secure Two-way Audio,Video,Data and remove data stream . . 11 64 5.3. Secure Two-Way Audio,Video w/Bundle . . . . . . . . . . . 15 65 5.4. Successful One Way Session with 2 Video Streams . . . . . 19 66 5.5. Add New Media (video) . . . . . . . . . . . . . . . . . . 23 67 6. WebRTC <-> Legacy Interop Examples . . . . . . . . . . . . . . 28 68 6.1. Secure Two-Way Audio,Video w/Feedback - WebRTC <-> 69 Legacy Interop . . . . . . . . . . . . . . . . . . . . . . 28 70 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 33 71 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 33 72 8.1. Normative References . . . . . . . . . . . . . . . . . . . 33 73 8.2. Informative References . . . . . . . . . . . . . . . . . . 33 74 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 34 76 1. Introduction 78 Javascript Session Exchange Protocol(JSEP) [JSEP] specifies a generic 79 protocol needed to generate [RFC3264] offers and answers negotiated 80 between the WebRTC peers for setting up, updating and tearing down a 81 multimedia session. For this purpose, SDP is used to construct 82 [RFC3264] offers/answers for describing (media and non-media) streams 83 as appropriate for recipients of a session description to participate 84 in the session. 86 The remainder of this document is organized as follows: Section 3 87 and 4 provide an overview of SDP and the Offer/Answer exchange 88 mechanism. Section 5 and 6 provide sample SDP usages for the most 89 common WebRTC use-cases. 91 2. Terminology 93 The key words "MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD NOT", 94 "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be 95 interpreted as described in [RFC2119]. 97 3. SDP and the WebRTC 99 The purpose of this section is to provide a general overview of SDP 100 and its components. For a more in-depth understanding, the readers 101 are advised to refer to the [RFC4566]. 103 The Session Description Protocol (SDP) [RFC4566] describes multimedia 104 sessions,which can be audio,video, whiteboards,fax,modem, and other 105 streams. It provides a general purpose,standard representation to 106 describe various aspects of multimedia session such as media 107 capabilities,transport addresses and related metadata in a transport 108 agnostic manner,for the purposes of session announcement,session 109 invitation and parameter negotiation. 111 As of today SDP is widely used in the context of Session Initiation 112 Protocol,Real-time Transport Protocol, and Real-time Streaming 113 Protocol. 115 Below figure introduces high-level breakup of SDP into components 116 that semantically describe a multimedia session, in our case,say,a 117 WebRTC session [WEBRTC]. It by no means captures everything about 118 SDP and hence, should be used for informational purposes only. 120 [WEBRTC] proposes JavaScript application to fully control the 121 signaling plane of a multimedia session as described in the JSEP 122 specification [JSEP]. JSEP provides mechanisms to create session 123 characterisation and media definition information to conduct the 124 session based on SDP exchanges. 126 In this context,SDP serves two purposes: 127 Provide grammatical structure syntatically 128 Semantically convey partipant's intention and capabilities. 130 4. Offer/Answer and the WebRTC 132 This section introduces SDP Offer/Answer Exchange mechanism mandated 133 by WebRTC for negotitating session capabilities while setting 134 up,updating and tearing down a WebRTC session. This section is 135 intentionally brief in nature and interested readers are recommended 136 to [RFC3264] for specific details on the protocol operation. 138 The Offer/Answer [RFC3264] model specifies rule for the bilateral 139 exchange of Session Description Protocol (SDP) messages for creation 140 of multimedia streams.It defines protocol with involved participants 141 exchanging desired session characteristics from each others 142 perspective modelled on SDP to negotiate the session between them. 144 In the most basic form,the protocol operation begins by one of the 145 participants sending an initial SDP offer describing its intent to 146 start a multimedia communication session. The participant receiving 147 the offer MAY generate an SDP answer accepting the offer or it MAY 148 reject the offer. If the session is accepted the offer answer model 149 guarantees a common view of the multimedia session between the 150 participants. 152 At any time, either participant MAY generate a new SDP offer that 153 updates the session in progress. 155 With in the context of WebRTC, the Offer/Answer model defines the 156 state-machinery for WebRTC peers to negotiate session descriptions 157 between them during initial setup stages as well as for eventual 158 session updates. Javascript Session Establishment Protocol 159 specification [JSEP] for WebRTC provides the mechanism for generating 160 [RFC3264] SDP offers and answers in order for both sides of the 161 session to agree upon details such as list of media formats to be 162 sent/received, bandwidth information, crypto parameters, transport 163 parameters, for example. 165 The following sections provide samples of SDP message details and 166 exchanges for the most common WebRTC usecases. 168 5. WebRTC Session Description Examples 170 A typical web based real-time multimedia communication session can be 171 characterized as below: 173 It has zero or more Audio only,Video only or Audio/Video Media 174 streams 175 MAY contain zero or more non-media data streams 176 All the streams are secured with DTLS/SRTP 177 ICE processing for NAT Traversal 178 Sessions over IPv4-only, IPv6-only, dual-stack based clients. 180 As mentioned earlier [WEBRTC] proposes using SDP based Offer/Answer 181 model to negotiate multimedia session between peers' browsers 182 Building on the concepts from the previous sections, the following 183 subsections attempts to describe the usage of SDP for the most common 184 WebRTC use-cases. 186 In all the use-cases, Alice and Bob are assumed to be the WebRTC 187 peers unless mentioned otherwise. Pointers to appropriate RFCs and 188 notes are provided, wherever necessary,agains the SDP lines. 190 5.1. Secure Two-Way Audio,Video and Data with RTCP Feedback 192 This use-case allows two users to participate in a two-way 193 communication session securely on their WebRTC enabled Web browsers. 195 title WebRTC Session - 2-Way Secure Audio,Video with RTCP Feedback 196 Alice->Bob: Offer(Audio:G.711,Opus,iLBC Video:H.264,VP8) 197 Bob->Alice: Answer(Audio:Opus,DTMF Video:H.264) 198 Alice->Bob: Two-way Opus Audio, H.264 Video 199 note right of Alice 200 Session also suports RTP/RTCP Mux, RTCP feedback (nack,pli) 201 end note 203 More specifically, this use-case demonstrates following aspects of a 204 WebRTC session 205 SRTP with DTLS based encryption 206 RTP and RTCP Muxing 207 RTCP based feedback and reduced size support 208 ICE processing for NAT Traversal 209 Audio Codec Offered : PCMU, Opus, iLBC 210 Audio Codec Answered : Opus 211 Video Codecs Offered: H.264, VP8 212 Video Codecs Answered: H.264 213 Data Channel Support 214 The tables (4.1 and 4.2) below capture in detail, the initial SDP 215 Offer and Answer messages exchanged. 217 +------------------------------------------+------------------------+ 218 | SDP Contents | RFC#/Notes | 219 +------------------------------------------+------------------------+ 220 | v=0 | [RFC4566] | 221 | o=alice 20518 0 IN IP4 0.0.0.0 | [RFC4566] - Session | 222 | | Origin Information | 223 | s= | [RFC4566] | 224 | t=0 0 | [RFC4566] | 225 | a=ice-ufrag:074c6550 | [RFC5245] - Session | 226 | | Level ICE parameter | 227 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a | [RFC5245] - Session | 228 | 068 | Level ICE parameter | 229 | a=fingerprint:sha-1 | [RFC5245] - Session | 230 | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:7 | DTLS Fingerprint for | 231 | 0:9d:1f:66:79:a8:07 | SRTP | 232 | a=rtcp-rsize | [RFC5506] - Alice | 233 | | intends to use reduced | 234 | | size RTCP for this | 235 | | session | 236 | m=audio 54609 RTP/SAVPF 0 109 98 | [RFC4566] | 237 | c= IN IP4 24.23.204.141 | [RFC4566] | 238 | a=rtpmap:0 PCMU/8000 | [RFC3551] | 239 | a=rtpmap:109 opus/48000 | [draft-spittka-payload | 240 | | -rtp-opus] | 241 | a=ptime:20 | [draft-spittka-payload | 242 | | -rtp-opus] | 243 | a=rtpmap:98 iLBC/8000 a=fmtp:98 mode=20 | [RFC3952] | 244 | a=sendrecv | [RFC3264] - Alice can | 245 | | send and recv audio | 246 | a=rtcp-mux | [RFC5761] - Alice can | 247 | | perform RTP/RTCP | 248 | | Muxing on port 54609 | 249 | b=AS:256 | [RFC4566] | 250 | b=RS:0 | [RFC3556] | 251 | b=RR:0 | [RFC3556] | 252 | a=candidate:0 1 UDP 2113667327 | [RFC5245] - Host ICE | 253 | 192.168.1.4 54609 typ host | Candidate | 254 | a=candidate:1 1 UDP 694302207 | [RFC5245] - Server | 255 | 24.23.204.141 54609 typ srflx raddr | Reflexive ICE | 256 | 192.168.1.4 rport 54609 | Candidate for the | 257 | | above host candidate | 258 | a=candidate:0 2 UDP 2113667326 | [RFC5245] - Second | 259 | 192.168.1.4 64678 typ host | Host Candidate | 260 | a=candidate:1 2 UDP 1694302206 | [RFC5245] -Server | 261 | 24.23.204.141 64678 typ srflx raddr | Reflexive Candidate | 262 | 192.168.1.4 rport 64678 | for the Second Host | 263 | | Candidate | 264 | a=rtcp-fb:109 nack | [RFC5104] - Indicates | 265 | | NACK RTCP feedback | 266 | | support | 267 | m=video 62537 RTP/SAVPF 99 120 | [RFC4566] | 268 | c= IN IP4 24.23.204.141 | [RFC4566] | 269 | a=rtpmap:99 H264/90000 | [RFC3984] | 270 | a=fmtp:99 | [RFC3984] | 271 | profile-level-id=4d0028;packetization-mo | | 272 | de=1 | | 273 | a=rtpmap:120 VP8/90000 | [draft-ietf-payload-vp | 274 | | 8] | 275 | a=sendrecv | [RFC3264] - Alice can | 276 | | send and recv video | 277 | a=rtcp-mux | [RFC5761] - Alice can | 278 | | perform RTP/RTCP | 279 | | Muxing on port 62537 | 280 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 281 | 192.168.1.4 62537 typ host | | 282 | a=candidate:1 1 UDP 1694302207 | [RFC5245] | 283 | 24.23.204.141 62537 typ srflx raddr | | 284 | 192.168.1.4 rport 62537 | | 285 | a=candidate:0 2 2113667326 192.168.1.4 | [RFC5245] | 286 | 54721 typ host | | 287 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 288 | 24.23.204.141 54721 typ srflx raddr | | 289 | 192.168.1.4 rport 54721 | | 290 | a=rtcp-fb:99 nack pli | [RFC5104] - Indicates | 291 | | support for Picture | 292 | | loss Indication and | 293 | | NACK | 294 | a=rtcp-fb:99 ccm fir | [RFC5104] - Full Intra | 295 | | Frame Request-Codec | 296 | | Control Message | 297 | | support | 298 | a=rtcp-fb:120 nack pli | [RFC5104] - Indicates | 299 | | support for Picture | 300 | | loss Indication and | 301 | | NACK | 302 | a=rtcp-fb:120 ccm fir | [RFC5104] - Full Intra | 303 | | Frame Request-Codec | 304 | | Control Message | 305 | | support | 306 | m=application 56966 SCTP/DTLS 5000 | [draft-ietf-rtcweb-dat | 307 | | a-channel] | 308 | c= IN IP4 24.23.204.141 | [RFC4566] | 309 | a=fmtp:5000 | [draft-ietf-rtcweb-dat | 310 | protocol=webrtc-datachannel;streams=16 | a-channel] | 311 | a=sendrecv | [RFC3264] - Alice can | 312 | | send and recv | 313 | | non-media data | 314 | a=rtcp-mux | [RFC5761] - Alice can | 315 | | perform RTP/RTCP | 316 | | Muxing on port 56966 | 317 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 318 | 192.168.1.7 56966 typ host | | 319 | a=candidate:1 1 UDP 1694302207 | [RFC5245] | 320 | 24.23.204.141 56966 typ srflx raddr | | 321 | 192.168.1.7 rport 56966 | | 322 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | 323 | 192.168.1.7 51641 typ host | | 324 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 325 | 24.23.204.141 51641 typ srflx raddr | | 326 | 192.168.1.7 rport 51641 | | 327 | a=rtcp-fb:5000 nack | [RFC5104] - Indicates | 328 | | NACK feedback support | 329 | | for the data-channel | 330 +------------------------------------------+------------------------+ 332 Table 1: 4.1 SDP Offer 334 +------------------------------------------+------------------------+ 335 | SDP Contents | RFC#/Notes | 336 +------------------------------------------+------------------------+ 337 | v=0 | [RFC4566] | 338 | o=bob 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session | 339 | | Origin Information | 340 | s= | [RFC4566] | 341 | t=0 0 | [RFC4566] | 342 | a=ice-ufrag:c300d85b | [RFC5245] - Session | 343 | | Level ICE username | 344 | | frag | 345 | a=ice-pwd:de4e99bd291c325921d5d47efbabd9 | [RFC5245] - Session | 346 | a2 | Level ICE password | 347 | a=fingerprint:sha-1 | [RFC5245] - Session | 348 | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:7 | DTLS Fingerprint for | 349 | 0:9d:1f:66:79:a8:07 | SRTP | 350 | a=rtcp-rsize | [RFC5506] - Alice | 351 | | intends to use reduced | 352 | | size RTCP for this | 353 | | session | 354 | m=audio 49203 RTP/SAVPF 109 | [RFC4566] | 355 | c= IN IP4 98.248.92.77 | [RFC4566] | 356 | a=rtpmap:109 opus/48000 | [draft-spittka-payload | 357 | | -rtp-opus] | 358 | a=ptime:20 | [draft-spittka-payload | 359 | | -rtp-opus] | 360 | a=sendrecv | [RFC3264] - Bob can | 361 | | send and recv audio | 362 | a=rtcp-mux | [RFC5761] - Bob can | 363 | | perform RTP/RTCP | 364 | | Muxing on port 49203 | 365 | a=candidate:0 1 UDP 2113667327 | [RFC5245] - Host ICE | 366 | 192.168.1.7 49203 typ host | Candidate for Opus | 367 | | Stream | 368 | a=ccandidate:1 1 UDP 1694302207 | [RFC5245] - Server | 369 | 98.248.92.77 49203 typ srflx raddr | Reflexive ICE | 370 | 192.168.1.7 rport 49203 | Candidate for the | 371 | | above host candidate | 372 | a=candidate:candidate:0 2 UDP 2113667326 | [RFC5245] - Second | 373 | 192.168.1.7 60065 typ host | Host Candidate | 374 | a=candidate:1 2 UDP 1694302206 | [RFC5245] -Server | 375 | 98.248.92.77 60065 typ srflx raddr | Reflexive Candidate | 376 | 192.168.1.7 rport 60065 | for the Second Host | 377 | | Candidate | 378 | m=video 63130 RTP/SAVPF 99 | [RFC4566] | 379 | c= IN IP4 98.248.92.771 | [RFC4566] | 380 | a=rtpmap:99 H264/90000 | [RFC3984] | 381 | a=fmtp:99 | [RFC3984] | 382 | profile-level-id=4d0028;packetization-mo | | 383 | de=1 | | 384 | a=sendrecv | [RFC3264] - Bob can | 385 | | send and recv video | 386 | a=rtcp-mux | [RFC5761] - Bob can | 387 | | perform RTP/RTCP | 388 | | Muxing on port 63130 | 389 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 390 | 192.168.1.7 63130 typ host | | 391 | a=candidate:1 1 UDP 1694302207 | [RFC5245] | 392 | 98.248.92.77 63130 typ srflx raddr | | 393 | 192.168.1.7 rport 63130 | | 394 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | 395 | 192.168.1.7 56607 typ host | | 396 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 397 | 98.248.92.77 56607 typ srflx raddr | | 398 | 192.168.1.7 rport 56607 | | 399 | a=rtcp-fb:99 nack pli | [RFC5104] - Indicates | 400 | | support for Picture | 401 | | loss Indication and | 402 | | NACK | 403 | a=rtcp-fb:99 ccm fir | [RFC5104] - Full Intra | 404 | | Frame Request-Codec | 405 | | Control Message | 406 | | support | 407 | m=application 55700 SCTP/DTLS 5000 | [draft-ietf-rtcweb-dat | 408 | | a-channel] | 409 | c= IN IP4 98.248.92.771 | [RFC4566] | 410 | a=fmtp:5000 | [draft-ietf-rtcweb-dat | 411 | protocol=webrtc-datachannel;streams=16 | a-channel] | 412 | a=sendrecv | [RFC3264] - Bob can | 413 | | send and recv | 414 | | non-media data | 415 | a=rtcp-mux | [RFC5761] - Bob can | 416 | | perform RTP/RTCP | 417 | | Muxing on port 55700 | 418 | a=candidate:0 1 UDP 2113667327 | [RFC5245] - Refer 4.1 | 419 | 192.168.1.7 55700 typ host | SDP Offer | 420 | a=candidate:1 1 UDP 1694302207 | [RFC5245] Refer 4.1 | 421 | 98.248.92.77 55700 typ srflx raddr | SDP Offer | 422 | 192.168.1.7 rport 55700 | | 423 | a=candidate:0 2 UDP 2113667326 | [RFC5245] Refer 4.1 | 424 | 192.168.1.7 58137 typ host | SDP Offer | 425 | a=candidate:1 2 UDP 1694302206 | [RFC5245] Refer 4.1 | 426 | 98.248.92.77 58137 typ srflx raddr | SDP Offer | 427 | 192.168.1.7 rport 581371 | | 428 | a=rtcp-fb:5000 nack | [RFC5104] - Indicates | 429 | | NACK feedback support | 430 | | for the data-channel | 431 +------------------------------------------+------------------------+ 433 Table 2: 4.1 SDP Answer 435 5.2. Secure Two-way Audio,Video,Data and remove data stream 437 This scenario builds upon from the usecase in the section 5.1 It 438 extends by Alice removing data-stream once the session is in 439 progress. 441 title WebRTC Session (Audio,Video,Datachannel) - Drop Datachannel 442 note right of Alice 443 Alice & Bob are in a two-way audio,video and datachannel session. 444 Alice decides to stop the datachannel stream 445 end note 446 Alice->Bob: Offer(Audio:Opus Video:VP8, Application: Drop) 447 Bob->Alice: Answer(Audio:Opus Video:VP8, Application:Drop) 448 Alice->Bob: Two-way Opus Audio and VP8 Video 450 As a precondition, A Two-Way Audio,Video and Data Session is already 451 setup. 453 +------------------------------------------+------------------------+ 454 | SDP Contents | RFC#/Notes | 455 +------------------------------------------+------------------------+ 456 | v=0 | [RFC4566] | 457 | o=alice 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 458 | s= | [RFC4566] | 459 | t=0 0 | [RFC4566] | 460 | a=ice-ufrag:074c6550 | [RFC5245] | 461 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a | [RFC5245] | 462 | 068 | | 463 | a=fingerprint:sha-1 | [RFC5245] | 464 | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:7 | | 465 | 0:9d:1f:66:79:a8:07 | | 466 | a=rtcp-rsize | [RFC5506] | 467 | m=audio 54609 RTP/SAVPF 0 109 98 | [RFC4566] | 468 | c= IN IP4 24.23.204.141 | [RFC4566] | 469 | a=rtpmap:0 PCMU/8000 | [RFC3551] | 470 | a=rtpmap:109 opus/48000 | [draft-spittka-payload | 471 | | -rtp-opus] | 472 | a=ptime:20 | [draft-spittka-payload | 473 | | -rtp-opus] | 474 | a=rtpmap:98 iLBC/8000 a=fmtp:98 mode=20 | [RFC3952] | 475 | a=sendrecv | [RFC3264] | 476 | a=rtcp-mux | [RFC5761] | 477 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 478 | 192.168.1.4 54609 typ host | | 479 | a=candidate:1 1 UDP 694302207 | [RFC5245] | 480 | 24.23.204.141 54609 typ srflx raddr | | 481 | 192.168.1.4 rport 54609 | | 482 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | 483 | 192.168.1.4 64678 typ host | | 484 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 485 | 24.23.204.141 64678 typ srflx raddr | | 486 | 192.168.1.4 rport 64678 | | 487 | a=rtcp-fb:109 nack | [RFC5104] | 488 | m=video 62537 RTP/SAVPF 99 120 | [RFC4566] | 489 | c= IN IP4 24.23.204.141 | [RFC4566] | 490 | a=rtpmap:99 H264/90000 | [RFC3984] | 491 | a=fmtp:99 | [RFC3984] | 492 | profile-level-id=4d0028;packetization-mo | | 493 | de=1 | | 494 | a=rtpmap:120 VP8/90000 | [draft-ietf-payload-vp | 495 | | 8] | 496 | a=sendrecv | [RFC3264] | 497 | a=rtcp-mux | [RFC5761] | 498 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 499 | 192.168.1.4 62537 typ host | | 500 | a=candidate:1 1 UDP 1694302207 | [RFC5245] | 501 | 24.23.204.141 62537 typ srflx raddr | | 502 | 192.168.1.4 rport 62537 | | 503 | a=candidate:0 2 2113667326 192.168.1.4 | [RFC5245] | 504 | 54721 typ host | | 505 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 506 | 24.23.204.141 54721 typ srflx raddr | | 507 | 192.168.1.4 rport 54721 | | 508 | a=rtcp-fb:99 nack pli | [RFC5104] | 509 | a=rtcp-fb:99 ccm fir | [RFC5104] | 510 | a=rtcp-fb:120 nack pli | [RFC5104] | 511 | a=rtcp-fb:120 ccm fir | [RFC5104] | 512 | m=application 0 SCTP/DTLS 5000 | [draft-ietf-rtcweb-dat | 513 | | a-channel] - Port 0 | 514 | | indicates dropping | 515 | | data stream | 516 | c= IN IP4 24.23.204.141 | [RFC4566] | 517 | a=fmtp:5000 | [draft-ietf-rtcweb-dat | 518 | protocol=webrtc-datachannel;streams=16 | a-channel] | 519 | a=sendrecv | [RFC3264] | 520 | a=rtcp-mux | [RFC5761] | 521 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 522 | 192.168.1.7 56966 typ host | | 523 | a=candidate:1 1 UDP 1694302207 | [RFC5245] | 524 | 24.23.204.141 56966 typ srflx raddr | | 525 | 192.168.1.7 rport 56966 | | 526 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | 527 | 192.168.1.7 51641 typ host | | 528 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 529 | 24.23.204.141 51641 typ srflx raddr | | 530 | 192.168.1.7 rport 51641 | | 531 | a=rtcp-fb:5000 nack | [RFC5104] | 532 +------------------------------------------+------------------------+ 534 Table 3: 4.2 SDP Updated Offer w/DataChannel Drop 536 +------------------------------------------+------------------------+ 537 | SDP Contents | RFC#/Notes | 538 +------------------------------------------+------------------------+ 539 | v=0 | [RFC4566] | 540 | o=bob 16833 0 IN IP4 0.0.0.0 | [RFC4566] | 541 | s= | [RFC4566] | 542 | t=0 0 | [RFC4566] | 543 | a=ice-ufrag:c300d85b | [RFC5245] | 544 | a=ice-pwd:de4e99bd291c325921d5d47efbabd9 | [RFC5245] | 545 | a2 | | 546 | a=fingerprint:sha-1 | [RFC5245] | 547 | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:7 | | 548 | 0:9d:1f:66:79:a8:07 | | 549 | a=rtcp-rsize | [RFC5506] | 550 | m=audio 49203 RTP/SAVPF 109 | [RFC4566] | 551 | c= IN IP4 98.248.92.77 | [RFC4566] | 552 | a=rtpmap:109 opus/48000 | [draft-spittka-payload | 553 | | -rtp-opus] | 554 | a=ptime:20 | [draft-spittka-payload | 555 | | -rtp-opus] | 556 | a=sendrecv | [RFC3264] | 557 | a=rtcp-mux | [RFC5761] | 558 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 559 | 192.168.1.7 49203 typ host | | 560 | a=ccandidate:1 1 UDP 1694302207 | [RFC5245] | 561 | 98.248.92.77 49203 typ srflx raddr | | 562 | 192.168.1.7 rport 49203 | | 563 | a=candidate:candidate:0 2 UDP 2113667326 | [RFC5245] | 564 | 192.168.1.7 60065 typ host | | 565 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 566 | 98.248.92.77 60065 typ srflx raddr | | 567 | 192.168.1.7 rport 60065 | | 568 | m=video 63130 RTP/SAVPF 99 120 | [RFC4566] | 569 | c= IN IP4 98.248.92.771 | [RFC4566] | 570 | a=rtpmap:99 H264/90000 | [RFC3984] | 571 | a=fmtp:99 | [RFC3984] | 572 | profile-level-id=4d0028;packetization-mo | | 573 | de=1 | | 574 | a=rtpmap:120 VP8/90000 | [draft-ietf-payload-vp | 575 | | 8] | 576 | a=sendrecv | [RFC3264] | 577 | a=rtcp-mux | [RFC5761] | 578 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 579 | 192.168.1.7 63130 typ host | | 580 | a=candidate:1 1 UDP 1694302207 | [RFC5245] | 581 | 98.248.92.77 63130 typ srflx raddr | | 582 | 192.168.1.7 rport 63130 | | 583 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | 584 | 192.168.1.7 56607 typ host | | 585 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 586 | 98.248.92.77 56607 typ srflx raddr | | 587 | 192.168.1.7 rport 56607 | | 588 | a=rtcp-fb:99 nack pli | [RFC5104] | 589 | a=rtcp-fb:99 ccm fir | [RFC5104] | 590 | m=application 0 SCTP/DTLS 5000 | [draft-ietf-rtcweb-dat | 591 | | a-channel] Bob accepts | 592 | | dropping the data | 593 | | stream | 594 | c= IN IP4 98.248.92.771 | [RFC4566] | 595 | a=fmtp:5000 | [draft-ietf-rtcweb-dat | 596 | protocol=webrtc-datachannel;streams=16 | a-channel] | 597 | a=sendrecv | [RFC3264] | 598 | a=rtcp-mux | [RFC5761] | 599 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 600 | 192.168.1.7 55700 typ host | | 601 | a=candidate:1 1 UDP 1694302207 | [RFC5245] | 602 | 98.248.92.77 55700 typ srflx raddr | | 603 | 192.168.1.7 rport 55700 | | 604 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | 605 | 192.168.1.7 58137 typ host | | 606 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 607 | 98.248.92.77 58137 typ srflx raddr | | 608 | 192.168.1.7 rport 581371 | | 609 | a=rtcp-fb:5000 nack | [RFC5104] | 610 +------------------------------------------+------------------------+ 612 Table 4: 4.2 SDP Updated Answer 614 5.3. Secure Two-Way Audio,Video w/Bundle 616 This use-case demonstrates a successfull audio and video multiplexing 617 scenario with SDP Bundle negotiation. 619 The semantics of group:BUNLDE attribute would be defined for two 620 different scenarios as follows 621 Receiver Supports Bundle: In this case, the receiver places a 622 group:BUNDLE line in the answer and it sends all the media to the 623 mids in the BUNDLE group to the port number identified for the 624 m-line corresponding to the first mid in the BUNDLE group. Thus, 625 Alice recieves Audio and Video multiplexed onto the port 54609 as 626 as per the example below. 627 Receiver Doesn't Support Bundle: In this case, the receiver 628 doesn't include a group:BUNDLE attribute and audio/video RTP 629 streams are sent to the appropriate ports specified in the offer. 631 title WebRTC Session - 2-Way Secure Audio,Video with Bundle 632 Alice->Bob: Offer(Audio:Opus Video:VP8) 633 Bob->Alice: Answer(Audio:Opus Video:VP8) 634 Alice->Bob: Two-way Opus Audio, H.264 Video 635 note right of Alice 636 Session also suports RTP/RTCP Mux, RTCP feedback (nack,pli) with 637 multiplexing of audio and video RTP data. 638 end note 640 +------------------------------------------+------------------------+ 641 | SDP Contents | RFC#/Notes | 642 +------------------------------------------+------------------------+ 643 | v=0 | [RFC4566] | 644 | o=alice 20518 0 IN IP4 0.0.0.0 | [RFC4566] | 645 | s= | [RFC4566] | 646 | t=0 0 | [RFC4566] | 647 | a=ice-ufrag:074c6550 | [RFC5245] | 648 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a | [RFC5245] | 649 | 068 | | 650 | a=fingerprint:sha-1 | [RFC5245] | 651 | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:7 | | 652 | 0:9d:1f:66:79:a8:07 | | 653 | a=rtcp-rsize | [RFC5506] | 654 | a=group:BUNDLE foo bar | [RFC5888]Alice | 655 | | supports grouping of | 656 | | m= lines | 657 | m=audio 54609 RTP/SAVPF 109 | [RFC4566] | 658 | c= IN IP4 24.23.204.141 | [RFC4566] | 659 | a=mid:foo | [RFC5888]Audio m= line | 660 | | part of Bundle group | 661 | a=rtpmap:109 opus/48000 | [draft-spittka-payload | 662 | | -rtp-opus] | 663 | a=ptime:20 | [draft-spittka-payload | 664 | | -rtp-opus] | 665 | a=sendrecv | [RFC3264] | 666 | a=rtcp-mux | [RFC5761] | 667 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 668 | 192.168.1.4 54609 typ host | | 669 | a=candidate:1 1 UDP 694302207 | [RFC5245] | 670 | 24.23.204.141 54609 typ srflx raddr | | 671 | 192.168.1.4 rport 54609 | | 672 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | 673 | 192.168.1.4 64678 typ host | | 674 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 675 | 24.23.204.141 64678 typ srflx raddr | | 676 | 192.168.1.4 rport 64678 | | 677 | a=rtcp-fb:109 nack | [RFC5104] | 678 | m=video 62537 RTP/SAVPF 120 | [RFC4566] | 679 | c= IN IP4 24.23.204.141 | [RFC4566] | 680 | a=mid:bar | [RFC5888]Video m=line | 681 | | part of the Bundle | 682 | | group | 683 | a=rtpmap:120 VP8/90000 | [draft-ietf-payload-vp | 684 | | 8] | 685 | a=sendrecv | [RFC3264] | 686 | a=rtcp-mux | [RFC5761] | 687 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 688 | 192.168.1.4 62537 typ host | | 689 | a=candidate:1 1 UDP 1694302207 | [RFC5245] | 690 | 24.23.204.141 62537 typ srflx raddr | | 691 | 192.168.1.4 rport 62537 | | 692 | a=candidate:0 2 2113667326 192.168.1.4 | [RFC5245] | 693 | 54721 typ host | | 694 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 695 | 24.23.204.141 54721 typ srflx raddr | | 696 | 192.168.1.4 rport 54721 | | 697 | a=rtcp-fb:120 nack pli | [RFC5104] | 698 | a=rtcp-fb:120 ccm fir | [RFC5104] | 699 +------------------------------------------+------------------------+ 701 Table 5: 4.3 SDP Offer w/Bundle 703 +------------------------------------------+------------------------+ 704 | SDP Contents | RFC#/Notes | 705 +------------------------------------------+------------------------+ 706 | v=0 | [RFC4566] | 707 | o=bob 16833 0 IN IP4 0.0.0.0 | [RFC4566] | 708 | s= | [RFC4566] | 709 | t=0 0 | [RFC4566] | 710 | a=ice-ufrag:c300d85b | [RFC5245] | 711 | a=ice-pwd:de4e99bd291c325921d5d47efbabd9 | [RFC5245] | 712 | a2 | | 713 | a=fingerprint:sha-1 | [RFC5245] | 714 | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:7 | | 715 | 0:9d:1f:66:79:a8:07 | | 716 | a=rtcp-rsize | [RFC5506] | 717 | a=group:BUNDLE foo bar | Bob supports grouping | 718 | | of m= lines and | 719 | | indicates his interest | 720 | | in the same as well | 721 | | [RFC5888] | 722 | m=audio 49203 RTP/SAVPF 109 | [RFC4566] | 723 | c= IN IP4 98.248.92.77 | [RFC4566] | 724 | a=mid:foo | [RFC5888]Audio m=line | 725 | | part of the Bundle | 726 | | group | 727 | a=rtpmap:109 opus/48000 | [draft-spittka-payload | 728 | | -rtp-opus] | 729 | a=ptime:20 | [draft-spittka-payload | 730 | | -rtp-opus] | 731 | a=sendrecv | [RFC3264] | 732 | a=rtcp-mux | [RFC5761] | 733 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 734 | 192.168.1.7 49203 typ host | | 735 | a=candidate:1 1 UDP 1694302207 | [RFC5245] | 736 | 98.248.92.77 49203 typ srflx raddr | | 737 | 192.168.1.7 rport 49203 | | 738 | a=candidate:candidate:0 2 UDP 2113667326 | [RFC5245] | 739 | 192.168.1.7 60065 typ host | | 740 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 741 | 98.248.92.77 60065 typ srflx raddr | | 742 | 192.168.1.7 rport 60065 | | 743 | m=video 63130 RTP/SAVPF 120 | [RFC4566] | 744 | c= IN IP4 98.248.92.771 | [RFC4566] | 745 | a=mid:bar | [RFC5888]Video m=line | 746 | | part of the Bundle | 747 | | group | 748 | a=rtpmap:120 VP8/90000 | [draft-ietf-payload-vp | 749 | | 8] | 750 | a=sendrecv | [RFC3264] | 751 | a=rtcp-mux | [RFC5761] | 752 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 753 | 192.168.1.7 63130 typ host | | 754 | a=candidate:1 1 UDP 1694302207 | [RFC5245] | 755 | 98.248.92.77 63130 typ srflx raddr | | 756 | 192.168.1.7 rport 63130 | | 757 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | 758 | 192.168.1.7 56607 typ host | | 759 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 760 | 98.248.92.77 56607 typ srflx raddr | | 761 | 192.168.1.7 rport 56607 | | 762 +------------------------------------------+------------------------+ 764 Table 6: 4.3 SDP Answer w/Bundle 766 5.4. Successful One Way Session with 2 Video Streams 768 In this scenario Alice and Bob engage in one-way multimedia session 769 with Bob receiving two video streams, one corresponding to Alice's 770 video and other corresponding to her presentation slides. 772 title 1 Way Audio & Video w/2 Video Streams 773 note right of Alice 774 Alice offers 2 sendonly video streams 775 one for her video feed and other for her presentation slides. 776 end note 777 Alice->Bob: Offer(Audio:Opus, Video1,2: VP8) 778 note right of Bob 779 Bob accepts Alice's offer 780 end note 781 Bob->Alice: Answer(Audio:Opus, Video1,2: VP8) 782 Alice->Bob: One-way Opus Audio, VP8 Video 783 note right of Alice 784 Bob can hear Alice and see her video feed as well 785 as her presentation slides. 786 end note 787 +------------------------------------------+------------------------+ 788 | SDP Contents | RFC#/Notes | 789 +------------------------------------------+------------------------+ 790 | v=0 | [RFC4566] | 791 | o=alice 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 792 | s= | [RFC4566] | 793 | t=0 0 | [RFC4566] | 794 | a=ice-ufrag:074c6550 | [RFC5245] | 795 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a | [RFC5245] | 796 | 068 | | 797 | a=fingerprint:sha-1 | [RFC5245] | 798 | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:7 | | 799 | 0:9d:1f:66:79:a8:07 | | 800 | a=rtcp-rsize | [RFC5506] | 801 | m=audio 54609 RTP/SAVPF 109 | [RFC4566] | 802 | c= IN IP4 24.23.204.141 | [RFC4566] | 803 | a=rtpmap:109 opus/48000 | [draft-spittka-payload | 804 | | -rtp-opus] | 805 | a=ptime:20 | [draft-spittka-payload | 806 | | -rtp-opus] | 807 | a=sendonly | [RFC3264] - Send only | 808 | | audio stream | 809 | a=rtcp-mux | [RFC5761] | 810 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 811 | 192.168.1.4 54609 typ host | | 812 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | 813 | 192.168.1.4 64678 typ host | | 814 | a=rtcp-fb:109 nack | [RFC5104] | 815 | m=video 62537 RTP/SAVPF 120 | [RFC4566] | 816 | c= IN IP4 24.23.204.141 | [RFC4566] | 817 | a=rtpmap:120 VP8/90000 | [draft-ietf-payload-vp | 818 | | 8] | 819 | a=content:speaker | [RFC4796] - Stream 1 | 820 | | for Alice's video | 821 | a=sendonly | [RFC3264] - Send only | 822 | | video stream | 823 | a=rtcp-mux | [RFC5761] | 824 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 825 | 192.168.1.4 62537 typ host | | 826 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | 827 | 192.168.1.4 54721 typ host | | 828 | a=rtcp-fb:120 nack pli | [RFC5104] | 829 | a=rtcp-fb:120 ccm fir | [RFC5104] | 830 | m=video 62539 RTP/SAVPF 120 | [RFC4566] | 831 | c= IN IP4 24.23.204.141 | [RFC4566] | 832 | a=rtpmap:120 VP8/90000 | [draft-ietf-payload-vp | 833 | | 8] | 834 | a=content:slides | [RFC4796] - Stream 2 | 835 | | for Alice's slides | 836 | a=sendonly | [RFC3264] - Send only | 837 | | video stream | 838 | a=rtcp-mux | [RFC5761] | 839 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 840 | 192.168.1.4 62539 typ host | | 841 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | 842 | 192.168.1.4 54723 typ host | | 843 | a=rtcp-fb:120 nack pli | [RFC5104] | 844 | a=rtcp-fb:120 ccm fir | [RFC5104] | 845 +------------------------------------------+------------------------+ 847 Table 7: 4.4 SDP Offer 849 +------------------------------------------+------------------------+ 850 | SDP Contents | RFC#/Notes | 851 +------------------------------------------+------------------------+ 852 | v=0 | [RFC4566] | 853 | o=bob 16833 0 IN IP4 0.0.0.0 | [RFC4566] | 854 | s= | [RFC4566] | 855 | t=0 0 | [RFC4566] | 856 | a=ice-ufrag:c300d85b | [RFC5245] | 857 | a=ice-pwd:de4e99bd291c325921d5d47efbabd9 | [RFC5245] | 858 | a2 | | 859 | a=fingerprint:sha-1 | [RFC5245] | 860 | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:7 | | 861 | 0:9d:1f:66:79:a8:07 | | 862 | a=rtcp-rsize | [RFC5506] | 863 | m=audio 49203 RTP/SAVPF 109 | [RFC4566] | 864 | c= IN IP4 98.248.92.77 | [RFC4566] | 865 | a=rtpmap:109 opus/48000 | [draft-spittka-payload | 866 | | -rtp-opus] | 867 | a=ptime:20 | [draft-spittka-payload | 868 | | -rtp-opus] | 869 | a=recvonly | [RFC3264] - Receive | 870 | | only audio stream | 871 | a=rtcp-mux | [RFC5761] | 872 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 873 | 192.168.1.7 49203 typ host | | 874 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | 875 | 192.168.1.7 60065 typ host | | 876 | m=video 63130 RTP/SAVPF 120 | [RFC4566] | 877 | c= IN IP4 98.248.92.771 | [RFC4566] | 878 | a=rtpmap:120 VP8/90000 | [draft-ietf-payload-vp | 879 | | 8] | 880 | a=content:speaker | [RFC4796] - Stream 1 | 881 | | for Alice's Video | 882 | a=recvonly | [RFC3264] - Receive | 883 | | Only Video Stream 1 | 884 | a=rtcp-mux | [RFC5761] | 885 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 886 | 192.168.1.7 63130 typ host | | 887 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | 888 | 192.168.1.7 56607 typ host | | 889 | a=rtcp-fb:120 nack pli | [RFC5104] | 890 | a=rtcp-fb:120 ccm fir | [RFC5104] | 891 | m=video 63133 RTP/SAVPF 120 | [RFC4566] | 892 | c= IN IP4 98.248.92.771 | [RFC4566] | 893 | a=rtpmap:120 VP8/90000 | [draft-ietf-payload-vp | 894 | | 8] | 895 | a=content:slides | [RFC4796] - Stream 2 | 896 | | for Alice's Slides | 897 | a=recvonly | [RFC3264] - Receive | 898 | | Only Video Stream 2 | 899 | a=rtcp-mux | [RFC5761] | 900 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 901 | 192.168.1.7 63133 typ host | | 902 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | 903 | 192.168.1.7 56609 typ host | | 904 | a=rtcp-fb:120 nack pli | [RFC5104] | 905 | a=rtcp-fb:120 ccm fir | [RFC5104] | 906 +------------------------------------------+------------------------+ 908 Table 8: 4.4 SDP Answer 910 5.5. Add New Media (video) 912 This scenario describes the message exchanges when Alice decides to 913 add video to an existing audio-only session 915 title Add New Media(Video) 916 Alice->Bob: Offer(Audio:G.711,Opus,iLBC) 917 Bob->Alice: Answer(Audio:Opus) 918 Alice->Bob: Two-way Opus Audio 919 note right of Alice 920 Alice decides to add Video 921 end note 922 Alice->Bob: Offer(Audio:G.711,Opus,iLBC Video:VP8) 923 Bob->Alice: Answer(Audio:Opus, Video:VP8) 924 Alice->Bob: Two-way Opus Audio, VP8 Video 925 +------------------------------------------+------------------------+ 926 | SDP Contents | RFC#/Notes | 927 +------------------------------------------+------------------------+ 928 | v=0 | [RFC4566] | 929 | o=alice 20519 0 IN IP4 0.0.0.0 | [RFC4566] | 930 | s= | [RFC4566] | 931 | t=0 0 | [RFC4566] | 932 | a=ice-ufrag:074c6550 | [RFC5245] | 933 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a | [RFC5245] | 934 | 068 | | 935 | a=fingerprint:sha-1 | [RFC5245] | 936 | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:7 | | 937 | 0:9d:1f:66:79:a8:07 | | 938 | a=rtcp-rsize | [RFC5506] | 939 | m=audio 54609 RTP/SAVPF 0 109 98 | [RFC4566] | 940 | c= IN IP4 24.23.204.141 | [RFC4566] | 941 | a=rtpmap:0 PCMU/8000 | [RFC3551] | 942 | a=rtpmap:109 opus/48000 | [draft-spittka-payload | 943 | | -rtp-opus] | 944 | a=ptime:20 | [draft-spittka-payload | 945 | | -rtp-opus] | 946 | a=rtpmap:98 iLBC/8000 a=fmtp:98 mode=20 | [RFC3952] | 947 | a=sendrecv | [RFC3264] | 948 | a=rtcp-mux | [RFC5761] | 949 | b=AS:256 | [RFC4566] | 950 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 951 | 192.168.1.4 54609 typ host | | 952 | a=candidate:1 1 UDP 694302207 | [RFC5245] | 953 | 24.23.204.141 54609 typ srflx raddr | | 954 | 192.168.1.4 rport 54609 | | 955 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | 956 | 192.168.1.4 64678 typ host | | 957 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 958 | 24.23.204.141 64678 typ srflx raddr | | 959 | 192.168.1.4 rport 64678 | | 960 | a=rtcp-fb:109 nack | [RFC5104] | 961 +------------------------------------------+------------------------+ 963 Table 9: 4.5 SDP Initial Audio Only Offer 965 +------------------------------------------+------------------------+ 966 | SDP Contents | RFC#/Notes | 967 +------------------------------------------+------------------------+ 968 | v=0 | [RFC4566] | 969 | o=bob 16833 0 IN IP4 0.0.0.0 | [RFC4566] | 970 | s= | [RFC4566] | 971 | t=0 0 | [RFC4566] | 972 | a=ice-ufrag:c300d85b | [RFC5245] | 973 | a=ice-pwd:de4e99bd291c325921d5d47efbabd9 | [RFC5245] | 974 | a2 | | 975 | a=fingerprint:sha-1 | [RFC5245] | 976 | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:7 | | 977 | 0:9d:1f:66:79:a8:07 | | 978 | a=rtcp-rsize | [RFC5506] | 979 | m=audio 49203 RTP/SAVPF 109 | [RFC4566] | 980 | c= IN IP4 98.248.92.77 | [RFC4566] | 981 | a=rtpmap:109 opus/48000 | [draft-spittka-payload | 982 | | -rtp-opus] | 983 | a=ptime:20 | [draft-spittka-payload | 984 | | -rtp-opus] | 985 | a=sendrecv | [RFC3264] | 986 | a=rtcp-mux | [RFC5761] | 987 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 988 | 192.168.1.7 49203 typ host | | 989 | a=ccandidate:1 1 UDP 1694302207 | [RFC5245] | 990 | 98.248.92.77 49203 typ srflx raddr | | 991 | 192.168.1.7 rport 49203 | | 992 | a=candidate:candidate:0 2 UDP 2113667326 | [RFC5245] | 993 | 192.168.1.7 60065 typ host | | 994 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 995 | 98.248.92.77 60065 typ srflx raddr | | 996 | 192.168.1.7 rport 60065 | | 997 +------------------------------------------+------------------------+ 999 Table 10: 4.5 SDP Answer- Audio Only 1001 Alice decides to add Video to the current session 1002 +------------------------------------------+------------------------+ 1003 | SDP Contents | RFC#/Notes | 1004 +------------------------------------------+------------------------+ 1005 | v=0 | [RFC4566] | 1006 | o=alice 20520 0 IN IP4 0.0.0.0 | [RFC4566] - Increased | 1007 | | Version Number | 1008 | s= | [RFC4566] | 1009 | t=0 0 | [RFC4566] | 1010 | a=ice-ufrag:074c6550 | [RFC5245] | 1011 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a | [RFC5245] | 1012 | 068 | | 1013 | a=fingerprint:sha-1 | [RFC5245] | 1014 | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:7 | | 1015 | 0:9d:1f:66:79:a8:07 | | 1016 | a=rtcp-rsize | [RFC5506] | 1017 | m=audio 54609 RTP/SAVPF 0 109 98 | [RFC4566] | 1018 | c= IN IP4 24.23.204.141 | [RFC4566] | 1019 | a=rtpmap:0 PCMU/8000 | [RFC3551] | 1020 | a=rtpmap:109 opus/48000 | [draft-spittka-payload | 1021 | | -rtp-opus] | 1022 | a=ptime:20 | [draft-spittka-payload | 1023 | | -rtp-opus] | 1024 | a=rtpmap:98 iLBC/8000 a=fmtp:98 mode=20 | [RFC3952] | 1025 | a=sendrecv | [RFC3264] | 1026 | a=rtcp-mux | [RFC5761] | 1027 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 1028 | 192.168.1.4 54609 typ host | | 1029 | a=candidate:1 1 UDP 694302207 | [RFC5245] | 1030 | 24.23.204.141 54609 typ srflx raddr | | 1031 | 192.168.1.4 rport 54609 | | 1032 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | 1033 | 192.168.1.4 64678 typ host | | 1034 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 1035 | 24.23.204.141 64678 typ srflx raddr | | 1036 | 192.168.1.4 rport 64678 | | 1037 | a=rtcp-fb:109 nack | [RFC5104] | 1038 | m=video 62537 RTP/SAVPF120 | [RFC4566] | 1039 | c= IN IP4 24.23.204.141 | [RFC4566] | 1040 | a=rtpmap:120 VP8/90000 | [draft-ietf-payload-vp | 1041 | | 8] | 1042 | a=sendrecv | [RFC3264] | 1043 | a=rtcp-mux | [RFC5761] | 1044 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 1045 | 192.168.1.4 62537 typ host | | 1046 | a=candidate:1 1 UDP 1694302207 | [RFC5245] | 1047 | 24.23.204.141 62537 typ srflx raddr | | 1048 | 192.168.1.4 rport 62537 | | 1049 | a=candidate:0 2 2113667326 192.168.1.4 | [RFC5245] | 1050 | 54721 typ host | | 1051 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 1052 | 24.23.204.141 54721 typ srflx raddr | | 1053 | 192.168.1.4 rport 54721 | | 1054 | a=rtcp-fb:120 nack pli | [RFC5104] | 1055 | a=rtcp-fb:120 ccm fir | [RFC5104] | 1056 +------------------------------------------+------------------------+ 1058 Table 11: 4.5 SDP Updated Offer w/Video 1060 +------------------------------------------+------------------------+ 1061 | SDP Contents | RFC#/Notes | 1062 +------------------------------------------+------------------------+ 1063 | v=0 | [RFC4566] | 1064 | o=bob 16833 0 IN IP4 0.0.0.0 | [RFC4566] | 1065 | s= | [RFC4566] | 1066 | t=0 0 | [RFC4566] | 1067 | a=ice-ufrag:c300d85b | [RFC5245] | 1068 | a=ice-pwd:de4e99bd291c325921d5d47efbabd9 | [RFC5245] | 1069 | a2 | | 1070 | a=fingerprint:sha-1 | [RFC5245] | 1071 | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:7 | | 1072 | 0:9d:1f:66:79:a8:07 | | 1073 | a=rtcp-rsize | [RFC5506] | 1074 | m=audio 49203 RTP/SAVPF 109 | [RFC4566] | 1075 | c= IN IP4 98.248.92.77 | [RFC4566] | 1076 | a=rtpmap:109 opus/48000 | [draft-spittka-payload | 1077 | | -rtp-opus] | 1078 | a=ptime:20 | [draft-spittka-payload | 1079 | | -rtp-opus] | 1080 | a=sendrecv | [RFC3264] | 1081 | a=rtcp-mux | [RFC5761] | 1082 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 1083 | 192.168.1.7 49203 typ host | | 1084 | a=ccandidate:1 1 UDP 1694302207 | [RFC5245] | 1085 | 98.248.92.77 49203 typ srflx raddr | | 1086 | 192.168.1.7 rport 49203 | | 1087 | a=candidate:candidate:0 2 UDP 2113667326 | [RFC5245] | 1088 | 192.168.1.7 60065 typ host | | 1089 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 1090 | 98.248.92.77 60065 typ srflx raddr | | 1091 | 192.168.1.7 rport 60065 | | 1092 | m=video 63130 RTP/SAVPF 99 120 | [RFC4566] | 1093 | c= IN IP4 98.248.92.771 | [RFC4566] | 1094 | a=rtpmap:120 VP8/90000 | [draft-ietf-payload-vp | 1095 | | 8] | 1096 | a=sendrecv | [RFC3264] | 1097 | a=rtcp-mux | [RFC5761] | 1098 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 1099 | 192.168.1.7 63130 typ host | | 1100 | a=candidate:1 1 UDP 1694302207 | [RFC5245] | 1101 | 98.248.92.77 63130 typ srflx raddr | | 1102 | 192.168.1.7 rport 63130 | | 1103 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | 1104 | 192.168.1.7 56607 typ host | | 1105 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 1106 | 98.248.92.77 56607 typ srflx raddr | | 1107 | 192.168.1.7 rport 56607 | | 1108 +------------------------------------------+------------------------+ 1110 Table 12: 4.5 SDP Updated Answer 1112 6. WebRTC <-> Legacy Interop Examples 1114 In this section, we attempt to provide session descriptions 1115 showcasing inter-operability between a WebRTC end-point and a Legacy 1116 VOIP end-point. The ideas included in here are not fully baked into 1117 the standards and might be controversial in nature. The hope here is 1118 to demonstrate a plausible SDP composition to enchance seamless 1119 inter-operability between the aforementioned communication systems. 1121 6.1. Secure Two-Way Audio,Video w/Feedback - WebRTC <-> Legacy Interop 1123 In the scenario desribed below, Alice sends [RFC3264] Offer with two 1124 sets of media descriptions per media type. 1125 One set that correponds to [WEBRTC] Compliant RTP/SAVPF based 1126 audio and video descriptions. 1127 Another set with RTP/AVP based audio and video descriptions for 1128 the legacy Interop purposes. 1129 Also to note, Alice includes session level DTLS information and 1130 media level RTCP feedback information as applicable to both the 1131 sets of media descriptions 1133 On the other hand, Bob being a Legacy VOIP end-point, recognizes only 1134 the media descriptions with RTP/AVP as the application protocol. The 1135 security and fedback requirements for the session are either handled 1136 by a intermediate gateway or with some combination of Bob's 1137 capabilities and the intermediate gateway. 1139 title Successful 2-Way WebRTC <-> VOIP Interop 1140 note right of Alice 1141 Alice is on a WebRTC end-point & Bob is behind a legacy VOIP system 1142 end note 1143 Alice->Bob: Offer(Audio:Opus Video:VP8) 1144 note right of Alice 1145 Alice includes 2 copies of media descriptions 1146 1. WebRTC compliant media description (RTP/SAVPF) 1147 2. Legacy compliant media description (RTP/AVP) 1148 end note 1149 Bob->Alice: Answer(Audio:Opus Video:VP8) 1150 note right of Bob 1151 Bob recognizes"legacy compliant" media description from Alice. 1152 and accepts the same. 1153 end note 1154 Alice->Bob: Two-way Opus Audio, VP8 Video 1155 note right of Alice 1156 Session also suports RTP/RTCP Mux, RTCP feedback (nack,pli) 1157 end note 1159 +------------------------------------------+------------------------+ 1160 | SDP Contents | RFC#/Notes | 1161 +------------------------------------------+------------------------+ 1162 | v=0 | [RFC4566] | 1163 | o=alice 20518 0 IN IP4 0.0.0.0 | [RFC4566] | 1164 | s= | [RFC4566] | 1165 | t=0 0 | [RFC4566] | 1166 | a=ice-ufrag:074c6550 | [RFC5245] | 1167 | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a | [RFC5245] | 1168 | 068 | | 1169 | a=fingerprint:sha-1 | [RFC5245] | 1170 | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:7 | | 1171 | 0:9d:1f:66:79:a8:07 | | 1172 | a=rtcp-rsize | [RFC5506] | 1173 | m=audio 54609 RTP/SAVPF 109 | [RFC4566] | 1174 | c= IN IP4 24.23.204.141 | [RFC4566] | 1175 | a=rtpmap:109 opus/48000 | [draft-spittka-payload | 1176 | | -rtp-opus] | 1177 | a=ptime:20 | [draft-spittka-payload | 1178 | | -rtp-opus] | 1179 | a=sendrecv | [RFC3264] | 1180 | a=rtcp-mux | [RFC5761] | 1181 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 1182 | 192.168.1.4 54609 typ host | | 1183 | a=candidate:1 1 UDP 694302207 | [RFC5245] | 1184 | 24.23.204.141 54609 typ srflx raddr | | 1185 | 192.168.1.4 rport 54609 | | 1186 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | 1187 | 192.168.1.4 64678 typ host | | 1188 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 1189 | 24.23.204.141 64678 typ srflx raddr | | 1190 | 192.168.1.4 rport 64678 | | 1191 | a=rtcp-fb:109 nack | [RFC5104] | 1192 | m=video 62537 RTP/SAVPF 120 | [RFC4566] | 1193 | c= IN IP4 24.23.204.141 | [RFC4566] | 1194 | a=rtpmap:120 VP8/90000 | [draft-ietf-payload-vp | 1195 | | 8] | 1196 | a=sendrecv | [RFC3264] | 1197 | a=rtcp-mux | [RFC5761] | 1198 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 1199 | 192.168.1.4 62537 typ host | | 1200 | a=candidate:1 1 UDP 1694302207 | [RFC5245] | 1201 | 24.23.204.141 62537 typ srflx raddr | | 1202 | 192.168.1.4 rport 62537 | | 1203 | a=candidate:0 2 2113667326 192.168.1.4 | [RFC5245] | 1204 | 54721 typ host | | 1205 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 1206 | 24.23.204.141 54721 typ srflx raddr | | 1207 | 192.168.1.4 rport 54721 | | 1208 | a=rtcp-fb:120 nack pli | [RFC5104] | 1209 | a=rtcp-fb:120 ccm fir | [RFC5104] | 1210 | --------------- | These set of media | 1211 | | descriptions are for | 1212 | | Legacy Inter-op | 1213 | | purposes | 1214 | m=audio 54732 RTP/AVP 109 | [RFC4566]Alice | 1215 | | includes RTP/AVP audio | 1216 | | stream description | 1217 | c= IN IP4 24.23.204.141 | [RFC4566] | 1218 | a=fingerprint:sha-1 | [RFC5245] | 1219 | 99:41:49:83:4a:97:0e:1f:7f:7d:f9:c9:c7:7 | | 1220 | 0:9d:1f:66:79:a8:07 | | 1221 | a=rtpmap:109 opus/48000 | [draft-spittka-payload | 1222 | | -rtp-opus] | 1223 | a=ptime:20 | [draft-spittka-payload | 1224 | | -rtp-opus] | 1225 | a=sendrecv | [RFC3264] | 1226 | a=rtcp-mux | [RFC5761]Alice still | 1227 | | includes RTP/RTCP Mux | 1228 | | support | 1229 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 1230 | 192.168.1.4 54732 typ host | | 1231 | a=candidate:1 1 UDP 694302207 | [RFC5245] | 1232 | 24.23.204.141 54732 typ srflx raddr | | 1233 | 192.168.1.4 rport 54732 | | 1234 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | 1235 | 192.168.1.4 64678 typ host | | 1236 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 1237 | 24.23.204.141 64678 typ srflx raddr | | 1238 | 192.168.1.4 rport 64678 | | 1239 | a=rtcp-fb:109 nack | [RFC5104]She adds her | 1240 | | intent for NACK RTCP | 1241 | | feedback support | 1242 | m=video 62445 RTP/AVP 120 | [RFC4566]Alice | 1243 | | includes RTP/AVP video | 1244 | | stream description | 1245 | c= IN IP4 24.23.204.141 | [RFC4566] | 1246 | a=fingerprint:sha-1 | [RFC5245] | 1247 | 99:41:49:83:4a:97:0e:1f:ef:7d:f7:c9:c7:7 | | 1248 | 0:9d:1f:66:79:a8:07 | | 1249 | a=rtpmap:120 VP8/90000 | [draft-ietf-payload-vp | 1250 | | 8] | 1251 | a=sendrecv | [RFC3264] | 1252 | a=rtcp-mux | [RFC5761]Alice intends | 1253 | | to perform RTP/RTCP | 1254 | | Mux | 1255 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 1256 | 192.168.1.4 62445 typ host | | 1257 | a=candidate:1 1 UDP 1694302207 | [RFC5245] | 1258 | 24.23.204.141 62537 typ srflx raddr | | 1259 | 192.168.1.4 rport 62445 | | 1260 | a=candidate:0 2 2113667326 192.168.1.4 | [RFC5245] | 1261 | 54721 typ host | | 1262 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 1263 | 24.23.204.141 54721 typ srflx raddr | | 1264 | 192.168.1.4 rport 54721 | | 1265 | a=rtcp-fb:120 nack pli | [RFC5104] Alice | 1266 | | indicates support for | 1267 | | Picture loss | 1268 | | Indication and NACK | 1269 | | RTCP feedback | 1270 | a=rtcp-fb:120 ccm fir | [RFC5104] | 1271 +------------------------------------------+------------------------+ 1273 Table 13: 5.1 SDP Offer 1275 +------------------------------------------+------------------------+ 1276 | SDP Contents | RFC#/Notes | 1277 +------------------------------------------+------------------------+ 1278 | v=0 | [RFC4566] | 1279 | o=bob 16833 0 IN IP4 0.0.0.0 | [RFC4566] | 1280 | s= | [RFC4566] | 1281 | t=0 0 | [RFC4566] | 1282 | a=ice-ufrag:c300d85b | [RFC5245] | 1283 | a=ice-pwd:de4e99bd291c325921d5d47efbabd9 | [RFC5245] | 1284 | a2 | | 1285 | a=fingerprint:sha-1 | [RFC5245] | 1286 | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:7 | | 1287 | 0:9d:1f:66:79:a8:07 | | 1288 | m=audio 49203 RTP/AVP 109 | [RFC4566] Bob accepts | 1289 | | RTP/AVP based audio | 1290 | | stream | 1291 | c= IN IP4 98.248.92.77 | [RFC4566] | 1292 | a=rtpmap:109 opus/48000 | [draft-spittka-payload | 1293 | | -rtp-opus] | 1294 | a=ptime:20 | [draft-spittka-payload | 1295 | | -rtp-opus] | 1296 | a=sendrecv | [RFC3264] | 1297 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 1298 | 192.168.1.7 49203 typ host | | 1299 | a=ccandidate:1 1 UDP 1694302207 | [RFC5245] | 1300 | 98.248.92.77 49203 typ srflx raddr | | 1301 | 192.168.1.7 rport 49203 | | 1302 | a=candidate:candidate:0 2 UDP 2113667326 | [RFC5245] | 1303 | 192.168.1.7 60065 typ host | | 1304 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 1305 | 98.248.92.77 60065 typ srflx raddr | | 1306 | 192.168.1.7 rport 60065 | | 1307 | m=video 63130 RTP/SAVP 120 | [RFC4566] Bob accepts | 1308 | | RTP/AVP based video | 1309 | | stram | 1310 | c= IN IP4 98.248.92.771 | [RFC4566] | 1311 | a=rtpmap:120 VP8/90000 | [draft-ietf-payload-vp | 1312 | | 8] | 1313 | a=sendrecv | [RFC3264] | 1314 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | 1315 | 192.168.1.7 63130 typ host | | 1316 | a=candidate:1 1 UDP 1694302207 | [RFC5245] | 1317 | 98.248.92.77 63130 typ srflx raddr | | 1318 | 192.168.1.7 rport 63130 | | 1319 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | 1320 | 192.168.1.7 56607 typ host | | 1321 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | 1322 | 98.248.92.77 56607 typ srflx raddr | | 1323 | 192.168.1.7 rport 56607 | | 1324 +------------------------------------------+------------------------+ 1326 Table 14: 5.1 SDP Answer 1328 7. IANA Considerations 1330 This document requires no actions from IANA. 1332 8. References 1334 8.1. Normative References 1336 [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model 1337 with Session Description Protocol (SDP)", RFC 3264, 1338 June 2002. 1340 [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session 1341 Description Protocol", RFC 4566, July 2006. 1343 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1344 Requirement Levels", BCP 14, RFC 2119, March 1997. 1346 8.2. Informative References 1348 [RFC5245] Rosenberg, J., "Interactive Connectivity Establishment 1349 (ICE): A Protocol for Network Address Translator (NAT) 1350 Traversal for Offer/Answer Protocols", RFC 5245, 1351 July 2006. 1353 [WEBRTC] W3C, "WebRTC 1.0: Real-time Communication Between 1354 Browsers", 1355 . 1357 [JSEP] Uberti, J. and C. Jennigs, "Javascript Session 1358 Establishment Protocol", draft-ietf-rtcweb-jsep-01 (work 1359 in progress), December 2012. 1361 [RFC5506] Johansson, I., "Support for Reduced-Size Real-Time 1362 Transport Control Protocol (RTCP): Opportunities and 1363 Consequences", RFC 5506, April 2009. 1365 [RFC3551] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and 1366 Video Conferences with Minimal Control", RFC 3551, 1367 July 2003. 1369 [RFC3952] Duric, A. and S. Andersen, "Real-time Transport Protocol 1370 (RTP) Payload Format for internet Low Bit Rate Codec 1371 (iLBC) Speech", RFC 3952, December 2004. 1373 [RFC4796] Hautakorpi, J. and G. Camarillo, "The Session Description 1374 Protocol (SDP) Content Attribute", RFC 4796, 1375 February 2007. 1377 [RFC5761] Perkins, C. and M. Westerlund, "Multiplexing RTP Data and 1378 Control Packets on a Single Port", RFC 5761, April 2010. 1380 [RFC3556] Casner, S., "Session Description Protocol (SDP) Bandwidth 1381 Modifiers for RTP Control Protocol (RTCP) Bandwidth", 1382 RFC 3556, July 2003. 1384 [RFC5104] Wenger, S., Chandra, U., Westerlund, M., and B. Burman, 1385 "Codec Control Messages in the RTP Audio-Visual Profile 1386 with Feedback (AVPF)", RFC 5104, February 2008. 1388 [RFC5888] Camarillo, G. and H. Schulzrinne, "RTP Payload Format for 1389 H.264 Video", RFC 3984, June 2010. 1391 [draft-spittka-payload-rtp-opus] 1392 Spittka, J., Vos, K., and JM. Valin, "RTP Payload Format 1393 for Opus Speech and Audio Codec", 1394 draft-spittka-payload-rtp-opus-01 (work in progress), 1395 July 2012. 1397 [draft-ietf-payload-vp8] 1398 Westin, P., Lundin, H., Glover, M., Uberti, J., and F. 1399 Galligan, "RTP Payload Format for VP8 Video", 1400 draft-ietf-payload-vp8-05 (work in progress), August 2012. 1402 [RFC3984] Wenger, S., Hannuksela, M., Stockhammer, T., Westerlund, 1403 M., and D. Singer, "RTP Payload Format for H.264 Video", 1404 RFC 3984, February 2005. 1406 [draft-ietf-rtcweb-data-channel] 1407 Jesup, R., Loreto, S., and M. Tuexen, "RTCWeb Datagram 1408 Connection", draft-ietf-rtcweb-data-channel-01 (work in 1409 progress), September 2012. 1411 Authors' Addresses 1413 Suhas Nandakumar 1414 Cisco 1415 170 West Tasman Drive 1416 San Jose, CA 95134 1417 USA 1419 Email: snandaku@cisco.com 1421 Cullen Jennings 1422 Cisco 1423 170 West Tasman Drive 1424 San Jose, CA 95134 1425 USA 1427 Phone: +1 408 421-9990 1428 Email: fluffy@cisco.com