Network Working Group S. Nandakumar Internet-Draft C. Jennings Intended status: Informational Cisco Expires: August 16, 2014 February 12, 2014 SDP for the WebRTC draft-nandakumar-rtcweb-sdp-04 Abstract The Web Real-Time Communication [WebRTC] working group is charged to provide protocol support for direct interactive rich communication using audio, video and data between two peers' web browsers. With in the WebRTC framework, Session Description protocol (SDP) [RFC4566] is used for negotiating session capabilities between the peers. Such a negotiation happens based on the SDP Offer/Answer exchange mechanism described in the RFC 3264 [RFC3264]. This document provides an informational reference in describing the role of SDP and the Offer/Answer exchange mechanism for the most common WebRTC use-cases. This SDP examples provided in this document is still a work in progress, but it aims to align closest to the evolving standards work. Status of this Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on August 16, 2014. Copyright Notice Copyright (c) 2014 IETF Trust and the persons identified as the document authors. All rights reserved. Nandakumar & Jennings Expires August 16, 2014 [Page 1] Internet-Draft SDP4WebRTC February 2014 This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. SDP and the WebRTC . . . . . . . . . . . . . . . . . . . . . 4 4. Offer/Answer and the WebRTC . . . . . . . . . . . . . . . . . 5 5. WebRTC Session Description Examples . . . . . . . . . . . . . 6 5.1. Some Conventions . . . . . . . . . . . . . . . . . . . . 6 5.2. Basic Examples . . . . . . . . . . . . . . . . . . . . . 7 5.2.1. Two-Way Audio Only Session . . . . . . . . . . . . . 7 5.2.2. Two-Way Audio/Video Session . . . . . . . . . . . . . 11 5.2.3. Two-Way Data Only Session . . . . . . . . . . . . . . 17 5.2.4. Audio Call On Hold . . . . . . . . . . . . . . . . . 19 5.2.5. Audio with DTMF Session . . . . . . . . . . . . . . . 23 5.2.6. One Way Audio/Video Session - Document Camera . . . . 28 5.2.7. Audio, Video Session with BUNDLE Support Unknown . . 32 5.2.8. Audio, Video and Data Session . . . . . . . . . . . . 39 5.2.9. Two-Way Audio,Video w/BUNDLE Unsupported . . . . . . 44 5.2.10. Audio, Video BUNDLED but Data Not BUNDLED . . . . . . 48 5.2.11. Audio Only then Add Video and BUNDLE . . . . . . . . 53 5.3. MultiResolution, RTX, FEC Examples . . . . . . . . . . . 61 5.3.1. Sendonly Simulcast w/2 cameras and 2 encodings per camera . . . . . . . . . . . . . . . . . . . . . . . 61 5.3.2. Successful SVC Video Stream . . . . . . . . . . . . . 67 5.3.3. Successful Simulcast Video Streams with Retransmisson . . . . . . . . . . . . . . . . . . . . 72 5.3.4. Successful 1-way Simulcast with 2 resolutions and RTX - One resolution rejected . . . . . . . . . . . . 77 5.3.5. Simulcast Video Stream with Forward Error Correction . . . . . . . . . . . . . . . . . . . . . 82 5.4. Others . . . . . . . . . . . . . . . . . . . . . . . . . 87 5.4.1. Audio Session - Voice Activity Detection . . . . . . 87 5.4.2. Audio Conference - Voice Activity Detection . . . . . 90 5.4.3. Successful legacy Interop Fallaback with bundle-only . . . . . . . . . . . . . . . . . . . . . 94 5.4.4. Legacy Interop with RTP/AVP profile . . . . . . . . . 99 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 104 Nandakumar & Jennings Expires August 16, 2014 [Page 2] Internet-Draft SDP4WebRTC February 2014 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 104 8. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 104 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 105 9.1. Normative References . . . . . . . . . . . . . . . . . . 105 9.2. Informative References . . . . . . . . . . . . . . . . . 105 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 108 Nandakumar & Jennings Expires August 16, 2014 [Page 3] Internet-Draft SDP4WebRTC February 2014 1. Introduction Javascript Session Exchange Protocol(JSEP) [JSEP] specifies a generic protocol needed to generate [RFC3264] Offers and Answers negotiated between the WebRTC peers for setting up, updating and tearing down a WebRTC session. For this purpose, SDP is used to construct [RFC3264] Offers/Answers for describing (media and non-media) streams as appropriate for the recipients of the session description to participate in the session. The remainder of this document is organized as follows: Section 3 and 4 provides an overview of SDP and the Offer/Answer exchange mechanism. Section 5 provides sample SDP generated for the most common WebRTC use-cases. 2. Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. 3. SDP and the WebRTC The purpose of this section is to provide a general overview of SDP and its components. For a more in-depth understanding, the readers are advised to refer to [RFC4566]. The Session Description Protocol (SDP) [RFC4566] describes multimedia sessions, which can contain audio, video, whiteboard, fax, modem, and other streams. SDP provides a general purpose, standard representation to describe various aspects of multimedia session such as media capabilities, transport addresses and related metadata in a transport agnostic manner, for the purposes of session announcement, session invitation and parameter negotiation. As of today SDP is widely used in the context of Session Initiation Protocol [RFC3261], Real-time Transport Protocol [RFC3550] and Real- time Streaming Protocol applications [RFC2326]. Below figure introduces high-level breakup of SDP into components that semantically describe a multimedia session, in our case, a WebRTC session [WebRTC]. It by no means captures everything about SDP and hence, should be used for informational purposes only. [WebRTC] proposes JavaScript application to fully specify and control the signaling plane of a multimedia session as described in the JSEP Nandakumar & Jennings Expires August 16, 2014 [Page 4] Internet-Draft SDP4WebRTC February 2014 specification [JSEP]. JSEP provides mechanisms to create session characterization and media definition information to conduct the session based on SDP exchanges. In this context, SDP serves two purposes: 1. Provide grammatical structure syntactically. 2. Semantically convey partipant's intention and capabilities required to successfully negotiate a session. 4. Offer/Answer and the WebRTC This section introduces SDP Offer/Answer Exchange mechanism mandated by WebRTC for negotiating session capabilities while setting up, updating and tearing down a WebRTC session. This section is intentionally brief in nature and interested readers are recommended to refer [RFC3264] for specific details on the protocol operation. The Offer/Answer [RFC3264] model specifies rule for the bilateral exchange of Session Description Protocol (SDP) messages for creation of multimedia streams. It defines protocol with involved participants exchanging desired session characteristics from each others perspective constructed as SDP to negotiate the session between them. In the most basic form,the protocol operation begins by one of the participants sending an initial SDP Offer describing its intent to start a multimedia communication session. The participant receiving the offer MAY generate an SDP Answer accepting the offer or it MAY reject the offer. If the session is accepted the Offer/Answer model guarantees a common view of the multimedia session between the participants. At any time, either participant MAY generate a new SDP offer that updates the session in progress. With in the context of WebRTC, the Offer/Answer model defines the state-machinery for WebRTC peers to negotiate session descriptions between them during the initial setup stages as well as for eventual session updates. Javascript Session Establishment Protocol specification [JSEP] for WebRTC provides the mechanism for generating [RFC3264] SDP Offers and Answers in order for both sides of the session to agree upon details such as list of media formats to be sent/received, bandwidth information, crypto parameters, transport parameters, for example. Nandakumar & Jennings Expires August 16, 2014 [Page 5] Internet-Draft SDP4WebRTC February 2014 5. WebRTC Session Description Examples A typical web based real-time multimedia communication session can be characterized as below: o It has zero or more Audio only, Video only or Audio/Video RTP Sessions, o MAY contain zero or more non-media data sessions, o All the sessions are secured with DTLS-SRTP, o Supports NAT traversal using ICE mechanism, o Provides RTCP based feedback mechanisms, o Sessions can be over IPv4-only, IPv6-only, dual-stack based clients. 5.1. Some Conventions The examples given in this document follow the conventions listed below: o In all the examples, Alice and Bob are assumed to be the WebRTC peers. o [draft-ietf-mmusic-sdp-bundle-negotiation] support for multiplexing several media streams on a single underlying transport is enabled by default unless explicitly specified otherwise. o Call flow diagrams that accompany the use-cases capture only the prominent aspects of the system behavior and intentionally is not detailed to improve readability. o The SDP examples deviate from actual on-the-wire SDP notation in several ways. This is done to facilitate readability and to conform to the restrictions imposed by the RFC formatting rules. * Any SDP line that is indented (compared to the initial line in the SDP block) is a continuation of the preceding line. The line break and indent are to be interpreted as a single space character. * Empty lines in any SDP example are inserted to make functional divisions in the SDP clearer, and are not actually part of the SDP syntax. * Excepting the above two conventions, line endings are to be interpreted as pairs (that is, an ASCII 13 followed by an ASCII 10). o Against each SDP line, pointers to the appropriate RFCs are provide for further information reference. Also an attempt has been made to provide explanatory notes to enable better understanding of the SDP usage, wherever appropriate. o Following SDP details are common across all the use-cases defined in this document unless mentioned otherwise. Nandakumar & Jennings Expires August 16, 2014 [Page 6] Internet-Draft SDP4WebRTC February 2014 * DTLS fingerprint for SRTP (a=fingerprint) * RTP/RTCP Multiplexing (a=rtcp-mux) * RTCP Feedback support (a=rtcp-fb) * Host and server-reflexive candidate lines (a=candidate) * SRTP Setup framework parameters (a=setup) * RTCP attribute (a=rtcp) * RTP header extension indicating audio-levels from client to the mixer For more details, readers are recommended to refer to the Javascript Session Exchange Protocol(JSEP) [JSEP] specification. o The term "Session" is used rather loosely in this document to refer to either a "Communication Session" or a "RTP Session" or a "RTP Stream" depending on the context. o Payload type 109 is usually used for OPUS, 99 for H.264 and 120 for VP8 in most of the examples to maintain uniformity. o In the actual use that values that represent SSRCs, ICE candidate foundations, WebRTC Mediastream and MediaStreamTrack Ids can be much larger and random than the ones shown in the examples. [OPEN ISSUE-1]: SDP Examples for Data Channel, Simulcast, SVC are still being discussed and doesn't represent the final solution. [OPEN ISSUE-2]: API surface for controlling BUNDLE, TRICKLE-ICE are ignored for the time being. 5.2. Basic Examples 5.2.1. Two-Way Audio Only Session This common scenario shows SDP for secure Two-way audio session with Alice offering Opus, PCMU, PCMA and Bob accepting all the audio codecs offered. title 2-Way Audio Only Session participant Alice as Alice participant Bob as Bob Alice->Bob: Offer(Audio:Opus,PCMU,PCMA) Bob->Alice: Answer(Audio:Opus,PCMU,PCMA) Alice<->Bob: Two-way Opus Audio (preferred codec) Nandakumar & Jennings Expires August 16, 2014 [Page 7] Internet-Draft SDP4WebRTC February 2014 +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | | | Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE audio | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | 0 8 | | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] - Port for RTCP | | | data | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] - Opus Codec 48khz, 2 | | | channels | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] - Opus packetization o | | | f20ms | | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMU Audio Codec | | a=rtpmap:8 PCMA/8000 | [RFC3551] PCMA Audio Codec | | a=extmap:1 | [RFC6464] Alice supports | | urn:ietf:params:rtp-hdrext:ssrc-audi | RTP header extension to | | o-level | indicate audio levels | | a=sendrecv | [RFC3264] - Alice can send | | | and recv audio | | a=setup:actpass | [RFC4145] - Alice can | | | perform DTLS before Answer | | | arrives | | a=rtcp-mux | [RFC5761] - Alice can | | | perform RTP/RTCP Muxing on | | | port 54609 | | a=fingerprint:sha-1 | [RFC5245] - DTLS | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | Fingerprint for SRTP | | c7:70:9d:1f:66:79:a8:07 | | | a=ice-ufrag:074c6550 | [RFC5245] - ICE user | | | fragment | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] - ICE password | | f08a068 | | Nandakumar & Jennings Expires August 16, 2014 [Page 8] Internet-Draft SDP4WebRTC February 2014 | a=candidate:0 1 UDP 2113667327 | [RFC5245] - RTP Host | | 192.168.1.4 54609 typ host | Candidate | | a=candidate:1 1 UDP 694302207 | [RFC5245] - RTP Server | | 24.23.204.141 54609 typ srflx raddr | Reflexive ICE Candidate | | 192.168.1.4 rport 54609 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] - RTCP Host | | 192.168.1.4 64678 typ host | Candidate | | a=candidate:1 2 UDP 1694302206 | [RFC5245] - RTCP Server | | 24.23.204.141 64678 typ srflx raddr | Reflexive Candidate | | 192.168.1.4 rport 64678 | | | a=rtcp-fb:109 nack | [RFC5104] - Indicates NACK | | | RTCP feedback support | | a=ssrc:12345 cname:EocUG1f0fcg/yvY7 | [RFC5576] | | a=rtcp-rsize | [RFC5506] - Alice intends | | | to use reduced size RTCP | | | for this session | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | +--------------------------------------+----------------------------+ Table 1: 5.2.1 SDP Offer Nandakumar & Jennings Expires August 16, 2014 [Page 9] Internet-Draft SDP4WebRTC February 2014 +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | | | Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE audio | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | 0 8 | | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] - Port for RTCP | | | data | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] Opus Codec | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] Packetization of 20ms | | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMU Audio Codec | | a=rtpmap:8 PCMA/8000 | [RFC3551] PCMA Audio Codec | | a=extmap:1 | [RFC6464] Bob supports | | urn:ietf:params:rtp-hdrext:ssrc-audi | audio level RTP header | | o-level | extension as well | | a=sendrecv | [RFC3264] - Bob can send | | | and recv audio | | a=setup:active | [RFC4145] - Bob carries | | | out DTLS Handshake in | | | parallel | | a=rtcp-mux | [RFC5761] - Bob can | | | perform RTP/RTCP Muxing on | | | port 49203 | | a=fingerprint:sha-1 | [RFC5245] - DTLS | | c9:c7:70:9d:1f:66:79:a8:07:99:41:49: | Fingerprint for SRTP | | 83:4a:97:0e:1f:ef:6d:f7 | | | a=ice-ufrag:05067423 | [RFC5245] - ICE user | | | fragment | | a=ice-pwd:1747d1ee3474a28a397a4c3f3a | [RFC5245] - ICE password | | f08a068 | parameter | | a=candidate:0 1 UDP 2113667327 | [RFC5245] - RTP Host ICE | | 192.168.1.7 49203 typ host | Candidate for Opus Stream | Nandakumar & Jennings Expires August 16, 2014 [Page 10] Internet-Draft SDP4WebRTC February 2014 | a=candidate:1 1 UDP 1694302207 | [RFC5245] - RTP Server | | 98.248.92.77 49203 typ srflx raddr | Reflexive ICE Candidate | | 192.168.1.7 rport 49203 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] - RTCP Host | | 192.168.1.7 60065 typ host | Candidate | | a=candidate:1 2 UDP 1694302206 | [RFC5245] - RTCP Server | | 98.248.92.77 60065 typ srflx raddr | Reflexive Candidate | | 192.168.1.7 rport 60065 | | | a=rtcp-fb:109 nack | [RFC5104] - Indicates NACK | | | RTCP feedback support | | a=ssrc:54321 | [RFC5576] | | cname:NWs1ao1HmN4Xa5/yvY7 | | | a=rtcp-rsize | [RFC5506] - Bob intends to | | | use reduced size RTCP for | | | this session | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | +--------------------------------------+----------------------------+ Table 2: 5.2.1 SDP Answer 5.2.2. Two-Way Audio/Video Session Alice and Bob establish an audio and video session with Opus as the audio codec and H.264 as the video codec. This example also illustrates the negotiation of NACK based RTCP feedback mechanisms - PLI and FIR for the video session [RFC5104]. title 2-Way Audio,Video Session Alice->Bob: Offer(Audio:Opus,PCMU,PCMA Video:H.264,VP8) Bob->Alice: Answer(Audio:Opus, Video:H.264) Alice->Bob: Two-way Opus Audio, H.264 Video +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | | | Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE audio video | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | 0 8 | | | a=mid:audio | [RFC5888] | Nandakumar & Jennings Expires August 16, 2014 [Page 11] Internet-Draft SDP4WebRTC February 2014 | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] - Port for RTCP | | | data | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] - Opus Codec 48khz, 2 | | | channels | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] - Opus packetization o | | | f20ms | | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMU Audio Codec | | a=rtpmap:8 PCMA/8000 | [RFC3551] PCMA Audio Codec | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=sendrecv | [RFC3264] - Alice can send | | | and recv audio | | a=setup:actpass | [RFC4145] - Alice can | | | perform DTLS before Answer | | | arrives | | a=rtcp-mux | [RFC5761] - Alice can | | | perform RTP/RTCP Muxing on | | | port 54609 | | a=ice-ufrag:074c6550 | [RFC5245] - ICE user | | | fragment | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] - ICE password | | f08a068 | parameter | | a=fingerprint:sha-1 | [RFC5245] - DTLS | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | Fingerprint for SRTP | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] - RTP ICE | | 192.168.1.4 54609 typ host | Candidate | | a=candidate:1 1 UDP 694302207 | [RFC5245] - RTP Server | | 24.23.204.141 54609 typ srflx raddr | Reflexive ICE Candidate | | 192.168.1.4 rport 54609 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] - RTCP Host | | 192.168.1.4 64678 typ host | Candidate | | a=candidate:1 2 UDP 1694302206 | [RFC5245] - RTCP Server | | 24.23.204.141 64678 typ srflx raddr | Reflexive Candidate. | | 192.168.1.4 rport 64678 | | | a=rtcp-fb:109 nack | [RFC5104] - Indicates NACK | | | RTCP feedback support | | a=ssrc:12345 cname:EocUG1f0fcg/yvY7 | [RFC5576] | Nandakumar & Jennings Expires August 16, 2014 [Page 12] Internet-Draft SDP4WebRTC February 2014 | a=rtcp-rsize | [RFC5506] - Alice intends | | | to use reduced size RTCP | | | for this session | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=video 54609 UDP/TLS/RTP/SAVPF 99 | [RFC4566] | | 120 | | | a=mid:video | [RFC5888] | | a=msid:ma tb | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tb) | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] - Port for RTCP | | | data | | a=rtpmap:99 H264/90000 | [RFC3984] - H.264 Video | | | Codec | | a=fmtp:99 | [RFC3984] | | profile-level-id=4d0028;packetizatio | | | n-mode=1 | | | a=rtpmap:120 VP8/90000 | [draft-ietf-payload-vp8] - | | | VP8 video codec | | a=sendrecv | [RFC3264] - Alice can send | | | and recv video | | a=setup:actpass | [RFC4145] - Alice can | | | perform DTLS before Answer | | | arrives | | a=rtcp-mux | [RFC5761] - Alice can | | | perform RTP/RTCP Muxing on | | | port 62537 | | a=ice-ufrag:074c6550 | [RFC5245] - ICE user | | | fragment | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] - ICE password | | f08a068 | parameter | | a=fingerprint:sha-1 | [RFC5245] - DTLS | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | Fingerprint for SRTP | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] - RTP Host ICE | | 192.168.1.4 54609 typ host | Candidate | | a=candidate:1 1 UDP 694302207 | [RFC5245] - RTP Server | | 24.23.204.141 54609 typ srflx raddr | Reflexive ICE Candidate | | 192.168.1.4 rport 54609 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] - RTCP Host | | 192.168.1.4 64678 typ host | Candidate | | a=candidate:1 2 UDP 1694302206 | [RFC5245] - RTCP Server | | 24.23.204.141 64678 typ srflx raddr | Reflexive Candidate | | 192.168.1.4 rport 64678 | | Nandakumar & Jennings Expires August 16, 2014 [Page 13] Internet-Draft SDP4WebRTC February 2014 | a=rtcp-fb:99 nack | [RFC5104] - Indicates NACK | | | RTCP feedback support | | a=rtcp-fb:99 nack pli | [RFC5104] - Indicates | | | support for Picture loss | | | Indication and NACK | | a=rtcp-fb:99 ccm fir | [RFC5104] - Full Intra | | | Frame Request-Codec | | | Control Message support | | a=rtcp-fb:120 nack | [RFC5104] - Indicates NACK | | | RTCP feedback support | | a=rtcp-fb:120 nack pli | [RFC5104] - Indicates | | | support for Picture loss | | | Indication and NACK | | a=rtcp-fb:120 ccm fir | [RFC5104] - Full Intra | | | Frame Request-Codec | | | Control Message support | | a=ssrc:1366781083 | [RFC5576] | | cname:EocUG1f0fcg/yvY7 | | | a=rtcp-rsize | [RFC5506] - Alice intends | | | to use reduced size RTCP | | | for this session | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | +--------------------------------------+----------------------------+ Table 3: 5.2.2 SDP Offer +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | | | Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE audio video | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] - Port for RTCP | | | data | Nandakumar & Jennings Expires August 16, 2014 [Page 14] Internet-Draft SDP4WebRTC February 2014 | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] - Bob accepts only Opu | | | sCodec | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | | a=sendrecv | [RFC3264] - Bob can send | | | and recv audio | | a=setup:active | [RFC4145] - Bob carries | | | out DTLS Handshake in | | | parallel | | a=rtcp-mux | [RFC5761] - Bob can | | | perform RTP/RTCP Muxing on | | | port 49203 | | a=ice-ufrag:c300d85b | [RFC5245] - ICE username | | | frag | | a=ice-pwd:de4e99bd291c325921d5d47efb | [RFC5245] - ICE password | | abd9a2 | | | a=fingerprint:sha-1 | [RFC5245] - DTLS | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | Fingerprint for SRTP | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] - RTP Host ICE | | 192.168.1.7 49203 typ host | Candidate for Opus Stream | | a=candidate:1 1 UDP 1694302207 | [RFC5245] - RTP Server | | 98.248.92.77 49203 typ srflx raddr | Reflexive ICE Candidate | | 192.168.1.7 rport 49203 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] - RTPC Host | | 192.168.1.7 60065 typ host | Candidate | | a=candidate:1 2 UDP 1694302206 | [RFC5245] - RTCP Server | | 98.248.92.77 60065 typ srflx raddr | Reflexive Candidate. | | 192.168.1.7 rport 60065 | | | a=ssrc:1366788312 | [RFC5576] | | cname:1f0fcgEocUG/yvY7 | | | a=rtcp-rsize | [RFC5506] - Bob intends to | | | use reduced size RTCP for | | | this session | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=video 49203 UDP/TLS/RTP/SAVPF 99 | [RFC4566] | | a=mid:video | [RFC5888] | | a=msid:ma tb | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tb) | | c=IN IP4 98.248.92.77 | [RFC4566] | Nandakumar & Jennings Expires August 16, 2014 [Page 15] Internet-Draft SDP4WebRTC February 2014 | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] - Port for RTCP | | | data | | a=rtpmap:99 H264/90000 | [RFC3984] - Bob accepts | | | H.264 Video Codec. | | a=fmtp:99 | [RFC3984] | | profile-level-id=4d0028;packetizatio | | | n-mode=1 | | | a=sendrecv | [RFC3264] - Bob can send | | | and recv video | | a=setup:active | [RFC4145] - Bob carries | | | out DTLS Handshake in | | | parallel | | a=rtcp-mux | [RFC5761] - Bob can | | | perform RTP/RTCP Muxing on | | | port 63130 | | a=ice-ufrag:c300d85b | [RFC5245] - ICE username | | | frag | | a=ice-pwd:de4e99bd291c325921d5d47efb | [RFC5245] - ICE password | | abd9a2 | | | a=fingerprint:sha-1 | [RFC5245] - DTLS | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | Fingerprint for SRTP | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] - Host ICE | | 192.168.1.7 49203 typ host | Candidate for Opus Stream | | a=candidate:1 1 UDP 1694302207 | [RFC5245] - Server | | 98.248.92.77 49203 typ srflx raddr | Reflexive ICE Candidate | | 192.168.1.7 rport 49203 | for the above host | | | candidate | | a=candidate:0 2 UDP 2113667326 | [RFC5245] - Second Host | | 192.168.1.7 60065 typ host | Candidate | | a=candidate:1 2 UDP 1694302206 | [RFC5245] - Server | | 98.248.92.77 60065 typ srflx raddr | Reflexive Candidate for | | 192.168.1.7 rport 60065 | the Second Host Candidate | | a=rtcp-fb:99 nack | [RFC5104] - Indicates | | | support for NACK based | | | RTCP feedback | | a=rtcp-fb:99 nack pli | [RFC5104] - Indicates | | | support for Picture loss | | | Indication and NACK | | a=rtcp-fb:99 ccm fir | [RFC5104] - Full Intra | | | Frame Request-Codec | | | Control Message support | | a=ssrc:3229706345 | [RFC5576] | | cname:Q/NWs1ao1HmN4Xa5 | | | a=rtcp-rsize | [RFC5506] - Bob intends to | | | use reduced size RTCP for | | | this session | Nandakumar & Jennings Expires August 16, 2014 [Page 16] Internet-Draft SDP4WebRTC February 2014 | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | +--------------------------------------+----------------------------+ Table 4: 5.2.2 SDP Answer 5.2.3. Two-Way Data Only Session This scenario illustrates SDP negotiated to setup a data-only session based on SCTP Data Channel, thus enabling use-cases such as file- transfer for example. title WebRTC Session - 2-Way Secure Audio,Video with RTCP Feedback Alice->Bob: Offer(DataChannel) Bob->Alice: Answer(Data-Channel) Alice->Bob: Two-way SCTP based Data-Channel +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | | | Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE data | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] | | a=ice-ufrag:074c6550 | [RFC5245] - Session Level | | | ICE parameter | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] - Session Level | | f08a068 | ICE parameter | | a=fingerprint:sha-1 | [RFC5245] - Session DTLS | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | Fingerprint for SRTP | | c7:70:9d:1f:66:79:a8:07 | | | m=application 56966 DTLS/SCTP 5000 | [draft-ietf-rtcweb-data-ch | | | annel] | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=mid:data | [RFC5888] | | a=sctpmap:5000 webrtc-Datachannel 1 | [draft-ietf-mmusic-sctp-sd | | | p] - One data stream of | | | type chat | | a=webrtc-Datachannel:5000 | [draft-ietf-mmusic-sctp-sd | | stream=1;label="channel | p] | | 1";subprotocol="chat"; | | | a=setup:actpass | [RFC4145] - Alice can | | | perform DTLS before Answer | | | arrives | Nandakumar & Jennings Expires August 16, 2014 [Page 17] Internet-Draft SDP4WebRTC February 2014 | a=sendrecv | [RFC3264] - Alice can send | | | and recv non-media data | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 56966 typ host | | | a=candidate:1 1 UDP 1694302207 | [RFC5245] | | 24.23.204.141 56966 typ srflx raddr | | | 192.168.1.7 rport 56966 | | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | +--------------------------------------+----------------------------+ Table 5: 5.2.3 SDP Offer +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | | | Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE data | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] | | m=application 55700 DTLS/SCTP 5000 | [draft-ietf-mmusic-sctp-sd | | | p] | | c=IN IP4 98.248.92.771 | [RFC4566] | | a=mid:data | [RFC5888] | | a=sctpmap:5000 webrtc-Datachannel 1 | [draft-ietf-mmusic-sctp-sd | | | p] | | a=webrtc-Datachannel:5000 | [draft-ietf-mmusic-sctp-sd | | stream=1;label="channel | p] | | 1";subprotocol="chat"; | | | a=setup:active | [RFC4145] - Bob carries | | | out DTLS Handshake in | | | parallel | | a=sendrecv | [RFC3264] - Bob can send | | | and recv non-media data | | a=ice-ufrag:c300d85b | [RFC5245] - Session Level | | | ICE username frag | | a=ice-pwd:de4e99bd291c325921d5d47efb | [RFC5245] - Session Level | | abd9a2 | ICE password | | a=fingerprint:sha-1 | [RFC5245] - Session DTLS | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | Fingerprint for SRTP | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] - Refer 4.1 SDP | | 192.168.1.7 55700 typ host | Offer | Nandakumar & Jennings Expires August 16, 2014 [Page 18] Internet-Draft SDP4WebRTC February 2014 | a=candidate:1 1 UDP 1694302207 | [RFC5245] Refer 4.1 SDP | | 98.248.92.77 55700 typ srflx raddr | Offer | | 192.168.1.7 rport 55700 | | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | +--------------------------------------+----------------------------+ Table 6: 5.2.3 SDP Answer 5.2.4. Audio Call On Hold Alice calls Bob, but when Bob answers he places Alice on hold by setting the SDP direction attribute to a=sendonly in the Answer. title Secure 2-Way Audio Only Session participant Alice as Alice participant Bob as Bob Alice->Bob: Offer(Audio:Opus) Bob->Alice: Answer(Audio:Opus,a=sendonly) Alice->Bob: One-way Opus Audio (preferred codec) Nandakumar & Jennings Expires August 16, 2014 [Page 19] Internet-Draft SDP4WebRTC February 2014 +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | | | Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE audio | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] - Port for RTCP | | | data | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] - Opus Codec 48khz, 2 | | | channels | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] - Opus packetization o | | | f20ms | | a=sendrecv | [RFC3264] - Alice can send | | | and recv audio | | a=setup:actpass | [RFC4145] - Alice can | | | perform DTLS before Answer | | | arrives | | a=rtcp-mux | [RFC5761] - Alice can | | | perform RTP/RTCP Muxing on | | | port 54609 | | a=ice-ufrag:074c6550 | [RFC5245] - ICE user | | | fragment | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] - ICE password | | f08a068 | | | a=fingerprint:sha-1 | [RFC5245] - DTLS | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | Fingerprint for SRTP | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.4 54609 typ host | | Nandakumar & Jennings Expires August 16, 2014 [Page 20] Internet-Draft SDP4WebRTC February 2014 | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 24.23.204.141 54609 typ srflx raddr | | | 192.168.1.4 rport 54609 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.4 64678 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.141 64678 typ srflx raddr | | | 192.168.1.4 rport 64678 | | | a=rtcp-fb:109 nack | [RFC5104] - Indicates NACK | | | RTCP feedback support | | a=ssrc:3229706345 | [RFC5576] | | cname:Q/NWs1ao1HmN4Xa5 | | | a=rtcp-rsize | [RFC5506] | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | +--------------------------------------+----------------------------+ Table 7: 5.2.4 SDP Offer Nandakumar & Jennings Expires August 16, 2014 [Page 21] Internet-Draft SDP4WebRTC February 2014 +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | | | Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE audio | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] - Port for RTCP | | | data | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] - Bob accepts only Opu | | | sCodec | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | | a=sendonly | [RFC3264] - Bob puts call | | | On Hold | | a=setup:active | [RFC4145] - Bob carries | | | out DTLS Handshake in | | | parallel | | a=rtcp-mux | [RFC5761] - Bob can | | | perform RTP/RTCP Muxing on | | | port 49203 | | a=ice-ufrag:c300d85b | [RFC5245] - ICE username | | | frag | | a=ice-pwd:de4e99bd291c325921d5d47efb | [RFC5245] - ICE password | | abd9a2 | | | a=fingerprint:sha-1 | [RFC5245] - DTLS | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | Fingerprint for SRTP | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 49203 typ host | | | a=candidate:1 1 UDP 1694302207 | [RFC5245] | | 98.248.92.77 49203 typ srflx raddr | | | 192.168.1.7 rport 49203 | | Nandakumar & Jennings Expires August 16, 2014 [Page 22] Internet-Draft SDP4WebRTC February 2014 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.7 60065 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 98.248.92.77 60065 typ srflx raddr | | | 192.168.1.7 rport 60065 | | | a=ssrc:1366781083 | [RFC5576] | | cname:EocUG1f0fcg/yvY7 | | | a=rtcp-rsize | [RFC5506] | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | +--------------------------------------+----------------------------+ Table 8: 5.2.4 SDP Answer 5.2.5. Audio with DTMF Session In this example, Alice wishes to establish two separate audio streams, one for normal audio and the other for telephone-events. Alice offers first audio stream with three codecs and the other with [RFC2833] tones (for DTMF). Bob accepts both the audio streams by choosing Opus as the audio codec and the telephone-event for the other stream. title Audio Session with DTMF participant Alice as Alice participant Bob as Bob Alice->Bob: Offer(Audio:Opus,PCMU,PCMA Audio:telephone-event) Bob->Alice: Answer(Audio:Opus, Audio:telephone-event) Alice->Bob: Opus audio stream and telephone-event stream +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | | | Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE audio dtmf | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | 0 8 | | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | Nandakumar & Jennings Expires August 16, 2014 [Page 23] Internet-Draft SDP4WebRTC February 2014 | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] - Port for RTCP | | | data | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] - Opus Codec 48khz, 2 | | | channels | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] - Opus packetization o | | | f20ms | | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMU Audio Codec | | a=rtpmap:8 PCMA/8000 | [RFC3551] PCMA Audio Codec | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=sendrecv | [RFC3264] - Alice can send | | | and recv audio | | a=setup:actpass | [RFC4145] - Alice can | | | perform DTLS before Answer | | | arrives | | a=rtcp-mux | [RFC5761] - Alice can | | | perform RTP/RTCP Muxing on | | | port 54609 | | a=ice-ufrag:074c6550 | [RFC5245] - ICE user | | | fragment | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] - ICE password | | f08a068 | parameter | | a=fingerprint:sha-1 | [RFC5245] - DTLS | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | Fingerprint for SRTP | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.4 54609 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 24.23.204.141 54609 typ srflx raddr | | | 192.168.1.4 rport 54609 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.4 64678 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.141 64678 typ srflx raddr | | | 192.168.1.4 rport 64678 | | | a=rtcp-fb:109 nack | [RFC5104] - Indicates NACK | | | RTCP feedback support | | a=ssrc:3229706345 | [RFC5576] | | cname:Q/NWs1ao1HmN4Xa5 | | | a=rtcp-rsize | [RFC5506] | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=audio 54609 UDP/TLS/RTP/SAVPF 126 | [RFC4566] | | a=mid:dtmf | [RFC5888] | Nandakumar & Jennings Expires August 16, 2014 [Page 24] Internet-Draft SDP4WebRTC February 2014 | a=msid:ma tb | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tb) | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] - Port for RTCP | | | data | | a=rtpmap:126 telephone-event/8000 | [RFC2833] | | a=sendonly | [RFC3264] - Alice can send | | | DTMF Events | | a=setup:actpass | [RFC4145] - Alice can | | | perform DTLS before Answer | | | arrives | | a=rtcp-mux | [RFC5761] | | a=ice-ufrag:074c6550 | [RFC5245] - ICE user | | | fragment | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] - ICE password | | f08a068 | parameter | | a=fingerprint:sha-1 | [RFC5245] - DTLS | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | Fingerprint for SRTP | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.4 54609 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 24.23.204.141 54609 typ srflx raddr | | | 192.168.1.4 rport 54609 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.4 64678 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.141 64678 typ srflx raddr | | | 192.168.1.4 rport 64678 | | | a=rtcp-fb:109 nack | [RFC5104] - Indicates NACK | | | RTCP feedback support | | a=ssrc:9032206345 | [RFC5576] | | cname:L/N9lk1ao1HmN4Xa5 | | | a=rtcp-rsize | [RFC5506] | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | +--------------------------------------+----------------------------+ Table 9: 5.2.5 SDP Offer +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | | | Information | Nandakumar & Jennings Expires August 16, 2014 [Page 25] Internet-Draft SDP4WebRTC February 2014 | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE audio dtmf | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] - Port for RTCP | | | data | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] - Bob accepts Opus | | | Codec | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | | a=sendrecv | [RFC3264] - Bob can send | | | and receive Opus audio | | a=setup:active | [RFC4145] - Bob carries | | | out DTLS Handshake in | | | parallel | | a=rtcp-mux | [RFC5761] - Bob can | | | perform RTP/RTCP Muxing on | | | port 49203 | | a=ice-ufrag:c300d85b | [RFC5245] - ICE username | | | frag | | a=ice-pwd:de4e99bd291c325921d5d47efb | [RFC5245] - ICE password | | abd9a2 | | | a=fingerprint:sha-1 | [RFC5245] - Fingerprint | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | for SRTP | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 49203 typ host | | | a=candidate:1 1 UDP 1694302207 | [RFC5245] | | 98.248.92.77 49203 typ srflx raddr | | | 192.168.1.7 rport 49203 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.7 60065 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 98.248.92.77 60065 typ srflx raddr | | | 192.168.1.7 rport 60065 | | Nandakumar & Jennings Expires August 16, 2014 [Page 26] Internet-Draft SDP4WebRTC February 2014 | a=ssrc:0634322975 | [RFC5576] | | cname:Q/o1HmN4XNWs1aa5 | | | a=rtcp-rsize | [RFC5506] - Alice intends | | | to use reduced size RTCP | | | for this session | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=audio 49203 UDP/TLS/RTP/SAVPF 126 | [RFC4566] | | a=mid:dtmf | [RFC5888] | | a=msid:ma tb | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tb) | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] - Port for RTCP | | | data | | a=rtpmap:126 telephone-event/8000 | [RFC2833] | | a=recvonly | [RFC3264] - Alice can | | | receive DTMF events | | a=setup:active | [RFC4145] - Bob carries | | | out DTLS Handshake in | | | parallel | | a=rtcp-mux | [RFC5761] - Alice can | | | perform RTP/RTCP Muxing on | | | port 54690 | | a=ice-ufrag:c300d85b | [RFC5245] - ICE username | | | frag | | a=ice-pwd:de4e99bd291c325921d5d47efb | [RFC5245] - ICE password | | abd9a2 | | | a=fingerprint:sha-1 | [RFC5245] - Fingerprint | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | for SRTP | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 49203 typ host | | | a=candidate:1 1 UDP 1694302207 | [RFC5245] | | 98.248.92.77 49203 typ srflx raddr | | | 192.168.1.7 rport 49203 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.7 60065 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 98.248.92.77 60065 typ srflx raddr | | | 192.168.1.7 rport 60065 | | | a=ssrc:6345903220 | [RFC5576] | | cname:L/k1aN9lo1HmN4Xa5 | | | a=rtcp-rsize | [RFC5506] - Alice intends | | | to use reduced size RTCP | | | for this session | Nandakumar & Jennings Expires August 16, 2014 [Page 27] Internet-Draft SDP4WebRTC February 2014 | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | +--------------------------------------+----------------------------+ Table 10: 5.2.5 SDP Answer 5.2.6. One Way Audio/Video Session - Document Camera In this scenario Alice and Bob engage in 1 way audio and video session with Bob receiving Alice's audio and her presentation slides as video stream. title 1 Way Audio & Video Session - Document Camera note right of Alice Alice Offers sendonly audio and video streams. The video stream corresponds to her presentation slides via a=content SDP attribute) end note Alice->Bob: Offer(Audio:Opus, Video: VP8) note left of Bob Bob accepts Alice's offer end note Bob->Alice: Answer(Audio:Opus, Video: VP8) Alice->Bob: One-way Opus Audio, VP8 Video note right of Alice Bob can hear Alice and see her presentation slides. end note +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE audio video | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] - Port for RTCP | | | data | Nandakumar & Jennings Expires August 16, 2014 [Page 28] Internet-Draft SDP4WebRTC February 2014 | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | | a=sendonly | [RFC3264] - Send only | | | audio stream | | a=setup:actpass | [RFC4145] - Alice can | | | perform DTLS before Answer | | | arrives | | a=rtcp-mux | [RFC5761] | | a=ice-ufrag:074c6550 | [RFC5245] | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] | | f08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 24.23.204.141 54609 typ host | | | a=candidate:0 2 UDP 2113667326 | [RFC5104] | | 24.23.204.141 64678 typ host | | | a=rtcp-fb:109 nack | [RFC5104] | | a=ssrc:6345903220 | [RFC5576] | | cname:L/k1aN9lo1HmN4Xa5 | | | a=rtcp-rsize | [RFC5506] | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=video 54609 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | | a=mid:video | [RFC5888] | | a=msid:ma tb | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tb) | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] - Port for RTCP | | | data | | a=rtpmap:120 VP8/90000 | [draft-ietf-payload-vp8] | | a=content:slides | [RFC4796] -Alice's | | | presentation video stream | | a=sendonly | [RFC3264] - Send only | | | video stream | | a=setup:actpass | [RFC4145] - Alice can | | | perform DTLS before Answer | | | arrives | | a=rtcp-mux | [RFC5761] | | a=ice-ufrag:074c6550 | [RFC5245] | Nandakumar & Jennings Expires August 16, 2014 [Page 29] Internet-Draft SDP4WebRTC February 2014 | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] | | f08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 24.23.204.141 54609 typ host | | | a=candidate:0 2 UDP 2113667326 | [RFC5104] | | 24.23.204.141 64678 typ host | | | a=rtcp-fb:120 nack | [RFC5104] | | a=rtcp-fb:120 nack pli | [RFC5104] | | a=rtcp-fb:120 ccm fir | [RFC5104] | | a=ssrc:3429951804 | [RFC5576] | | cname:Q/NWs1ao1HmN4Xa5 | | | a=rtcp-rsize | [RFC5506] | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | +--------------------------------------+----------------------------+ Table 11: 5.2.6 SDP Offer +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE audio video | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] - Port for RTCP | | | data | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | Nandakumar & Jennings Expires August 16, 2014 [Page 30] Internet-Draft SDP4WebRTC February 2014 | a=recvonly | [RFC3264] - Receive only | | | audio stream | | a=setup:active | [RFC4145] - Bob carries | | | out DTLS Handshake in | | | parallel | | a=rtcp-mux | [RFC5761] | | a=ice-ufrag:c300d85b | [RFC5245] | | a=ice-pwd:de4e99bd291c325921d5d47efb | [RFC5245] | | abd9a2 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 98.248.92.77 49203 typ host | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 98.248.92.77 60065 typ host | | | a=ssrc:9513429804 | [RFC5576] | | cname:Q/o1HmNWs1aN4Xa5 | | | a=rtcp-rsize | [RFC5506] | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=video 49203 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | | a=mid:video | [RFC5888] | | a=msid:ma tb | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tb) | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] - Port for RTCP | | | data | | a=rtpmap:120 VP8/90000 | [draft-ietf-payload-vp8] | | a=content:slides | [RFC4796] | | a=recvonly | [RFC3264] - Receive Only | | | Alice's presentation | | | stream | | a=setup:active | [RFC4145] - Bob carries | | | out DTLS Handshake in | | | parallel | | a=rtcp-mux | [RFC5761] | | a=ice-ufrag:c300d85b | [RFC5245] | | a=ice-pwd:de4e99bd291c325921d5d47efb | [RFC5245] | | abd9a2 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 98.248.92.77 49203 typ host | | Nandakumar & Jennings Expires August 16, 2014 [Page 31] Internet-Draft SDP4WebRTC February 2014 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 98.248.92.77 60065 typ host | | | a=ssrc:1366781083 | [RFC5576] | | cname:EocUG1f0fcg/yvY7 | | | a=rtcp-rsize | [RFC5506] | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | +--------------------------------------+----------------------------+ Table 12: 5.2.6 SDP Answer 5.2.7. Audio, Video Session with BUNDLE Support Unknown In this example, since Alice is unsure of the Bob's support of the BUNDLE framework, following 3 step procedures are performed in order to negotiate and setup a unique BUNDLE Address for the session o An SDP Offer, in which the Alice assigns unique addresses to each "m=" line in the BUNDLE group, and requests the Answerer to select the Offerer's BUNDLE address. o An SDP Answer, in which the Bob indicates its support for BUNDLE, and assigns its own BUNDLE address for the BUNDLED m= lines. o A subsequent SDP Offer from Alice, which is used to perform a BUNDLE Address Synchronization (BAS). Once the Offer/Answer exchange completes, both Alice and Bob each end up using single RTP Session for both the Media Streams. title 2-Way Secure Audio,Video with BUNDLE support unknown Alice->Bob: Offer(Audio:Opus Video:VP8) note right of Alice Alice offers BUNDLE support with unique address for the audio and video m-line end note Bob->Alice: Answer(Audio:Opus Video:VP8) indicating its support for BUNDLE note left of Bob Bob uses identical addresses across the m=lines end note Alice->Bob: Updated Offer(Audio:Opus Video:VP8) for Bundle Address Synchronzation. Alice <-> Bob: 2Way Call with Audio and Video Multiplexed +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | Nandakumar & Jennings Expires August 16, 2014 [Page 32] Internet-Draft SDP4WebRTC February 2014 | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE audio video | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] Alice | | | supports grouping of | | | m=lines under BUNDLE | | | semantics | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | a=mid:audio | [RFC5888] Audio m=line | | | part of BUNDLE group with | | | a unique port number | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | | a=sendrecv | [RFC3264] | | a=setup:actpass | [RFC4145] - Alice can | | | perform DTLS before Answer | | | arrives | | a=rtcp-mux | [RFC5761] | | a=ssrc:11111 cname:EocUG1f0fcg/yvY7 | [RFC5576] | | a=ice-ufrag:074c6550 | [RFC5245] | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] | | f08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.4 54609 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 24.23.204.141 54609 typ srflx raddr | | | 192.168.1.4 rport 54609 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.4 64678 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.141 64678 typ srflx raddr | | | 192.168.1.4 rport 64678 | | | a=rtcp-fb:109 nack | [RFC5104] | | a=rtcp-rsize | [RFC5506] | Nandakumar & Jennings Expires August 16, 2014 [Page 33] Internet-Draft SDP4WebRTC February 2014 | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=video 62537 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | | a=mid:video | [RFC5888] Video m=line | | | part of the Bundle group | | | with a unique port number | | a=msid:ma tb | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tb) | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:54721 IN IP4 24.23.204.141 | [RFC3605] - Port for RTCP | | | data | | a=rtpmap:120 VP8/90000 | [draft-ietf-payload-vp8] | | a=sendrecv | [RFC3264] | | a=setup:actpass | [RFC4145] - Alice can | | | perform DTLS before Answer | | | arrives | | a=rtcp-mux | [RFC5761] | | a=ssrc:22222 cname:Q/NWs1ao1HmN4Xa5 | [RFC5576] | | a=ice-ufrag:6550074c | [RFC5245] | | a=ice-pwd:74af08a068a28a397a4c3f3174 | [RFC5245] | | 7d1ee34 | | | a=fingerprint:sha-1 | [RFC5245] | | 1f:ef:6d:f7:c9:c7:70:9d:1f:66:99:41: | | | 49:83:4a:97:0e79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.4 62537 typ host | | | a=candidate:1 1 UDP 1694302207 | [RFC5245] | | 24.23.204.141 62537 typ srflx raddr | | | 192.168.1.4 rport 62537 | | | a=candidate:0 2 2113667326 | [RFC5245] | | 192.168.1.4 54721 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.141 54721 typ srflx raddr | | | 192.168.1.4 rport 54721 | | | a=rtcp-fb:120 nack | [RFC5104] | | a=rtcp-fb:120 nack pli | [RFC5104] | | a=rtcp-fb:120 ccm fir | [RFC5104] | | a=rtcp-rsize | [RFC5506] | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | +--------------------------------------+----------------------------+ Table 13: 5.2.7 SDP Offer w/BUNDLE Nandakumar & Jennings Expires August 16, 2014 [Page 34] Internet-Draft SDP4WebRTC February 2014 +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE audio video | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] Bob | | | supports BUNDLE semantics | | | . | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | a=mid:audio | [RFC5888] Audio m=line | | | part of the BUNDLE group | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] - Port for RTCP | | | data | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=sendrecv | [RFC3264] | | a=setup:active | [RFC4145] - Bob carries | | | out DTLS Handshake in | | | parallel | | a=rtcp-fb:109 nack | [RFC5104] | | a=rtcp-mux | [RFC5761] | | a=ssrc:33333 cname:Q/1HmN4Xa5NWs1ao | [RFC5576] | | a=ice-ufrag:c300d85b | [RFC5245] | | a=ice-pwd:de4e99bd291c325921d5d47efb | [RFC5245] | | abd9a2 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 49203 typ host | | | a=candidate:1 1 UDP 1694302207 | [RFC5245] | | 98.248.92.77 49203 typ srflx raddr | | | 192.168.1.7 rport 49203 | | Nandakumar & Jennings Expires August 16, 2014 [Page 35] Internet-Draft SDP4WebRTC February 2014 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.7 60065 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 98.248.92.77 60065 typ srflx raddr | | | 192.168.1.7 rport 60065 | | | a=rtcp-rsize | [RFC5506] | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=video 49203 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | | a=mid:video | [RFC5888] Video m=line | | | part of the BUNDLE group | | | with the port from audio | | | line repeated | | a=msid:ma tb | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tb) | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] - Port for RTCP | | | data | | a=rtpmap:120 VP8/90000 | [draft-ietf-payload-vp8] | | a=sendrecv | [RFC3264] | | a=setup:active | [RFC4145] - Bob carries | | | out DTLS Handshake in | | | parallel | | a=rtcp-mux | [RFC5761] | | a=ssrc:44444 cname:Q/2AqlmN4Xa5NWs | [RFC5576] | | a=ice-ufrag:85bc300d | [RFC5245] | | a=ice-pwd:bd2de4e9991c325921d5d47efb | [RFC5245] | | abd9a2 | | | a=fingerprint:sha-1 | [RFC5245] | | 41:49:83:4a:99:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] - Candidate | | 192.168.1.7 49203 typ host | lines identical with the | | | audio m-line. | | a=candidate:1 1 UDP 1694302207 | [RFC5245] | | 98.248.92.77 49203 typ srflx raddr | | | 192.168.1.7 rport 49203 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.7 60065 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 98.248.92.77 60065 typ srflx raddr | | | 192.168.1.7 rport 60065 | | | a=rtcp-fb:120 nack | [RFC5104] | | a=rtcp-fb:120 nack pli | [RFC5104] | | a=rtcp-fb:120 ccm fir | [RFC5104] | | a=rtcp-rsize | [RFC5506] | Nandakumar & Jennings Expires August 16, 2014 [Page 36] Internet-Draft SDP4WebRTC February 2014 | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | +--------------------------------------+----------------------------+ Table 14: 5.2.7 SDP Answer w/BUNDLE +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE audio video | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | a=mid:audio | [RFC5888] - Port number | | | finalized as Bundle | | | Address. | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | | a=sendrecv | [RFC3264] | | a=setup:actpass | [RFC4145] - Alice can | | | perform DTLS before Answer | | | arrives | | a=rtcp-mux | [RFC5761] | | a=ssrc:11111 cname:EocUG1f0fcg/yvY7 | [RFC5576] | | a=ice-ufrag:074c6550 | [RFC5245] | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] | | f08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.4 54609 typ host | | Nandakumar & Jennings Expires August 16, 2014 [Page 37] Internet-Draft SDP4WebRTC February 2014 | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 24.23.204.141 54609 typ srflx raddr | | | 192.168.1.4 rport 54609 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.4 64678 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.141 64678 typ srflx raddr | | | 192.168.1.4 rport 64678 | | | a=rtcp-fb:109 nack | [RFC5104] | | a=rtcp-rsize | [RFC5506] | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=video 54609 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | | a=msid:ma tb | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tb) | | a=mid:video | [RFC5888] - Same Bundle | | | address from the audio | | | m=line | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] | | a=rtpmap:120 VP8/90000 | [draft-ietf-payload-vp8] | | a=sendrecv | [RFC3264] | | a=setup:actpass | [RFC4145] - Alice can | | | perform DTLS before Answer | | | arrives | | a=rtcp-mux | [RFC5761] | | a=ssrc:22222 cname:Q/NWs1ao1HmN4Xa5 | [RFC5576] | | a=ice-ufrag:074c6550 | [RFC5245] | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] | | f08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.4 54609 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 24.23.204.141 54609 typ srflx raddr | | | 192.168.1.4 rport 54609 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.4 64678 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.141 64678 typ srflx raddr | | | 192.168.1.4 rport 64678 | | | a=rtcp-fb:120 nack | [RFC5104] | | a=rtcp-fb:120 nack pli | [RFC5104] | | a=rtcp-fb:120 ccm fir | [RFC5104] | Nandakumar & Jennings Expires August 16, 2014 [Page 38] Internet-Draft SDP4WebRTC February 2014 | a=rtcp-rsize | [RFC5506] | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | +--------------------------------------+----------------------------+ Table 15: 5.2.7 SDP Offer for BAS 5.2.8. Audio, Video and Data Session This example show-cases SDP for negotiating a session with Audio, Video and data streams between Alice and Bob with [draft-ietf-mmusic-sdp-bundle-negotiation] support known title Audio, Video, Data with BUNDLE support known Alice->Bob: Offer(Audio:Opus, Video:VP8, Data) note right of Alice Alice indicates BUNDLE support with identical address across all the m=lines. end note Bob->Alice: Answer(Audio:Opus Video:VP8, Data) note left of Bob Bob does the same end note Alice<->Bob: Two way Audio, Video and Data multiplexed +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE audio video data | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] | | a=mid:audio | [RFC5888] | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] | Nandakumar & Jennings Expires August 16, 2014 [Page 39] Internet-Draft SDP4WebRTC February 2014 | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | | a=sendrecv | [RFC3264] | | a=setup:actpass | [RFC4145] | | a=rtcp-mux | [RFC5761] | | a=ice-ufrag:074c6550 | [RFC5245] | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] | | f08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.4 54609 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 24.23.204.141 54609 typ srflx raddr | | | 192.168.1.4 rport 54609 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.4 64678 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.141 64678 typ srflx raddr | | | 192.168.1.4 rport 64678 | | | a=rtcp-fb:109 nack | [RFC5104] | | a=ssrc:11111 cname:Q/NWs1ao1HmN4Xa5 | [RFC5576] | | a=rtcp-rsize | [RFC5506] | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=video 54609 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | | a=msid:ma tb | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tb) | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] | | a=mid:video | [RFC5888] | | a=rtpmap:120 VP8/90000 | [draft-ietf-payload-vp8] | | a=sendrecv | [RFC3264] | | a=setup:actpass | [RFC4145] | | a=rtcp-mux | [RFC5761] | | a=ice-ufrag:074c6550 | [RFC5245] | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] | | f08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | Nandakumar & Jennings Expires August 16, 2014 [Page 40] Internet-Draft SDP4WebRTC February 2014 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.4 54609 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 24.23.204.141 54609 typ srflx raddr | | | 192.168.1.4 rport 54609 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.4 64678 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.141 64678 typ srflx raddr | | | 192.168.1.4 rport 64678 | | | a=rtcp-fb:120 nack | [RFC5104] | | a=rtcp-fb:120 nack pli | [RFC5104] | | a=rtcp-fb:120 ccm fir | [RFC5104] | | a=ssrc:22222 cname:Q/aoNWs11HmN4Xa5 | [RFC5576] | | a=rtcp-rsize | [RFC5506] | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=application 54609 DTLS/SCTP 5000 | [draft-ietf-rtcweb-data-ch | | | annel] | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=mid:data | [RFC5888] | | a=sctpmap:5000 webrtc-Datachannel 1 | [draft-ietf-mmusic-sctp-sd | | | p] | | a=webrtc-Datachannel:5000 | [draft-ietf-mmusic-sctp-sd | | stream=1;label="channel | p] | | 1";subprotocol="chat"; | | | a=sendrecv | [RFC3264] | | a=setup:actpass | [RFC4145] | | a=ice-ufrag:074c6550 | [RFC5245] | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] | | f08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.4 54609 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 24.23.204.141 54609 typ srflx raddr | | | 192.168.1.4 rport 54609 | | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | +--------------------------------------+----------------------------+ Table 16: 5.2.8 SDP Offer Nandakumar & Jennings Expires August 16, 2014 [Page 41] Internet-Draft SDP4WebRTC February 2014 +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | | | Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE audio video data | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] Bob's trickle suppor | | | tsupport is indicated at | | | the session level | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] | | a=mid:audio | [RFC5888] | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | | a=sendrecv | [RFC3264] | | a=setup:active | [RFC4145] | | a=rtcp-mux | [RFC5761] | | a=rtcp-fb:109 nack | [RFC5104] | | a=ice-ufrag:c300d85b | [RFC5245] | | a=ice-pwd:de4e99bd291c325921d5d47efb | [RFC5245] | | abd9a2 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 49203 typ host | | | a=candidate:1 1 UDP 1694302207 | [RFC5245] | | 98.248.92.77 49203 typ srflx raddr | | | 192.168.1.7 rport 49203 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.7 60065 typ host | | Nandakumar & Jennings Expires August 16, 2014 [Page 42] Internet-Draft SDP4WebRTC February 2014 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 98.248.92.77 60065 typ srflx raddr | | | 192.168.1.7 rport 60065 | | | a=ssrc:33333 cname:L/aoNWs11HmN4Xa5 | [RFC5576] | | a=rtcp-rsize | [RFC5506] | | m=video 49203 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | | a=msid:ma tb | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tb) | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] | | a=mid:video | [RFC5888] | | a=rtpmap:120 VP8/90000 | [draft-ietf-payload-vp8] | | a=sendrecv | [RFC3264] | | a=setup:active | [RFC4145] | | a=rtcp-mux | [RFC5761] | | a=ice-ufrag:c300d85b | [RFC5245] | | a=ice-pwd:de4e99bd291c325921d5d47efb | [RFC5245] | | abd9a2 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 49203 typ host | | | a=candidate:1 1 UDP 1694302207 | [RFC5245] | | 98.248.92.77 49203 typ srflx raddr | | | 192.168.1.7 rport 49203 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.7 60065 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 98.248.92.77 60065 typ srflx raddr | | | 192.168.1.7 rport 60065 | | | a=rtcp-fb:120 nack | [RFC5104] | | a=rtcp-fb:120 nack pli | [RFC5104] | | a=rtcp-fb:120 ccm fir | [RFC5104] | | a=ssrc:44444 cname:EocUG1f0fcg/yvY7 | [RFC5576] | | a=rtcp-rsize | [RFC5506] | | m=application 49203 DTLS/SCTP 5000 | [draft-ietf-mmusic-sctp-sd | | | p] | | c=IN IP4 98.248.92.771 | [RFC4566] | | a=mid:data | [RFC5888] | | a=sctpmap:5000 webrtc-Datachannel 1 | [draft-ietf-mmusic-sctp-sd | | | p] | | a=webrtc-Datachannel:5000 | [draft-ietf-mmusic-sctp-sd | | stream=1;label="channel | p] | | 1";subprotocol="chat"; | | | a=setup:active | [RFC4145] | Nandakumar & Jennings Expires August 16, 2014 [Page 43] Internet-Draft SDP4WebRTC February 2014 | a=sendrecv | [RFC3264] | | a=ice-ufrag:c300d85b | [RFC5245] | | a=ice-pwd:de4e99bd291c325921d5d47efb | [RFC5245] | | abd9a2 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 49203 typ host | | | a=candidate:1 1 UDP 1694302207 | [RFC5245] | | 98.248.92.77 49203 typ srflx raddr | | | 192.168.1.7 rport 49203 | | +--------------------------------------+----------------------------+ Table 17: 5.2.8 SDP Answer 5.2.9. Two-Way Audio,Video w/BUNDLE Unsupported This use-case illustrates SDP Offer/Answer exchange when the far-end (Bob) either doesn't support media bundling or doesn't want to group m=lines over a single 5-tuple. On successful Offer/Answer exchange, Alice and Bob each end up using unique 5-tuple for audio and video media streams respectively. title 2-Way Secure Audio,Video with BUNDLE Unsupported Alice->Bob: Offer(Audio:Opus Video:VP8) note right of Alice Alice offers BUNDLE support with unique address for the audio and video m-line end note Bob->Alice: Answer(Audio:Opus Video:VP8) note left of Bob Bob uses unique addresses as well since he doesn't understand BUNDLE end note Alice <-> Bob: 2Way Call with Audio and Video on different addresses. +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | Nandakumar & Jennings Expires August 16, 2014 [Page 44] Internet-Draft SDP4WebRTC February 2014 | a=group:BUNDLE audio video | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] Alice | | | supports grouping of | | | m=lines under BUNDLE | | | semantics | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=audio 55232 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | a=mid:audio | [RFC5888] Audio m=line | | | part of BUNDLE group with | | | a unique port number | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | | a=setup:actpass | [RFC4145] - Alice can | | | perform DTLS before Answer | | | arrives | | a=sendrecv | [RFC3264] | | a=rtcp-mux | [RFC5761] | | a=rtcp-fb:109 nack | [RFC5104] | | a=ssrc:11111 cname:EocUG1f0fcg/yvY7 | [RFC5576] | | a=ice-ufrag:074c6550 | [RFC5245] | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] | | f08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.4 55232 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 24.23.204.141 55232 typ srflx raddr | | | 192.168.1.4 rport 55232 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.4 64678 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.141 64678 typ srflx raddr | | | 192.168.1.4 rport 64678 | | | a=rtcp-rsize | [RFC5506] | Nandakumar & Jennings Expires August 16, 2014 [Page 45] Internet-Draft SDP4WebRTC February 2014 | m=video 54332 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | | a=msid:ma tb | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tb) | | a=mid:video | [RFC5888] Video m=line | | | part of the BUNDLE group | | | with a unique port number | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:54721 IN IP4 24.23.204.141 | [RFC3605] | | a=rtpmap:120 VP8/90000 | [draft-ietf-payload-vp8] | | a=sendrecv | [RFC3264] | | a=setup:actpass | [RFC4145] - Alice can | | | perform DTLS before Answer | | | arrives | | a=rtcp-mux | [RFC5761] | | a=ssrc:22222 cname:yvY7/EocUG1f0fcg | [RFC5576] | | a=ice-ufrag:7872093 | [RFC5245] | | a=ice-pwd:ee3474af08a068a28a397a4c3f | [RFC5245] | | 31747d1 | | | a=fingerprint:sha-1 | [RFC5245] | | 6d:f7:c9:c7:70:9d:1f:66:79:a8:07:99: | | | 41:49:83:4a:97:0e:1f:ef | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.4 54332 typ host | | | a=candidate:1 1 UDP 1694302207 | [RFC5245] | | 24.23.204.141 54332 typ srflx raddr | | | 192.168.1.4 rport 54332 | | | a=candidate:0 2 2113667326 | [RFC5245] | | 192.168.1.4 54721 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.141 54721 typ srflx raddr | | | 192.168.1.4 rport 54721 | | | a=rtcp-fb:120 nack | [RFC5104] | | a=rtcp-fb:120 nack pli | [RFC5104] | | a=rtcp-fb:120 ccm fir | [RFC5104] | | a=rtcp-rsize | [RFC5506] | +--------------------------------------+----------------------------+ Table 18: 5.2.9 SDP Offer w/BUNDLE Nandakumar & Jennings Expires August 16, 2014 [Page 46] Internet-Draft SDP4WebRTC February 2014 +------------------------------------------+------------------------+ | SDP Contents | RFC#/Notes | +------------------------------------------+------------------------+ | v=0 | [RFC4566] | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=ice-options:trickle | [draft-ivov-mmusic-tri | | | ckle-ice] | | m=audio 53214 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | a=msid:ma ta | Identifies | | | RTCMediaStream ID (ma) | | | and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rt | | | p-opus] | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audio-le | | | vel | | | a=ptime:20 | [draft-ietf-payload-rt | | | p-opus] | | a=setup:active | [RFC4145] - Bob | | | carries out DTLS | | | Handshake in parallel | | a=sendrecv | [RFC3264] | | a=rtcp-fb:109 nack | [RFC5104] | | a=ice-ufrag:c300d85b | [RFC5245] | | a=ice-pwd:de4e99bd291c325921d5d47efbabd9 | [RFC5245] | | a2 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:7 | | | 0:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 53214 typ host | | | a=candidate:1 1 UDP 1694302207 | [RFC5245] | | 98.248.92.77 53214 typ srflx raddr | | | 192.168.1.7 rport 53214 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.7 60065 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 98.248.92.77 60065 typ srflx raddr | | | 192.168.1.7 rport 60065 | | | a=rtcp-rsize | [RFC5506] | | m=video 58679 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | Nandakumar & Jennings Expires August 16, 2014 [Page 47] Internet-Draft SDP4WebRTC February 2014 | a=msid:ma tb | Identifies | | | RTCMediaStream ID (ma) | | | and | | | RTCMediaStreamTrack ID | | | (tb) | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtcp:56507 IN IP4 98.248.92.77 | [RFC3605] | | a=rtpmap:120 VP8/90000 | [draft-ietf-payload-vp | | | 8] | | a=setup:active | [RFC4145] - Bob | | | carries out DTLS | | | Handshake in parallel | | a=sendrecv | [RFC3264] | | a=ice-ufrag:85bC300 | [RFC5245] | | a=ice-pwd:325921d5d47efbabd9a2de4e99bd29 | [RFC5245] | | 1c | | | a=fingerprint:sha-1 | [RFC5245] | | 9d:1f:66:79:a8:07:99:41:49:83:4a:97:0e:1 | | | f:ef:6d:f7:c9:c7:70 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 58679 typ host | | | a=candidate:1 1 UDP 1694302207 | [RFC5245] | | 98.248.92.77 58679 typ srflx raddr | | | 192.168.1.7 rport 58679 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.7 56607 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 98.248.92.77 56607 typ srflx raddr | | | 192.168.1.7 rport 56607 | | | a=rtcp-fb:120 nack | [RFC5104] | | a=rtcp-fb:120 nack pli | [RFC5104] | | a=rtcp-fb:120 ccm fir | [RFC5104] | | a=rtcp-rsize | [RFC5506] | +------------------------------------------+------------------------+ Table 19: 5.2.9 SDP Answer without BUNDLE 5.2.10. Audio, Video BUNDLED but Data Not BUNDLED This example show-cases SDP for negotiating a session with Audio, Video and data streams between Alice and Bob but with data stream not part of the BUNDLE group. This is shown by assigning unique port for data media sections. Nandakumar & Jennings Expires August 16, 2014 [Page 48] Internet-Draft SDP4WebRTC February 2014 title Audio, Video, with Data out of BUNDLE Alice->Bob: Offer(Audio:Opus, Video:VP8, Data (Not in BUNDLE) note right of Alice Alice wants to multiplex audio, video but not data end note Bob->Alice: Answer(Audio:Opus Video:VP8, Data) note left of Bob Bob does the same end note Alice<->Bob: Two way Audio, Video multiplexed except Data +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE audio video | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] Alice | | | wants to BUNDLE only audi | | | oand video media. | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] | | a=mid:audio | [RFC5888] | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | | a=sendrecv | [RFC3264] | | a=setup:actpass | [RFC4145] | | a=rtcp-mux | [RFC5761] | | a=ice-ufrag:074c6550 | [RFC5245] | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] | | f08a068 | | Nandakumar & Jennings Expires August 16, 2014 [Page 49] Internet-Draft SDP4WebRTC February 2014 | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.4 54609 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 24.23.204.141 54609 typ srflx raddr | | | 192.168.1.4 rport 54609 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.4 64678 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.141 64678 typ srflx raddr | | | 192.168.1.4 rport 64678 | | | a=rtcp-fb:109 nack | [RFC5104] | | a=ssrc:11111 cname:Q/NWs1ao1HmN4Xa5 | [RFC5576] | | a=rtcp-rsize | [RFC5506] | | m=video 54609 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | | a=msid:ma tb | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tb) | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] | | a=mid:video | [RFC5888] | | a=rtpmap:120 VP8/90000 | [draft-ietf-payload-vp8] | | a=sendrecv | [RFC3264] | | a=setup:actpass | [RFC4145] | | a=rtcp-mux | [RFC5761] | | a=ice-ufrag:074c6550 | [RFC5245] | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] | | f08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.4 54609 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 24.23.204.141 54609 typ srflx raddr | | | 192.168.1.4 rport 54609 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.4 64678 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.141 64678 typ srflx raddr | | | 192.168.1.4 rport 64678 | | | a=rtcp-fb:120 nack | [RFC5104] | | a=rtcp-fb:120 nack pli | [RFC5104] | | a=rtcp-fb:120 ccm fir | [RFC5104] | | a=ssrc:22222 cname:Q/aoNWs11HmN4Xa5 | [RFC5576] | Nandakumar & Jennings Expires August 16, 2014 [Page 50] Internet-Draft SDP4WebRTC February 2014 | a=rtcp-rsize | [RFC5506] | | m=application 10000 DTLS/SCTP 5000 | [draft-ietf-rtcweb-data-ch | | | annel] | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=mid:data | [RFC5888] | | a=sctpmap:5000 webrtc-Datachannel 1 | [draft-ietf-mmusic-sctp-sd | | | p] | | a=webrtc-Datachannel:5000 | [draft-ietf-mmusic-sctp-sd | | stream=1;label="channel | p] | | 1";subprotocol="chat"; | | | a=sendrecv | [RFC3264] | | a=setup:actpass | [RFC4145] | | a=ice-ufrag:89819013 | [RFC5245] | | a=ice-pwd:1747d1ee3474af08a068a28a39 | [RFC5245] | | 7a4c3f3 | | | a=fingerprint:sha-1 | [RFC5245] | | 0e:1f:ef:6d:f7:c9:c7:70:99:41:49:83: | | | 4a:97:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.4 10000 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 24.23.204.141 10000 typ srflx raddr | | | 192.168.1.4 rport 10000 | | +--------------------------------------+----------------------------+ Table 20: 5.2.10 SDP Offer +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | | | Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE audio video | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] | | a=mid:audio | [RFC5888] | Nandakumar & Jennings Expires August 16, 2014 [Page 51] Internet-Draft SDP4WebRTC February 2014 | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | | a=sendrecv | [RFC3264] | | a=setup:active | [RFC4145] | | a=rtcp-mux | [RFC5761] | | a=rtcp-fb:109 nack | [RFC5104] | | a=ice-ufrag:c300d85b | [RFC5245] | | a=ice-pwd:de4e99bd291c325921d5d47efb | [RFC5245] | | abd9a2 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 49203 typ host | | | a=candidate:1 1 UDP 1694302207 | [RFC5245] | | 98.248.92.77 49203 typ srflx raddr | | | 192.168.1.7 rport 49203 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.7 60065 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 98.248.92.77 60065 typ srflx raddr | | | 192.168.1.7 rport 60065 | | | a=ssrc:33333 cname:L/aoNWs11HmN4Xa5 | [RFC5576] | | a=rtcp-rsize | [RFC5506] | | m=video 49203 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | | a=msid:ma tb | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tb) | | c=IN IP4 98.248.92.771 | [RFC4566] | | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] | | a=mid:video | [RFC5888] | | a=rtpmap:120 VP8/90000 | [draft-ietf-payload-vp8] | | a=sendrecv | [RFC3264] | | a=setup:active | [RFC4145] | | a=rtcp-mux | [RFC5761] | | a=ice-ufrag:c300d85b | [RFC5245] | | a=ice-pwd:de4e99bd291c325921d5d47efb | [RFC5245] | | abd9a2 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | Nandakumar & Jennings Expires August 16, 2014 [Page 52] Internet-Draft SDP4WebRTC February 2014 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 49203 typ host | | | a=candidate:1 1 UDP 1694302207 | [RFC5245] | | 98.248.92.77 49203 typ srflx raddr | | | 192.168.1.7 rport 49203 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.7 60065 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 98.248.92.77 60065 typ srflx raddr | | | 192.168.1.7 rport 60065 | | | a=rtcp-fb:120 nack | [RFC5104] | | a=rtcp-fb:120 nack pli | [RFC5104] | | a=rtcp-fb:120 ccm fir | [RFC5104] | | a=ssrc:44444 cname:EocUG1f0fcg/yvY7 | [RFC5576] | | a=rtcp-rsize | [RFC5506] | | m=application 20000 DTLS/SCTP 5000 | [draft-ietf-mmusic-sctp-sd | | | p] | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=mid:data | [RFC5888] | | a=sctpmap:5000 webrtc-Datachannel 1 | [draft-ietf-mmusic-sctp-sd | | | p] | | a=webrtc-Datachannel:5000 | [draft-ietf-mmusic-sctp-sd | | stream=1;label="channel | p] | | 1";subprotocol="chat"; | | | a=setup:active | [RFC4145] | | a=sendrecv | [RFC3264] | | a=ice-ufrag:991Ca2a5e | [RFC5245] | | a=ice-pwd:921d5d47efbabd9a2de4e99bd2 | [RFC5245] - Session Level | | 91c325 | ICE password | | a=fingerprint:sha-1 | [RFC5245] | | 6d:f7:c9:c7:70:9d:1f:66:79:a8:07:99: | | | 41:49:83:4a:97:0e:1f:ef | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 20000 typ host | | | a=candidate:1 1 UDP 1694302207 | [RFC5245] | | 98.248.92.77 20000 typ srflx raddr | | | 192.168.1.7 rport 20000 | | +--------------------------------------+----------------------------+ Table 21: 5.2.10 SDP Answer 5.2.11. Audio Only then Add Video and BUNDLE This example involves 2 Offer/Answer exchanges. First one setting up Audio-only session followed by an updated Offer/Answer exchange to add video stream to the ongoing session. Also the newly added video stream is BUNDLED with the audio stream. Nandakumar & Jennings Expires August 16, 2014 [Page 53] Internet-Draft SDP4WebRTC February 2014 title Audio Only , Add Video and BUNDLE Alice->Bob: Offer(Audio:Opus) note right of Alice Alice indicates support for BUNDLE end note Bob->Alice: Answer(Audio:Opus) note left of Bob Bob also indicates support for BUNDLE end note Alice<->Bob: Two way Audio only session Alice->Bob: Updated Offer(Audio:Opus, Video:VP8) note right of Alice Alice adds video stream to BUNDLE with audio end note Bob->Alice: Updated Answer(Audio:Opus, Video:VP8) note left of Bob Bob also does the same end note Alice<->Bob: Two way Opus Audio and VP8 Video session Nandakumar & Jennings Expires August 16, 2014 [Page 54] Internet-Draft SDP4WebRTC February 2014 +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE audio | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] Alice | | | wants to BUNDLE only audi | | | oand video media. | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] | | a=mid:audio | [RFC5888] | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | | a=sendrecv | [RFC3264] | | a=setup:actpass | [RFC4145] | | a=rtcp-mux | [RFC5761] | | a=ice-ufrag:074c6550 | [RFC5245] | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] | | f08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.4 54609 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 24.23.204.141 54609 typ srflx raddr | | | 192.168.1.4 rport 54609 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.4 64678 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.141 64678 typ srflx raddr | | | 192.168.1.4 rport 64678 | | Nandakumar & Jennings Expires August 16, 2014 [Page 55] Internet-Draft SDP4WebRTC February 2014 | a=rtcp-fb:109 nack | [RFC5104] | | a=ssrc:11111 cname:Q/NWs1ao1HmN4Xa5 | [RFC5576] | | a=rtcp-rsize | [RFC5506] | +--------------------------------------+----------------------------+ Table 22: 5.2.11 SDP Offer +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | | | Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE audio | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] | | a=mid:audio | [RFC5888] | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | | a=sendrecv | [RFC3264] | | a=setup:active | [RFC4145] | | a=rtcp-mux | [RFC5761] | | a=rtcp-fb:109 nack | [RFC5104] | | a=ice-ufrag:c300d85b | [RFC5245] | | a=ice-pwd:de4e99bd291c325921d5d47efb | [RFC5245] | | abd9a2 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 49203 typ host | | Nandakumar & Jennings Expires August 16, 2014 [Page 56] Internet-Draft SDP4WebRTC February 2014 | a=candidate:1 1 UDP 1694302207 | [RFC5245] | | 98.248.92.77 49203 typ srflx raddr | | | 192.168.1.7 rport 49203 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.7 60065 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 98.248.92.77 60065 typ srflx raddr | | | 192.168.1.7 rport 60065 | | | a=ssrc:33333 cname:L/aoNWs11HmN4Xa5 | [RFC5576] | | a=rtcp-rsize | [RFC5506] | +--------------------------------------+----------------------------+ Table 23: 5.2.10 SDP Answer +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=1 | Version number incremented | | | [RFC4566] | | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE audio video | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] Alice | | | wants to BUNDLE only audi | | | oand video media. | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] | | a=mid:audio | [RFC5888] | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | | a=sendrecv | [RFC3264] | | a=setup:actpass | [RFC4145] | | a=rtcp-mux | [RFC5761] | | a=ice-ufrag:074c6550 | [RFC5245] | Nandakumar & Jennings Expires August 16, 2014 [Page 57] Internet-Draft SDP4WebRTC February 2014 | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] | | f08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.4 54609 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 24.23.204.141 54609 typ srflx raddr | | | 192.168.1.4 rport 54609 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.4 64678 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.141 64678 typ srflx raddr | | | 192.168.1.4 rport 64678 | | | a=rtcp-fb:109 nack | [RFC5104] | | a=ssrc:11111 cname:Q/NWs1ao1HmN4Xa5 | [RFC5576] | | a=rtcp-rsize | [RFC5506] | | m=video 54609 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | | a=msid:ma tb | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tb) | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] | | a=mid:video | [RFC5888] | | a=rtpmap:120 VP8/90000 | [draft-ietf-payload-vp8] | | a=sendrecv | [RFC3264] | | a=setup:actpass | [RFC4145] | | a=rtcp-mux | [RFC5761] | | a=ice-ufrag:074c6550 | [RFC5245] | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] | | f08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.4 54609 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 24.23.204.141 54609 typ srflx raddr | | | 192.168.1.4 rport 54609 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.4 64678 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.141 64678 typ srflx raddr | | | 192.168.1.4 rport 64678 | | | a=rtcp-fb:120 nack | [RFC5104] | | a=rtcp-fb:120 nack pli | [RFC5104] | Nandakumar & Jennings Expires August 16, 2014 [Page 58] Internet-Draft SDP4WebRTC February 2014 | a=rtcp-fb:120 ccm fir | [RFC5104] | | a=ssrc:22222 cname:Q/aoNWs11HmN4Xa5 | [RFC5576] | | a=rtcp-rsize | [RFC5506] | +--------------------------------------+----------------------------+ Table 24: 5.2.11 SDP Updated Offer +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=1 | [RFC4566] Version number | | | incremented | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | | | Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE audio video | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] | | a=mid:audio | [RFC5888] | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | | a=sendrecv | [RFC3264] | | a=setup:active | [RFC4145] | | a=rtcp-mux | [RFC5761] | | a=rtcp-fb:109 nack | [RFC5104] | | a=ice-ufrag:c300d85b | [RFC5245] | | a=ice-pwd:de4e99bd291c325921d5d47efb | [RFC5245] | | abd9a2 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 49203 typ host | | Nandakumar & Jennings Expires August 16, 2014 [Page 59] Internet-Draft SDP4WebRTC February 2014 | a=candidate:1 1 UDP 1694302207 | [RFC5245] | | 98.248.92.77 49203 typ srflx raddr | | | 192.168.1.7 rport 49203 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.7 60065 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 98.248.92.77 60065 typ srflx raddr | | | 192.168.1.7 rport 60065 | | | a=ssrc:33333 cname:L/aoNWs11HmN4Xa5 | [RFC5576] | | a=rtcp-rsize | [RFC5506] | | m=video 49203 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | | a=msid:ma tb | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tb) | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] | | a=mid:video | [RFC5888] | | a=rtpmap:120 VP8/90000 | [draft-ietf-payload-vp8] | | a=sendrecv | [RFC3264] | | a=setup:active | [RFC4145] | | a=rtcp-mux | [RFC5761] | | a=ice-ufrag:c300d85b | [RFC5245] | | a=ice-pwd:de4e99bd291c325921d5d47efb | [RFC5245] | | abd9a2 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 49203 typ host | | | a=candidate:1 1 UDP 1694302207 | [RFC5245] | | 98.248.92.77 49203 typ srflx raddr | | | 192.168.1.7 rport 49203 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.7 60065 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 98.248.92.77 60065 typ srflx raddr | | | 192.168.1.7 rport 60065 | | | a=rtcp-fb:120 nack | [RFC5104] | | a=rtcp-fb:120 nack pli | [RFC5104] | | a=rtcp-fb:120 ccm fir | [RFC5104] | | a=ssrc:44444 cname:EocUG1f0fcg/yvY7 | [RFC5576] | | a=rtcp-rsize | [RFC5506] | +--------------------------------------+----------------------------+ Table 25: 5.2.11 SDP Updated Answer Nandakumar & Jennings Expires August 16, 2014 [Page 60] Internet-Draft SDP4WebRTC February 2014 5.3. MultiResolution, RTX, FEC Examples This section deals with scenarios related to multiresolution negotiation such as layered coding, simulcast, along with techniques that deal with providing robustness against transmission errors such as FEC and RTX. Also to note, meachnisms such as FEC and RTX could be envisioned in the above basic scenarios as well. 5.3.1. Sendonly Simulcast w/2 cameras and 2 encodings per camera This SDP below shows Offer/Answer exchange with an audio and two video streams each of which can be sent at two different resolutions. One video stream supports VP8, while the other supports H.264. bundle-only framework is used along with BUNDLE grouping framework to enable multiplexing of all the 5 streams (1 audio stream + 4 video streams) over a single RTP Session. title 1 Way Successful Simulcast w/BUNDLE note right of Alice Alice offers 2 sendonly video streams with 2 simulcast encodings per stream end note Alice->Bob: Offer(Audio:Opus,Video1:VP8,Video2:H.264) with bundle-only for video note left of Bob Bob accepts Alice's offer and 2 encodings per stream end note Alice->Bob: One-Way 1 Opus, 2 H.264 and 2 VP8 video streams, all mulitplexed +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE m0 m1 m2 | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] Alice | | | supports grouping of | | | m=lines under BUNDLE | | | semantics | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | Nandakumar & Jennings Expires August 16, 2014 [Page 61] Internet-Draft SDP4WebRTC February 2014 | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] | | a=mid:m0 | [RFC5888] Audio m=line | | | part of BUNDLE group with | | | a unique port number | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | | a=sendonly | [RFC3264] | | a=setup:actpass | [RFC4145] - Alice can | | | perform DTLS before Answer | | | arrives | | a=rtcp-mux | [RFC5761] | | a=rtcp-fb:109 nack | [RFC5104] | | a=ssrc:11111 EocUG1f0fcg | [RFC5576] | | a=ice-ufrag:074c6550 | [RFC5245] | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] | | f08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.4 54609 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 24.23.204.141 54609 typ srflx raddr | | | 192.168.1.4 rport 54609 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.4 64678 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.141 64678 typ srflx raddr | | | 192.168.1.4 rport 64678 | | | a=rtcp-rsize | [RFC5506] | | m=video 0 UDP/TLS/RTP/SAVPF 98 100 | bundle-only video line | | | with port number set to | | | zero | | a=msid:ma tb | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tb) | | c=IN IP4 24.23.204.141 | [RFC4566] | Nandakumar & Jennings Expires August 16, 2014 [Page 62] Internet-Draft SDP4WebRTC February 2014 | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] | | a=mid:m1 | [RFC5888] Video m=line | | | part of BUNDLE group | | a=rtpmap:98 VP8/90000 | [draft-ietf-payload-vp8] | | a=rtpmap:100 VP8/90000 | [draft-ietf-payload-vp8] | | a=imageattr:98 [x=1280,y=720] | [RFC6236]Camera-1,Encoding | | | -1 Resolution | | a=fmtp:98 max-fr=30 | [RFC4566] | | a=imageattr:100 [x=640,y=480] | [RFC6236] | | | Camera-1,Encoding-2 | | | Resolution | | a=fmtp:100 max-fr=15 | [RFC4566] | | a=ssrc-group:SIMULCAST 12345 45678 | [RFC5576] | | a=ssrc:12345 cname:axzo1278npDlAzM73 | [RFC5576] | | | [draft-rescorla-avtcore-62 | | | 22bis] Camera-1,Encoding-1 | | | SSRC with Session CNAME | | a=ssrc:45678 cname:axzo1278npDlAzM73 | [RFC5576] | | | [draft-rescorla-avtcore-62 | | | 22bis] Camera-1,Encoding-2 | | | SSRC with Session CNAME | | a=sendonly | [RFC3264] - Send only | | | video stream | | a=rtcp-mux | [RFC5761] | | a=bundle-only | [draft-roach-mmusic-unifie | | | d-plan] | | a=rtcp-fb:98 nack | [RFC5104] | | a=rtcp-fb:98 nack pli | [RFC5104] | | a=rtcp-fb:98 ccm fir | [RFC5104] | | a=rtcp-fb:100 nack | [RFC5104] | | a=rtcp-fb:100 nack pli | [RFC5104] | | a=rtcp-fb:100 ccm fir | [RFC5104] | | a=rtcp-rsize | [RFC5506] | | m=video 0 UDP/TLS/RTP/SAVPF 101 102 | bundle-only video line | | | with port number set to | | | zero | | a=msid:ma tc | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tc) | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] | | a=mid:m2 | [RFC5888] Video m=line | | | part of BUNDLE group | | a=rtpmap:101 H264/90000 | [RFC3984] | | a=rtpmap:102 H264/90000 | [RFC3984] | Nandakumar & Jennings Expires August 16, 2014 [Page 63] Internet-Draft SDP4WebRTC February 2014 | a=fmtp:101 | [RFC3984]Camera-2,Encoding | | profile-level-id=4d0028;packetizatio | -1 Resolution | | n-mode=1;max-fr=30 | | | a=fmtp:102 | [RFC3984]Camera-1,Encoding | | profile-level-id=4d0028;packetizatio | -2 Resolution | | n-mode=1;max-fr=15 | | | a=ssrc-group:SIMULCAST 67890 56789 | [RFC5576] | | a=ssrc:67890 cname:axzo1278npDlAzM73 | [RFC5576] | | | [draft-rescorla-avtcore-62 | | | 22bis] Camera-1,Encoding-1 | | | SSRC with Session CNAME | | a=ssrc:56789 cname:axzo1278npDlAzM73 | [RFC5576] | | | [draft-rescorla-avtcore-62 | | | 22bis] Camera-1,Encoding-2 | | | SSRC with Session CNAME | | a=sendonly | [RFC3264] - Send only | | | video stream | | a=rtcp-mux | [RFC5761] | | a=bundle-only | [draft-roach-mmusic-unifie | | | d-plan] | | a=rtcp-fb:101 nack | [RFC5104] | | a=rtcp-fb:101 nack pli | [RFC5104] | | a=rtcp-fb:101 ccm fir | [RFC5104] | | a=rtcp-fb:102 nack | [RFC5104] | | a=rtcp-fb:102 nack pli | [RFC5104] | | a=rtcp-fb:102 ccm fir | [RFC5104] | | a=rtcp-rsize | [RFC5506] | +--------------------------------------+----------------------------+ Table 26: 5.3.1 SDP Offer +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE m0 m1 m2 | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] Alice | | | supports grouping of | | | m=lines under BUNDLE | | | semantics | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 98.248.92.77 | [RFC4566] | Nandakumar & Jennings Expires August 16, 2014 [Page 64] Internet-Draft SDP4WebRTC February 2014 | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] | | a=mid:m0 | [RFC5888] Audio m=line | | | part of BUNDLE group with | | | a unique port number | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=rtcp-fb:109 nack | [RFC5104] | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | | a=sendonly | [RFC3264] | | a=setup:active | [RFC4145] - Bob carries | | | out DTLS Handshake in | | | parallel | | a=rtcp-mux | [RFC5761] | | a=ssrc:22222 | [RFC5576] | | cname:y8/C90alEocUG1f0fcg | | | a=ice-ufrag:c300d85b | [RFC5245] | | a=ice-pwd:de4e99bd291c325921d5d47efb | [RFC5245] | | abd9a2 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 49203 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 98.248.92.77 49203 typ srflx raddr | | | 192.168.1.4 rport 49203 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.7 64678 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 98.248.92.77 60065 typ srflx raddr | | | 192.168.1.4 rport 60065 | | | a=rtcp-rsize | [RFC5506] | | m=video 49203 UDP/TLS/RTP/SAVPF 98 | BUNDLE accepted with port | | 100 | repeated from the audio | | | port | | a=msid:ma tb | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tb) | | c=IN IP4 98.248.92.77 | [RFC4566] | Nandakumar & Jennings Expires August 16, 2014 [Page 65] Internet-Draft SDP4WebRTC February 2014 | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] | | a=mid:m1 | [RFC5888] Video m=line | | | part of BUNDLE group | | a=rtpmap:98 VP8/90000 | [draft-ietf-payload-vp8] | | a=rtpmap:100 VP8/90000 | [draft-ietf-payload-vp8] | | a=imageattr:98 [x=1280,y=720] | [RFC6236]Camera-1,Encoding | | | -1 Resolution | | a=fmtp:98 max-fr=30 | [RFC4566] | | a=imageattr:100 [x=640,y=480] | [RFC6236] | | | Camera-1,Encoding-2 | | | Resolution | | a=fmtp:100 max-fr=15 | [RFC4566] | | a=recvonly | [RFC3264] - receive only | | | video stream | | a=ssrc:54321 cname:axzo1278npDlAzM73 | [RFC5576] | | a=ice-ufrag:c300d85b | [RFC5245] | | a=ice-pwd:de4e99bd291c325921d5d47efb | [RFC5245] | | abd9a2 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 49203 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 98.248.92.77 49203 typ srflx raddr | | | 192.168.1.4 rport 49203 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.7 60065 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 98.248.92.77 60065 typ srflx raddr | | | 192.168.1.4 rport 60065 | | | a=setup:active | [RFC4145] - Bob carries | | | out DTLS Handshake in | | | parallel | | a=rtcp-mux | [RFC5576] | | a=bundle-only | [draft-roach-mmusic-unifie | | | d-plan] | | a=rtcp-rsize | [RFC5506] | | m=video 54609 UDP/TLS/RTP/SAVPF 101 | BUNDLE accepted with port | | 102 | repeated from the audio | | | port | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtcp:56503 IN IP4 98.248.92.77 | [RFC3605] | | a=msid:ma tc | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tc) | Nandakumar & Jennings Expires August 16, 2014 [Page 66] Internet-Draft SDP4WebRTC February 2014 | a=mid:m2 | [RFC5888] Video m=line | | | part of BUNDLE group | | a=rtpmap:101 H264/90000 | [RFC3984] | | a=rtpmap:102 H264/90000 | [RFC3984] | | a=recvonly | [RFC3264] - Send only | | | video stream | | a=fmtp:101 | [RFC3984]Camera-2,Encoding | | profile-level-id=4d0028;packetizatio | -1 Resolution | | n-mode=1;max-fr=30 | | | a=fmtp:102 | [RFC3984]Camera-1,Encoding | | profile-level-id=4d0028;packetizatio | -2 Resolution | | n-mode=1;max-fr=15 | | | a=ssrc:90876 cname:axzo1278npDlAzM73 | [RFC5576] | | a=ice-ufrag:ufrag:c300d85b | [RFC5245] | | a=ice-pwd:de4e99bd291c325921d5d47efb | [RFC5245] | | abd9a2 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 49203 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 98.248.92.77 49203 typ srflx raddr | | | 192.168.1.7 rport 49203 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.7 60065 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 98.248.92.77 60065 typ srflx raddr | | | 192.168.1.7 rport 60065 | | | a=setup:active | [RFC4145] - Bob carries | | | out DTLS Handshake in | | | parallel | | a=rtcp-mux | [RFC5576] | | a=bundle-only | [draft-roach-mmusic-unifie | | | d-plan] | | a=rtcp-rsize | [RFC5506] | +--------------------------------------+----------------------------+ Table 27: 5.3.1 SDP Anwer 5.3.2. Successful SVC Video Stream This section shows an SDP Offer/Answer for a session with an audio and a single video stream. The video stream is layered coding at 3 different resolutions based on [RFC5583]. The video m=line shows 3 streams with last stream (payload 100) dependent on streams with payload 96 and 97 for decoding. Nandakumar & Jennings Expires August 16, 2014 [Page 67] Internet-Draft SDP4WebRTC February 2014 title SVC Session - 3 Layers w/BUNDLE note right of Alice Alice offers 3 sendonly video stream with 3 layers of SVC end note Alice->Bob: Offer(Audio:Opus Video: H.264 SVC) bundle-only note left of Bob Bob accepts Alice's Offered Codec operation points end note Bob->Alice: Answer(Video: H.264) bundle-only Alice->Bob: One-Way H.264 Video with codec points as indicated by Bob. +---------------------------------------+---------------------------+ | SDP Contents | RFC#/Notes | +---------------------------------------+---------------------------+ | v=0 | [RFC4566] | | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE m0 m1 | [draft-ietf-mmusic-sdp-bu | | | ndle-negotiation] Alice | | | supports grouping of | | | m=lines under BUNDLE | | | semantics | | a=ice-options:trickle | [draft-ivov-mmusic-trickl | | | e-ice] | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] | | a=mid:m0 | [RFC5888] Audio m=line | | | part of BUNDLE group with | | | a unique port number | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-o | | | pus] | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audio | | | -level | | | a=ptime:20 | [draft-ietf-payload-rtp-o | | | pus] | | a=sendonly | [RFC3264] | | a=rtcp-fb:109 nack | [RFC5104] | Nandakumar & Jennings Expires August 16, 2014 [Page 68] Internet-Draft SDP4WebRTC February 2014 | a=setup:actpass | [RFC4145] - Alice can | | | perform DTLS before | | | Answer arrives | | a=rtcp-mux | [RFC5761] | | a=ice-ufrag:074c6550 | [RFC5245] | | a=ice-pwd:a28a397a4c3f31747d1ee3474af | [RFC5245] | | 08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c | | | 7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.4 54609 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 24.23.204.141 54609 typ srflx raddr | | | 192.168.1.4 rport 54609 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.4 64678 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.141 64678 typ srflx raddr | | | 192.168.1.4 rport 64678 | | | a=ssrc:67890 cname:axzo1278npDlAzM73 | [RFC5576] | | a=rtcp-rsize | [RFC5506] | | m=video 0 UDP/TLS/RTP/SAVPF 96 97 100 | bundle-only video line | | | with port number set to | | | zero | | a=msid:ma tb | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tc) | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] | | a=mid:m1 | [RFC5888] Audio m=line | | | part of BUNDLE group | | a=msid:ma tb | | | a=rtpmap:96 H264/90000 | [RFC3984] | | a=fmtp:96 | [RFC3984]H.264 Layer 1 | | profile-level-id=4d0028;packetization | | | -mode=1;max-fr=30;max-fs=8040 | | | a=rtpmap:97 H264/90000 | [RFC3984] | | a=fmtp:97 | [RFC3984] H.264 Layer 2 | | profile-level-id=4d0028;packetization | | | -mode=1;max-fr=15;max-fs=1200 | | | a=rtpmap:100 H264-SVC/90000 | [RFC3984] | | a=fmtp:100 | [RFC3984] | | profile-level-id=4d0028;packetization | | | -mode=1;max-fr=30;max-fs=8040 | | Nandakumar & Jennings Expires August 16, 2014 [Page 69] Internet-Draft SDP4WebRTC February 2014 | a=depend:100 lay m1:96,97; | [RFC5583]Layer 3 | | | dependent on layers 1 and | | | 2 | | a=sendonly | [RFC3264] - Send only | | | video stream | | a=rtcp-mux | [RFC5761] | | a=bundle-only | [draft-roach-mmusic-unifi | | | ed-plan] | | a=ssrc:1732846380 | [RFC5576] | | cname:axzo1278npDlAzM73 | | | a=ssrc:1732846381 | [RFC5576] | | cname:axzo1278npDlAzM73 | | | a=ssrc:1732846382 | [RFC5576] | | cname:axzo1278npDlAzM73 | | | a=rtcp-fb:* nack | [RFC5104] | | a=rtcp-fb:* nack pli | [RFC5104] | | a=rtcp-fb:* ccm fir | [RFC5104] | | a=rtcp-rsize | [RFC5506] | +---------------------------------------+---------------------------+ Table 28: 5.3.2 SDP Offer with SVC +---------------------------------------+---------------------------+ | SDP Contents | RFC#/Notes | +---------------------------------------+---------------------------+ | v=0 | [RFC4566] | | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE m0 m1 | [draft-ietf-mmusic-sdp-bu | | | ndle-negotiation] Alice | | | supports grouping of | | | m=lines under BUNDLE | | | semantics | | a=ice-options:trickle | [draft-ivov-mmusic-trickl | | | e-ice] | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] | | a=mid:m0 | [RFC5888] Audio m=line | | | part of BUNDLE group with | | | a unique port number | Nandakumar & Jennings Expires August 16, 2014 [Page 70] Internet-Draft SDP4WebRTC February 2014 | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-o | | | pus] | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audio | | | -level | | | a=ptime:20 | [draft-ietf-payload-rtp-o | | | pus] | | a=rtcp-fb:109 nack | [RFC5104] | | a=recvonly | [RFC3264] | | a=setup:active | [RFC4145] - Bob carries | | | out DTLS Handshake in | | | parallel | | a=rtcp-mux | [RFC5761] | | a=ice-ufrag:074c6550 | [RFC5245] | | a=ice-pwd:a28a397a4c3f31747d1ee3474af | [RFC5245] | | 08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c | | | 7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 54609 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 98.248.92.77 49203 typ srflx raddr | | | 192.168.1.5 rport 49203 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.7 60065 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 98.248.92.77 60065 typ srflx raddr | | | 192.168.1.5 rport 60065 | | | a=rtcp-rsize | [RFC5506] | | m=video 54609 UDP/TLS/RTP/SAVPF 96 | BUNDLE accepted Bundle | | 100 | address same as audio | | | m=line. | | a=msid:ma tb | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tb) | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtcp:56503 IN IP4 98.248.92.77 | [RFC3605] | | a=mid:m1 | [RFC5888] Video m=line | | | part of BUNDLE group | | a=rtpmap:96 H264/90000 | [RFC3984] | | a=fmtp:96 | [RFC3984]H.264 Layer 1 | | profile-level-id=4d0028;packetization | | | -mode=1;max-fr=30;max-fs=8040 | | | a=rtpmap:100 H264-SVC/90000 | [RFC3984] | Nandakumar & Jennings Expires August 16, 2014 [Page 71] Internet-Draft SDP4WebRTC February 2014 | a=fmtp:100 | [RFC3984] | | profile-level-id=4d0028;packetization | | | -mode=1;max-fr=30;max-fs=8040 | | | a=depend:100 lay m1:96; | [RFC5583] Bob chooses 2 | | | Codec Operation points | | a=ice-ufrag:074c6550 | [RFC5245] | | a=ice-pwd:a28a397a4c3f31747d1ee3474af | [RFC5245] | | 08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c | | | 7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.5 54609 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 24.23.204.142 54609 typ srflx raddr | | | 192.168.1.5 rport 54609 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.5 64678 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.142 64678 typ srflx raddr | | | 192.168.1.5 rport 64678 | | | a=recvonly | [RFC3264] - Receive only | | | video stream | | a=setup:active | [RFC4145] - Bob carries | | | out DTLS Handshake in | | | parallel | | a=rtcp-mux | [RFC5761] | | a=bundle-only | [draft-roach-mmusic-unifi | | | ed-plan] | | a=ssrc:4638117328 | [RFC5576] | | cname:axzo1278npDlAzM73 | | | a=rtcp-rsize | [RFC5506] | +---------------------------------------+---------------------------+ Table 29: 5.3.2 SDP Answer with SVC 5.3.3. Successful Simulcast Video Streams with Retransmisson This section shows an SDP Offer/Answer exchange for a simulcast scenario with 2 two resolutions and has [RFC4588] style re- transmission flows. Nandakumar & Jennings Expires August 16, 2014 [Page 72] Internet-Draft SDP4WebRTC February 2014 title Simulcast Streams with Retransmission note right of Alice Alice offers single audio and simulcasted video stream end note Alice->Bob: Offer(Audio:Opus Video:VP8 with 2 resolutions and RTX Stream) bundle-only note left of Bob Bob accepts all the streams offered by Alice end note Bob->Alice: Answer(Audio:Opus Video:VP8 with 2 resolutions and RTX Stream) bundle-only Alice<->Bob: 2 Way Audio and Simulcast Video with RTX Streams +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE m0 m1 | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] Alice | | | supports grouping of | | | m=lines under BUNDLE | | | semantics | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] | | a=mid:m0 | [RFC5888] Audio m=line | | | part of BUNDLE group with | | | a unique port number | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | | a=rtcp-fb:109 nack | [RFC5104] | | a=sendrecv | [RFC3264] | Nandakumar & Jennings Expires August 16, 2014 [Page 73] Internet-Draft SDP4WebRTC February 2014 | a=setup:actpass | [RFC4145] - Alice can | | | perform DTLS before Answer | | | arrives | | a=rtcp-mux | [RFC5761] | | a=ssrc:11111 cname:EocUG1f0fcg/yvY7 | [RFC5576] | | a=ice-ufrag:074c6550 | [RFC5245] | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] | | f08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.4 54609 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 24.23.204.141 54609 typ srflx raddr | | | 192.168.1.4 rport 54609 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.4 64678 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.141 64678 typ srflx raddr | | | 192.168.1.4 rport 64678 | | | a=rtcp-rsize | [RFC5506] | | m=video 0 UDP/TLS/RTP/SAVPF 98 100 | bundle-only video line | | 101 103 | with port number set to | | | zero | | a=msid:ma tb | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tb) | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] | | a=mid:m1 | [RFC5888] Audio m=line | | | part of BUNDLE group | | a=rtpmap:98 VP8/90000 | [draft-ietf-payload-vp8] | | a=rtpmap:100 VP8/90000 | [draft-ietf-payload-vp8] | | a=rtpmap:101 VP8/90000 | [draft-ietf-payload-vp8] | | a=rtpmap:103 VP8/90000 | [draft-ietf-payload-vp8] | | a=fmtp:98 max-fr=30;max-fs=8040 | [RFC4566] | | a=fmtp:100 max-fr=15;max-fs=1200 | [RFC4566] | | a=fmtp:101 apt=98;rtx-time=3000 | [RFC4588] | | a=fmtp:103 apt=100;rtx-time=3000 | [RFC4588] | | a=ssrc-group:SIMULCAST 12345 78990 | Simulcast group | | a=ssrc-group:FID 12345 34567 | [RFC5888] | | a=ssrc-group:FID 78990 90887 | [RFC5888] | | a=ssrc:12345 cname:Q/NWs1ao1HmN4Xa5 | [RFC5576] | | a=ssrc:78990 cname:Q/NWs1ao1HmN4Xa5 | [RFC5576] | | a=ssrc:34567 cname:Q/NWs1ao1HmN4Xa5 | [RFC5576] | | a=ssrc:90887 cname:Q/NWs1ao1HmN4Xa5 | [RFC5576] | Nandakumar & Jennings Expires August 16, 2014 [Page 74] Internet-Draft SDP4WebRTC February 2014 | a=sendrecv | [RFC3264] | | a=rtcp-mux | [RFC5761] | | a=bundle-only | [draft-roach-mmusic-unifie | | | d-plan] | | a=rtcp-fb:* nack | [RFC5104] | | a=rtcp-fb:* nack pli | [RFC5104] | | a=rtcp-fb:* ccm fir | [RFC5104] | | a=rtcp-rsize | [RFC5506] | +--------------------------------------+----------------------------+ Table 30: 5.3.3 SDP Offer w/Simulcast, RTX +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE m0 m1 | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] Alice | | | supports grouping of | | | m=lines under BUNDLE | | | semantics | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] | | a=mid:m0 | [RFC5888] Audio m=line | | | part of BUNDLE group with | | | a unique port number | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | | a=rtcp-fb:109 nack | [RFC5104] | | a=sendrecv | [RFC3264] | | a=setup:active | [RFC4145] | | a=rtcp-mux | [RFC5761] | Nandakumar & Jennings Expires August 16, 2014 [Page 75] Internet-Draft SDP4WebRTC February 2014 | a=ssrc:33333 cname:L/HmN4Xa5NWs1ao1 | [RFC5576] | | a=ice-ufrag:074c6550 | [RFC5245] | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] | | f08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 54609 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 98.248.92.77 54609 typ srflx raddr | | | 192.168.1.7 rport 49203 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.7 64678 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 98.248.92.77 64678 typ srflx raddr | | | 192.168.1.7 rport 60065 | | | a=rtcp-rsize | [RFC5506] | | m=video 49203 UDP/TLS/RTP/SAVPF 98 | BUNDLE accepted with | | 100 101 103 | Bundle address identical | | | to audio m-line | | a=msid:ma tb | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tb) | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] | | a=mid:m1 | [RFC5888] Video m=line | | | part of BUNDLE group | | a=rtpmap:98 VP8/90000 | [draft-ietf-payload-vp8] | | a=rtpmap:100 VP8/90000 | [draft-ietf-payload-vp8] | | a=rtpmap:101 VP8/90000 | [draft-ietf-payload-vp8] | | a=rtpmap:103 VP8/90000 | [draft-ietf-payload-vp8] | | a=fmtp:98 max-fr=30;max-fs=8040 | [RFC4566] | | a=fmtp:100 max-fr=15;max-fs=1200 | [RFC4566] | | a=fmtp:101 apt=98;rtx-time=3000 | [RFC4588] | | a=fmtp:103 apt=100;rtx-time=3000 | [RFC4588] | | a=ice-ufrag:074c6550 | [RFC5245] | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] | | f08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 49203 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 98.248.92.77 49203 typ srflx raddr | | | 192.168.1.7 rport 49203 | | Nandakumar & Jennings Expires August 16, 2014 [Page 76] Internet-Draft SDP4WebRTC February 2014 | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.7 60065 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 98.248.92.772 60065 typ srflx raddr | | | 192.168.1.7 rport 60065 | | | a=ssrc-group:SIMULCAST 54321 77656 | Simulcast group | | a=ssrc-group:FID 54321 88776 | [RFC5888] | | a=ssrc-group:FID 77656 12908 | [RFC5888] | | a=ssrc:54321 cname:LP/NWs1ao1HmN4Xa5 | [RFC5576] | | a=ssrc:77656 cname:LP/NWs1ao1HmN4Xa5 | [RFC5576] | | a=ssrc:88776 cname:LP/NWs1ao1HmN4Xa5 | [RFC5576] | | a=ssrc:12908 cname:LP/NWs1ao1HmN4Xa5 | [RFC5576] | | a=sendrecv | [RFC3264] | | a=setup:active | [RFC4145] - Bob carries | | | out DTLS Handshake in | | | parallel | | a=rtcp-mux | [RFC5761] | | a=bundle-only | [draft-roach-mmusic-unifie | | | d-plan] | | a=rtcp-fb:* nack | [RFC5104] | | a=rtcp-fb:* nack pli | [RFC5104] | | a=rtcp-fb:* ccm fir | [RFC5104] | | a=rtcp-rsize | [RFC5506] | +--------------------------------------+----------------------------+ Table 31: 5.3.3 SDP Answer w/Simulcast, RTX 5.3.4. Successful 1-way Simulcast with 2 resolutions and RTX - One resolution rejected This section shows an SDP Offer/Answer exchange for a simulcast scenario with 2 two resolutions and has [RFC4588] style re- transmission flows. It also showcases when Bob rejects one of the Simulcast Video Stream which results in the rejection of the associated repair stream implicitly Nandakumar & Jennings Expires August 16, 2014 [Page 77] Internet-Draft SDP4WebRTC February 2014 title Simulcast Streams with Retransmission Rejected note right of Alice Alice offers sendonly single audio and simulcasted video stream. end note Alice->Bob: Offer(Audio:Opus Video:VP8 with 2 resolutions and RTX Streams) bundle-only note left of Bob Bob accepts one simulcast,rtx and rejects the other end note Bob->Alice: Answer(Audio:Opus Video:VP8 with 1 resolution and the RTX Stream) bundle-only Alice->Bob: 1 Way Audio, Video Session note right of Alice Only 1 Video stream and its associated RTX stream is sent to Bob end note +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE m0 m1 | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] Alice | | | supports grouping of | | | m=lines under BUNDLE | | | semantics | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] | | a=mid:m0 | [RFC5888] Audio m=line | | | part of BUNDLE group with | | | a unique port number | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] | Nandakumar & Jennings Expires August 16, 2014 [Page 78] Internet-Draft SDP4WebRTC February 2014 | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | | a=rtcp-fb:109 nack | [RFC5104] | | a=sendonly | [RFC3264] | | a=setup:actpass | [RFC4145] - Alice can | | | perform DTLS before Answer | | | arrives | | a=rtcp-mux | [RFC5761] | | a=ssrc:11111 cname:LP/NWs1ao1HmN4Xa5 | [RFC5576] | | a=ice-ufrag:074c6550 | [RFC5245] | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] | | f08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.4 54609 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 24.23.204.141 54609 typ srflx raddr | | | 192.168.1.4 rport 54609 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.4 64678 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.141 64678 typ srflx raddr | | | 192.168.1.4 rport 64678 | | | a=rtcp-rsize | [RFC5506] | | m=video 0 UDP/TLS/RTP/SAVPF 98 100 | bundle-only video line | | 101 103 | with port number set to | | | zero | | a=msid:ma tb | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tb) | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] | | a=mid:m1 | [RFC5888] Audio m=line | | | part of BUNDLE group | | a=rtpmap:98 VP8/90000 | [draft-ietf-payload-vp8] | | a=rtpmap:100 VP8/90000 | [draft-ietf-payload-vp8] | | a=rtpmap:101 VP8/90000 | [draft-ietf-payload-vp8] | | a=rtpmap:103 VP8/90000 | [draft-ietf-payload-vp8] | | a=fmtp:98 max-fr=30;max-fs=8040 | [RFC4566] | | a=fmtp:100 max-fr=15;max-fs=1200 | [RFC4566] | | a=fmtp:101 apt=98;rtx-time=3000 | [RFC4588] | | a=fmtp:103 apt=100;rtx-time=3000 | [RFC4588] | Nandakumar & Jennings Expires August 16, 2014 [Page 79] Internet-Draft SDP4WebRTC February 2014 | a=ssrc-group:SIMULCAST 12345 78990 | Simulcast group | | a=ssrc-group:FID 12345 34567 | [RFC5888] | | a=ssrc-group:FID 78990 90887 | [RFC5888] | | a=ssrc:12345 cname:Q/NWs1ao1HmN4Xa5 | [RFC5576] | | a=ssrc:78990 cname:Q/NWs1ao1HmN4Xa5 | [RFC5576] | | a=ssrc:34567 cname:Q/NWs1ao1HmN4Xa5 | [RFC5576] | | a=ssrc:90887 cname:Q/NWs1ao1HmN4Xa5 | [RFC5576] | | a=sendonly | [RFC3264] | | a=rtcp-mux | [RFC5761] | | a=bundle-only | [draft-roach-mmusic-unifie | | | d-plan] | | a=rtcp-fb:* nack | [RFC5104] | | a=rtcp-fb:* nack pli | [RFC5104] | | a=rtcp-fb:* ccm fir | [RFC5104] | | a=rtcp-rsize | [RFC5506] | +--------------------------------------+----------------------------+ Table 32: 5.3.4 SDP Offer w/Simulcast, RTX +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE m0 m1 | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] Alice | | | supports grouping of | | | m=lines under BUNDLE | | | semantics | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtcp:49203 IN IP4 98.248.92.77 | [RFC3605] | | a=mid:m0 | [RFC5888] Audio m=line | | | part of BUNDLE group with | | | a unique port number | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] | Nandakumar & Jennings Expires August 16, 2014 [Page 80] Internet-Draft SDP4WebRTC February 2014 | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | | a=recvonly | [RFC3264] | | a=setup:active | [RFC4145] - Bob carries | | | out DTLS Handshake in | | | parallel | | a=rtcp-mux | [RFC5761] | | a=ice-ufrag:074c6550 | [RFC5245] | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] | | f08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 49203 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 98.248.92.77 49203 typ srflx raddr | | | 192.168.1.7 rport 49203 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.7 60065 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 98.248.92.77 60065 typ srflx raddr | | | 192.168.1.7 rport 60065 | | | a=rtcp-rsize | [RFC5506] | | m=video 49203 UDP/TLS/RTP/SAVPF 98 | BUNDLE accepted with | | 101 | Bundle address identical | | | to audio m-line | | a=msid:ma tb | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tb) | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] | | a=mid:m1 | [RFC5888] Video m=line | | | part of BUNDLE group | | a=rtpmap:98 VP8/90000 | [draft-ietf-payload-vp8] | | a=rtpmap:101 VP8/90000 | [draft-ietf-payload-vp8] | | a=fmtp:98 max-fr=30;max-fs=8040 | [RFC4566] | | a=fmtp:101 apt=98;rtx-time=3000 | [RFC4588] | | a=ice-ufrag:074c6550 | [RFC5245] | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] | | f08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | Nandakumar & Jennings Expires August 16, 2014 [Page 81] Internet-Draft SDP4WebRTC February 2014 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 49203 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 98.248.92.77 49203 typ srflx raddr | | | 192.168.1.5 rport 49203 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.7 60065 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 98.248.92.77 60065 typ srflx raddr | | | 192.168.1.5 rport 60065 | | | a=ssrc:54321 cname:NWs1ao1HmN4Xa5 | [RFC5576] | | a=recvonly | [RFC3264] | | a=setup:active | [RFC4145] - Bob carries | | | out DTLS Handshake in | | | parallel | | a=rtcp-mux | [RFC5761] | | a=bundle-only | [draft-roach-mmusic-unifie | | | d-plan] | | a=rtcp-rsize | [RFC5506] | +--------------------------------------+----------------------------+ Table 33: 5.3.4 SDP Answer no Simulcast 5.3.5. Simulcast Video Stream with Forward Error Correction This section shows an SDP Offer/Answer exchange for Simulcast video stream at two resolutions and and has [RFC5956] style FEC flows. On completion of Offer/Answer exchange we end up one audio stream, 2 simulcast video streams and 2 associated FEC streams are sent over a single 5-tuple. title Simulcast Streams with Forward Error Correction note right of Alice Alice offers sendonly single audio and simulcasted video stream end note Alice->Bob: Offer(Audio:Opus Video:VP8 with 2 resolutions with FEC Streams) bundle-only note left of Bob Bob accepts simulcast stream as well as FEC streams end note Bob->Alice: Answer(Audio:Opus Video:VP8 with 2 resolutions with FEC Streams) bundle-only Alice->Bob: 1 Way Audio, Video Session note right of Alice Successful Session with 4 video streams (Simulcast + FEC) and 1 Audio Stream Nandakumar & Jennings Expires August 16, 2014 [Page 82] Internet-Draft SDP4WebRTC February 2014 +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE m0 m1 | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] Alice | | | supports grouping of | | | m=lines under BUNDLE | | | semantics | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] | | a=mid:m0 | [RFC5888] Audio m=line | | | part of BUNDLE group with | | | a unique port number | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | | a=rtcp-fb:109 nack | [RFC5104] | | a=sendrecv | [RFC3264] | | a=setup:actpass | [RFC4145] - Alice can | | | perform DTLS before Answer | | | arrives | | a=rtcp-mux | [RFC5761] | | a=ssrc:11111 cname:Q/NWs1ao1HmN4Xa5 | [RFC5576] | | a=ice-ufrag:074c6550 | [RFC5245] | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] | | f08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.4 54609 typ host | | Nandakumar & Jennings Expires August 16, 2014 [Page 83] Internet-Draft SDP4WebRTC February 2014 | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 24.23.204.141 54609 typ srflx raddr | | | 192.168.1.4 rport 54609 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.4 64678 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.141 64678 typ srflx raddr | | | 192.168.1.4 rport 64678 | | | a=rtcp-rsize | [RFC5506] | | m=video 0 UDP/TLS/RTP/SAVPF 98 100 | bundle-only video line | | 101 103 | with port number set to | | | zero | | a=msid:ma tb | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tb) | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] | | a=mid:m1 | [RFC5888] Video m=line | | | part of BUNDLE group | | a=rtpmap:98 VP8/90000 | [draft-ietf-payload-vp8] | | a=rtpmap:100 VP8/90000 | [draft-ietf-payload-vp8] | | a=rtpmap:101 | [RFC5956] | | 1d-interleaved-parityfec/90000 | | | a=rtpmap:103 | [RFC5956] | | 1d-interleaved-parityfec/90000 | | | a=fmtp:98 max-fr=30;max-fs=8040 | [RFC4566] | | a=fmtp:100 max-fr=15;max-fs=1200 | [RFC4566] | | a=fmtp:101 L=5; D=10; | [RFC5956] | | repair-window=200000 | | | a=fmtp:103 L=5; D=10; | [RFC5956] | | repair-window=200000 | | | a=ssrc-group:SIMULCAST 12345 78990 | Simulcast group | | a=ssrc-group:FEC-FR 12345 34567 | [RFC5888] | | a=ssrc-group:FEC-FR 78990 90887 | [RFC5888] | | a=ssrc:12345 cname:Q/NWs1ao1HmN4Xa5 | [RFC5576] | | a=ssrc:78990 cname:Q/NWs1ao1HmN4Xa5 | [RFC5576] | | a=ssrc:34567 cname:Q/NWs1ao1HmN4Xa5 | [RFC5576] | | a=ssrc:90887 cname:Q/NWs1ao1HmN4Xa5 | [RFC5576] | | a=sendrecv | [RFC3264] | | a=rtcp-mux | [RFC5761] | | a=bundle-only | [draft-roach-mmusic-unifie | | | d-plan] | | a=rtcp-fb:* nack | [RFC5104] | | a=rtcp-fb:* nack pli | [RFC5104] | | a=rtcp-fb:* ccm fir | [RFC5104] | | a=rtcp-rsize | [RFC5506] | +--------------------------------------+----------------------------+ Nandakumar & Jennings Expires August 16, 2014 [Page 84] Internet-Draft SDP4WebRTC February 2014 Table 34: 5.3.5 SDP Offer +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE m0 m1 | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] Alice | | | supports grouping of | | | m=lines under BUNDLE | | | semantics | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] | | a=mid:m0 | [RFC5888] Audio m=line | | | part of BUNDLE group with | | | a unique port number | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | | a=rtcp-fb:109 nack | [RFC5104] | | a=sendrecv | [RFC3264] | | a=setup:active | [RFC4145] - Bob carries | | | out DTLS Handshake in | | | parallel | | a=rtcp-mux | [RFC5761] | | a=ssrc:33333 cname:Y9/cZke09JAtpl98 | [RFC5576] | | a=ice-ufrag:074c6550 | [RFC5245] | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] | | f08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | Nandakumar & Jennings Expires August 16, 2014 [Page 85] Internet-Draft SDP4WebRTC February 2014 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 49203 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 98.248.92.77 49203 typ srflx raddr | | | 192.168.1.7 rport 49203 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.7 60065 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 98.248.92.77 60065 typ srflx raddr | | | 192.168.1.7 rport 60065 | | | a=rtcp-rsize | [RFC5506] | | m=video 49203 UDP/TLS/RTP/SAVPF 98 | BUNDLE accepted with | | 100 101 103 | Bundle Address identical | | | to audio m=line. | | a=msid:ma tb | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tb) | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] | | a=mid:m1 | [RFC5888] Video m=line | | | part of BUNDLE group | | a=rtpmap:98 VP8/90000 | [draft-ietf-payload-vp8] | | a=rtpmap:100 VP8/90000 | [draft-ietf-payload-vp8] | | a=rtpmap:101 | [RFC5956] | | 1d-interleaved-parityfec/90000 | | | a=rtpmap:103 | [RFC5956] | | 1d-interleaved-parityfec/90000 | | | a=fmtp:98 max-fr=30;max-fs=8040 | [RFC4566] | | a=fmtp:100 max-fr=15;max-fs=1200 | [RFC4566] | | a=fmtp:101 L=5; D=10; | [RFC5956] | | repair-window=200000 | | | a=fmtp:103 L=5; D=10; | [RFC5956] | | repair-window=200000 | | | a=ssrc-group:SIMULCAST 54321 77656 | Simulcast group | | a=ssrc-group:FEC-FR 54321 88776 | [RFC5888] | | a=ssrc-group:FEC-FR 77656 12908 | [RFC5888] | | a=ssrc:54321 cname:Q/1HmN4Xa5CClapa | [RFC5576] | | a=ssrc:77656 cname:Q/1HmN4Xa5CClapa | [RFC5576] | | a=ssrc:88776 cname:Q/1HmN4Xa5CClapa | [RFC5576] | | a=ssrc:12908 cname:Q/1HmN4Xa5CClapa | [RFC5576] | | a=sendrecv | [RFC3264] | | a=setup:active | [RFC4145] - Bob carries | | | out DTLS Handshake in | | | parallel | | a=rtcp-mux | [RFC5761] | | a=bundle-only | [draft-roach-mmusic-unifie | | | d-plan] | Nandakumar & Jennings Expires August 16, 2014 [Page 86] Internet-Draft SDP4WebRTC February 2014 | a=ice-ufrag:074c6550 | [RFC5245] | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] | | f08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 49203 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 98.248.92.77 49203 typ srflx raddr | | | 192.168.1.7 rport 49203 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.7 60065 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 98.248.92.77 60065 typ srflx raddr | | | 192.168.1.7 rport 60065 | | | a=rtcp-fb:* nack | [RFC5104] | | a=rtcp-fb:* nack pli | [RFC5104] | | a=rtcp-fb:* ccm fir | [RFC5104] | | a=rtcp-rsize | [RFC5506] | +--------------------------------------+----------------------------+ Table 35: 5.3.5 SDP Answer 5.4. Others The examples in the section provide SDP for a variety of scenarios related to RTP Header extension, Legacy Interop scenarios and more. 5.4.1. Audio Session - Voice Activity Detection This example shows Alice indicating the support of the RTP header extension to include the audio-level of the audio sample carried in the RTP packet. title 2-Way Audio with VAD Alice->Bob: Offer(Audio:Opus,PCMU,PCMA) note right of Alice Alice indicates support for including audio-level end note Bob->Alice: Answer(Audio:Opus,PCMU,PCMA) note left of Bob Bob accepts and indicates his support as well end note Alice<->Bob: Two-way Opus Audio note right of Alice Per packet audio-level is included in the RTP header. Nandakumar & Jennings Expires August 16, 2014 [Page 87] Internet-Draft SDP4WebRTC February 2014 end note +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE audio | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | 0 8 | | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | | a=rtpmap:0 PCMU/8000 | [RFC3551] | | a=rtpmap:0 PCMA/8000 | [RFC3551] | | a=sendrecv | [RFC3264] | | a=setup:actpass | [RFC4145] | | a=rtcp-mux | [RFC5761] | | a=ice-ufrag:074c6550 | [RFC5245] | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] | | f08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.4 54609 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 24.23.204.141 54609 typ srflx raddr | | | 192.168.1.4 rport 54609 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.4 64678 typ host | | Nandakumar & Jennings Expires August 16, 2014 [Page 88] Internet-Draft SDP4WebRTC February 2014 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.141 64678 typ srflx raddr | | | 192.168.1.4 rport 64678 | | | a=rtcp-fb:* nack | [RFC5104] | | a=ssrc:11111 | [RFC5576] | | cname:QCL/1HmN4Xa5CClapa | | | a=rtcp-rsize | [RFC5506] | +--------------------------------------+----------------------------+ Table 36: 5.4.1 SDP Offer +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | | | Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE audio | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | 0 98 | | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] - Bob accepts only Opu | | | sCodec | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMU Audio Codec | | a=rtpmap:0 PCMA/8000 | [RFC3551] PCMA Audio Codec | | a=rtcp-fb:* nack | [RFC5104] | | a=sendrecv | [RFC3264] - Bob can send | | | and recv audio | Nandakumar & Jennings Expires August 16, 2014 [Page 89] Internet-Draft SDP4WebRTC February 2014 | a=setup:active | [RFC4145] - Bob carries | | | out DTLS Handshake in | | | parallel | | a=rtcp-mux | [RFC5761] - Bob can | | | perform RTP/RTCP Muxing on | | | port 49203 | | a=ice-ufrag:c300d85b | [RFC5245] | | a=ice-pwd:de4e99bd291c325921d5d47efb | [RFC5245] | | abd9a2 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 49203 typ host | | | a=candidate:1 1 UDP 1694302207 | [RFC5245] | | 98.248.92.77 49203 typ srflx raddr | | | 192.168.1.7 rport 49203 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.7 60065 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 98.248.92.77 60065 typ srflx raddr | | | 192.168.1.7 rport 60065 | | | a=ssrc:1732846380 | [RFC5576] | | cname:EocUG1f0fcg/yvY7 | | | a=rtcp-rsize | [RFC5506] | +--------------------------------------+----------------------------+ Table 37: 5.4.1 SDP Answer 5.4.2. Audio Conference - Voice Activity Detection This example shows SDP for RTP header extension that allows RTP-level mixers in audio conferences to deliver information about the audio level of individual participants. title Audio Conference with VAD Support Alice->Mixer: Offer(Audio:Opus,PCMU,PCMA) note right of Alice Alice indicates its interest to audio levels for the contributing sources end note Mixer->Alice: Answer(Audio:Opus,PCMU,PCMA) note left of Bob Mixer indicates it can provide audio-levels per CSRC end note Alice<->Mixer: Two-way Opus Audio note right of Alice Audio levels per CSRC is included in the RTP Header Nandakumar & Jennings Expires August 16, 2014 [Page 90] Internet-Draft SDP4WebRTC February 2014 end note +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | | | Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE audio | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | 0 8 | | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] | | a=extmap:1/recvonly | [RFC6465] | | urn:ietf:params:rtp-hdrext:csrc-audi | | | o-level | | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] - Opus Codec 48khz, 2 | | | channels | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] - Opus packetization o | | | f20ms | | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMU Audio Codec | | a=rtpmap:0 PCMA/8000 | [RFC3551] PCMA Audio Codec | | a=rtcp-fb:* nack | [RFC5104] | | a=sendrecv | [RFC3264] - Alice can send | | | and recv audio | | a=setup:actpass | [RFC4145] - Alice can | | | perform DTLS before Answer | | | arrives | | a=rtcp-mux | [RFC5761] - Alice can | | | perform RTP/RTCP Muxing on | | | port 54609 | | a=ice-ufrag:074c6550 | [RFC5245] | Nandakumar & Jennings Expires August 16, 2014 [Page 91] Internet-Draft SDP4WebRTC February 2014 | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] | | f08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.4 54609 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 24.23.204.141 54609 typ srflx raddr | | | 192.168.1.4 rport 54609 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.4 64678 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.141 64678 typ srflx raddr | | | 192.168.1.4 rport 64678 | | | a=ssrc:11111 | [RFC5576] | | cname:QCL/1HmN4Xa5CClapa | | | a=rtcp-rsize | [RFC5506] | +--------------------------------------+----------------------------+ Table 38: 5.4.2 SDP Offer Nandakumar & Jennings Expires August 16, 2014 [Page 92] Internet-Draft SDP4WebRTC February 2014 +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - Session Origin | | | Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE audio | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | 0 98 | | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtcp:60065 IN IP4 98.248.92.77 | [RFC3605] | | a=extmap:1/sendonly | [RFC6465] | | urn:ietf:params:rtp-hdrext:csrc-audi | | | o-level | | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] - Bob accepts only Opu | | | sCodec | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMU Audio Codec | | a=rtpmap:0 PCMA/8000 | [RFC3551] PCMA Audio Codec | | a=rtcp-fb:* nack | [RFC5104] | | a=sendrecv | [RFC3264] - Bob can send | | | and recv audio | | a=setup:active | [RFC4145] - Bob carries | | | out DTLS Handshake in | | | parallel | | a=rtcp-mux | [RFC5761] - Bob can | | | perform RTP/RTCP Muxing on | | | port 49203 | | a=ice-ufrag:c300d85b | [RFC5245] | | a=ice-pwd:de4e99bd291c325921d5d47efb | [RFC5245] | | abd9a2 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | Nandakumar & Jennings Expires August 16, 2014 [Page 93] Internet-Draft SDP4WebRTC February 2014 | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 49203 typ host | | | a=candidate:1 1 UDP 1694302207 | [RFC5245] | | 98.248.92.77 49203 typ srflx raddr | | | 192.168.1.7 rport 49203 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.7 60065 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 98.248.92.77 60065 typ srflx raddr | | | 192.168.1.7 rport 60065 | | | a=ssrc:2222 cname:HmN4Xa5CC/lapa | [RFC5576] | | a=rtcp-rsize | [RFC5506] | +--------------------------------------+----------------------------+ Table 39: 5.4.2 SDP Answer 5.4.3. Successful legacy Interop Fallaback with bundle-only In the scenario described below, Alice is a multi-stream capable WebRTC endpoint while Bob is a legacy VOIP end-point. The SDP Offer/ Answer exchange demonstrates successful session setup with fallback to audio only stream negotiated via bundle-only framework between the end-points. Specifically, o Offer from Alice describes 2 cameras via 2 video m=lines with both marked as bundle-only. o Since Bob doesnot recognize either BUNDLE mechanism or bundle-only attribute, he accepts only the audio stream from Alice. title Successful 2-Way WebRTC <-> VOIP Interop note right of Alice Alice is a multistream capable WebRTC end-point & Bob is behind a legacy VOIP system end note Alice->Bob: Offer(Audio:Opus Video: 2 VP8, 2 H2.64 Streams) with bundle-only offer note right of Alice Alice marks both the video streams as bundle-only end note Bob->Alice: Answer(Audio:Opus) note left of Bob Bob accepts only Audio stream since he doesn't recognize bundle-only streams end note Alice<->Bob: Two-way Opus Audio +--------------------------------------+----------------------------+ | SDP Contents | RFC#/Notes | +--------------------------------------+----------------------------+ | v=0 | [RFC4566] | Nandakumar & Jennings Expires August 16, 2014 [Page 94] Internet-Draft SDP4WebRTC February 2014 | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | a=group:BUNDLE m0 m1 m2 | [draft-ietf-mmusic-sdp-bun | | | dle-negotiation] Alice | | | supports grouping of | | | m=lines under BUNDLE | | | semantics | | a=ice-options:trickle | [draft-ivov-mmusic-trickle | | | -ice] | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] | | a=mid:m0 | [RFC5888] Audio m=line | | | part of BUNDLE group with | | | a unique port number | | a=msid:ma ta | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (ta) | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-rtp-op | | | us] | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audi | | | o-level | | | a=ptime:20 | [draft-ietf-payload-rtp-op | | | us] | | a=rtcp-fb:109 nack | [RFC5104] | | a=sendrecv | [RFC3264] | | a=setup:actpass | [RFC4145] - Alice can | | | perform DTLS before Answer | | | arrives | | a=rtcp-mux | [RFC5761] | | a=ice-ufrag:074c6550 | [RFC5245] | | a=ice-pwd:a28a397a4c3f31747d1ee3474a | [RFC5245] | | f08a068 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9: | | | c7:70:9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.4 54609 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 24.23.204.141 54609 typ srflx raddr | | | 192.168.1.4 rport 54609 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.4 64678 typ host | | Nandakumar & Jennings Expires August 16, 2014 [Page 95] Internet-Draft SDP4WebRTC February 2014 | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.141 64678 typ srflx raddr | | | 192.168.1.4 rport 64678 | | | a=ssrc:11111 cname:axzo1278npDlAzM73 | [RFC5576]E | | a=rtcp-rsize | [RFC5506] | | m=video 0 UDP/TLS/RTP/SAVPF 98 100 | bundle-only video line | | | with port number set to | | | zero | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] | | a=mid:m1 | [RFC5888] Video m=line | | | part of BUNDLE group | | a=msid:ma tb | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tb) | | a=rtpmap:98 VP8/90000 | [draft-ietf-payload-vp8] | | a=rtpmap:100 VP8/90000 | [draft-ietf-payload-vp8] | | a=imageattr:98 [x=1280,y=720] | [RFC6236]Camera-1,Encoding | | | -1 Resolution | | a=fmtp:98 max-fr=30 | [RFC4566] | | a=imageattr:100 [x=640,y=480] | [RFC6236] | | | Camera-1,Encoding-2 | | | Resolution | | a=fmtp:100 max-fr=15 | [RFC4566] | | a=ssrc-group:SIMULCAST 12345 45678 | [RFC5576] | | a=ssrc:12345 cname:axzo1278npDlAzM73 | [RFC5576]E | | a=ssrc:45678 cname:axzo1278npDlAzM73 | [RFC5576] | | a=bundle-only | [draft-roach-mmusic-unifie | | | d-plan] | | a=rtcp-rsize | [RFC5506] | | m=video 0 UDP/TLS/RTP/SAVPF 101 103 | bundle-only video line | | | with port number set to | | | zero | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:64678 IN IP4 24.23.204.141 | [RFC3605] | | a=mid:m2 | [RFC5888] Video m=line | | | part of BUNDLE group | | a=msid:ma tc | Identifies RTCMediaStream | | | ID (ma) and | | | RTCMediaStreamTrack ID | | | (tc) | | a=rtpmap:101 H264/90000 | [RFC3984] | | a=rtpmap:103 H264/90000 | [RFC3984] | | a=fmtp:101 | [RFC3984]Camera-2,Encoding | | profile-level-id=4d0028;packetizatio | -1 Resolution | | n-mode=1;max-fr=30 | | Nandakumar & Jennings Expires August 16, 2014 [Page 96] Internet-Draft SDP4WebRTC February 2014 | a=fmtp:100 | [RFC3984]Camera-1,Encoding | | profile-level-id=4d0028;packetizatio | -2 Resolution | | n-mode=1;max-fr=15 | | | a=ssrc-group:SIMULCAST 67890 56789 | [RFC5576] | | a=ssrc:67890 cname:axzo1278npDlAzM73 | [RFC5576] | | a=ssrc:56789 cname:axzo1278npDlAzM73 | [RFC5576] | | a=bundle-only | [draft-roach-mmusic-unifie | | | d-plan] | | a=rtcp-rsize | [RFC5506] | +--------------------------------------+----------------------------+ Table 40: 5.4.3 SDP Simulcast bundle-only Nandakumar & Jennings Expires August 16, 2014 [Page 97] Internet-Draft SDP4WebRTC February 2014 +-------------------------------------------+-----------------------+ | SDP Contents | RFC#/Notes | +-------------------------------------------+-----------------------+ | v=0 | [RFC4566] | | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=msid-semantic:WMS | [MSID] | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtcp:60065 IN IP4 24.23.204.141 | [RFC3605] | | a=rtpmap:109 opus/48000/2 | [draft-ietf-payload-r | | | tp-opus] | | a=extmap:1 | [RFC6464] | | urn:ietf:params:rtp-hdrext:ssrc-audio-lev | | | el | | | a=ptime:20 | [draft-ietf-payload-r | | | tp-opus] | | a=rtcp-fb:109 nack | [RFC5104] | | a=sendrecv | [RFC3264] | | a=setup:active | [RFC4145] - Bob | | | carries out DTLS | | | Handshake in parallel | | a=ice-ufrag:ufrag:c300d85b | [RFC5245] | | a=ice-pwd:de4e99bd291c325921d5d47efbabd9a | [RFC5245] | | 2 | | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:70 | | | :9d:1f:66:79:a8:07 | | | a=candidate:0 1 UDP 2113667327 | [RFC5245] | | 192.168.1.7 49203 typ host | | | a=candidate:1 1 UDP 694302207 | [RFC5245] | | 98.248.92.77 49203 typ srflx raddr | | | 192.168.1.7 rport 49203 | | | a=candidate:0 2 UDP 2113667326 | [RFC5245] | | 192.168.1.7 60065 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 98.248.92.77 60065 typ srflx raddr | | | 192.168.1.7 rport 60065 | | | a=rtcp-rsize | [RFC5506] | | m=video 0 UDP/TLS/RTP/SAVPF 98 100 | Bob doesn't recognize | | | bundle-only and hence | | | rejects the video | | | stream | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtpmap:98 VP8/90000 | [draft-ietf-payload-v | | | p8] | Nandakumar & Jennings Expires August 16, 2014 [Page 98] Internet-Draft SDP4WebRTC February 2014 | a=rtpmap:100 VP8/90000 | [draft-ietf-payload-v | | | p8] | | a=imageattr:98 [x=1280,y=720] | [RFC6236]Camera-1,Enc | | | oding-1 Resolution | | a=fmtp:98 max-fr=30 | [RFC4566] | | a=imageattr:100 [x=640,y=480] | [RFC6236] | | | Camera-1,Encoding-2 | | | Resolution | | a=fmtp:100 max-fr=15 | [RFC4566] | | m=video 0 UDP/TLS/RTP/SAVPF 98 100 | Bob doesn't recognize | | | bundle-only and hence | | | rejects the video | | | stream | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtpmap:101 H264/90000 | [RFC3984] | | a=rtpmap:103 H264/90000 | [RFC3984] | | a=fmtp:101 | [RFC3984]Camera-2,Enc | | profile-level-id=4d0028;packetization-mod | oding-1 Resolution | | e=1;max-fr=30 | | | a=fmtp:100 | [RFC3984]Camera-1,Enc | | profile-level-id=4d0028;packetization-mod | oding-2 Resolution | | e=1;max-fr=15 | | +-------------------------------------------+-----------------------+ Table 41: 5.4.3 SDP Anwer 5.4.4. Legacy Interop with RTP/AVP profile In this section, we attempt to provide session descriptions showcasing inter-operability between a WebRTC end-point and a Legacy VOIP end-point. The ideas included in here are not fully baked into the standards and might be controversial in nature. The hope here is to demonstrate a plausible SDP composition to enchance seamless inter-operability between the aforementioned communication systems. In the scenario desribed below, Alice sends [RFC3264] Offer with two sets of media descriptions per media type. One set that correponds to [WebRTC] compliant UDP/TLS/RTP/SAVPF based audio and video descriptions. Another set with RTP/AVP based audio and video descriptions for the legacy Interop purposes. Also to note, Alice includes session level DTLS information and media level RTCP feedback information as applicable to both the sets of media descriptions On the other hand, Bob being a Legacy VOIP end-point, recognizes only the media descriptions with RTP/AVP as the application protocol. The security and fedback requirements for the session are either handled Nandakumar & Jennings Expires August 16, 2014 [Page 99] Internet-Draft SDP4WebRTC February 2014 by a intermediate gateway or with some combination of Bob's capabilities and the intermediate gateway. title Successful 2-Way WebRTC <-> VOIP Interop note right of Alice Alice is on a WebRTC end-point & Bob is behind a legacy VOIP system end note Alice->Bob: Offer(Audio:Opus Video:VP8) note right of Alice Alice includes 2 copies of media descriptions 1. WebRTC compliant media description (UDP/TLS/RTP/SAVPF) 2. Legacy compliant media description (RTP/AVP) end note Bob->Alice: Answer(Audio:Opus Video:VP8) note right of Bob Bob recognizes"legacy compliant" media description from Alice. and accepts the same. end note Alice->Bob: Two-way Opus Audio, VP8 Video note right of Alice Session also suports RTP/RTCP Mux, RTCP feedback (nack,pli) end note +---------------------------------------------+---------------------+ | SDP Contents | RFC#/Notes | +---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=ice-ufrag:074c6550 | [RFC5245] | | a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [RFC5245] | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:70:9 | | | d:1f:66:79:a8:07 | | | a=rtcp-rsize | [RFC5506] | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtpmap:109 opus/48000 | | | a=ptime:20 | | | a=sendrecv | [RFC3264] | | a=rtcp-mux | [RFC5761] | | a=candidate:0 1 UDP 2113667327 192.168.1.4 | [RFC5245] | | 54609 typ host | | | a=candidate:1 1 UDP 694302207 24.23.204.141 | [RFC5245] | | 54609 typ srflx raddr 192.168.1.4 rport | | | 54609 | | Nandakumar & Jennings Expires August 16, 2014 [Page 100] Internet-Draft SDP4WebRTC February 2014 | a=candidate:0 2 UDP 2113667326 192.168.1.4 | [RFC5245] | | 64678 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.141 64678 typ srflx raddr | | | 192.168.1.4 rport 64678 | | | a=rtcp-fb:109 nack | [RFC5104] | | m=video 62537 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=rtpmap:120 VP8/90000 | [draft-ietf-payload | | | -vp8] | | a=sendrecv | [RFC3264] | | a=rtcp-mux | [RFC5761] | | a=candidate:0 1 UDP 2113667327 192.168.1.4 | [RFC5245] | | 62537 typ host | | | a=candidate:1 1 UDP 1694302207 | [RFC5245] | | 24.23.204.141 62537 typ srflx raddr | | | 192.168.1.4 rport 62537 | | | a=candidate:0 2 2113667326 192.168.1.4 | [RFC5245] | | 54721 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.141 54721 typ srflx raddr | | | 192.168.1.4 rport 54721 | | | a=rtcp-fb:120 nack pli | [RFC5104] | | a=rtcp-fb:120 ccm fir | [RFC5104] | | --------------- | These set of media | | | descriptions are | | | for Legacy Inter-op | | | purposes | | m=audio 54732 RTP/AVP 109 | [RFC4566]Alice | | | includes RTP/AVP | | | audio stream | | | description | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:7f:7d:f9:c9:c7:70:9 | | | d:1f:66:79:a8:07 | | | a=rtpmap:109 opus/48000 | | | a=ptime:20 | | | a=sendrecv | [RFC3264] | | a=rtcp-mux | [RFC5761]Alice | | | still includes | | | RTP/RTCP Mux | | | support | | a=candidate:0 1 UDP 2113667327 192.168.1.4 | [RFC5245] | | 54732 typ host | | | a=candidate:1 1 UDP 694302207 24.23.204.141 | [RFC5245] | | 54732 typ srflx raddr 192.168.1.4 rport | | | 54732 | | Nandakumar & Jennings Expires August 16, 2014 [Page 101] Internet-Draft SDP4WebRTC February 2014 | a=candidate:0 2 UDP 2113667326 192.168.1.4 | [RFC5245] | | 64678 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.141 64678 typ srflx raddr | | | 192.168.1.4 rport 64678 | | | a=rtcp-fb:109 nack | [RFC5104]She adds | | | her intent for NACK | | | RTCP feedback | | | support | | m=video 62445 RTP/AVP 120 | [RFC4566]Alice | | | includes RTP/AVP | | | video stream | | | description | | c=IN IP4 24.23.204.141 | [RFC4566] | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:7d:f7:c9:c7:70:9 | | | d:1f:66:79:a8:07 | | | a=rtpmap:120 VP8/90000 | [draft-ietf-payload | | | -vp8] | | a=sendrecv | [RFC3264] | | a=rtcp-mux | [RFC5761]Alice | | | intends to perform | | | RTP/RTCP Mux | | a=candidate:0 1 UDP 2113667327 192.168.1.4 | [RFC5245] | | 62445 typ host | | | a=candidate:1 1 UDP 1694302207 | [RFC5245] | | 24.23.204.141 62537 typ srflx raddr | | | 192.168.1.4 rport 62445 | | | a=candidate:0 2 2113667326 192.168.1.4 | [RFC5245] | | 54721 typ host | | | a=candidate:1 2 UDP 1694302206 | [RFC5245] | | 24.23.204.141 54721 typ srflx raddr | | | 192.168.1.4 rport 54721 | | | a=rtcp-fb:120 nack pli | [RFC5104] Alice | | | indicates support | | | for Picture loss | | | Indication and NACK | | | RTCP feedback | | a=rtcp-fb:120 ccm fir | [RFC5104] | +---------------------------------------------+---------------------+ Table 42: 5.4.5 SDP Offer Nandakumar & Jennings Expires August 16, 2014 [Page 102] Internet-Draft SDP4WebRTC February 2014 +---------------------------------------------+---------------------+ | SDP Contents | RFC#/Notes | +---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=ice-ufrag:c300d85b | [RFC5245] | | a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [RFC5245] | | a=fingerprint:sha-1 | [RFC5245] | | 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:70:9 | | | d:1f:66:79:a8:07 | | | m=audio 49203 RTP/AVP 109 | [RFC4566] Bob | | | accepts RTP/AVP | | | based audio stream | | c=IN IP4 98.248.92.77 | [RFC4566] | | a=rtpmap:109 opus/48000 | | | a=ptime:20 | | | a=sendrecv | [RFC3264] | | a=candidate:0 1 UDP 2113667327 192.168.1.7 | [RFC5245] | | 49203 typ host | | | a=candidate:1 1 UDP 1694302207 98.248.92.77 | [RFC5245] | | 49203 typ srflx raddr 192.168.1.7 rport | | | 49203 | | | a=candidate:0 2 UDP 2113667326 192.168.1.7 | [RFC5245] | | 60065 typ host | | | a=candidate:1 2 UDP 1694302206 98.248.92.77 | [RFC5245] | | 60065 typ srflx raddr 192.168.1.7 rport | | | 60065 | | | m=video 63130 RTP/SAVP 120 | [RFC4566] Bob | | | accepts RTP/AVP | | | based video stram | | c=IN IP4 98.248.92.771 | [RFC4566] | | a=rtpmap:120 VP8/90000 | [draft-ietf-payload | | | -vp8] | | a=sendrecv | [RFC3264] | | a=candidate:0 1 UDP 2113667327 192.168.1.7 | [RFC5245] | | 63130 typ host | | | a=candidate:1 1 UDP 1694302207 98.248.92.77 | [RFC5245] | | 63130 typ srflx raddr 192.168.1.7 rport | | | 63130 | | | a=candidate:0 2 UDP 2113667326 192.168.1.7 | [RFC5245] | | 56607 typ host | | | a=candidate:1 2 UDP 1694302206 98.248.92.77 | [RFC5245] | | 56607 typ srflx raddr 192.168.1.7 rport | | | 56607 | | +---------------------------------------------+---------------------+ Nandakumar & Jennings Expires August 16, 2014 [Page 103] Internet-Draft SDP4WebRTC February 2014 Table 43: 5.4.5 SDP Answer 6. IANA Considerations This document requires no actions from IANA. 7. Acknowledgments We would like to thanks Justin Uberti for his detailed review and inputs. 8. Change Log [RFC EDITOR NOTE: Please remove this section when publishing] Changes from draft-nandakumar-rtcweb-sdp-03 o Aligned more closely with JSEP version -05 o Added Conventions to help readability o Add more examples to clarify BUNDLE use-cases Changes from draft-nandakumar-rtcweb-sdp-02 o Major refactoring was done to group the examples in to categories o SDP was updated through out to reflect JSEP-04 style of defining attributes per m=line than at the session level. o Added 8 new examples. o Updated references for Trickle, Unified Plan o Add section to explain the syntax conventions followed in the examples. Changes from draft-nandakumar-rtcweb-sdp-01 o Updated references to OPUS RTP Payload Specification. o Updated BUNDLE examples based on the latest draft-ietf-mmusic-sdp-bundle-negotiation. o Added examples for multiple audio and video flows based on Unified Plan. o Added new examples for RTX and FEC streams o Updated Simulcast and SVC examples Changes from draft-nandakumar-rtcweb-sdp-00 o Fixed editorial comments on the mailing list. o Updated Data-channel SDP information based on draft-ietf-mmusic-sctp-sdp. o Updated BUNDLE examples based on draft-ietf-mmusic-sdp-bundle-negotiation. Nandakumar & Jennings Expires August 16, 2014 [Page 104] Internet-Draft SDP4WebRTC February 2014 o Added examples for few more BUNDLE variants o Added new examples for Simulcast and SVC 9. References 9.1. Normative References [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with Session Description Protocol (SDP)", RFC 3264, June 2002. [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session Description Protocol", RFC 4566, July 2006. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. 9.2. Informative References [RFC5245] Rosenberg, J., "Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal for Offer/Answer Protocols", RFC 5245, July 2006. [WebRTC] W3C, "WebRTC 1.0: Real-time Communication Between Browsers", . [JSEP] Uberti, J. and C. Jennigs, "Javascript Session Establishment Protocol", draft-ietf-rtcweb-jsep (work in progress), December 2012. [MSID] Alvestrand, H., "Cross Session Stream Identification in the Session Description Protocol", Internet-Draft draft-ietf-mmusic-msid, January 2014. [RFC5506] Johansson, I., "Support for Reduced-Size Real-Time Transport Control Protocol (RTCP): Opportunities and Consequences", RFC 5506, April 2009. [RFC3551] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and Video Conferences with Minimal Control", RFC 3551, July 2003. [RFC3952] Duric, A. and S. Andersen, "Real-time Transport Protocol (RTP) Payload Format for internet Low Bit Rate Codec (iLBC) Speech", RFC 3952, December 2004. Nandakumar & Jennings Expires August 16, 2014 [Page 105] Internet-Draft SDP4WebRTC February 2014 [RFC4796] Hautakorpi, J. and G. Camarillo, "The Session Description Protocol (SDP) Content Attribute", RFC 4796, February 2007. [RFC5761] Perkins, C. and M. Westerlund, "Multiplexing RTP Data and Control Packets on a Single Port", RFC 5761, April 2010. [RFC3556] Casner, S., "Session Description Protocol (SDP) Bandwidth Modifiers for RTP Control Protocol (RTCP) Bandwidth", RFC 3556, July 2003. [RFC5104] Wenger, S., Chandra, U., Westerlund, M., and B. Burman, "Codec Control Messages in the RTP Audio-Visual Profile with Feedback (AVPF)", RFC 5104, February 2008. [RFC4588] Rey, J., Leon, D., Miyazaki, A., Varsa, V., and R. Hakenberg, "RTP Retransmission Payload Format", RFC 4588, July 2006. [RFC5956] Begen, A., "Forward Error Correction Grouping Semantics in the Session Description Protocol", RFC 5956, September 2010. [RFC5888] Camarillo, G. and H. Schulzrinne, "RTP Payload Format for H.264 Video", RFC 5888, June 2010. [RFC6236] Johansson, I. and K. Jung, "Negotiation of Generic Image Attributes in the Session Description Protocol (SDP)", RFC 6236, May 2011. [draft-ietf-payload-rtp-opus] Spittka, J., Vos, K., and JM. Valin, "RTP Payload Format for Opus Speech and Audio Codec", draft-ietf-payload-rtp-opus-00 (work in progress), July 2012. [draft-ietf-payload-vp8] Westin, P., Lundin, H., Glover, M., Uberti, J., and F. Galligan, "RTP Payload Format for VP8 Video", draft-ietf-payload-vp8-05 (work in progress), August 2012. [RFC3984] Wenger, S., Hannuksela, M., Stockhammer, T., Westerlund, M., and D. Singer, "RTP Payload Format for H.264 Video", RFC 3984, February 2005. [RFC5583] Schierl, T. and S. Wenger, "Signaling Media Decoding Dependency in the Session Description Protocol (SDP)", RFC 5583, July 2009. Nandakumar & Jennings Expires August 16, 2014 [Page 106] Internet-Draft SDP4WebRTC February 2014 [RFC5576] Lennox, J., Ott, J., and T. Schierl, "Source-Specific Media Attributes in the Session Description Protocol (SDP)", RFC 5576, June 2009. [draft-ietf-rtcweb-data-channel] Jesup, R., Loreto, S., and M. Tuexen, "RTCWeb Datagram Connection", draft-ietf-rtcweb-data-channel-01 (work in progress), September 2012. [draft-ietf-mmusic-sctp-sdp] Loreto, S. and G. Camarillo, "Stream Control Transmission Protocol (SCTP)-Based Media Transport in the Session Description Protocol (SDP)", draft-ietf-mmusic-sctp-sdp-03 (work in progress), September 2012. [draft-ietf-mmusic-sdp-bundle-negotiation] Holmberg, C., Alvestrand, H., and C. Jennings, "Multiplexing Negotiation Using Session Description Protocol (SDP) Port Numbers", draft-ietf-mmusic-sdp-bundle-negotiation-04 (work in progress), February 2013. [draft-roach-mmusic-unified-plan] Roach, A., Uberti, J., and M. Thomson, "A Unified Plan for Using SDP with Large Numbers of Media Flows", draft-roach-mmusic-unified-plan (work in progress), July 2013. [draft-ivov-mmusic-trickle-ice] Roach, A., Uberti, J., and M. Thomson, "A Unified Plan for Using SDP with Large Numbers of Media Flows", draft-ivov-mmusic-trickle-ice-01 (work in progress), July 2013. [draft-lennox-mmusic-sdp-source-selection] Lennox, J. and H. Schulzrinne, "Multiplexing Negotiation Using Session Description Protocol (SDP) Port Numbers", draft-lennox-mmusic-sdp-source-selection-05 (work in progress), October 2012. [draft-rescorla-avtcore-6222bis] Rescorla, E. and A. Begen, "Guidelines for Choosing RTP Control Protocol (RTCP) Canonical Names (CNAMEs)", draft-rescorla-avtcore-6222bis-00 (work in progress), October 2012. [RFC3550] Schulzrinne, H., Schulzrinne, S., Frederick, R., and V. Jacobson, "RTP: A Transport Protocol for Real-Time Nandakumar & Jennings Expires August 16, 2014 [Page 107] Internet-Draft SDP4WebRTC February 2014 Applications", RFC 2326, July 2003. [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002. [RFC2326] Schulzrinne, H., Rao, A., and R. Lanphier, "Real Time Streaming Protocol (RTSP)", RFC 2326, April 1998. [RFC3605] Huitema, C., "Real Time Control Protocol (RTCP) attribute in Session Description Protocol (SDP)", RFC 4145, October 2003. [RFC4145] Fischl, J., Tschofenig, H., and E. Rescorla, "Framework for Establishing a Secure Real-time Transport Protocol (SRTP) Security Context Using Datagram Transport Layer Security (DTLS)", RFC 4145, May 2010. [RFC2833] Schulzrinne, H. and S. Petrack, "RTP Payload for DTMF Digits, Telephony Tones and Telephony Signals", RFC 2833, May 2000. [RFC6464] Lennox, J., Ivov, E., and E. Marocco, "A Real-time Transport Protocol (RTP) Header Extension for Client-to- Mixer Audio Level Indication", RFC 6464, December 2011. [RFC6465] Ivov, E., Marocco, E., and J. Lennox, "A Real-time Transport Protocol (RTP) Header Extension for Mixer-to- Client Audio Level Indication", RFC 6465, December 2011. Authors' Addresses Suhas Nandakumar Cisco 170 West Tasman Drive San Jose, CA 95134 USA Email: snandaku@cisco.com Nandakumar & Jennings Expires August 16, 2014 [Page 108] Internet-Draft SDP4WebRTC February 2014 Cullen Jennings Cisco 170 West Tasman Drive San Jose, CA 95134 USA Phone: +1 408 421-9990 Email: fluffy@cisco.com Nandakumar & Jennings Expires August 16, 2014 [Page 109]