Network Working Group S. Nandakumar Internet-Draft C. Jennings Intended status: Informational Cisco Expires:April 28,September 3, 2018 March 2, 2018October 25, 2017Annotated Example SDP for WebRTCdraft-ietf-rtcweb-sdp-08draft-ietf-rtcweb-sdp-09 Abstract The Real-Time Communications in WEB-browsers (Rtcweb) 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 Rtcweb framework, Session Description protocol (SDP) is used for negotiating session capabilities between the peers. Such a negotiation happens based on the SDP Offer/Answer exchange mechanism. This document provides an informational reference in describing the role of SDP and the Offer/Answer exchange mechanism for the most common Rtcweb use-cases. 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 onApril 28,September 3, 2018. Copyright Notice Copyright (c)20172018 IETF Trust and the persons identified as the document authors. All rights reserved. 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 . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. SDP and the WebRTC . . . . . . . . . . . . . . . . . . . . . 3 4. Offer/Answer and the WebRTC . . . . . . . . . . . . . . . . . 5 5. WebRTC Session Description Examples . . . . . . . . . . . . . 6 5.1. Some Conventions . . . . . . . . . . . . . . . . . . . . 7 5.2. Basic Examples . . . . . . . . . . . . . . . . . . . . . 9 5.2.1. Audio Only Session . . . . . . . . . . . . . . . . . 9 5.2.2. Audio/Video Session . . . . . . . . . . . . . . . . . 13 5.2.2.1. IPv4 audio/video session . . . . . . . . . . . . 14 5.2.2.2. Dual Stack audio/video session . . . . . . . . .1719 5.2.3. Data Only Session . . . . . . . . . . . . . . . . . .2124 5.2.4. Audio Call On Hold . . . . . . . . . . . . . . . . .2427 5.2.5. Audio with DTMF Session . . . . . . . . . . . . . . .2730 5.2.6. One Way Audio/Video Session - Document Camera . . . .3134 5.2.7. Audio, Video Session with BUNDLE Support Unknown . .3438 5.2.8. Audio, Video and Data Session . . . . . . . . . . . .3943 5.2.9. Audio, Video Session with BUNDLE Unsupported . . . .4248 5.2.10. Audio, Video BUNDLED, but Data (Not BUNDLED) . . . .4753 5.2.11. Audio Only, Add Video to BUNDLE . . . . . . . . . . .5258 5.3. MultiResolution, RTX, FEC Examples . . . . . . . . . . .5765 5.3.1. Sendonly Simulcast Session with 2 cameras and 2 encodings per camera . . . . . . . . . . . . . .5865 5.3.2. Successful SVC Video Session . . . . . . . . . . . .6472 5.3.3. Successful Simulcast Video Session with Retransmission . . . . . . . . . . . . . . . . . . .6877 5.3.4. Successful 1-way Simulcast Session with 2 resolutions and RTX - One resolution rejected . . . . . .7382 5.3.5. Simulcast Video Session with Forward Error Correction7787 5.4. Others . . . . . . . . . . . . . . . . . . . . . . . . .8192 5.4.1. Audio Session - Voice Activity Detection . . . . . .8193 5.4.2. Audio Conference - Voice Activity Detection . . . . .8596 5.4.3. Successful legacy Interop Fallback with bundle-only .8899 5.4.4. Legacy Interop with RTP/AVP profile . . . . . . . . .92104 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . .96108 7. Security Considerations . . . . . . . . . . . . . . . . . . .96108 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . .96108 9. Change Log . . . . . . . . . . . . . . . . . . . . . . . . .97108 10. Informative References . . . . . . . . . . . . . . . . . . .100112 Appendix A. Appendix . . . . . . . . . . . . . . . . . . . . . .104116 A.1. JSEP SDP Attributes Checklist . . . . . . . . . . . . . .104116 A.1.1. Common Checklist . . . . . . . . . . . . . . . . . .104116 A.1.2. RTP Media Description Checklist . . . . . . . . . . .105117 A.1.3. DataChannel Media Description checklist . . . . . . .107119 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . .107119 1. Introduction Javascript Session Establishment Protocol(JSEP) [I-D.ietf-rtcweb-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: Sections 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 [RFC7826]. 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. +---------------------+ | v= | +---------------------+ +---------------------+ +---------------------+ ==== | Session Metadata | ===== | o= | | +---------------------+ +---------------------- | +---------------------+ | | t= | | +---------------------+ | | | +---------------------+ | | c= | | +---------------------+ | +---------------------+ ==== | Network Description | ===== | +---------------------+ | +---------------------+ | | a=candidate | | +---------------------+ | | | +---------------------+ | | m= | | +---------------------+ | +---------------------+ +---------------------+ ==== | Stream Description | ===== | a=rtpmap | | +---------------------+ +---------------------- | +---------------------+ | | a=fmtp | | +---------------------+ | +---------------------+ | | a=sendrecv.. | | +---------------------+ +---------------+ | SEMANTIC | | COMPONENTS OF | | SDP | +---------------+ | +---------------------+ | | a=crypto | | +---------------------+ | +---------------------+ +---------------------+ ==== |Security Descriptions| =====| a=ice-frag | | +---------------------+ +---------------------- | +---------------------+ | | a=ice-pwd | | +---------------------+ | +---------------------+ | | a=fingerprint | | +---------------------+ | | | | +---------------------+ | | a=rtcp-fb | | +---------------------+ | +---------------------+ +---------------------+ ==== | Qos,Grouping | | | | Descriptions | =====| a=group | +---------------------+ +---------------------- +---------------------+ | a=rtcpmux | +---------------------+ Figure 1: Semantic Components of SDP [WebRTC] proposes JavaScript application to fully specify and control the signaling plane of a multimedia session as described in the JSEP specification [I-D.ietf-rtcweb-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 participant'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. JSEP specification [I-D.ietf-rtcweb-jsep] for WebRTC provides the mechanism for generating [RFC3264] SDP Offers and Answers in order for both sides of the session to agree upon the details such as the list of media formats to be sent/received, bandwidth information, crypto parameters, transport parameters, for example. 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, o Supports BUNDLE based grouping of media streams over a single 5-tuple transport. 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 It is assumed that for most of the examples, the support for [I-D.ietf-mmusic-sdp-bundle-negotiation] is established apriori either out-of-band or as a consequence of successful Offer/Answer negotiation between Alice and Bob, unless explicitly stated 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 Eventhough the call-flow diagrams shows SDP being exchanged between the parties, it doesn't represent the only way an WebRTC setup is expected to work. Other approaches may involve WebRTC applications to exchange the media setup information via non-SDP mechanisms as long as they confirm to the [I-D.ietf-rtcweb-jsep] API specification. 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. * Visual markers/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. * 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. * Excepting the above two conventions, line endings are to be interpreted as <CR><LF> pairs (that is, an ASCII 13 followed by an ASCII 10). o Against each SDP line, pointers to the appropriate RFCs are provided for further informational 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. * 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 specific details, readers must refer to [I-D.ietf-rtcweb-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, 0 for PCMU, 8 for PCMA, 99 for H.264 and 120 for VP8 in most of the examples to maintain uniformity. o The IP Address:Port combinations '192.0.2.4:61665' (host) and '203.0.113.141:54609' (Server Reflexive) is typically used for Alice. o The IP Address:Port combinations '198.51.100.7:51556' (host) and '203.0.113.77:49203' (Server Reflexive) is typically used for Bob. o The IPv6 addresses 2001:DB8:8101:3a55:4858:a2a9:22ff:99b9 and 2001:DB8:30c:1266:5916:3779:22f6:77f7 are used to represent Alice and Bob host addresses respectively. o In the actual use the values that represent SSRCs, ICE candidate foundations, WebRTC Mediastream, MediaStreamTrackIds, tls-idIds values shall be much larger and/or random than the ones shown in the examples. o tls-id attribute values 89J2LRATQ3ULA24G9AHWVR31VJWSLB68 and UKA29UQLTF69OJW4WNPNUO2Y0GF1FJOZ are used for Alice. The values CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 and 9AIFS8AQ009IXF5D6QQUJ7P8BXPEZJ8G are used for Bob. o identity attribute values are split across multiple lines to enhance readability, thus any line breaks and indentations in the value must be ignored. o SDP attributes in the examples closely follow the checklist defined in section Appendix A.1. 5.2. Basic Examples 5.2.1. 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 offered audio codecs. 2-Way Audio Only Session Alice Bob | | | | | Offer(Audio:Opus,PCMU,PCMA) | |------------------------------------>| | | | | | Answer(Audio:Opus,PCMU,PCMA) | |<------------------------------------| | | | | |Two-way Opus Audio (preferred-codec) | |.....................................| | | | |+--------------------------------------------+----------------------++---------------------------------------------+---------------------+ | Offer 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=group:BUNDLE audio |[I-D.ietf-mmusic-sdp[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | |-bundle-negotiation]| n] | | a=ice-options:trickle |[I-D.ietf-mmusic-tri[I-D.ietf-mmusic-tr | | |ckle-ice]ickle-ice] | |a=identity:eyJpZHAiOnsiZG9tYWluIjoibmlpZi5a=identity:eyJpZHAiOnsiZG9tYWluIjoibmlpZi5o | Section 5.6 of[I-D.[I-D | |odSIsInByb3RvY29sIjoiaWRwLmh0bWwifSwiYXNzZdSIsInByb3RvY29sIjoiaWRwLmh0bWwifSwiYXNzZXJ |ietf-rtcweb-security.ietf-rtcweb-securi | |XJ0a W9uIjoiZXlKaGJHY2lPaUpTVXpJMU5pSXNJbl0a W9uIjoiZXlKaGJHY2lPaUpTVXpJMU5pSXNJblI1Y |-arch]ty-arch] | |I1Y0NJNklrcFhVeUo5LmV5SmpiMjUwWlc1MGN5STZl0NJNklrcFhVeUo5LmV5SmpiMjUwWlc1MGN5STZleUpt | | |eUptYVc1b lpYSndjbWx1ZENJNlczc2lZV3huYjNKcYVc1b lpYSndjbWx1ZENJNlczc2lZV3huYjNKcGRHaH | | |GRHaHRJam9pYzJoaExUSTFOaUlzSW1ScFoyVnpkQ0kRJam9pYzJoaExUSTFOaUlzSW1ScFoyVnpkQ0k2SWpre | | |2SWprek9rTXdPa kl6T2pKR09rRXlPakF3T2pBd09qk9rTXdPa kl6T2pKR09rRXlPakF3T2pBd09qQkVPalV | | |QkVPalV4T2tGRE9rUXlPalUwT2pZMU9rWTBPak5DT24T2tGRE9rUXlPalUwT2pZMU9rWTBPak5DT2pkRU9qa3 | | |pkRU9qa3lPa1JET2pnN E9qTXpPalV4T2pJek9qUXdlPa1JET2pnN E9qTXpPalV4T2pJek9qUXdPamN5T2pr | | |PamN5T2preE9qZ3pPalZDT2pBeE9qSkdPalV3T2pjNeE9qZ3pPalZDT2pBeE9qSkdPalV3T2pjNE9qTkdJbjF | | |E9qTkdJbjFkZlN3aWFXUmxib lJwZEhraU9pSnRhWEkZlN3aWFXUmxib lJwZEhraU9pSnRhWE5wUUc1cGFXW | | |5wUUc1cGFXWXVhSFVpZlEuSTVQdGhKNFFDT05TOFVXXVhSFVpZlEuSTVQdGhKNFFDT05TOFVXd25OOUh3MEda | | |d25OOUh3MEdaTDl3d0RBVGRrTWtFW llmdlNVTTJ6UTDl3d0RBVGRrTWtFW llmdlNVTTJ6Umd5R09WSGgzRm | | |md5R09WSGgzRmpnc2FPZklkRnFsNUx6azBFbndVOTNpnc2FPZklkRnFsNUx6azBFbndVOTNQOUlCQ0xZOWtia | | |QOUlCQ0xZOWtia3V1c0V1S25YRGVNLTNIN WFmdTJv3V1c0V1S25YRGVNLTNIN WFmdTJvZl9CTlZjUnB3Mmd | | |Zl9CTlZjUnB3MmdBdlNBbVR6SlltcEpqMFEtdmV0TmBdlNBbVR6SlltcEpqMFEtdmV0TmtVT1huZE9HLUIzT3 | | |tVT1huZE9HLUIzT3ZGb3QwZVNENlZSNUdhb2wyc GdZGb3QwZVNENlZSNUdhb2wyc GduS3FSTktOd3dacEZ1 | | |uS3FSTktOd3dacEZ1eUZZbFRodHJIdGNiT19WV3o4QeUZZbFRodHJIdGNiT19WV3o4QnZpTThKS25OdExWd1J | | |nZpTThKS25OdExWd1JxNUhMX2ZLTlRCNzFDYkoyWmhxNUhMX2ZLTlRCNzFDYkoyWmh5W XU1UEdwWDhXcXJMW | | |5W XU1UEdwWDhXcXJMWC1ybm5YSFY3RnhoTTh5OHdrC1ybm5YSFY3RnhoTTh5OHdrLWd5cnRZazVnbFlZeUFr | | |LWd5cnRZazVnbFlZeUFrcTVqZklSXzRzWER5d19Qc1cTVqZklSXzRzWER5d19Qc1BWTW1aZ XltenVGV3BQTz | | |BWTW1aZ XltenVGV3BQTzVFWlJYR0ZpRjFET0o4Q0QVFWlJYR0ZpRjFET0o4Q0Q3Z3Zta2dUdlBXSWpkemtBI | | |3Z3Zta2dUdlBXSWpkemtBIn0=n0= | | | ****** Audio m=line ********* |*************************************** | | |******************* | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 0 8 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendrecv | [RFC3264] - Alice | | | can send and recv | | | audio | | a=rtpmap:109 opus/48000/2 | [RFC7587] - Opus | | | Codec 48khz, 2 | | | channels | | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMUAudio| | | Audio Codec | | a=rtpmap:8 PCMA/8000 | [RFC3551] PCMAAudio| | | Audio Codec | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:074c6550 | [RFC5245] - ICEuser| | | user fragment | |a=ice-a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [RFC5245] - ICE | |pwd:a28a397a4c3f31747d1ee3474af08a068| password | | a=fingerprint:sha-25619:E2:1C:3B:4B:9F:8119:E2:1C:3B:4B:9F:81: | [RFC5245] - DTLS | |:E6:B8:5C:F4:A5:A8:D8:73:04 :BB:05:2F:70:9E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | Fingerprint forSRTP| |F:04:A9:0E:05:E9:26:33:E8:70:88:A24:A9:0E:05:E9:26:33:E8:70:88:A2 | SRTP | | a=setup:actpass | [RFC5763] - Alice | | | can act as DTLS | | | client or server | |a=tls-id:1a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 |[I-D.ietf-mmusic-dtl[I-D.ietf-mmusic-dt | | |s-sdp]ls-sdp] | | a=rtcp-mux | [RFC5761] - Alice | | | can performRTP/RTCP| | | RTP/RTCP Muxing | | a=rtcp:60065 IN IP4 203.0.113.141 | [RFC3605] | | a=rtcp-rsize | [RFC5506] - Alice | | | intends to use | | | reduced size RTCP | | | for this session | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] Alice | |hdrext:ssrc-audio-levelaudio-level | supports RTP header | | | extension to | | | indicate audio | | | levels | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |-bundle-negotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2122194687 192.0.2.4 | [RFC5245] - RTPHost| | 61665 typ host | Host Candidate | | a=candidate:1 1 UDP 1685987071 | [RFC5245] - RTP | | 203.0.113.141 54609 typ srflx raddr | Server ReflexiveICE| | 192.0.2.4 rport 61665 | ICE Candidate | | a=candidate:0 2 UDP 2122194687 192.0.2.4 | [RFC5245] - RTCP | | 61667 typ host | Host Candidate | | a=candidate:1 2 UDP 1685987071 | [RFC5245] - RTCP | | 203.0.113.141 60065 typ srflx raddr | Server ReflexiveICE| | 192.0.2.4 rport 61667 | ICE Candidate | | a=end-of-candidates |[I-D.ietf-mmusic-tri[I-D.ietf-mmusic-tr | | |ckle-ice]ickle-ice] |+--------------------------------------------+----------------------++---------------------------------------------+---------------------+ Table 1: 5.2.1 SDP Offer+-------------------------------------------+-----------------------++---------------------------------------------+---------------------+ | Answer 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=group:BUNDLE audio |[I-D.ietf-mmusic-sdp-[I-D.ietf-mmusic-sd | | |bundle-negotiation]p-bundle-negotiatio | | | n] | | a=ice-options:trickle |[I-D.ietf-mmusic-tric[I-D.ietf-mmusic-tr | | |kle-ice]ickle-ice] | |a=identity:ew0KICAiaWRwIjp7DQogICAgImRvbWa=identity:ew0KICAiaWRwIjp7DQogICAgImRvbWFp | Section 5.6 of[I-D.i |[I-D |FpbiI6ICJjaXNjb3NwYXJrLmNvbSIsDQogICAg In | etf-rtcweb-security-a| biI6ICJjaXNjb3NwYXJrLmNvbSIsDQogICAg InByb3 |Byb3RvY29sIjogImRlZmF1bHQiDQogIH0sDQogICJ.ietf-rtcweb-securi |rch]| RvY29sIjogImRlZmF1bHQiDQogIH0sDQogICJhc3Nlc |hc3NlcnRpb24iOiAibEp3WkVocmFVOXBTblJo V0Uty-arch] | | nRpb24iOiAibEp3WkVocmFVOXBTblJo V0U1d1VVYzF |1d1VVYzFjR0ZYV1hWaFNGVnBabEV1U1RWUWRHaEtO| | jR0ZYV1hWaFNGVnBabEV1U1RWUWRHaEtORkZEVDA1VE |RkZEVDA1VE9GVlhkMjVPT1VoM01FZGFURGwz ZDBS| | 9GVlhkMjVPT1VoM01FZGFURGwz ZDBSQlZHUnJUV3RG |QlZHUnJUV3RGVw0KICAgICAgICAgICAgICBsbG1kb| | Vw0KICAgICAgICAgICAgICBsbG1kbE5WVFRKNlVtZDV |E5WVFRKNlVtZDVSMDlXU0dnelJtcG5jMkZQ Wmtsa| | SMDlXU0dnelJtcG5jMkZQ Wmtsa1JuRnNOVXg2YXpCR |1JuRnNOVXg2YXpCRmJuZFZPVE5RT1VsQ1EweFpPV3| | mJuZFZPVE5RT1VsQ1EweFpPV3RpYTNWMWMwVjFTMjVZ |RpYTNWMWMwVjFTMjVZUkdWTkxUTklODQog ICAgIC| | UkdWTkxUTklODQog ICAgICAgICAgICAgIFdGbWRUSn |AgICAgICAgIFdGbWRUSnZabDlDVGxaalVuQjNNbWR| | ZabDlDVGxaalVuQjNNbWRCZGxOQmJWUjZTbGx0Y0Vwc |CZGxOQmJWUjZTbGx0Y0VwcU1GRXRkbVYw VG10VlQ| | U1GRXRkbVYw VG10VlQxaHVaRTlITFVJelQzWkdiM1F |xaHVaRTlITFVJelQzWkdiM1F3WlZORU5sWlNOVWRo| | 3WlZORU5sWlNOVWRoYjJ3eWMNCiAgICAgICAgICAgIC |YjJ3eWMNCiAgICAgICAgICAgICAgR2R1 UzNGU1Rr| | AgR2R1 UzNGU1RrdE9kM2RhY0VaMWVVWlpiRlJvZEhK |dE9kM2RhY0VaMWVVWlpiRlJvZEhKSWRHTmlUMTlXV| || jNvNFFuWnBUVGhLUzI1T2RFeFdkMUp4SWRHTmlUMTlXVjNvNFFuWnBUVGhLUzI1T2RFeFdkMUp | | | 4 TlVoTVgyWkxUbFJDTnpGRFlrb3lXbWg1VyINCn0= | | | ****** Audio m=line ********* |**************************************** | | |****************** | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 0 8 | [RFC4566] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta |[I-D.ietf-mmusic-msid[I-D.ietf-mmusic-ms | | |]id] Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendrecv | [RFC3264] - Bob can | | | send and recv audio | | a=rtpmap:109 opus/48000/2 | [RFC7587] Opus | | | Codec | | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMUAudio| | | Audio Codec | | a=rtpmap:8 PCMA/8000 | [RFC3551] PCMAAudio| | | Audio Codec | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:05067423 | [RFC5245] - ICEuser| | | user fragment | |a=ice-a=ice-pwd:1747d1ee3474a28a397a4c3f3af08a068 | [RFC5245] - ICE | |pwd:1747d1ee3474a28a397a4c3f3af08a068| password parameter | | a=fingerprint:sha-2566B:8B:F0:65:5F:78:E6B:8B:F0:65:5F:78:E2: | [RFC5245] - DTLS | |2:51:3B:AC:6F:F3:3F:46:1B:35 :DC:B8:5F:6451:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | Fingerprint forSRTP| |:1A:24:C2:43:F0:A1:58:D0:A1:2C:19:084:C2:43:F0:A1:58:D0:A1:2C:19:08 | SRTP | | a=setup:active | [RFC5763] - Bob is | | | the DTLS client | |a=tls-id:1a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 |[I-D.ietf-mmusic-dtls[I-D.ietf-mmusic-dt | | |-sdp]ls-sdp] | | a=rtcp-mux | [RFC5761] - Bob can | | | perform RTP/RTCP | | | Muxing on port | | | 49203 | | a=rtcp-rsize | [RFC5506] - Bob | | | intends to use | | | reduced size RTCPfor| | | for this session | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] Bob | |hdrext:ssrc-audio-levelaudio-level | supports audiolevel| | | level RTP headerextension| | | extension as well | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |bundle-negotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2122194687 198.51.100.7 | [RFC5245] -RTP/RTCP| |198.51.100.751556 typ host | RTP/RTCP Host ICE | | | Candidate | | a=candidate:1 1 UDP 1685987071 203.0.113.77 | [RFC5245] -RTP/RTCP| |203.0.113.7749203 typ srflx raddr 198.51.100.7 rport | RTP/RTCP Server | | 51556 | Reflexive ICE | |198.51.100.7 rport 51556| Candidate | | a=end-of-candidates |[I-D.ietf-mmusic-tric[I-D.ietf-mmusic-tr | | |kle-ice]ickle-ice] |+-------------------------------------------+-----------------------++---------------------------------------------+---------------------+ Table 2: 5.2.1 SDP Answer 5.2.2. Audio/Video Session Alice and Bob establish a two-way audio and video session with Opus as the audio codec and H.264 as the video codec. 2-Way Audio,Video Session Alice Bob | | | | |Offer(Audio:Opus,PCMU,PCMA Video:H.264,VP8) | |------------------------------------------->| | | | | | Answer(Audio:Opus,Video:H.264) | |<-------------------------------------------| | | | | | Two-way Opus Audio, H.264 Video | |............................................| | | 5.2.2.1. IPv4 audio/video session This section shows the IPv4 only Offer/Answer exchange.+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Offer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] - SessionOrigin| | | Origin Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE audio video |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | |egotiation]p-bundle-negotiatio | | | n] | | a=group:LS audio video | [RFC5888] - Alicewants to| | | wants to lip sync | | | her audio and video | | | sreams | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 54609 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 0 8 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta |[I-D.ietf-mmusic-msid][I-D.ietf-mmusic-ms | | | id] Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendrecv | [RFC3264] - Alicecan send| | | can send and recv | | | audio | | a=rtpmap:109 opus/48000/2 | [RFC7587] - Opus | | | Codec 48khz, 2 | | |2channels | | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMU | | | Audio Codec | | a=rtpmap:8 PCMA/8000 | [RFC3551] PCMA | | | Audio Codec | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:074c6550 | [RFC5245] - ICE | | | user fragment | |a=ice-pwd:a28a397a4c3f31747d1ee34a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [RFC5245] - ICEpassword| |74af08a068| password parameter | | a=fingerprint:sha-25619:E2:1C:3B19:E2:1C:3B:4B:9F:81: | [RFC5245] - DTLSFingerprint| |:4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | Fingerprint forSRTP ||:04: BB:05:2F:70:9F:04:A9:0E:05:E| 4:A9:0E:05:E9:26:33:E8:70:88:A2 || 9:26:33:E8:70:88:A2 |SRTP | | a=setup:actpass | [RFC5763] - Alice | | | can act as DTLS | | |DTLSclient or server | |a=tls-id:1a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 | [I-D.ietf-mmusic-dt | |[I-D.ietf-mmusic-dtls-sdp]| ls-sdp] | | a=rtcp-mux | [RFC5761] - Alice | | | can perform | | | RTP/RTCP Muxing | | a=rtcp-mux-only |[I-D.ietf-mmusic-mux-exclusiv[I-D.ietf-mmusic-mu | | |e]x-exclusive] | | a=rtcp-rsize | [RFC5506] - Alice | | | intends to use | | |usereduced size RTCPfor| | | for this session | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2122194687 192.0.2.4 | [RFC5245] -RTP/RTCP Host| |192.0.2.461665 typ host | RTP/RTCP Host | | | Candidate | | a=candidate:1 1 UDP 1685987071 | [RFC5245] -RTP/RTCP Server| | 203.0.113.141 54609 typ srflx raddr |Reflexive ICE CandidateRTP/RTCP Server | |raddr192.0.2.4 rport 61665 | Reflexive ICE | |a=end-of-candidates|[I-D.ietf-mmusic-trickle-ice]Candidate | |******a=end-of-candidates | [I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Video m=line ********* |************************************************ | |m=video 54609 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=video 0 UDP/TLS/RTP/SAVPF 99 120 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=bundle-only | [I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | | | n] | | a=mid:video | [RFC5888] | | a=msid:ma tb | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tb) | | a=sendrecv | [RFC3264] - Alicecan send| | | can send and recv | | | video | | a=rtpmap:99 H264/90000 | [RFC6184] - H.264 | | | Video Codec | | a=fmtp:99 profile-level- | [RFC6184] | | id=4d0028;packetization-mode=1 | | | a=rtpmap:120 VP8/90000 | [RFC7741] - VP8 | | | video codec | | a=rtcp-fb:99 nack | [RFC5104] - | | | Indicates NACK RTCP | | |RTCPfeedback support | | a=rtcp-fb:99 nack pli | [RFC5104] - | | | Indicates support | | | for Picture lossIndication| | | 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 | | |RTCPfeedback support | | a=rtcp-fb:120 nack pli | [RFC5104] - | | | Indicates support | | | for Picture lossIndication| | | Indication and NACK | | a=rtcp-fb:120 ccm fir | [RFC5104] - Full | | | Intra Frame | | | Request-Codec | | | Control Message | | | support | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ Table 3: 5.2.2.1 SDP Offer+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Answer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - SessionOrigin| | | Origin Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE audio video |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | |egotiation]| n] | | a=group:LS audio video | [RFC5888] - Bob | | | agrees to do the | | |thesame | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 49203 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendrecv | [RFC3264] - Bob cansend and| | | send and recv audio | | a=rtpmap:109 opus/48000/2 | [RFC7587] - Bob | | | accepts only Opus | | |OpusCodec | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:c300d85b | [RFC5245] - ICEusername| | | username frag | |a=ice-pwd:de4e99bd291c325921d5d47a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [RFC5245] - ICEpassword| |efbabd9a2| password | | a=fingerprint:sha-2566B:8B:F0:656B:8B:F0:65:5F:78:E2: | [RFC5245] - DTLSFingerprint| |:5F:78:E2:51:3B:AC:6F:F3:3F:46:1B51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | Fingerprint forSRTP | | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A || |1:58:D0:A1:2C:19:084:C2:43:F0:A1:58:D0:A1:2C:19:08 | SRTP | | a=setup:active | [RFC5763] - Bob is | | | the DTLS client | | a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 |client[I-D.ietf-mmusic-dt | |a=tls-id:1|[I-D.ietf-mmusic-dtls-sdp]ls-sdp] | | a=rtcp-mux | [RFC5761] - Bob canperform| | | perform RTP/RTCP | | | Muxing | | a=rtcp-mux-only |[I-D.ietf-mmusic-mux-exclusiv[I-D.ietf-mmusic-mu | | |e]x-exclusive] | | a=rtcp-rsize | [RFC5506] - Bob | | | intends to use | | |usereduced size RTCPfor| | | for this session | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 3618095783 198.51.100.7 | [RFC5245] -RTP/RTCP Host ICE| |198.51.100.749203 typ host | RTP/RTCP Host ICE | | | Candidate | | a=candidate:1 1 UDP 565689203 203.0.113.77 | [RFC5245] -RTP/RTCP Server| |203.0.113.7749203 typ srflx raddr 198.51.100.7 rport | RTP/RTCP Server | | 51556 | Reflexive ICECandidate| |raddr 198.51.100.7 rport 51556| Candidate | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Video m=line ********* |************************************************ | |m=video 49203 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=video 0 UDP/TLS/RTP/SAVPF 99 | [RFC4566] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=bundle-only | [I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | | | n] | | a=mid:video | [RFC5888] | | a=msid:ma tb | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tb) | | a=sendrecv | [RFC3264] - Bob cansend and| | | send and recv video | | a=rtpmap:99 H264/90000 | [RFC6184] - Bob | | | accepts H.264 Video | | |VideoCodec. | | a=fmtp:99 profile-level- | [RFC6184] | | id=4d0028;packetization-mode=1 | | | a=rtcp-fb:99 nack | [RFC5104] - | | | Indicates support | | | for NACK based RTCP | | | feedback | | a=rtcp-fb:99 nack pli | [RFC5104] - | | | Indicates support | | | for Picture lossIndication| | | Indication and NACK | | a=rtcp-fb:99 ccm fir | [RFC5104] - Full | | | Intra Frame | | | Request- CodecControl| | | Control Message | | | support | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio |+-----------------------------------+-------------------------------+| | n] | +---------------------------------------------+---------------------+ Table 4: 5.2.2.1 SDP Answer 5.2.2.2. Dual Stack audio/video session This section captures offer/answer exchange when Alice and Bob support both IPv4 and IPv6 host addresses.+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Offer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] - SessionOrigin| | | Origin Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE audio video |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | |egotiation]| n] | | a=group:LS audio video | [RFC5888] - Alicewants to| | | wants to lip sync | | | her audio and video | | | sreams | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 54609 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 0 8 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendrecv | [RFC3264] - Alicecan send| | | can send and recv | | | audio | | a=rtpmap:109 opus/48000/2 | [RFC7587] - Opus | | | Codec 48khz, 2 | | |2channels | | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMU | | | Audio Codec | | a=rtpmap:8 PCMA/8000 | [RFC3551] PCMA | | | Audio Codec | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:074c6550 | [RFC5245] - ICE | | | user fragment | |a=ice-pwd:a28a397a4c3f31747d1ee34a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [RFC5245] - ICEpassword| |74af08a068| password parameter | | a=fingerprint:sha-25619:E2:1C:3B19:E2:1C:3B:4B:9F:81: | [RFC5245] - DTLSFingerprint| |:4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | Fingerprint forSRTP ||:04: BB:05:2F:70:9F:04:A9:0E:05:E| 4:A9:0E:05:E9:26:33:E8:70:88:A2 || 9:26:33:E8:70:88:A2 |SRTP | | a=setup:actpass | [RFC5763] - Alice | | | can act as DTLS | | |DTLSclient or server | |a=tls-id:1a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 |[I-D.ietf-mmusic-dtls-sdp][I-D.ietf-mmusic-dt | | | ls-sdp] | | a=rtcp-mux | [RFC5761] - Alice | | | can perform | | | RTP/RTCP Muxing | | a=rtcp-mux-only |[I-D.ietf-mmusic-mux-exclusiv[I-D.ietf-mmusic-mu | | |e]x-exclusive] | | a=rtcp-rsize | [RFC5506] - Alice | | | intends to use | | |usereduced size RTCPfor| | | for this session | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2122194687 192.0.2.4 | [RFC5245] -RTP/RTCP Host| |192.0.2.461665 typ host | RTP/RTCP Host | | | Candidate | | a=candidate:0 1 UDP 21221946872| [RFC5245] -RTP/RTCP IPv6| |001:DB8:8101:3a55:4858:a2a9:22ff:2001:DB8:8101:3a55:4858:a2a9:22ff:99b9 | RTP/RTCP IPv6 HostCandidate| |99b961665 typ host | Candidate | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Video m=line ********* |************************************************ | |m=video 54609 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=video 0 UDP/TLS/RTP/SAVPF 99 120 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=bundle-only | [I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | | | n] | | a=mid:video | [RFC5888] | | a=msid:ma tb | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tb) | | a=sendrecv | [RFC3264] - Alicecan send| | | can send and recv | | | video | | a=rtpmap:99 H264/90000 | [RFC6184] - H.264 | | | Video Codec | | a=fmtp:99 profile-level- | [RFC6184] | | id=4d0028;packetization-mode=1 | | | a=rtpmap:120 VP8/90000 | [RFC7741] - VP8 | | | video codec | | a=rtcp-fb:99 nack | [RFC5104] - | | | Indicates NACK RTCP | | |RTCPfeedback support | | a=rtcp-fb:99 nack pli | [RFC5104] - | | | Indicates support | | | for Picture lossIndication| | | 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 | | |RTCPfeedback support | | a=rtcp-fb:120 nack pli | [RFC5104] - | | | Indicates support | | | for Picture lossIndication| | | Indication and NACK | | a=rtcp-fb:120 ccm fir | [RFC5104] - Full | | | Intra Frame | | | Request-Codec | | | Control Message | | | support | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio |+-----------------------------------+-------------------------------+| | n] | +---------------------------------------------+---------------------+ Table 5: 5.2.2.2 SDP Offer+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Answer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - SessionOrigin| | | Origin Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE audio video |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio |egotiation]| | n] | | a=group:LS audio video | [RFC5888] - Bob | | | agrees to do the | | |thesame | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 49203 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendrecv | [RFC3264] - Bob cansend and| | | send and recv audio | | a=rtpmap:109 opus/48000/2 | [RFC7587] - Bob | | | accepts only Opus | | |OpusCodec | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:c300d85b | [RFC5245] - ICEusername| | | username frag | |a=ice-pwd:de4e99bd291c325921d5d47a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [RFC5245] - ICEpassword| |efbabd9a2| password | | a=fingerprint:sha-2566B:8B:F0:656B:8B:F0:65:5F:78:E2: | [RFC5245] - DTLSFingerprint| |:5F:78:E2:51:3B:AC:6F:F3:3F:46:1B51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | Fingerprint forSRTP | | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A || |1:58:D0:A1:2C:19:084:C2:43:F0:A1:58:D0:A1:2C:19:08 | SRTP | | a=setup:active | [RFC5763] - Bob is | | | the DTLS client | | a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 |client[I-D.ietf-mmusic-dt | |a=tls-id:1|[I-D.ietf-mmusic-dtls-sdp]ls-sdp] | | a=rtcp-mux | [RFC5761] - Bob canperform| | | perform RTP/RTCP | | | Muxing | | a=rtcp-mux-only |[I-D.ietf-mmusic-mux-exclusiv[I-D.ietf-mmusic-mu | | |e]x-exclusive] | | a=rtcp-rsize | [RFC5506] - Bob | | | intends to use | | |usereduced size RTCPfor| | | for this session | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 3618095783 198.51.100.7 | [RFC5245] -RTP/RTCP Host ICE| |198.51.100.749203 typ host | RTP/RTCP Host ICE | | | Candidate | | a=candidate:0 1 UDP 361809578320| [RFC5245] -RTP/RTCP IPv6| |01:DB8:30c:1266:5916:3779:22f6:772001:DB8:30c:1266:5916:3779:22f6:77f7 49203 | RTP/RTCP IPv6 HostICE Candidate| |f7 49203typ host | ICE Candidate | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Video m=line ********* |************************************************ | |m=video 49203 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=video 0 UDP/TLS/RTP/SAVPF 99 | [RFC4566] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=bundle-only | [I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | | | n] | | a=mid:video | [RFC5888] | | a=msid:ma tb | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tb) | | a=sendrecv | [RFC3264] - Bob cansend and| | | send and recv video | | a=rtpmap:99 H264/90000 | [RFC6184] - Bob | | | accepts H.264 Video | | |VideoCodec. | | a=fmtp:99 profile-level- | [RFC6184] | | id=4d0028;packetization-mode=1 | | | a=rtcp-fb:99 nack | [RFC5104] - | | | Indicates support | | | for NACK based RTCP | | | feedback | | a=rtcp-fb:99 nack pli | [RFC5104] - | | | Indicates support | | | for Picture lossIndication| | | Indication and NACK | | a=rtcp-fb:99 ccm fir | [RFC5104] - Full | | | Intra Frame | | | Request- CodecControl| | | Control Message | | | support | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | |+-----------------------------------+-------------------------------+| n] | +---------------------------------------------+---------------------+ Table 6: 5.2.2.2 SDP Answer 5.2.3. Data Only Session This scenario illustrates the SDP negotiated to setup a data-only session based on the SCTP Data Channel, thus enabling use-cases such as file-transfer, real-time game control for example. 2-Way DataChannel Session Alice Bob | | | | | | | Offer(DataChannel) | |-------------------------------->| | | | | | Answer(DataChannel) | |<--------------------------------| | | | | | Two-way SCTP based DataChannel | |.................................| | | | |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Offer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] - SessionOrigin| | | Origin Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE data |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | |egotiation]p-bundle-negotiatio | | | n] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Application m=line ********* |************************************************ | |*********| ********** | | m=application 54609 UDP/DTLS/SCTP webrtc- |[I-D.ietf-rtcweb-data-channel[I-D.ietf-rtcweb-da | |webrtc-datachanneldatachannel |]ta-channel] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=mid:data | [RFC5888] | | a=sendrecv | [RFC3264] - Alicecan send| | | can send and recv | | | non-media data | | a=sctp-port:5000 |[I-D.ietf-mmusic-sctp-sdp][I-D.ietf-mmusic-sc | | | tp-sdp] | | a=max-message-size:100000 |[I-D.ietf-mmusic-sctp-sdp][I-D.ietf-mmusic-sc | | | tp-sdp] | | a=setup:actpass | [RFC5763] - Alice | | | can act as DTLS | | |DTLSclient or server | |a=tls-id:1a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 | [I-D.ietf-mmusic-dt | |[I-D.ietf-mmusic-dtls-sdp]| ls-sdp] | | a=ice-ufrag:074c6550 | [RFC5245] - SessionLevel ICE| | | Level ICE parameter | |a=ice-pwd:a28a397a4c3f31747d1ee34a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [RFC5245] - SessionLevel ICE| |74af08a068| Level ICE parameter | | a=fingerprint:sha-25619:E2:1C:3B19:E2:1C:3B:4B:9F:81: | [RFC5245] - SessionDTLS| |:4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | DTLS Fingerprintfor SRTP | | :04 :BB:05:2F:70:9F:04:A9:0E:05:E || |9:26:33:E8:70:88:A24:A9:0E:05:E9:26:33:E8:70:88:A2 | for SRTP | | a=candidate:0 1 UDP 2113667327 192.0.2.4 | [RFC5245] | |192.0.2.461665 typ host | | | a=candidate:1 1 UDP 1694302207 | [RFC5245] | | 203.0.113.141 54609 typ srflx raddr | | |raddr192.0.2.4 rport 61665 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr |+-----------------------------------+-------------------------------+| | ickle-ice] | +---------------------------------------------+---------------------+ Table 7: 5.2.3 SDP Offer+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Answer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - SessionOrigin| | | Origin Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE data |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | | |egotiation]n] | | ****** Application m=line ********* |************************************************ | |*********| ********** | | m=application 49203 UDP/DTLS/SCTP webrtc- |[I-D.ietf-mmusic-sctp-sdp][I-D.ietf-mmusic-sc | |webrtc-datachanneldatachannel | tp-sdp] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=mid:data | [RFC5888] | | a=sendrecv | [RFC3264] - Bob can | | | send and recv non- | | |recv non-mediamedia data | | a=sctp-port:5000 |[I-D.ietf-mmusic-sctp-sdp][I-D.ietf-mmusic-sc | | | tp-sdp] | | a=max-message-size:100000 |[I-D.ietf-mmusic-sctp-sdp][I-D.ietf-mmusic-sc | | | tp-sdp] | | a=setup:active | [RFC5763] - Bob is | | | the DTLS client | | a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 |client[I-D.ietf-mmusic-dt | |a=tls-id:1|[I-D.ietf-mmusic-dtls-sdp]ls-sdp] | | a=ice-ufrag:c300d85b | [RFC5245] - Session | | | Level ICE username | | |usernamefrag | |a=ice-pwd:de4e99bd291c325921d5d47a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [RFC5245] - SessionLevel ICE| |efbabd9a2| Level ICE password | | a=fingerprint:sha-2566B:8B:F0:656B:8B:F0:65:5F:78:E2: | [RFC5245] - SessionDTLS | | :5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | Fingerprint for SRTP| |:35 :DC:B8:5F:64:1A:24:C2:43:F0:A51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | DTLS Fingerprint | |1:58:D0:A1:2C:19:084:C2:43:F0:A1:58:D0:A1:2C:19:08 | for SRTP | | a=candidate:0 1 UDP 2113667327 198.51.100.7 | [RFC5245] | |198.51.100.751556 typ host | | | a=candidate:1 1 UDP 1694302207 203.0.113.77 | [RFC5245] | |203.0.113.7749203 typ srflx| | |raddr 198.51.100.7 rport | | | 51556 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr |+-----------------------------------+-------------------------------+| | ickle-ice] | +---------------------------------------------+---------------------+ Table 8: 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=inactive in the Answer. Audio On Hold Alice Bob | | | | | Offer(Audio:Opus) | |-------------------------------->| | | | | | Answer(Audio:Opus,a=inactive) | |<--------------------------------| | | | | | One-way Opus Audio | |.................................| | | |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Offer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] - SessionOrigin| | | Origin Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE audio |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | | |egotiation]n] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 54609 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendrecv | [RFC3264] - Alicecan send| | | can send and recv | | | audio | | a=rtpmap:109 opus/48000/2 | [RFC7587] - Opus | | | Codec 48khz, 2 | | |2channels | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:074c6550 | [RFC5245] - ICEuser| | | user fragment | |a=ice-pwd:a28a397a4c3f31747d1ee34a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [RFC5245] - ICEpassword| |74af08a068| password | | a=fingerprint:sha-25619:E2:1C:3B19:E2:1C:3B:4B:9F:81: | [RFC5245] - DTLSFingerprint| |:4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | Fingerprint forSRTP | | :04 :BB:05:2F:70:9F:04:A9:0E:05:E || |9:26:33:E8:70:88:A24:A9:0E:05:E9:26:33:E8:70:88:A2 | SRTP | | a=setup:actpass | [RFC5763] - Alice | | | can act as DTLS | | |DTLSclient or server | |a=tls-id:1a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 |[I-D.ietf-mmusic-dtls-sdp][I-D.ietf-mmusic-dt | | | ls-sdp] | | a=rtcp-mux | [RFC5761] - Alice | | | can perform | | | RTP/RTCP Muxing | | a=rtcp-mux-only |[I-D.ietf-mmusic-mux-exclusiv[I-D.ietf-mmusic-mu | | |e]x-exclusive] | | a=rtcp-rsize | [RFC5506] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2113667327 192.0.2.4 | [RFC5245] | |192.0.2.461665 typ host | | | a=candidate:1 1 UDP 1685987071 | [RFC5245] | | 203.0.113.141 54609 typ srflx raddr | | |raddr192.0.2.4 rport 61665 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr |+-----------------------------------+-------------------------------+| | ickle-ice] | +---------------------------------------------+---------------------+ Table 9: 5.2.4 SDP Offer+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Answer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - SessionOrigin| | | Origin Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE audio |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | | |egotiation]n] | | ****** Audio m=line ********* |************************************************ | |m=audio 49203 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=inactive | [RFC3264] - Bobputs call On| | | puts call On Hold | | a=rtpmap:109 opus/48000/2 | [RFC7587] - Bobaccepts Opus| | | accepts Opus Codec | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:c300d85b | [RFC5245] - ICE | | | username frag | |a=ice-pwd:de4e99bd291c325921d5d47a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [RFC5245] - ICEpassword| |efbabd9a2| password | | a=fingerprint:sha-2566B:8B:F0:656B:8B:F0:65:5F:78:E2: | [RFC5245] - DTLSFingerprint| |:5F:78:E2:51:3B:AC:6F:F3:3F:46:1B51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | Fingerprint forSRTP| |:35 :DC:B8:5F:64:1A:24:C2:43:F0:A | | | 1:58:D0:A1:2C:19:084:C2:43:F0:A1:58:D0:A1:2C:19:08 | SRTP | | a=setup:active | [RFC5763] - Bob is | | | the DTLS client | | a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 |client[I-D.ietf-mmusic-dt | |a=tls-id:1|[I-D.ietf-mmusic-dtls-sdp]ls-sdp] | | a=rtcp-mux | [RFC5761] - Bob canperform| | | perform RTP/RTCP | | | Muxing | | a=rtcp-mux-only |[I-D.ietf-mmusic-mux-exclusiv[I-D.ietf-mmusic-mu | | |e]x-exclusive] | | a=rtcp-rsize | [RFC5506] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2113667327 198.51.100.7 | [RFC5245] - Hostcandidate| |198.51.100.751556 typ host | candidate | | a=candidate:1 1 UDP 1685987071 | [RFC5245] - ServerReflexive| | 203.0.113.141 49203 typ srflx raddr | Reflexive candidate | |raddr198.51.100.7 rport 51556 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | |+-----------------------------------+-------------------------------+ickle-ice] | +---------------------------------------------+---------------------+ Table 10: 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 [RFC4733] tones (for DTMF). Bob accepts both the audio streams by choosing Opus as the audio codec and telephone-event for the other stream. Audio Session with DTMF Alice Bob | | | | | | | Offer(Audio:Opus,PCMU,PCMA Audio:telephone-event)| |-------------------------------------------------->| | | | | | Answer(Audio:Opus, Audio:telephone-event) | |<--------------------------------------------------| | | | | | Opus audio stream and telephone-event stream | |...................................................| | |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Offer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] - SessionOrigin| | | Origin Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE audio dtmf |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio |egotiation]| | n] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 54609 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 0 8 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendrecv | [RFC3264] - Alicecan send| | | can send and recv | | | audio | | a=rtpmap:109 opus/48000/2 | [RFC7587] - Opus | | | Codec 48khz, 2 | | |2channels | | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMU | | | Audio Codec | | a=rtpmap:8 PCMA/8000 | [RFC3551] PCMA | | | Audio Codec | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:074c6550 | [RFC5245] - ICEuser| | | user fragment | |a=ice-pwd:a28a397a4c3f31747d1ee34a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [RFC5245] - ICEpassword| |74af08a068| password parameter | | a=fingerprint:sha-25619:E2:1C:3B19:E2:1C:3B:4B:9F:81: | [RFC5245] - DTLSFingerprint| |:4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | Fingerprint forSRTP | | :04 :BB:05:2F:70:9F:04:A9:0E:05:E || |9:26:33:E8:70:88:A24:A9:0E:05:E9:26:33:E8:70:88:A2 | SRTP | | a=setup:actpass | [RFC5763] - Alice | | | can act as DTLS | | |DTLSclient or server | |a=tls-id:1a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 |[I-D.ietf-mmusic-dtls-sdp][I-D.ietf-mmusic-dt | | | ls-sdp] | | a=rtcp-mux | [RFC5761] - Alice | | | can perform | | | RTP/RTCP Muxing | | a=rtcp-mux-only |[I-D.ietf-mmusic-mux-exclusiv[I-D.ietf-mmusic-mu | | |e]x-exclusive] | | a=rtcp-rsize | [RFC5506] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2122194687 192.0.2.4 | [RFC5245] | |192.0.2.461665 typ host | | | a=candidate:1 1 UDP 1685987071 | [RFC5245] | | 203.0.113.141 54609 typ srflx raddr | | |raddr192.0.2.4 rport 61665 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** DTMF m=line ********* |************************************************ | | | ********** | | m=audio 0 UDP/TLS/RTP/SAVPF 126 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | |m=audio 54609 UDP/TLS/RTP/SAVPFa=bundle-only |[RFC4566][I-D.ietf-mmusic-sd | |126| p-bundle-negotiatio | |c=IN IP4 203.0.113.141|[RFC4566]n] | | a=mid:dtmf | [RFC5888] | | a=msid:ma tb | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tb) | | a=sendonly | [RFC3264] - Alice | | | can send DTMF | | |DTMFEvents | | a=rtpmap:126 telephone-event/8000 | [RFC4733] | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | |+-----------------------------------+-------------------------------+n] | +---------------------------------------------+---------------------+ Table 11: 5.2.5 SDP Offer+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Answer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - SessionOrigin| | | Origin Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE audio dtmf |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio |egotiation]| | n] | | ****** Audio m=line ********* |************************************************ | |m=audio 49203 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendrecv | [RFC3264] - Bob can | | | send and receive | | |receiveOpus audio | | a=rtpmap:109 opus/48000/2 | [RFC7587] - Bobaccepts Opus| | | accepts Opus Codec | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:c300d85b | [RFC5245] - ICEusername| | | username frag | |a=ice-pwd:de4e99bd291c325921d5d47a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [RFC5245] - ICEpassword| |efbabd9a2| password | | a=fingerprint:sha-2566B:8B:F0:656B:8B:F0:65:5F:78:E2: | [RFC5245] -Fingerprint for ||:5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | SRTP| 51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 |:35 :DC:B8:5F:64:1A:24:C2:43:F0:A |Fingerprint for | |1:58:D0:A1:2C:19:084:C2:43:F0:A1:58:D0:A1:2C:19:08 | SRTP | | a=setup:active | [RFC5763] - Bob is | | | the DTLS client | | a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 |client[I-D.ietf-mmusic-dt | |a=tls-id:1|[I-D.ietf-mmusic-dtls-sdp]ls-sdp] | | a=rtcp-mux | [RFC5761] - Bob canperform| | | perform RTP/RTCP | | | Muxing on port | | | 49203 | | a=rtcp-mux-only |[I-D.ietf-mmusic-mux-exclusiv[I-D.ietf-mmusic-mu | | |e]x-exclusive] | | a=rtcp-rsize | [RFC5506] - Alice | | | intends to use | | |usereduced size RTCPfor| | | for this session | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2122194687 198.51.100.7 | [RFC5245] | |198.51.100.751556 typ host | | | a=candidate:1 1 UDP 1685987071 203.0.113.77 | [RFC5245] | |203.0.113.7749203 typ srflx| | |raddr 198.51.100.7 rport | | | 51556 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** DTMF m=line ********* |************************************************ | |m=audio 49203 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 0 UDP/TLS/RTP/SAVPF 126 | [RFC4566] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=bundle-only | [I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | | | n] | | a=mid:dtmf | [RFC5888] | | a=msid:ma tb | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tb) | | a=recvonly | [RFC3264] - Alice | | | can receive DTMF | | |DTMFevents | | a=rtpmap:126 telephone-event/8000 | [RFC4733] | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio |+-----------------------------------+-------------------------------+| | n] | +---------------------------------------------+---------------------+ Table 12: 5.2.5 SDP Answer 5.2.6. One Way Audio/Video Session - Document Camera In this scenario Alice and Bob engage in a 1 way audio and video session with Bob receiving Alice's audio and her presentation slides as video stream. One Way Audio & Video Session - Document Camera Alice Bob | | | | | | | Alice Offers sendonly audio and video streams. | | The video stream corresponds to her presentation | | | | Offer(Audio:Opus, Video: VP8) | |----------------------------------------------------->| | | | | | (Audio:Opus, Video: VP8) | |<-----------------------------------------------------| | | | | | One-way Opus Audio, VP8 Video | |......................................................| | Bob can hear Alice and see her presentation slides.| | | | |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | 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=group:BUNDLE audio video |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio |egotiation]| | n] | | a=group:LS audio video | [RFC5888] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 54609 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendonly | [RFC3264] - Sendonly audio| | | only audio stream | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:074c6550 | [RFC5245] | |a=ice-pwd:a28a397a4c3f31747d1ee34a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [RFC5245] | |74af08a068 | | |a=fingerprint:sha-25619:E2:1C:3B19:E2:1C:3B:4B:9F:81: | [RFC5245] | |:4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 |E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | |:04 :BB:05:2F:70:9F:04:A9:0E:05:E|| | 9:26:33:E8:70:88:A24:A9:0E:05:E9:26:33:E8:70:88:A2 | | | a=setup:actpass | [RFC5763] - Alice | | | can act as DTLS | | |DTLSclient or server | |a=tls-id:1a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 |[I-D.ietf-mmusic-dtls-sdp][I-D.ietf-mmusic-dt | | | ls-sdp] | | a=rtcp-mux | [RFC5761] | | a=rtcp-mux-only |[I-D.ietf-mmusic-mux-exclusiv[I-D.ietf-mmusic-mu | | |e]x-exclusive] | | a=rtcp-rsize | [RFC5506] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2122194687 | [RFC5245] | | 203.0.113.141 54609 typ host | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Video m=line ********* |************************************************ | |m=video 54609 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=video 0 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=bundle-only | [I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | | | n] | | a=mid:video | [RFC5888] | | a=msid:ma tb | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tb) | | a=sendonly | [RFC3264] - Sendonly video| | | only video stream | | a=rtpmap:120 VP8/90000 | [RFC7741] | | a=content:slides | [RFC4796] - Alice's | | | presentation video | | | stream | | a=rtcp-fb:120 nack | [RFC5104] | | a=rtcp-fb:120 nack pli | [RFC5104] | | a=rtcp-fb:120 ccm fir | [RFC5104] | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio |+-----------------------------------+-------------------------------+| | n] | +---------------------------------------------+---------------------+ Table 13: 5.2.6 SDP Offer+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Answer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE audio video |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio |egotiation]| | n] | | a=group:LS audio video | [RFC5888] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 49203 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=recvonly | [RFC3264] - Receiveonly| | | only audio stream | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:c300d85b | [RFC5245] | |a=ice-pwd:de4e99bd291c325921d5d47a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [RFC5245] | |efbabd9a2 | | |a=fingerprint:sha-2566B:8B:F0:656B:8B:F0:65:5F:78:E2: | [RFC5245] | |:5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | | | :35 :DC:B8:5F:64:1A:24:C2:43:F0:A51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | | |1:58:D0:A1:2C:19:084:C2:43:F0:A1:58:D0:A1:2C:19:08 | | | a=setup:active | [RFC5763] - Bob is | | | the DTLS client | | a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 |client[I-D.ietf-mmusic-dt | |a=tls-id:1|[I-D.ietf-mmusic-dtls-sdp]ls-sdp] | | a=rtcp-mux | [RFC5761] | | a=rtcp-mux-only |[I-D.ietf-mmusic-mux-exclusiv[I-D.ietf-mmusic-mu | | |e]x-exclusive] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2113667327 203.0.113.77 | [RFC5245] | |203.0.113.7749203 typ host | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Video m=line ********* |************************************************ | |m=video 49203 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=video 0 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=bundle-only | [I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | | | n] | | a=mid:video | [RFC5888] | | a=msid:ma tb | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tb) | | a=recvonly | [RFC3264] | | a=rtpmap:120 VP8/90000 | [RFC7741] | | a=content:slides | [RFC4796] -presentation| | | presentation stream | | a=rtcp-fb:120 nack | [RFC5104] | | a=rtcp-fb:120 nack pli | [RFC5104] | | a=rtcp-fb:120 ccm fir | [RFC5104] | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio |+-----------------------------------+-------------------------------+| | n] | +---------------------------------------------+---------------------+ Table 14: 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 steps are performed in order to negotiate and setup a 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, selects the offerer's BUNDLE address, selects its own BUNDLE address and associates it with each BUNDLED m=line within the BUNDLE group. Once the Offer/Answer exchange completes, both Alice and Bob each end up using single RTP Session for both the Media Streams. Two-Way Secure Audio,Video with BUNDLE support unknown Alice Bob | | | | | Alice offers BUNDLE support with unique address | | for the audio and video m-line | | | | | | Offer(Audio:Opus Video:VP8) | |----------------------------------------------------->| | |Bob | |supports | |BUNDLE, | |Uses | |identical | |address | Answer(Audio:Opus Video:VP8) | |<-----------------------------------------------------| | | | 2 Way Call with Audio and Video Multiplexed | |......................................................| | |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Offer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE audio video |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio |egotiation]| | n] Alice supports | | | grouping of m=linesunder| | | under BUNDLE | | | semantics | | a=group:LS audio video | [RFC5888] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 54609 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=mid:audio | [RFC5888] Audio | | | m=line part of | | |ofBUNDLE group with aunique| | | unique port number | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendrecv | [RFC3264] | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:074c6550 | [RFC5245] | |a=ice-pwd:a28a397a4c3f31747d1ee34a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [RFC5245] | |74af08a068 | | |a=fingerprint:sha-25619:E2:1C:3B19:E2:1C:3B:4B:9F:81: | [RFC5245] | |:4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 |E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | |:04 :BB:05:2F:70:9F:04:A9:0E:05:E|| | 9:26:33:E8:70:88:A24:A9:0E:05:E9:26:33:E8:70:88:A2 | | | a=setup:actpass | [RFC5763] - Alice | | | can act as DTLS | | |DTLSclient or server | |a=tls-id:1a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 |[I-D.ietf-mmusic-dtls-sdp][I-D.ietf-mmusic-dt | | | ls-sdp] | | a=rtcp-mux | [RFC5761] | | a=rtcp:54610 IN IP4 203.0.113.141 | [RFC3605] - RTCPport| | | port different from | | | RTP Port | | a=rtcp-rsize | [RFC5506] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2122194687 192.0.2.4 | [RFC5245] - RTPhost| |192.0.2.461665 typ host | host candidate | | a=candidate:1 1 UDP 1685987071 | [RFC5245] - RTPServer| | 203.0.113.141 54609 typ srflx raddr | Server Reflexivecandidate| |raddr192.0.2.4 rport 61665 | candidate | | a=candidate:0 2 UDP 2122194687 192.0.2.4 | [RFC5245] - RTCPhost| |192.0.2.461666 typ host | host candidate | | a=candidate:1 2 UDP 1685987071 | [RFC5245] - RTCPServer| | 203.0.113.141 54610 typ srflx raddr | Server Reflexivecandidate| |raddr192.0.2.4 rport 61666 | candidate | | ****** Video m=line ********* |************************************************ | |m=video 62537 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=video 62537 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=mid:video | [RFC5888] Videom=line part| | | m=line part of the | | | Bundle group with a | | | unique port number | | a=msid:ma tb | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tb) | | a=sendrecv | [RFC3264] | | a=rtpmap:120 VP8/90000 | [RFC7741] | | a=ice-ufrag:6550074c | [RFC5245] | |a=ice-pwd:74af08a068a28a397a4c3f3a=ice-pwd:74af08a068a28a397a4c3f31747d1ee34 | [RFC5245] | |1747d1ee34 | | |a=fingerprint:sha-25619:E2:1C:3B19:E2:1C:3B:4B:9F:81: | [RFC5245] | |:4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | |E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 |:04 :BB:05:2F:70:9F:04:A9:0E:05:E| || 9:26:33:E8:70:88:A24:A9:0E:05:E9:26:33:E8:70:88:A2 | | | a=setup:actpass | [RFC5763] - Alice | | | can act as DTLS | | |DTLSclient or server | |a=tls-id:2a=tls-id:UKA29UQLTF69OJW4WNPNUO2Y0GF1FJOZ |[I-D.ietf-mmusic-dtls-sdp][I-D.ietf-mmusic-dt | | | ls-sdp] | | a=rtcp-mux | [RFC5761] | | a=rtcp:62538 IN IP4 203.0.113.141 | [RFC3605] | | a=rtcp-rsize | [RFC5506] | | a=rtcp-fb:120 nack | [RFC5104] | | a=rtcp-fb:120 nack pli | [RFC5104] | | a=rtcp-fb:120 ccm fir | [RFC5104] | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2122194687 192.0.2.4 | [RFC5245] - RTPHost| |192.0.2.461886 typ host | Host candidate | | a=candidate:1 1 UDP 1685987071 | [RFC5245] - RTPServer| | 203.0.113.141 62537 typ srflx raddr | Server Reflexivecandidate| |raddr192.0.2.4 rport 61886 | candidate | | a=candidate:0 2 UDP 2122194687 192.0.2.4 | [RFC5245] - RTCPhost| |192.0.2.461888 typ host | host candidate | | a=candidate:1 2 UDP 1685987071 | [RFC5245] - RTCPServer| | 203.0.113.141 62538 typ srflx raddr | Server Reflexivecandidate| |raddr192.0.2.4 rport 61888 | candidate |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ Table 15: 5.2.7 SDP Offer w/BUNDLE+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Answer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE audio video |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio |egotiation]| | n] Bob supports | | | BUNDLE semantics. | | a=group:LS audio video | [RFC5888] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 49203 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=mid:audio | [RFC5888] Audiom=line part| | | m=line part of the | | | BUNDLE group | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendrecv | [RFC3264] | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:c300d85b | [RFC5245] | |a=ice-pwd:de4e99bd291c325921d5d47a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [RFC5245] | |efbabd9a2 | | |a=fingerprint:sha-2566B:8B:F0:656B:8B:F0:65:5F:78:E2: | [RFC5245] | |:5F:78:E2:51:3B:AC:6F:F3:3F:46:1B | |51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 |:35 :DC:B8:5F:64:1A:24:C2:43:F0:A| || 1:58:D0:A1:2C:19:084:C2:43:F0:A1:58:D0:A1:2C:19:08 | | | a=setup:active | [RFC5763] - Bob is | | | the DTLS client | | a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 |client[I-D.ietf-mmusic-dt | |a=tls-id:1|[I-D.ietf-mmusic-dtls-sdp]ls-sdp] | | a=rtcp-mux | [RFC5761] | | a=rtcp-rsize | [RFC5506] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2122194687 198.51.100.7 | [RFC5245] | |198.51.100.749203 typ host | | | a=candidate:1 1 UDP 1685987071 203.0.113.77 | [RFC5245] | |203.0.113.7751556 typ srflx| | |raddr 198.51.100.7 rport | | | 49203 | | | ****** Video m=line ********* |************************************************ | | | ********** | | m=video 0 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | | c=IN IP4 203.0.113.77 | [RFC4566] | |m=video 49203 UDP/TLS/RTP/SAVPFa=bundle-only |[RFC4566][I-D.ietf-mmusic-sd | |120| p-bundle-negotiatio | |c=IN IP4 203.0.113.77|[RFC4566]n] | | a=mid:video | [RFC5888] Videom=line part| | | m=line part of the | | | BUNDLE group withthe| | | the port from audio | | | line repeated | | a=msid:ma tb | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tb) | | a=sendrecv | [RFC3264] | | a=rtpmap:120 VP8/90000 | [RFC7741] | | a=rtcp-fb:120 nack | [RFC5104] | | a=rtcp-fb:120 nack pli | [RFC5104] | | a=rtcp-fb:120 ccm fir | [RFC5104] | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ Table 16: 5.2.7 SDP Answer w/BUNDLE 5.2.8. Audio, Video and Data Session This example shows SDP for negotiating a session with Audio, Video and data streams between Alice and Bob with BUNDLE support known. Audio,Video,Data with BUNDLE support known Alice Bob | | | | | Alice indicates BUNDLE support with | | identical address across all the m=lines | | | | | | Offer(Audio:Opus Video:VP8 Data) | |------------------------------------------->| | |Bob does | |the same | Answer(Audio:Opus,Video:VP8 Data) | |<-------------------------------------------| | | | | | | | Two-way Audio,Video, Data multiplexed | |............................................| | | | |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Offer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE audio video data |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | |egotiation]p-bundle-negotiatio | | | n] | | a=group:LS audio video | [RFC5888] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 54609 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=mid:audio | [RFC5888] | | a=sendrecv | [RFC3264] | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:074c6550 | [RFC5245] | |a=ice-pwd:a28a397a4c3f31747d1ee34a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [RFC5245] | |74af08a068 | | |a=fingerprint:sha-25619:E2:1C:3B19:E2:1C:3B:4B:9F:81: | [RFC5245] | |:4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | |:04 :BB:05:2F:70:9F:04:A9:0E:05:E4:A9:0E:05:E9:26:33:E8:70:88:A2 | | |9:26:33:E8:70:88:A2a=setup:actpass | [RFC5763] | |a=setup:actpassa=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 |[RFC5763][I-D.ietf-mmusic-dt | |a=tls-id:1|[I-D.ietf-mmusic-dtls-sdp]ls-sdp] | | a=rtcp-mux | [RFC5761] | | a=rtcp-mux-only |[I-D.ietf-mmusic-mux-exclusiv[I-D.ietf-mmusic-mu | | |e]x-exclusive] | | a=rtcp-rsize | [RFC5506] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2122194687 192.0.2.4 | [RFC5245] | |192.0.2.461665 typ host | | | a=candidate:1 1 UDP 1685987071 | [RFC5245] | | 203.0.113.141 54609 typ srflx raddr | | |raddr192.0.2.4 rport 61665 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Video m=line ********* |************************************************ | |m=video 54609 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=video 0 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=bundle-only | [I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | | | n] | | a=mid:video | [RFC5888] | | a=msid:ma tb | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tb) | | a=sendrecv | [RFC3264] | | a=rtpmap:120 VP8/90000 | [RFC7741] | | a=rtcp-fb:120 nack | [RFC5104] | | a=rtcp-fb:120 nack pli | [RFC5104] | | a=rtcp-fb:120 ccm fir | [RFC5104] | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | ****** Application m=line ********* |************************************************ | |*********| ********** | | m=application546090 UDP/DTLS/SCTP webrtc- |[I-D.ietf-rtcweb-data-channel[I-D.ietf-rtcweb-da | |webrtc-datachanneldatachannel |]ta-channel] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=bundle-only | [I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | | | n] | | a=mid:data | [RFC5888] | | a=sctp-port:5000 |[I-D.ietf-mmusic-sctp-sdp][I-D.ietf-mmusic-sc | | | tp-sdp] | | a=max-message-size:100000 |[I-D.ietf-mmusic-sctp-sdp][I-D.ietf-mmusic-sc | | | tp-sdp] | | a=sendrecv | [RFC3264] |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ Table 17: 5.2.8 SDP Offer+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Answer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - SessionOrigin| | | Origin Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE audio video data |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | |egotiation]| n] | | a=group:LS audio video | [RFC5888] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 49203 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=mid:audio | [RFC5888] | | a=sendrecv | [RFC3264] | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:c300d85b | [RFC5245] | |a=ice-pwd:de4e99bd291c325921d5d47a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [RFC5245] | |efbabd9a2 | | |a=fingerprint:sha-2566B:8B:F0:656B:8B:F0:65:5F:78:E2: | [RFC5245] | |:5F:78:E2:51:3B:AC:6F:F3:3F:46:1B51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | | |:35 :DC:B8:5F:64:1A:24:C2:43:F0:A4:C2:43:F0:A1:58:D0:A1:2C:19:08 | | |1:58:D0:A1:2C:19:08a=setup:active | [RFC5763] | |a=setup:activea=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 |[RFC5763][I-D.ietf-mmusic-dt | |a=tls-id:1|[I-D.ietf-mmusic-dtls-sdp]ls-sdp] | | a=rtcp-mux | [RFC5761] | | a=rtcp-mux-only |[I-D.ietf-mmusic-mux-exclusiv[I-D.ietf-mmusic-mu | | |e]x-exclusive] | | a=rtcp-rsize | [RFC5506] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2122194687 198.51.100.7 | [RFC5245] | |198.51.100.751556 typ host | | | a=candidate:1 1 UDP 1685987071 203.0.113.77 | [RFC5245] | |203.0.113.7749203 typ srflx| | |raddr 198.51.100.7 rport | | | 51556 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Video m=line ********* |************************************************ | |m=video 49203 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=video 0 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=bundle-only | [I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | | | n] | | a=mid:video | [RFC5888] | | a=msid:ma tb | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tb) | | a=sendrecv | [RFC3264] | | a=rtpmap:120 VP8/90000 | [RFC7741] | | a=rtcp-fb:120 nack | [RFC5104] | | a=rtcp-fb:120 nack pli | [RFC5104] | | a=rtcp-fb:120 ccm fir | [RFC5104] | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | ****** Application m=line ********* |************************************************ | |*********| ********** | | m=application492030 UDP/DTLS/SCTP webrtc- |[I-D.ietf-mmusic-sctp-sdp][I-D.ietf-mmusic-sc | |webrtc-datachanneldatachannel | tp-sdp] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=bundle-only | [I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | | | n] | | a=mid:data | [RFC5888] | | a=sctp-port:5000 |[I-D.ietf-mmusic-sctp-sdp][I-D.ietf-mmusic-sc | | | tp-sdp] | | a=max-message-size:100000 |[I-D.ietf-mmusic-sctp-sdp][I-D.ietf-mmusic-sc | | | tp-sdp] | | a=sendrecv | [RFC3264] |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ Table 18: 5.2.8 SDP Answer 5.2.9. Audio, Video Session with BUNDLE Unsupported This use-case illustrates SDP Offer/Answer exchange where the far-end (Bob) either doesn't support media bundling or doesn't want to group m=lines over a single 5-tuple. The same is indicated by dropping the "a=group:BUNDLE" line and BUNDLE RTP header extension in the Answer SDP. On successful Offer/Answer exchange, Alice and Bob each end up using unique 5-tuple for audio and video media streams respectively. Two-Way Secure Audio,Video with BUNDLE Unsupported Alice Bob | | | | | Alice offers BUNDLE support with unique address | | for the audio and video m-line | | | | | | Offer(Audio:Opus Video:VP8) | |----------------------------------------------------->| | |Bob | |doesn't | |support | |BUNDLE | Answer(Audio:Opus Video:VP8) | |<-----------------------------------------------------| | |Bob uses | |unique | |addresses | |across the | |m=lines | | |2Way Call with Audio and Video on different 5-tuples | |......................................................| | | | |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Offer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE audio video |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | | |egotiation]n] Alice supports | | | grouping of m=linesunder| | | under BUNDLE | | | semantics | | a=group:LS audio video | [RFC5888] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 54609 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=mid:audio | [RFC5888] Audio | | | m=line part of | | |ofBUNDLE group with aunique| | | unique port number | | a=msid:ma ta |IdentifiesIdentifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendrecv | [RFC3264] | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:074c6550 | [RFC5245] | |a=ice-pwd:a28a397a4c3f31747d1ee34a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [RFC5245] | |74af08a068 | | |a=fingerprint:sha-25619:E2:1C:3B19:E2:1C:3B:4B:9F:81: | [RFC5245] | |:4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 |E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | |:04 :BB:05:2F:70:9F:04:A9:0E:05:E|| | 9:26:33:E8:70:88:A24:A9:0E:05:E9:26:33:E8:70:88:A2 | | | a=setup:actpass | [RFC5763] - Alice | | | can act as DTLS | | |DTLSclient or server | |a=tls-id:1a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 |[I-D.ietf-mmusic-dtls-sdp][I-D.ietf-mmusic-dt | | | ls-sdp] | | a=rtcp-mux | [RFC5761] | | a=rtcp:55232 IN IP4 203.0.113.141 | [RFC3605] - RTCPport| | | port different from | | | RTP port | | a=rtcp-rsize | [RFC5506] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2122194687 192.0.2.4 | [RFC5245] | |192.0.2.461665 typ host | | | a=candidate:1 1 UDP 1685987071 | [RFC5245] | | 203.0.113.141 54609 typ srflx raddr | | |raddr192.0.2.4 rport 61665 | | | a=candidate:0 2 UDP 2122194687 192.0.2.4 | [RFC5245] | |192.0.2.461666 typ host | | | a=candidate:1 2 UDP 1685987071 | [RFC5245] | | 203.0.113.141 55232 typ srflx raddr | | |raddr192.0.2.4 rport 61666 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Video m=line ********* |************************************************ | |m=video 54332 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=video 54332 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=mid:video | [RFC5888] Videom=line part| | | m=line part of the | | | BUNDLE group with a | | | unique port number | | a=msid:ma tb | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tb) | | a=sendrecv | [RFC3264] | | a=rtpmap:120 VP8/90000 | [RFC7741] | | a=ice-ufrag:7872093 | [RFC5245] | |a=ice-pwd:ee3474af08a068a28a397a4a=ice-pwd:ee3474af08a068a28a397a4c3f31747d1 | [RFC5245] | |c3f31747d1 | | |a=fingerprint:sha-25619:E2:1C:3B19:E2:1C:3B:4B:9F:81: | [RFC5245] | |:4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | |E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 |:04 :BB:05:2F:70:9F:04:A9:0E:05:E| || 9:26:33:E8:70:88:A24:A9:0E:05:E9:26:33:E8:70:88:A2 | | | a=setup:actpass | [RFC5763] - Alice | | | can act as DTLS | | |DTLSclient or server | |a=tls-id:2a=tls-id:UKA29UQLTF69OJW4WNPNUO2Y0GF1FJOZ |[I-D.ietf-mmusic-dtls-sdp][I-D.ietf-mmusic-dt | | | ls-sdp] | | a=rtcp-mux | [RFC5761] | | a=rtcp:60052 IN IP4 203.0.113.141 | [RFC3605] | | a=rtcp-rsize | [RFC5506] | | a=rtcp-fb:120 nack | [RFC5104] | | a=rtcp-fb:120 nack pli | [RFC5104] | | a=rtcp-fb:120 ccm fir | [RFC5104] | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2122194687 192.0.2.4 | [RFC5245] | |192.0.2.471775 typ host | | | a=candidate:1 1 UDP 1685987071 | [RFC5245] | | 203.0.113.141 54332 typ srflx raddr | | |raddr192.0.2.4 rport 71775 | | | a=candidate:0 2 UDP 2122194687 192.0.2.4 | [RFC5245] | |192.0.2.471776 typ host | | | a=candidate:1 2 UDP 1685987071 | [RFC5245] | | 203.0.113.141 60052 typ srflx raddr | | |raddr192.0.2.4 rport 71776 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr |+-----------------------------------+-------------------------------+| | ickle-ice] | +---------------------------------------------+---------------------+ Table 19: 5.2.9 SDP Offer w/BUNDLE+----------------------------------------+--------------------------++-------------------------------------------------+-----------------+ | Answer SDP Contents | RFC#/Notes |+----------------------------------------+--------------------------++-------------------------------------------------+-----------------+ | v=0 | [RFC4566] | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:LS audio video | [RFC5888] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle[I-D.ietf-mmusi | | |-ice]c-trickle-ice] | | ****** Audio m=line ********* |*************************************** | | |******************* | | m=audio 53214 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies | | | RTCMediaStream | | | ID (ma) and RTC | | |and RTCMediaStreamTrackMediaStreamTrac | | | k ID (ta) | | a=sendrecv | [RFC3264] | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:c300d85b | [RFC5245] | |a=ice-a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [RFC5245] | |pwd:de4e99bd291c325921d5d47efbabd9a2 | | |a=fingerprint:sha-2566B:8B:F0:65:5F:76B:8B:F0:65:5F:78:E2:51:3 | [RFC5245] | |8:E2:51:3B:AC:6F:F3:3F:46:1B:35 :DC:B8B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:24:C2:43: | | |:5F:64:1A:24:C2:43:F0:A1:58:D0:A1:2C:1 | | | 9:08F0:A1:58:D0:A1:2C:19:08 | | | a=setup:active | [RFC5763] - Bob | | | is the DTLS | | |DTLSclient | |a=tls-id:1a=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 |[I-D.ietf-mmusic-dtls-sd[I-D.ietf-mmusi | | |p]c-dtls-sdp] | | a=rtcp-mux | [RFC5761] | | a=rtcp-rsize | [RFC5506] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=candidate:0 1 UDP 2122194687 198.51.100.7 | [RFC5245] | |198.51.100.751556 typ host | | | a=candidate:1 1 UDP 1685987071 203.0.113.77 | [RFC5245] | |203.0.113.7753214 typ srflx raddr| | |198.51.100.7 rport 51556 | | | a=candidate:0 2 UDP 2122194687 198.51.100.7 | [RFC5245] | |198.51.100.751558 typ host | | | a=candidate:1 2 UDP 1685987071 203.0.113.77 | [RFC5245] | |203.0.113.7760065 typ srflx raddr| | |198.51.100.7 rport 51558 | | | ****** Video m=line ********* |*************************************** | | |******************* | | m=video 58679 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=mid:video | [RFC5888] | | a=msid:ma tb | Identifies | | | RTCMediaStream | | | ID (ma) and RTC | | |and RTCMediaStreamTrackMediaStreamTrac | | | k ID (tb) | | a=sendrecv | [RFC3264] | | a=rtpmap:120 VP8/90000 | [RFC7741] | | a=ice-ufrag:85bC300 | [RFC5245] | |a=ice-a=ice-pwd:325921d5d47efbabd9a2de4e99bd291c | [RFC5245] | |pwd:325921d5d47efbabd9a2de4e99bd291c | | |a=fingerprint:sha-2566B:8B:F0:65:5F:7| [RFC5245] | |8:E2:51:3B:AC:6F:F3:3F:46:1B:35 :DC:B86B:8B:F0:65:5F:78:E2:51:3B:AC:6F:F3:3F:46:1B:35 | | |:5F:64:1A:24:C2:43:F0:A1:58:D0:A1:2C:1:DC:B8:5F:64:1A:24:C2:43:F0:A1:58:D0:A1:2C:19:0 | | |9:088 | | | a=setup:active | [RFC5763] - Bob | | | is the DTLS | | |DTLSclient | |a=tls-id:2a=tls-id:9AIFS8AQ009IXF5D6QQUJ7P8BXPEZJ8G |[I-D.ietf-mmusic-dtls-sd[I-D.ietf-mmusi | | |p]c-dtls-sdp] | | a=rtcp-mux | [RFC5761] | | a=rtcp-rsize | [RFC5506] | | a=rtcp-fb:120 nack | [RFC5104] | | a=rtcp-fb:120 nack pli | [RFC5104] | | a=rtcp-fb:120 ccm fir | [RFC5104] | | a=candidate:0 1 UDP 2122194687 198.51.100.7 | [RFC5245] | |198.51.100.761556 typ host | | | a=candidate:1 1 UDP 1685987071 203.0.113.77 | [RFC5245] | |203.0.113.7758679 typ srflx raddr| | |198.51.100.7 rport 61556 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle[I-D.ietf-mmusi | | |-ice]c-trickle-ice] |+----------------------------------------+--------------------------++-------------------------------------------------+-----------------+ Table 20: 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 with data stream not being part of the BUNDLE group. This is shown by assigning unique port for data media section and not adding the "mid" identification tag to the BUNDLE group. Audio, Video, with Data (Not in BUNDLE) Alice Bob | | | | |Alice wants to multiplex audio, video but not data | | | | | | Offer(Audio:Opus Video:VP8, Data(not in BUNDLE)) | |----------------------------------------------------->| | | | | | Answer(Audio:Opus Video:VP8, Data) | |<-----------------------------------------------------| | | | | |2 Way Call with Audio, Video Multiplexed except data | |......................................................| | |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Offer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE audio video |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | |egotiation]| n] Alice wants to | | | BUNDLE only audioand video| | | and video media. | | a=group:LS audio video | [RFC5888] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 54609 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendrecv | [RFC3264] | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:074c6550 | [RFC5245] | |a=ice-pwd:a28a397a4c3f31747d1ee34a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [RFC5245] | |74af08a068 | | |a=fingerprint:sha-25619:E2:1C:3B19:E2:1C:3B:4B:9F:81: | [RFC5245] | |:4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | |:04 :BB:05:2F:70:9F:04:A9:0E:05:E4:A9:0E:05:E9:26:33:E8:70:88:A2 | | |9:26:33:E8:70:88:A2a=setup:actpass | [RFC5763] | |a=setup:actpassa=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 |[RFC5763][I-D.ietf-mmusic-dt | |a=tls-id:1|[I-D.ietf-mmusic-dtls-sdp]ls-sdp] | | a=rtcp-mux | [RFC5761] | | a=rtcp-mux-only |[I-D.ietf-mmusic-mux-exclusiv[I-D.ietf-mmusic-mu | | |e]x-exclusive] | | a=rtcp-rsize | [RFC5506] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2113667327 192.0.2.4 | [RFC5245] | |192.0.2.454609 typ host | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Video m=line ********* |************************************************ | |m=video 54609 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=video 0 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=bundle-only | [I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | | | n] | | a=mid:video | [RFC5888] | | a=msid:ma tb | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tb) | | a=sendrecv | [RFC3264] | | a=rtpmap:120 VP8/90000 | [RFC7741] | | a=rtcp-fb:120 nack | [RFC5104] | | a=rtcp-fb:120 nack pli | [RFC5104] | | a=rtcp-fb:120 ccm fir | [RFC5104] | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | ****** Application m=line ********* |************************************************ | |*********| ********** | | m=application 10000 UDP/DTLS/SCTP webrtc- |[I-D.ietf-rtcweb-data-channel[I-D.ietf-rtcweb-da | |webrtc-datachanneldatachannel |]ta-channel] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=mid:data | [RFC5888] | | a=sctp-port:5000 |[I-D.ietf-mmusic-sctp-sdp][I-D.ietf-mmusic-sc | | | tp-sdp] | | a=max-message-size:100000 |[I-D.ietf-mmusic-sctp-sdp][I-D.ietf-mmusic-sc | | | tp-sdp] | | a=sendrecv | [RFC3264] | | a=setup:actpass | [RFC5763] | |a=ice-ufrag:89819013a=tls-id:UKA29UQLTF69OJW4WNPNUO2Y0GF1FJOZ |[RFC5245][I-D.ietf-mmusic-dt | |a=ice-pwd:1747d1ee3474af08a068a28|[RFC5245]ls-sdp] | |a397a4c3f3a=ice-ufrag:89819013 | [RFC5245] | |a=fingerprint:sha-256 29:E2:1C:3Ba=ice-pwd:1747d1ee3474af08a068a28a397a4c3f3 | [RFC5245] | |:4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73a=fingerprint:sha-256 29:E2:1C:3B:4B:9F:81: | [RFC5245] | |:04: BB:05:2F:70:9F:04:A9:0E:05:EE6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | |9:26:33:E8:70:88:A24:A9:0E:05:E9:26:33:E8:70:88:A2 | | | a=candidate:0 1 UDP 2113667327 192.0.2.4 | [RFC5245] | |192.0.2.410000 typ host | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr |+-----------------------------------+-------------------------------+| | ickle-ice] | +---------------------------------------------+---------------------+ Table 21: 5.2.10 SDP Offer+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Answer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - SessionOrigin| | | Origin Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE audio video |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | | |egotiation]n] | | a=group:LS audio video | [RFC5888] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 49203 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendrecv | [RFC3264] | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:c300d85b | [RFC5245] | |a=ice-pwd:de4e99bd291c325921d5d47a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [RFC5245] | |efbabd9a2 | | |a=fingerprint:sha-2566B:8B:F0:656B:8B:F0:65:5F:78:E2: | [RFC5245] | |:5F:78:E2:51:3B:AC:6F:F3:3F:46:1B51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | | |:35 :DC:B8:5F:64:1A:24:C2:43:F0:A4:C2:43:F0:A1:58:D0:A1:2C:19:08 | | |1:58:D0:A1:2C:19:08a=setup:active | [RFC5763] | |a=setup:activea=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 |[RFC5763][I-D.ietf-mmusic-dt | |a=tls-id:1|[I-D.ietf-mmusic-dtls-sdp]ls-sdp] | | a=rtcp-mux | [RFC5761] | | a=rtcp-mux-only |[I-D.ietf-mmusic-mux-exclusiv[I-D.ietf-mmusic-mu | | |e]x-exclusive] | | a=rtcp-rsize | [RFC5506] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2113667327 198.51.100.7 | [RFC5245] | |198.51.100.749203 typ host | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Video m=line ********* |************************************************ | |m=video 49203 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=video 0 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=bundle-only | [I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | | | n] | | a=mid:video | [RFC5888] | | a=msid:ma tb | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tb) | | a=sendrecv | [RFC3264] | | a=rtpmap:120 VP8/90000 | [RFC7741] | | a=rtcp-fb:120 nack | [RFC5104] | | a=rtcp-fb:120 nack pli | [RFC5104] | | a=rtcp-fb:120 ccm fir | [RFC5104] | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | ****** Application m=line ********* |************************************************ | |*********| ********** | | m=application 20000 UDP/DTLS/SCTP webrtc- |[I-D.ietf-mmusic-sctp-sdp][I-D.ietf-mmusic-sc | |webrtc-datachanneldatachannel | tp-sdp] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=mid:data | [RFC5888] | | a=sctp-port:5000 |[I-D.ietf-mmusic-sctp-sdp][I-D.ietf-mmusic-sc | | | tp-sdp] | | a=max-message-size:100000 |[I-D.ietf-mmusic-sctp-sdp][I-D.ietf-mmusic-sc | | | tp-sdp] | | a=setup:active | [RFC5763] | |a=sendrecva=tls-id:9AIFS8AQ009IXF5D6QQUJ7P8BXPEZJ8G |[RFC3264][I-D.ietf-mmusic-dt | |a=ice-ufrag:991Ca2a5e|[RFC5245]ls-sdp] | |a=ice-pwd:921d5d47efbabd9a2de4e99a=sendrecv |[RFC5245][RFC3264] | |bd291c325a=ice-ufrag:991Ca2a5e | [RFC5245] | |a=fingerprint:sha-256 7B:8B:F0:65a=ice-pwd:921d5d47efbabd9a2de4e99bd291c325 | [RFC5245] | |:5F:78:E2:51:3B:AC:6F:F3:3F:46:1Ba=fingerprint:sha-256 7B:8B:F0:65:5F:78:E2: | [RFC5245] | |:35: DC:B8:5F:64:1A:24:C2:43:F0:A51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | | |1:58:D0:A1:2C:19:084:C2:43:F0:A1:58:D0:A1:2C:19:08 | | | a=candidate:0 1 UDP 2113667327 198.51.100.7 | [RFC5245] | |198.51.100.720000 typ host | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr |+-----------------------------------+-------------------------------+| | ickle-ice] | +---------------------------------------------+---------------------+ Table 22: 5.2.10 SDP Answer 5.2.11. Audio Only, Add Video to BUNDLE This example involves 2 Offer/Answer exchanges. First one is used to negotiate and setup BUNDLE support for 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. Audio Only , Add Video and BUNDLE Alice Bob | | | | | Alice indicates support for BUNDLE | | | | Offer(Audio:Opus) | |----------------------------------------------------->| | |Bob | |supports | |BUNDLE | Answer(Audio:Opus) | |<-----------------------------------------------------| | |Alice adds | |video stream | Updated Offer(Audio:Opus, Video:VP8) |to BUNDLE |----------------------------------------------------->| | | | |Bob accepts | Updated Answer(Audio:Opus, Video:VP8) | |<-----------------------------------------------------| | | | 2Way Call with Audio and Video Multiplexed | |......................................................| | | | |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Offer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE audio |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio |egotiation]| | n] Alice adds audio | | | m=line to the | | | BUNDLE group | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 54609 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendrecv | [RFC3264] | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:074c6550 | [RFC5245] | |a=ice-pwd:a28a397a4c3f31747d1ee34a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [RFC5245] | |74af08a068 | | |a=fingerprint:sha-25619:E2:1C:3B19:E2:1C:3B:4B:9F:81: | [RFC5245] | |:4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | |:04 :BB:05:2F:70:9F:04:A9:0E:05:E4:A9:0E:05:E9:26:33:E8:70:88:A2 | | |9:26:33:E8:70:88:A2a=setup:actpass | [RFC5763] | |a=setup:actpassa=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 |[RFC5763][I-D.ietf-mmusic-dt | |a=tls-id:1|[I-D.ietf-mmusic-dtls-sdp]ls-sdp] | | a=rtcp-mux | [RFC5761] | | a=rtcp-mux-only |[I-D.ietf-mmusic-mux-exclusiv[I-D.ietf-mmusic-mu | | |e]x-exclusive] | | a=rtcp-rsize | [RFC5506] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2113667327 192.0.2.4 | [RFC5245] | |192.0.2.461665 typ host | | | a=candidate:1 1 UDP 694302207 203.0.113.141 | [RFC5245] | |203.0.113.14154609 typ srflx| | |raddr 192.0.2.4 rport 61665 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ Table 23: 5.2.11 SDP Offer+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Answer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - SessionOrigin| | | Origin Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE audio |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | |egotiation]| n] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 49203 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendrecv | [RFC3264] | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:c300d85b | [RFC5245] | |a=ice-pwd:de4e99bd291c325921d5d47a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [RFC5245] | |efbabd9a2 | | |a=fingerprint:sha-2566B:8B:F0:656B:8B:F0:65:5F:78:E2: | [RFC5245] | |:5F:78:E2:51:3B:AC:6F:F3:3F:46:1B51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | | |:35 :DC:B8:5F:64:1A:24:C2:43:F0:A4:C2:43:F0:A1:58:D0:A1:2C:19:08 | | |1:58:D0:A1:2C:19:08a=setup:active | [RFC5763] | |a=setup:activea=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 |[RFC5763][I-D.ietf-mmusic-dt | |a=tls-id:1|[I-D.ietf-mmusic-dtls-sdp]ls-sdp] | | a=rtcp-mux | [RFC5761] | | a=rtcp-mux-only |[I-D.ietf-mmusic-mux-exclusiv[I-D.ietf-mmusic-mu | | |e]x-exclusive] | | a=rtcp-rsize | [RFC5506] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2113667327 198.51.100.7 | [RFC5245] | |198.51.100.751556 typ host | | | a=candidate:1 1 UDP 1694302207 203.0.113.77 | [RFC5245] | |203.0.113.7749203 typ srflx| | |raddr 198.51.100.7 rport | | | 51556 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr |+-----------------------------------+-------------------------------+| | ickle-ice] | +---------------------------------------------+---------------------+ Table 24: 5.2.10 SDP Answer+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Updated Offer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | Version number | | | incremented | | | [RFC4566] | | o=- 20518 1 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE audio video |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | |egotiation]| n] | | a=group:LS audio video | [RFC5888] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 54609 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendrecv | [RFC3264] | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:074c6550 | [RFC5245] | |a=ice-pwd:a28a397a4c3f31747d1ee34a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [RFC5245] | |74af08a068 | | |a=fingerprint:sha-25619:E2:1C:3B19:E2:1C:3B:4B:9F:81: | [RFC5245] | |:4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | |E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 |:04 :BB:05:2F:70:9F:04:A9:0E:05:E| || 9:26:33:E8:70:88:A24:A9:0E:05:E9:26:33:E8:70:88:A2 | | | a=setup:actpass | [RFC5763] | |a=tls-id:1a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 |[I-D.ietf-mmusic-dtls-sdp]Ali[I-D.ietf-mmusic-dt | | |cels-sdp]Alice want's | | | to use the same | | | DTLS association | | a=rtcp-mux | [RFC5761] | | a=rtcp-mux-only |[I-D.ietf-mmusic-mux-exclusiv[I-D.ietf-mmusic-mu | | |e]x-exclusive] | | a=rtcp-rsize | [RFC5506] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2113667327 192.0.2.4 | [RFC5245] | |192.0.2.461665 typ host | | | a=candidate:1 1 UDP 694302207 203.0.113.141 | [RFC5245] | |203.0.113.14154609 typ srflx| | |raddr 192.0.2.4 rport 61665 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Video m=line ********* |************************************************ | | | ********** | | m=video 0 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | |m=video 54609 UDP/TLS/RTP/SAVPFa=bundle-only |[RFC4566][I-D.ietf-mmusic-sd | |120| p-bundle-negotiatio | |c=IN IP4 203.0.113.141|[RFC4566]n] | | a=mid:video | [RFC5888] | | a=msid:ma tb | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tb) | | a=sendrecv | [RFC3264] | | a=rtpmap:120 VP8/90000 | [RFC7741] | | a=rtcp-fb:120 nack | [RFC5104] | | a=rtcp-fb:120 nack pli | [RFC5104] | | a=rtcp-fb:120 ccm fir | [RFC5104] | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | |+-----------------------------------+-------------------------------+| n] | +---------------------------------------------+---------------------+ Table 25: 5.2.11 SDP Updated Offer+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Updated Answer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] Versionnumber| | | number incremented | | o=- 16833 1 IN IP4 0.0.0.0 | [RFC4566] - SessionOrigin| | | Origin Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE audio video |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | |egotiation]| n] | | a=group:LS audio video | [RFC5888] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 49203 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendrecv | [RFC3264] | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:c300d85b | [RFC5245] | |a=ice-pwd:de4e99bd291c325921d5d47a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [RFC5245] | |efbabd9a2 | | |a=fingerprint:sha-2566B:8B:F0:656B:8B:F0:65:5F:78:E2: | [RFC5245] | |:5F:78:E2:51:3B:AC:6F:F3:3F:46:1B51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | | |:35 :DC:B8:5F:64:1A:24:C2:43:F0:A4:C2:43:F0:A1:58:D0:A1:2C:19:08 | | |1:58:D0:A1:2C:19:08a=setup:active | [RFC5763] | |a=setup:activea=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 |[RFC5763][I-D.ietf-mmusic-dt | |a=tls-id:1|[I-D.ietf-mmusic-dtls-sdp]ls-sdp] - Bob | | |Bobagrees to use thesame| | | same DTLS | | | association | | a=rtcp-mux | [RFC5761] | | a=rtcp-mux-only |[I-D.ietf-mmusic-mux-exclusiv[I-D.ietf-mmusic-mu | | |e]x-exclusive] | | a=rtcp-rsize | [RFC5506] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2113667327 198.51.100.7 | [RFC5245] | |198.51.100.751556 typ host | | | a=candidate:1 1 UDP 1694302207 203.0.113.77 | [RFC5245] | |203.0.113.7749203 typ srflx| | |raddr 198.51.100.7 rport | | | 51556 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Video m=line ********* |************************************************ | |m=video 49203 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=video 0 UDP/TLS/RTP/SAVPF 120 | [RFC4566] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=bundle-only | [I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | | | n] | | a=mid:video | [RFC5888] | | a=msid:ma tb | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tb) | | a=sendrecv | [RFC3264] | | a=rtpmap:120 VP8/90000 | [RFC7741] | | a=rtcp-fb:120 nack | [RFC5104] | | a=rtcp-fb:120 nack pli | [RFC5104] | | a=rtcp-fb:120 ccm fir | [RFC5104] | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | |+-----------------------------------+-------------------------------+n] | +---------------------------------------------+---------------------+ Table 26: 5.2.11 SDP Updated Answer 5.3. MultiResolution, RTX, FEC Examples This section deals with scenarios related to multi-source, multi- stream 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, mechanisms such as FEC and RTX could be envisioned in the above basic scenarios as well. 5.3.1. Sendonly Simulcast Session with 2 cameras and 2 encodings per camera The SDP below shows Offer/Answer exchange with one audio and two video sources. Each of the video source can be sent at two different resolutions. One video source corresponds to VP8 encoding, while the other corresponds to H.264 encoding. [I-D.ietf-mmusic-rid] framework is used to further constrain the media format encodings and map the payload types (PT) to the 'rid' identifiers. [I-D.ietf-mmusic-sdp-simulcast] framework identifies the simulcast streams via their 'rid' identifiers. bundle-only attribute is used for the video sources in the Offer to ensure enabling video sources in the context of BUNDLE alone. BUNDLE grouping framework enables multiplexing of all the 5 streams (1 audio stream + 4 video streams) over a single RTP Session. 1 Way Successful Simulcast w/BUNDLE Alice Bob | | | | | Alice offers 2 sendonly video sources | | with 2 simulcast encodings per source | | and bundle-only for video | | | | | | Offer(Audio:Opus,Video1:VP8,Video2:H.264) | |------------------------------------------------>| | | | | | Answer(Audio:Opus Video1:VP8,Video2:H.264) | |<------------------------------------------------| | | |One-Way 1 Opus, 2 H.264 and 2 VP8 video streams, | | all multiplexed | |.................................................| | | | |+-------------------------------------+-----------------------------++---------------------------------------------+---------------------+ | 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=group:BUNDLE m0 m1 m2 |[I-D.ietf-mmusic-sdp-bundle[I-D.ietf-mmusic-sd | | |-negotiation] Alicep-bundle-negotiatio | | | n] Alice supports | | | grouping of m=lines | | |m=linesunder BUNDLE | | | semantics | | a=group:LS m0 m1 | [RFC5888] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ic[I-D.ietf-mmusic-tr | | |e]ickle-ice] | | ****** Audio m=line ********* |********************************************** | | |************ | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=mid:m0 | [RFC5888] | | a=msid:ma ta | IdentifiesRTCMediaStream| | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendonly | [RFC3264] | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:074c6550 | [RFC5245] | |a=ice-pwd:a28a397a4c3f31747d1ee3474a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [RFC5245] | |af08a068 | | |a=fingerprint:sha-25619:E2:1C:3B:419:E2:1C:3B:4B:9F:81: | [RFC5245] | |B:9F:81:E6:B8:5C:F4:A5:A8:D8:73:04E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | |:BB:05:2F:70:9F:04:A9:0E:05:E9:26:34:A9:0E:05:E9:26:33:E8:70:88:A2 | | |3:E8:70:88:A2a=setup:actpass | [RFC5763] | |a=setup:actpassa=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 |[RFC5763][I-D.ietf-mmusic-dt | |a=tls-id:1|[I-D.ietf-mmusic-dtls-sdp]ls-sdp] | | a=rtcp-mux | [RFC5761] | | a=rtcp-rsize | [RFC5506] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |-negotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2113667327 192.0.2.4 | [RFC5245] | |192.0.2.461665 typ host | | | a=candidate:1 1 UDP 694302207 203.0.113.141 | [RFC5245] | |203.0.113.14154609 typ srflx raddr| | |192.0.2.4 rport 61665 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ic[I-D.ietf-mmusic-tr | | |e]ickle-ice] | | ****** Video-1 m=line ********* |********************************************** | | |************ | | m=video 0 UDP/TLS/RTP/SAVPF 98 100 | bundle-only video | | | line with port | | |portnumber set to zero | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=bundle-only |[I-D.ietf-mmusic-sdp-bundle[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | |-negotiation]| n] | | a=mid:m1 | [RFC5888] Video | | | m=line part of | | |ofBUNDLE group | | a=msid:ma tb | IdentifiesRTCMediaStream| | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tb) | | a=sendonly | [RFC3264] - Sendonly video| | | only video stream | | a=rtpmap:98 VP8/90000 | [RFC7741] | | a=fmtp:98 max-fr=30 | [RFC4566] | | a=rtpmap:100 VP8/90000 | [RFC7741] | | a=fmtp:100 max-fr=15 | [RFC4566] | | a=rtcp-fb:* nack | [RFC5104] | | a=rtcp-fb:* nack pli | [RFC5104] | | a=rtcp-fb:* ccm fir | [RFC5104] | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |-negotiation]p-bundle-negotiatio | |a=extmap:3 a=extmap:3|[I-D.ietf-avtext-rid]n] | | a=extmap:3 urn:ietf:params:rtp- | [I-D.ietf-avtext-ri | | hdrext:sdes:rtp-stream-id | d] | | a=rid:1 sendpt=98;max-pt=98;max-width=1280;max- |[I-D.ietf-mmusic-rid] 1:1[I-D.ietf-mmusic-ri | |width=1280;max-height=720;height=720 | d] 1:1 rid mapping | | | to payload type and | | |andspecify resolution | | | constraints | | a=rid:2 sendpt=100;max-pt=100;max-width=640;max- |[I-D.ietf-mmusic-rid] 1:1[I-D.ietf-mmusic-ri | |width=640;max-height=480;height=480 | d] 1:1 rid mapping | | | to payload type and | | |andspecify resolution | | | constraints | | a=simulcast:send 1;~2 |[I-D.ietf-mmusic-sdp-simulc[I-D.ietf-mmusic-sd | | |ast]p-simulcast] Alice | | | can send 2 | | | resolutions | | | identified by the | | |the'rid' identifiersAlso,| | | Also, the second | | | stream is initially | | |initiallypaused. | | ****** Video-2 m=line ********* |********************************************** | | |************ | | m=video 0 UDP/TLS/RTP/SAVPF 101 102 | bundle-only video | | | line with port | | |portnumber set to zero | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=bundle-only |[I-D.ietf-mmusic-sdp-bundle[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | | |-negotiation]n] | | a=mid:m2 | [RFC5888] Video | | | m=line part of | | |ofBUNDLE group | | a=msid:ma tc | IdentifiesRTCMediaStream| | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tc) | | a=sendonly | [RFC3264] - Sendonly video| | | only video stream | | a=rtpmap:101 H264/90000 | [RFC6184] | | a=rtpmap:102 H264/90000 | [RFC6184] | | a=fmtp:101 profile-level- |[RFC6184]Camera-2,Encoding- | | id=42401f;packetization-mode=0;max- | 1[RFC6184]Camera-2,E | |fr=30id=42401f;packetization-mode=0;max-fr=30 | ncoding-1 | | a=fmtp:102 profile-level- |[RFC6184]Camera-2,Encoding- | | id=42401f;packetization-mode=1;max- | 2[RFC6184]Camera-2,E | |fr=15id=42401f;packetization-mode=1;max-fr=15 | ncoding-2 | | a=rtcp-fb:* nack | [RFC5104] | | a=rtcp-fb:* nack pli | [RFC5104] | | a=rtcp-fb:* ccm fir | [RFC5104] | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |-negotiation]p-bundle-negotiatio | |a=extmap:3 a=extmap:3|[I-D.ietf-avtext-rid]n] | | a=extmap:3 urn:ietf:params:rtp- | [I-D.ietf-avtext-ri | | hdrext:sdes:rtp-stream-id | d] | | a=rid:3 sendpt=101;max-pt=101;max-width=1280;max- |[I-D.ietf-mmusic-rid] 1:1[I-D.ietf-mmusic-ri | |width=1280;max-height=720;height=720 | d] 1:1 rid mapping | | | to payload type and | | |andspecify resolution | | | constraints | | a=rid:4 sendpt=102;max-pt=102;max-width=640;max- |[I-D.ietf-mmusic-rid] 1:1[I-D.ietf-mmusic-ri | |width=640;max-height=360;height=360 | d] 1:1 rid mapping | | | to payload type and | | |andspecify resolution | | | constraints | | a=simulcast:send 3;4 |[I-D.ietf-mmusic-sdp-simulc[I-D.ietf-mmusic-sd | | |ast]p-simulcast] Alice | | | can send 2 | | | resolutions | | | identified by the | | |the'rid' identifiers |+-------------------------------------+-----------------------------++---------------------------------------------+---------------------+ Table 27: 5.3.1 SDP Offer+-------------------------------------+-----------------------------++---------------------------------------------+---------------------+ | Answer SDP Contents | RFC#/Notes |+-------------------------------------+-----------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE m0 m1 m2 |[I-D.ietf-mmusic-sdp-bundle[I-D.ietf-mmusic-sd | | |-negotiation] Alicep-bundle-negotiatio | | | n] Alice supports | | | grouping of m=lines | | |m=linesunder BUNDLE | | | semantics | | a=group:LS m0 m1 | [RFC5888] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ic[I-D.ietf-mmusic-tr | | |e]ickle-ice] | | ****** Audio m=line ********* |********************************************** | | |************ | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=mid:m0 | [RFC5888] | | a=msid:ma ta | IdentifiesRTCMediaStream| | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=recvonly | [RFC3264] | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:c300d85b | [RFC5245] | |a=ice-pwd:de4e99bd291c325921d5d47efa=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [RFC5245] | |babd9a2 | | |a=fingerprint:sha-2566B:8B:F0:65:56B:8B:F0:65:5F:78:E2: | [RFC5245] | |F:78:E2:51:3B:AC:6F:F3:3F:46:1B:3551:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | | |:DC:B8:5F:64:1A:24:C2:43:F0:A1:58:D4:C2:43:F0:A1:58:D0:A1:2C:19:08 | | |0:A1:2C:19:08a=setup:active | [RFC5763] | |a=setup:activea=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 |[RFC5763][I-D.ietf-mmusic-dt | |a=tls-id:1|[I-D.ietf-mmusic-dtls-sdp]ls-sdp] | | a=rtcp-mux | [RFC5761] | | a=rtcp-rsize | [RFC5506] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |-negotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2113667327 198.51.100.7 | [RFC5245] | |198.51.100.761665 typ host | | | a=candidate:1 1 UDP 694302207 203.0.113.77 | [RFC5245] | |203.0.113.7749203 typ srflx raddr 198.51.100.7 rport | | |198.51.100.7 rport61665 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ic[I-D.ietf-mmusic-tr | | |e]ickle-ice] | | ****** Video-1 m=line ********* |********************************************** | | |************ | | m=video492030 UDP/TLS/RTP/SAVPF 98 100 | BUNDLE acceptedwith port| |100c=IN IP4 203.0.113.77 |repeated from the audio[RFC4566] | | a=bundle-only |port[I-D.ietf-mmusic-sd | |c=IN IP4 203.0.113.77|[RFC4566]p-bundle-negotiatio | | | n] | | a=mid:m1 | [RFC5888] Video | | | m=line part of | | |ofBUNDLE group | | a=msid:ma tb | IdentifiesRTCMediaStream| | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tb) | | a=recvonly | [RFC3264] - receiveonly| | | only video stream | | a=rtpmap:98 VP8/90000 | [RFC7741] | | a=rtpmap:100 VP8/90000 | [RFC7741] | | a=fmtp:98 max-fr=30 | [RFC4566] | | a=fmtp:100 max-fr=15 | [RFC4566] | | a=rtcp-fb:* nack | [RFC5104] | | a=rtcp-fb:* nack pli | [RFC5104] | | a=rtcp-fb:* ccm fir | [RFC5104] | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |-negotiation]p-bundle-negotiatio | |a=extmap:3 a=extmap:3|[I-D.ietf-avtext-rid]n] | | a=extmap:3 urn:ietf:params:rtp- | [I-D.ietf-avtext-ri | | hdrext:sdes:rtp-stream-id | d] | | a=rid:1 recvpt=98;max-pt=98;max-width=1280;max- |[I-D.ietf-mmusic-rid] Bob[I-D.ietf-mmusic-ri | |width=1280;max-height=720;height=720 | d] Bob accepts the | | | offered payload | | | format constraints | | a=rid:2 recvpt=100;max-pt=100;max-width=640;max- |[I-D.ietf-mmusic-rid] Bob[I-D.ietf-mmusic-ri | |width=640;max-height=480;height=480 | d] Bob accepts the | | | offered payload | | | format constraints | | a=simulcast:recv 1;2 |[I-D.ietf-mmusic-sdp-simulc[I-D.ietf-mmusic-sd | | |ast]p-simulcast] Bob | | | accepts the offered | | |offeredsimulcast streams | | | and removes thepaused| | | paused state of | | | stream with 'rid' | | | value 2. | | ****** Video-2 m=line ********* |********************************************** | | |************ | | m=video492030 UDP/TLS/RTP/SAVPF 101 102 | BUNDLE acceptedwith port| |102c=IN IP4 203.0.113.77 |repeated from the audio[RFC4566] | | a=bundle-only |port[I-D.ietf-mmusic-sd | |c=IN IP4 203.0.113.77|[RFC4566]p-bundle-negotiatio | | | n] | | a=mid:m2 | [RFC5888] Video | | | m=line part of | | |ofBUNDLE group | | a=msid:ma tc | IdentifiesRTCMediaStream| | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tc) | | a=recvonly | [RFC3264] | | a=rtpmap:101 H264/90000 | [RFC6184] | | a=rtpmap:102 H264/90000 | [RFC6184] | | a=fmtp:101 profile-level- | [RFC6184] | |id=42401f;packetization-mode=1;max- | | | fr=30id=42401f;packetization-mode=1;max-fr=30 | | | a=fmtp:102 profile-level- | [RFC6184] | |id=42401f;packetization-mode=1;max- | | | fr=15id=42401f;packetization-mode=1;max-fr=15 | | | a=rtcp-fb:* nack | [RFC5104] | | a=rtcp-fb:* nack pli | [RFC5104] | | a=rtcp-fb:* ccm fir | [RFC5104] | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |-negotiation]p-bundle-negotiatio | |a=extmap:3 a=extmap:3|[I-D.ietf-avtext-rid]n] | | a=extmap:3 urn:ietf:params:rtp- | [I-D.ietf-avtext-ri | | hdrext:sdes:rtp-stream-id | d] | | a=rid:3 recvpt=101;max-pt=101;max-width=1280;max- |[I-D.ietf-mmusic-rid] Bob[I-D.ietf-mmusic-ri | |width=1280;max-height=720;height=720 | d] Bob accepts the | | | offered payload | | | format constraints | | a=rid:4 recvpt=102;max-pt=102;max-width=640;max- |[I-D.ietf-mmusic-rid] Bob[I-D.ietf-mmusic-ri | |width=640;max-height=360;height=360 | d] Bob accepts the | | | offered payload | | | format constraints | | a=simulcast:recv 3;4 |[I-D.ietf-mmusic-sdp-simulc[I-D.ietf-mmusic-sd | | |ast]p-simulcast] Bob | | | accepts the offered | | |offeredsimulcast streams. |+-------------------------------------+-----------------------------++---------------------------------------------+---------------------+ Table 28: 5.3.1 SDP Answer 5.3.2. Successful SVC Video Session This section shows an SDP Offer/Answer for a session with an audio and a single video source. The video source is encoded as 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. SVC Session - 3 Layers w/BUNDLE Alice Bob | | | | | Alice offers 3 sendonly video streams | | as 3 layers of SVC and bundle-only | | for video streams. | | | | Offer(Video:H.264 SVC) | |------------------------------------------------>| | | | |Bob accepts Alice's | |offered Codec | |operation points | | | Answer(Video:H.264) | |<------------------------------------------------| | | |One-Way H.264 SVC video streams | |.................................................| | | | |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | 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=group:BUNDLE m0 m1 |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | |egotiation]| n] Alice supports | | | grouping of m=linesunder| | | under BUNDLE | | | semantics | | a=group:LS m0 m1 | [RFC5888] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 54609 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=mid:m0 | [RFC5888] Audio | | | m=line part of | | |ofBUNDLE group with aunique| | | unique port number | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendonly | [RFC3264] | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:074c6550 | [RFC5245] | |a=ice-pwd:a28a397a4c3f31747d1ee34a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [RFC5245] | |74af08a068 | | |a=fingerprint:sha-25619:E2:1C:3B19:E2:1C:3B:4B:9F:81: | [RFC5245] | |:4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | |:04 :BB:05:2F:70:9F:04:A9:0E:05:E4:A9:0E:05:E9:26:33:E8:70:88:A2 | | |9:26:33:E8:70:88:A2a=setup:actpass | [RFC5763] | |a=setup:actpassa=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 |[RFC5763][I-D.ietf-mmusic-dt | |a=tls-id:1|[I-D.ietf-mmusic-dtls-sdp]ls-sdp] | | a=rtcp-mux | [RFC5761] | | a=rtcp-rsize | [RFC5506] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2113667327 192.0.2.4 | [RFC5245] | |192.0.2.461665 typ host | | | a=candidate:1 1 UDP 694302207 203.0.113.141 | [RFC5245] | |203.0.113.14154609 typ srflx| | |raddr 192.0.2.4 rport 61665 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Video m=line ********* |************************************************ | | | ********** | | m=video 0 UDP/TLS/RTP/SAVPF 96 97 100 | bundle-only video | | | line with port | |100|portnumber set to zero | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=bundle-only |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | |egotiation]| n] | | a=mid:m1 | [RFC5888] Video | | | m=line part of | | |ofBUNDLE group | | a=msid:ma tb | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tc) | | a=sendonly | [RFC3264] - Sendonly video| | | only video stream | | a=rtpmap:96 H264/90000 | [RFC6184] | | a=fmtp:96profile-level-profile-level-id=4d0028; | [RFC6184]H.264Layer 1 ||id=4d0028; packetization-| packetization-mode=1;max-fr=30;max-fs=8040 || mode=1;max-fr=30;max-fs=8040 |Layer 1 | | a=rtpmap:97 H264/90000 | [RFC6184] | | a=fmtp:97 profile-level- | [RFC6184] H.264Layer 2| | id=4d0028;packetization-mode=1; max- | Layer 2 | |max-fr=15;max-fs=1200fr=15;max-fs=1200 | | | a=rtpmap:100 H264-SVC/90000 | [RFC6184] | | a=fmtp:100 profile-level- | [RFC6184] | | id=4d0028;packetization-mode=1; max- | | |max-fr=30;max-fs=8040fr=30;max-fs=8040 | | | a=depend:100 lay m1:96,97 | [RFC5583]Layer 3 | | | dependent on layers | | |layers1 and 2 | | a=rtcp-fb:* nack | [RFC5104] | | a=rtcp-fb:* nack pli | [RFC5104] | | a=rtcp-fb:* ccm fir | [RFC5104] | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | |+-----------------------------------+-------------------------------+| n] | +---------------------------------------------+---------------------+ Table 29: 5.3.2 SDP Offer with SVC+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Answer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE m0 m1 |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | |egotiation]| n] | | a=group:LS m0 m1 | [RFC5888] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 49203 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=mid:m0 | [RFC5888] | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=recvonly | [RFC3264] | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:074c6550 | [RFC5245] | |a=ice-pwd:a28a397a4c3f31747d1ee34a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [RFC5245] | |74af08a068 | | |a=fingerprint:sha-2566B:8B:F0:656B:8B:F0:65:5F:78:E2: | [RFC5245] | |:5F:78:E2:51:3B:AC:6F:F3:3F:46:1B51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | | |:35 :DC:B8:5F:64:1A:24:C2:43:F0:A4:C2:43:F0:A1:58:D0:A1:2C:19:08 | | |1:58:D0:A1:2C:19:08a=setup:active | [RFC5763] | |a=setup:activea=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 |[RFC5763][I-D.ietf-mmusic-dt | |a=tls-id:1|[I-D.ietf-mmusic-dtls-sdp]ls-sdp] | | a=rtcp-mux | [RFC5761] | | a=rtcp-rsize | [RFC5506] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2113667326 198.51.100.7 | [RFC5245] | |198.51.100.751556 typ host | | | a=candidate:1 1 UDP 1694302206 203.0.113.77 | [RFC5245] | |203.0.113.7749203 typ srflx| | |raddr 198.51.100.7 rport | | | 51556 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Video m=line ********* |************************************************ | |m=video 49203 UDP/TLS/RTP/SAVPF|BUNDLE accepted Bundle********** | | m=video 0 UDP/TLS/RTP/SAVPF 96 100 |address same as audio m=line.BUNDLE accepted. | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=bundle-only | [I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | | | n] | | a=mid:m1 | [RFC5888] Video | | | m=line part of | | |ofBUNDLE group | | a=msid:ma tb | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tb) | | a=recvonly | [RFC3264] - Receiveonly| | | only video stream | | a=rtpmap:96 H264/90000 | [RFC6184] | | a=fmtp:96 profile-level- | [RFC6184]H.264Layer 1| | id=4d0028;packetization-mode=1; max- | Layer 1 | |max-fr=30;max-fs=8040fr=30;max-fs=8040 | | | a=rtpmap:100 H264-SVC/90000 | [RFC6184] | | a=fmtp:100 profile-level- | [RFC6184] | | id=4d0028;packetization-mode=1; max- | | |max-fr=30;max-fs=8040fr=30;max-fs=8040 | | | a=depend:100 lay m1:96 | [RFC5583] Bob | | | chooses 2 Codec | | | Operation points | | a=rtcp-fb:* nack | [RFC5104] | | a=rtcp-fb:* nack pli | [RFC5104] | | a=rtcp-fb:* ccm fir | [RFC5104] | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ Table 30: 5.3.2 SDP Answer with SVC 5.3.3. Successful Simulcast Video Session with Retransmission This section shows an SDP Offer/Answer exchange for a simulcast scenario with 3 resolutions and has [RFC4588] style re-transmission flows. [I-D.ietf-mmusic-rid] framework is used to specify all the (3) resolution constraints mapped to a single Payload Type (98). [I-D.ietf-mmusic-sdp-simulcast] framework identifies the simulcast streams via their 'rid' identifiers. Simulcast Streams with Retransmission Alice Bob | | | | |Alice offers single audio and simulcasted video streams | | | | | | Offer(Audio:Opus Video:VP8 with 3 resolutions) | | & RTX stream | |-------------------------------------------------------->| | | | | | Answer (Bob accepts Alice's offer) | |<--------------------------------------------------------| | | | | |One-Way 1 Opus, 3 VP8 and RTX video streams,all muxed | |.........................................................| | | | |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | 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=group:BUNDLE m0 m1 |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | |egotiation]p-bundle-negotiatio | | | n] Alice supports | | | grouping of m=linesunder| | | under BUNDLE | | | semantics | | a=group:LS m0 m1 | [RFC5888] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 54609 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=mid:m0 | [RFC5888] Audio | | | m=line part of | | |ofBUNDLE group with aunique| | | unique port number | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendonly | [RFC3264] | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:074c6550 | [RFC5245] | |a=ice-pwd:a28a397a4c3f31747d1ee34a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [RFC5245] | |74af08a068 | | |a=fingerprint:sha-25619:E2:1C:3B19:E2:1C:3B:4B:9F:81: | [RFC5245] | |:4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | |:04 :BB:05:2F:70:9F:04:A9:0E:05:E4:A9:0E:05:E9:26:33:E8:70:88:A2 | | |9:26:33:E8:70:88:A2a=setup:actpass | [RFC5763] | |a=setup:actpassa=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 |[RFC5763][I-D.ietf-mmusic-dt | |a=tls-id:1|[I-D.ietf-mmusic-dtls-sdp]ls-sdp] | | a=rtcp-mux | [RFC5761] | | a=rtcp-rsize | [RFC5506] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2113667327 192.0.2.4 | [RFC5245] | |192.0.2.461665 typ host | | | a=candidate:1 1 UDP 694302207 203.0.113.141 | [RFC5245] | |203.0.113.14154609 typ srflx| | |raddr 192.0.2.4 rport 61665 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Video m=line ********* |************************************************ | | | ********** | | m=video 0 UDP/TLS/RTP/SAVPF 98 103 | bundle-only video | | | line with port | |103|portnumber set to zero | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=bundle-only |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | |egotiation]p-bundle-negotiatio | | | n] | | a=mid:m1 | [RFC5888] | | a=msid:ma tb | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tb) | | a=sendonly | [RFC3264] | | a=rtpmap:98 VP8/90000 | [RFC7741] | | a=fmtp:98 max-fr=30 | [RFC4566] | | a=rtpmap:103 rtx/90000 | [RFC4588] | | a=fmtp:103 apt=98;rtx-time=200 | [RFC4588] | | a=rtcp-fb:* nack | [RFC5104] | | a=rtcp-fb:* nack pli | [RFC5104] | | a=rtcp-fb:* ccm fir | [RFC5104] | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | |a=extmap:3 a=extmap:3|[I-D.ietf-avtext-rid]n] | | a=extmap:3 urn:ietf:params:rtp- | [I-D.ietf-avtext-ri | | hdrext:sdes:rtp-stream-id | d] | | a=rid:1 sendpt=98;max-pt=98;max-fs=921600;max-fr=30 |[I-D.ietf-mmusic-rid][I-D.ietf-mmusic-ri | |fs=921600;max-fr=30;| d] | | a=rid:2 sendpt=98;max-pt=98;max-fs=614400;max-fr=15 |[I-D.ietf-mmusic-rid][I-D.ietf-mmusic-ri | |fs=614400;max-fr=15;| d] | | a=rid:3 sendpt=98;max-pt=98;max-fs=230400;max-fr=30 |[I-D.ietf-mmusic-rid][I-D.ietf-mmusic-ri | |fs=230400;max-fr=30;| d] | | a=simulcast:send 1;2;3 |[I-D.ietf-mmusic-sdp-simulcas[I-D.ietf-mmusic-sd | | |t]p-simulcast] Alice | | | can send all the | | | simulcast streams |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ Table 31: 5.3.3 SDP Offer w/Simulcast, RTX+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Answer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE m0 m1 |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | |egotiation]| n] Bob supports | | | grouping of m=linesunder| | | under BUNDLE | | | semantics | | a=group:LS m0 m1 | [RFC5888] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 49203 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=mid:m0 | [RFC5888] | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=recvonly | [RFC3264] | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:074c6550 | [RFC5245] | |a=ice-pwd:a28a397a4c3f31747d1ee34a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [RFC5245] | |74af08a068 | | |a=fingerprint:sha-2566B:8B:F0:656B:8B:F0:65:5F:78:E2: | [RFC5245] | |:5F:78:E2:51:3B:AC:6F:F3:3F:46:1B51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | | |:35 :DC:B8:5F:64:1A:24:C2:43:F0:A4:C2:43:F0:A1:58:D0:A1:2C:19:08 | | |1:58:D0:A1:2C:19:08a=setup:active | [RFC5763] | |a=setup:activea=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 |[RFC5763][I-D.ietf-mmusic-dt | |a=tls-id:1|[I-D.ietf-mmusic-dtls-sdp]ls-sdp] | | a=rtcp-mux | [RFC5761] | | a=rtcp-rsize | [RFC5506] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2113667326 198.51.100.7 | [RFC5245] | |198.51.100.751556 typ host | | | a=candidate:1 1 UDP 1694302206 203.0.113.77 | [RFC5245] | |203.0.113.7749203 typ srflx| | |raddr 198.51.100.7 rport | | | 51556 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Video m=line ********* |************************************************ | |m=video 49203 UDP/TLS/RTP/SAVPF|BUNDLE accepted with Bundle********** | | m=video 0 UDP/TLS/RTP/SAVPF 98 100 101 103 |address identical to audio | | | m-lineBUNDLE accepted | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=bundle-only | [I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | | | n] | | a=mid:m1 | [RFC5888] Video | | | m=line part of | | |ofBUNDLE group | | a=msid:ma tb | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tb) | | a=recvonly | [RFC3264] | | a=rtpmap:98 VP8/90000 | [RFC7741] | | a=fmtp:98 max-fr=30 | [RFC4566] | | a=rtpmap:103 rtx/90000 | [RFC4588] | | a=fmtp:103 apt=98;rtx-time=200 | [RFC4588] | | a=rtcp-fb:* nack | [RFC5104] | | a=rtcp-fb:* nack pli | [RFC5104] | | a=rtcp-fb:* ccm fir | [RFC5104] | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | |a=extmap:3 a=extmap:3|[I-D.ietf-avtext-rid]n] | | a=extmap:3 urn:ietf:params:rtp- | [I-D.ietf-avtext-ri | | hdrext:sdes:rtp-stream-id | d] | | a=rid:1 recvpt=98;max-pt=98;max-fs=921600;max-fr=30 |[I-D.ietf-mmusic-rid][I-D.ietf-mmusic-ri | |fs=921600;max-fr=30;| d] | | a=rid:2 recvpt=98;max-pt=98;max-fs=614400;max-fr=15 |[I-D.ietf-mmusic-rid][I-D.ietf-mmusic-ri | |fs=614400;max-fr=15;| d] | | a=rid:3 recvpt=98;max-pt=98;max-fs=230400;max-fr=30 |[I-D.ietf-mmusic-rid][I-D.ietf-mmusic-ri | |fs=230400;max-fr=30;| d] | | a=simulcast:recv 1;2;3 |[I-D.ietf-mmusic-sdp-simulcas[I-D.ietf-mmusic-sd | | |t]p-simulcast] Bob | | | accepts the offered | | | simulcast streams |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ Table 32: 5.3.3 SDP Answer w/Simulcast, RTX 5.3.4. Successful 1-way Simulcast Session with 2 resolutions and RTX - One resolution rejected This section shows an SDP Offer/Answer exchange for a simulcast scenario with 2 two resolutions. It also showcases where Bob rejects one of the Simulcast Video Stream which results in the rejection of the associated repair stream implicitly. Simulcast Streams with Retransmission Rejected Alice Bob | | | | |Alice offers single audio and simulcasted video streams | | with bundle-only for video | | | | | |Offer(Audio:Opus Video:VP8 with 2 resolutions,RTX Stream)| |-------------------------------------------------------->| | | | |Bob accepts 1 | |simulcast,rtx | |rejects the | |other | Answer(Audio:Opus Video:VP8 with 1 res & RTX Stream) | |<--------------------------------------------------------| | | | | |1-way audio,video session and its associated RTX stream, | | all multiplexed | |.........................................................| | | | |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | 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=group:BUNDLE m0 m1 |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | |egotiation]| n] Alice supports | | | grouping of m=linesunder| | | under BUNDLE | | | semantics | | a=group:LS m0 m1 | [RFC5888] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 54609 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=mid:m0 | [RFC5888] | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendonly | [RFC3264] | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:074c6550 | [RFC5245] | |a=ice-pwd:a28a397a4c3f31747d1ee34a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [RFC5245] | |74af08a068 | | |a=fingerprint:sha-25619:E2:1C:3B19:E2:1C:3B:4B:9F:81: | [RFC5245] | |:4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | |:04 :BB:05:2F:70:9F:04:A9:0E:05:E4:A9:0E:05:E9:26:33:E8:70:88:A2 | | |9:26:33:E8:70:88:A2a=setup:actpass | [RFC5763] | |a=setup:actpassa=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 |[RFC5763][I-D.ietf-mmusic-dt | |a=tls-id:1|[I-D.ietf-mmusic-dtls-sdp]ls-sdp] | | a=rtcp-mux | [RFC5761] | | a=rtcp-rsize | [RFC5506] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2113667327 192.0.2.4 | [RFC5245] | |192.0.2.461665 typ host | | | a=candidate:1 1 UDP 694302207 203.0.113.141 | [RFC5245] | |203.0.113.14154609 typ srflx| | |raddr 192.0.2.4 rport 61665 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Video m=line ********* |************************************************ | | | ********** | | m=video 0 UDP/TLS/RTP/SAVPF 98 100 101 103 | bundle-only video | | | line with port | |100 101 103|portnumber set to zero | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=bundle-only |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio |egotiation]| | n] | | a=mid:m1 | [RFC5888] | | a=msid:ma tb | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tb | | a=sendonly | [RFC3264] | | a=rtpmap:98 VP8/90000 | [RFC7741] | | a=rtpmap:100 VP8/90000 | [RFC7741] | | a=rtpmap:101 rtx/90000 | [RFC4588] | | a=rtpmap:103 rtx/90000 | [RFC4588] | | 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=200 | [RFC4588] | | a=fmtp:103 apt=100;rtx-time=200 | [RFC4588] | | a=rtcp-fb:* nack | [RFC5104] | | a=rtcp-fb:* nack pli | [RFC5104] | | a=rtcp-fb:* ccm fir | [RFC5104] | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | |a=extmap:3 a=extmap:3|[I-D.ietf-avtext-rid]n] | | a=extmap:3 urn:ietf:params:rtp- | [I-D.ietf-avtext-ri | | hdrext:sdes:rtp-stream-id | d] | | a=rid:1 sendpt=98;pt=98 |[I-D.ietf-mmusic-rid] 1:1[I-D.ietf-mmusic-ri | | | d] 1:1 mapping | | | between the PT and | | | the 'rid' | | | identifier | | a=rid:2 sendpt=100;pt=100 |[I-D.ietf-mmusic-rid] 1:1[I-D.ietf-mmusic-ri | | | d] 1:1 mapping | | | between the PT and | | | the 'rid' | | | identifier | | a=simulcast:send 1;2 |[I-D.ietf-mmusic-sdp-simulcas[I-D.ietf-mmusic-sd | | |t]p-simulcast] |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ Table 33: 5.3.4 SDP Offer w/Simulcast, RTX+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Answer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE m0 m1 |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | | |egotiation]n] Bob supports | | | grouping of m=linesunder| | | under BUNDLE | | | semantics | | a=group:LS m0 m1 | [RFC5888] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 49203 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=mid:m0 | [RFC5888] | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=recvonly | [RFC3264] | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:074c6550 | [RFC5245] | |a=ice-pwd:a28a397a4c3f31747d1ee34a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [RFC5245] | |74af08a068 | | |a=fingerprint:sha-2566B:8B:F0:656B:8B:F0:65:5F:78:E2: | [RFC5245] | |:5F:78:E2:51:3B:AC:6F:F3:3F:46:1B51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | | |:35 :DC:B8:5F:64:1A:24:C2:43:F0:A4:C2:43:F0:A1:58:D0:A1:2C:19:08 | | |1:58:D0:A1:2C:19:08a=setup:active | [RFC5763] | |a=setup:activea=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 |[RFC5763][I-D.ietf-mmusic-dt | |a=tls-id:1|[I-D.ietf-mmusic-dtls-sdp]ls-sdp] | | a=rtcp-mux | [RFC5761] | | a=rtcp-rsize | [RFC5506] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2113667326 198.51.100.7 | [RFC5245] | |198.51.100.751556 typ host | | | a=candidate:1 1 UDP 1694302206 203.0.113.77 | [RFC5245] | |203.0.113.7749203 typ srflx| | |raddr 198.51.100.7 rport | | | 51556 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Video m=line ********* |************************************************ | | | ********** | | m=video492030 UDP/TLS/RTP/SAVPF 98 101 | BUNDLE acceptedwith Bundle| |98 101c=IN IP4 203.0.113.77 |address identical to audio[RFC4566] | | a=bundle-only |m-line[I-D.ietf-mmusic-sd | |c=IN IP4 203.0.113.77|[RFC4566]p-bundle-negotiatio | | | n] | | a=mid:m1 | [RFC5888] | | a=msid:ma tb | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tb) | | a=recvonly | [RFC3264] | | a=rtpmap:98 VP8/90000 | [RFC7741] | | a=rtpmap:101 VP8/90000 | [RFC7741] | | a=fmtp:98 max-fr=30;max-fs=8040 | [RFC4566] | | a=fmtp:101 apt=98;rtx-time=200 | [RFC4588] | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | |a=extmap:3 a=extmap:3|[I-D.ietf-avtext-rid]n] | | a=extmap:3 urn:ietf:params:rtp- | [I-D.ietf-avtext-ri | | hdrext:sdes:rtp-stream-id | d] | | a=rid:1 recvpt=98;pt=98 |[I-D.ietf-mmusic-rid][I-D.ietf-mmusic-ri | | | d] | | a=simulcast:recv 1 |[I-D.ietf-mmusic-sdp-simulcas[I-D.ietf-mmusic-sd | | |t]p-simulcast] Bob | | | rejects the second | | | simulcast stream | | | and the associated | | |associatedrtx stream. |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ Table 34: 5.3.4 SDP Answer (one Simulcast Rejected) 5.3.5. Simulcast Video Session 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 the Offer/Answer exchange mechanism we end up one audio stream, 2 simulcast video streams and 2 associated FEC streams are sent over a single 5-tuple. Simulcast Streams with Forward Error Correction Alice Bob | | | | | | |Alice offers single audio and simulcasted video streams | |with bundle-only | | | | | |Offer(Audio:Opus Video:VP8 with 2 resolutions with FEC Streams)| |-------------------------------------------------------------->| | | | |Bob | |accepts | |Alice's | |offer |Answer(Audio:Opus Video:VP8 with 2 resolutions w/FEC Streams) | |<--------------------------------------------------------------| | | |One-Way Audio,Video session with 4 video streams(Simulcast | | and FEC) all multiplexed | |...............................................................| | | | | | |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | 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=group:BUNDLE m0 m1 |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | |egotiation]p-bundle-negotiatio | | | n] Alice supports | | | grouping of m=linesunder| | | under BUNDLE | | | semantics | | a=group:LS m0 m1 | [RFC5888] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 54609 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=mid:m0 | [RFC5888] | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendonly | [RFC3264] | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:074c6550 | [RFC5245] | |a=ice-pwd:a28a397a4c3f31747d1ee34a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [RFC5245] | |74af08a068 | | |a=fingerprint:sha-25619:E2:1C:3B19:E2:1C:3B:4B:9F:81: | [RFC5245] | |:4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73 | | | :04 :BB:05:2F:70:9F:04:A9:0E:05:EE6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | |9:26:33:E8:70:88:A24:A9:0E:05:E9:26:33:E8:70:88:A2 | | | a=setup:actpass | [RFC5763] | | a=rtcp-mux | [RFC5761] | |a=tls-id:1a=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 | [I-D.ietf-mmusic-dt | |[I-D.ietf-mmusic-dtls-sdp]| ls-sdp] | | a=rtcp-rsize | [RFC5506] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2113667327 192.0.2.4 | [RFC5245] | |192.0.2.461665 typ host | | | a=candidate:1 1 UDP 694302207 203.0.113.141 | [RFC5245] | |203.0.113.14154609 typ srflx| | |raddr 192.0.2.4 rport 61665 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Video m=line ********* |************************************************ | | | ********** | | m=video 0 UDP/TLS/RTP/SAVPF 98 100 101 103 | bundle-only video | | | line with port | |100 101 103|portnumber set to zero | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=bundle-only |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio |egotiation]| | n] | | a=mid:m1 | [RFC5888] Video | | | m=line part of | | |ofBUNDLE group | | a=msid:ma tb | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tb) | | a=sendonly | [RFC3264] | | a=rtpmap:98 VP8/90000 | [RFC7741] | | a=rtpmap:100 VP8/90000 | [RFC7741] | | a=rtpmap:101 flexfec/90000 |[I-D.ietf-payload-flexible-fe[I-D.ietf-payload-f | | |c-scheme]lexible-fec-scheme] | | a=rtpmap:103 flexfec/90000 |[I-D.ietf-payload-flexible-fe[I-D.ietf-payload-f | | |c-scheme]lexible-fec-scheme] | | 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; ToP=2; repair- |[I-D.ietf-payload-flexible-fe[I-D.ietf-payload-f | |repair-window=200000window=200000 |c-scheme]lexible-fec-scheme] | | a=fmtp:103 L=5; D=10; ToP=2; repair- |[I-D.ietf-payload-flexible-fe[I-D.ietf-payload-f | |repair-window=200000window=200000 |c-scheme]lexible-fec-scheme] | | a=rtcp-fb:* nack | [RFC5104] | | a=rtcp-fb:* nack pli | [RFC5104] | | a=rtcp-fb:* ccm fir | [RFC5104] | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | |a=extmap:3 a=extmap:3|[I-D.ietf-avtext-rid]n] | | a=extmap:3 urn:ietf:params:rtp- | [I-D.ietf-avtext-ri | | hdrext:sdes:rtp-stream-id | d] | | a=rid:1 sendpt=98;pt=98 |[I-D.ietf-mmusic-rid] 1:1[I-D.ietf-mmusic-ri | | | d] 1:1 mapping | | | between the PT and | | | the 'rid' | | | identifier | | a=rid:2 sendpt=100;pt=100 |[I-D.ietf-mmusic-rid] 1:1[I-D.ietf-mmusic-ri | | | d] 1:1 mapping | | | between the PT and | | | the 'rid' | | | identifier | | a=simulcast:send 1;2 |[I-D.ietf-mmusic-sdp-simulcas[I-D.ietf-mmusic-sd | | |t]p-simulcast] |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ Table 35: 5.3.5 SDP Offer+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Answer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE m0 m1 |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | |egotiation]| n] | | a=group:LS m0 m1 | [RFC5888] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 49203 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=mid:m0 | [RFC5888] Audio | | | m=line part of | | |ofBUNDLE group with aunique| | | unique port number | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=recvonly | [RFC3264] | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:074c6550 | [RFC5245] | |a=ice-pwd:a28a397a4c3f31747d1ee34a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [RFC5245] | |74af08a068 | | |a=fingerprint:sha-2566B:8B:F0:656B:8B:F0:65:5F:78:E2: | [RFC5245] | |:5F:78:E2:51:3B:AC:6F:F3:3F:46:1B51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | | |:35 :DC:B8:5F:64:1A:24:C2:43:F0:A4:C2:43:F0:A1:58:D0:A1:2C:19:08 | | |1:58:D0:A1:2C:19:08a=setup:active | [RFC5763] | |a=setup:activea=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 |[RFC5763][I-D.ietf-mmusic-dt | |a=tls-id:1|[I-D.ietf-mmusic-dtls-sdp]ls-sdp] | | a=rtcp-mux | [RFC5761] | | a=rtcp-rsize | [RFC5506] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2113667326 198.51.100.7 | [RFC5245] | |198.51.100.751556 typ host | | | a=candidate:1 1 UDP 1694302206 203.0.113.77 | [RFC5245] | |203.0.113.7749203 typ srflx| | |raddr 198.51.100.7 rport | | | 51556 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Video m=line ********* |************************************************ | |m=video 49203 UDP/TLS/RTP/SAVPF|BUNDLE accepted with Bundle********** | | m=video 0 UDP/TLS/RTP/SAVPF 98 100 101 103 |Address identical to audio | | | m=line.BUNDLE accepted. | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=bundle-only | [I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | | | n] | | a=mid:m1 | [RFC5888] Video | | | m=line part of | | |ofBUNDLE group | | a=msid:ma tb | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tb) | | a=recvonly | [RFC3264] | | a=rtpmap:98 VP8/90000 | [RFC7741] | | a=rtpmap:100 VP8/90000 | [RFC7741] | | a=rtpmap:101 flexfec/90000 |[I-D.ietf-payload-flexible-fe[I-D.ietf-payload-f | | |c-scheme]lexible-fec-scheme] | | a=rtpmap:103 flexfec/90000 |[I-D.ietf-payload-flexible-fe[I-D.ietf-payload-f | | |c-scheme]lexible-fec-scheme] | | 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; ToP=2; repair- |[I-D.ietf-payload-flexible-fe[I-D.ietf-payload-f | |repair-window=200000window=200000 |c-scheme]lexible-fec-scheme] | | a=fmtp:103 L=5; D=10; ToP=2; repair- |[I-D.ietf-payload-flexible-fe[I-D.ietf-payload-f | |repair-window=200000window=200000 |c-scheme]lexible-fec-scheme] | | a=rtcp-fb:* nack | [RFC5104] | | a=rtcp-fb:* nack pli | [RFC5104] | | a=rtcp-fb:* ccm fir | [RFC5104] | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | |a=extmap:3 a=extmap:3|[I-D.ietf-avtext-rid]n] | | a=extmap:3 urn:ietf:params:rtp- | [I-D.ietf-avtext-ri | | hdrext:sdes:rtp-stream-id | d] | | a=rid:1 recvpt=98;pt=98 |[I-D.ietf-mmusic-rid][I-D.ietf-mmusic-ri | | | d] | | a=rid:2 recvpt=100;pt=100 |[I-D.ietf-mmusic-rid][I-D.ietf-mmusic-ri | | | d] | | a=simulcast:recv 1;2 |[I-D.ietf-mmusic-sdp-simulcas[I-D.ietf-mmusic-sd | | |t]p-simulcast] |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ Table 36: 5.3.5 SDP Answer 5.4. Others The examples in the section provide SDP Offer/Answer exchange for a variety of scenarios related to RTP Header extension for conference usages, 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. 2-Way Audio with VAD Alice Bob | | | | |Alice indicates support for including | |audio level in RTP header | | | | Offer(Audio:Opus,PCMU,PCMA) | |---------------------------------------->| | | | | | Answer(Audio:Opus,PCMU,PCMA) | |<----------------------------------------| | | | |Bob accepts and | |indicates his | |support as well | | | Two way Opus Audio | |.........................................| | | |Per packet audio-level is included in the| |RTP header | | |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Offer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE audio |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | |egotiation]p-bundle-negotiatio | | | n] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 54609 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 0 8 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendrecv | [RFC3264] | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=rtpmap:0 PCMU/8000 | [RFC3551] | | a=rtpmap:8 PCMA/8000 | [RFC3551] | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:074c6550 | [RFC5245] | |a=ice-pwd:a28a397a4c3f31747d1ee34a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [RFC5245] | |74af08a068 | | |a=fingerprint:sha-25619:E2:1C:3B19:E2:1C:3B:4B:9F:81: | [RFC5245] | |:4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | |:04 :BB:05:2F:70:9F:04:A9:0E:05:E4:A9:0E:05:E9:26:33:E8:70:88:A2 | | |9:26:33:E8:70:88:A2a=setup:actpass | [RFC5763] | |a=setup:actpassa=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 |[RFC5763][I-D.ietf-mmusic-dt | |a=tls-id:1|[I-D.ietf-mmusic-dtls-sdp]ls-sdp] | | a=rtcp-mux | [RFC5761] | | a=rtcp-rsize | [RFC5506] | | a=rtcp-fb:* nack | [RFC5104] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2113667327 192.0.2.4 | [RFC5245] | |192.0.2.461665 typ host | | | a=candidate:1 1 UDP 694302207 203.0.113.141 | [RFC5245] | |203.0.113.14154609 typ srflx| | |raddr 192.0.2.4 rport 61665 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | |+-----------------------------------+-------------------------------+| ickle-ice] | +---------------------------------------------+---------------------+ Table 37: 5.4.1 SDP Offer+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Answer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE audio |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | |egotiation]| n] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 49203 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 0 98 | [RFC4566] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendrecv | [RFC3264] - Bob cansend and| | | send and recv audio | | a=rtpmap:109 opus/48000/2 | [RFC7587] - Bob | | | accepts only Opus | | |OpusCodec | | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMU | | | Audio Codec | | a=rtpmap:0 PCMA/8000 | [RFC3551] PCMA | | | Audio Codec | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:c300d85b | [RFC5245] | |a=ice-pwd:de4e99bd291c325921d5d47a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [RFC5245] | |efbabd9a2 | | |a=fingerprint:sha-2566B:8B:F0:656B:8B:F0:65:5F:78:E2: | [RFC5245] | |:5F:78:E2:51:3B:AC:6F:F3:3F:46:1B51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | | |:35 :DC:B8:5F:64:1A:24:C2:43:F0:A4:C2:43:F0:A1:58:D0:A1:2C:19:08 | | |1:58:D0:A1:2C:19:08a=setup:active | [RFC5763] | |a=setup:activea=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 |[RFC5763][I-D.ietf-mmusic-dt | |a=tls-id:1|[I-D.ietf-mmusic-dtls-sdp]ls-sdp] | | a=rtcp-mux | [RFC5761] - Bob canperform| | | perform RTP/RTCP | | | Muxing on port | | | 49203 | | a=rtcp-rsize | [RFC5506] | | a=rtcp-fb:* nack | [RFC5104] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2113667327 198.51.100.7 | [RFC5245] | |198.51.100.751556 typ host | | | a=candidate:1 1 UDP 1694302207 203.0.113.77 | [RFC5245] | |203.0.113.7749203 typ srflx| | |raddr 198.51.100.7 rport | | | 51556 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | |+-----------------------------------+-------------------------------+| ickle-ice] | +---------------------------------------------+---------------------+ Table 38: 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. Audio Conference with VAD Support Alice Mixer | | |Alice indicates her interest to audio | |levels for the contributing sources | | | |Offer(Audio:Opus,PCMU,PCMA) | |---------------------------------------->| | | | | |Answer(Audio:Opus,PCMU,PCMA) | |<----------------------------------------| | | | |Mixer indicates | |it can provide | |audio-levels |Two way Opus Audio | |.........................................| | | |Audio-levels per CSRCS is included in the| |RTP header | | |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Offer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 20518 0 IN IP4 0.0.0.0 | [RFC4566] - SessionOrigin| | | Origin Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE audio |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | |egotiation]p-bundle-negotiatio | | | n] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 54609 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 0 8 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendrecv | [RFC3264] - Alicecan send| | | can send and recv | | | audio | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMU | | | Audio Codec | | a=rtpmap:0 PCMA/8000 | [RFC3551] PCMA | | | Audio Codec | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:074c6550 | [RFC5245] | |a=ice-pwd:a28a397a4c3f31747d1ee34a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [RFC5245] | |74af08a068 | | |a=fingerprint:sha-25619:E2:1C:3B19:E2:1C:3B:4B:9F:81: | [RFC5245] | |:4B:9F:81:E6:B8:5C:F4:A5:A8:D8:73E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | |:04 :BB:05:2F:70:9F:04:A9:0E:05:E4:A9:0E:05:E9:26:33:E8:70:88:A2 | | |9:26:33:E8:70:88:A2a=setup:actpass | [RFC5763] | |a=setup:actpassa=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 |[RFC5763][I-D.ietf-mmusic-dt | |a=tls-id:1|[I-D.ietf-mmusic-dtls-sdp]ls-sdp] | | a=rtcp-mux | [RFC5761] | | a=rtcp-rsize | [RFC5506] | | a=rtcp-fb:* nack | [RFC5104] | | a=extmap:1/recvonly urn:ietf:params:rtp- | [RFC6465] | |urn:ietf:params:rtp-hdrext:csrc- | | | audio-levelhdrext:csrc-audio-level | | | a=extmap:2urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:3 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2113667327 192.0.2.4 | [RFC5245] | |192.0.2.461665 typ host | | | a=candidate:1 1 UDP 694302207 203.0.113.141 | [RFC5245] | |203.0.113.14154609 typ srflx| | |raddr 192.0.2.4 rport 61665 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ Table 39: 5.4.2 SDP Offer+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | Answer SDP Contents | RFC#/Notes |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ | v=0 | [RFC4566] | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] - SessionOrigin| | | Origin Information | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | a=group:BUNDLE audio |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | | p-bundle-negotiatio | |egotiation]| n] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] | | ****** Audio m=line ********* |************************************************ | |m=audio 49203 UDP/TLS/RTP/SAVPF|[RFC4566]********** | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 0 98 | [RFC4566] | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=mid:audio | [RFC5888] | | a=msid:ma ta | Identifies | | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendrecv | [RFC3264] | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=rtpmap:0 PCMU/8000 | [RFC3551] PCMU | | | Audio Codec | | a=rtpmap:0 PCMA/8000 | [RFC3551] PCMA | | | Audio Codec | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:c300d85b | [RFC5245] | |a=ice-pwd:de4e99bd291c325921d5d47a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [RFC5245] | |efbabd9a2 | | |a=fingerprint:sha-2566B:8B:F0:656B:8B:F0:65:5F:78:E2: | [RFC5245] | |:5F:78:E2:51:3B:AC:6F:F3:3F:46:1B51:3B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:2 | | |:35 :DC:B8:5F:64:1A:24:C2:43:F0:A4:C2:43:F0:A1:58:D0:A1:2C:19:08 | | |1:58:D0:A1:2C:19:08a=setup:active | [RFC5763] | |a=setup:activea=tls-id:CJ6FF9ZZMJW7MDRJIR7XVIQM48GE1G31 |[RFC5763][I-D.ietf-mmusic-dt | |a=tls-id:1|[I-D.ietf-mmusic-dtls-sdp]ls-sdp] | | a=rtcp-mux | [RFC5761] | | a=rtcp-rsize | [RFC5506] | | a=rtcp-fb:* nack | [RFC5104] | | a=extmap:1/sendonly urn:ietf:params:rtp- | [RFC6465] | |urn:ietf:params:rtp-hdrext:csrc- | | | audio-levelhdrext:csrc-audio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle-n[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |egotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2113667327 198.51.100.7 | [RFC5245] | |198.51.100.751556 typ host | | | a=candidate:1 1 UDP 1694302207 203.0.113.77 | [RFC5245] | |203.0.113.7749203 typ srflx| | |raddr 198.51.100.7 rport | | | 51556 | | | a=end-of-candidates |[I-D.ietf-mmusic-trickle-ice][I-D.ietf-mmusic-tr | | | ickle-ice] |+-----------------------------------+-------------------------------++---------------------------------------------+---------------------+ Table 40: 5.4.2 SDP Answer 5.4.3. Successful legacy Interop Fallback 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 the BUNDLE mechanism or the bundle-only attribute, he accepts only the audio stream from Alice. NOTE: Since Alice is unaware of Bob's support for BUNDLE framework, Alice ensures to include separate RTP/RTCP ports and candidate information. Successful 2-Way WebRTC <-> VOIP Interop Alice Bob | | | | | Alice is a multistream capable WebRTC end-point | | & Bob is behind a legacy VOIP system | | | |Offer(Audio:Opus Video:2 VP8,2 H2.64 Streams) with | | bundle-only | |---------------------------------------------------------->| | Alice marks both the video streams as bundle-only | | | | | | Answer(Audio:Opus) | |<----------------------------------------------------------| | |Bob | |accepts | |audio | |stream, | |since he | |doesn't | |recognize | |bundle-only | | | Two way Opus Audio | |...........................................................| | | | |+-------------------------------------+-----------------------------++---------------------------------------------+---------------------+ | 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=group:BUNDLE m0 m1 m2 |[I-D.ietf-mmusic-sdp-bundle[I-D.ietf-mmusic-sd | | |-negotiation] Alicep-bundle-negotiatio | | | n] Alice supports | | | grouping of m=lines | | |m=linesunder BUNDLE | | | semantics | | a=group:LS m0 m1 | [RFC5888] | | a=ice-options:trickle |[I-D.ietf-mmusic-trickle-ic[I-D.ietf-mmusic-tr | | |e]ickle-ice] | | ****** Audio m=line ********* |********************************************** | | |************ | | m=audio 54609 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=mid:m0 | [RFC5888] Audio | | | m=line part of | | |ofBUNDLE group with a | | | unique port number | | a=msid:ma ta | IdentifiesRTCMediaStream| | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (ta) | | a=sendrecv | [RFC3264] | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=maxptime:120 | [RFC4566] | | a=ice-ufrag:074c6550 | [RFC5245] | |a=ice-pwd:a28a397a4c3f31747d1ee3474a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [RFC5245] | |af08a068 | | |a=fingerprint:sha-25619:E2:1C:3B:419:E2:1C:3B:4B:9F:81: | [RFC5245] | |B:9F:81:E6:B8:5C:F4:A5:A8:D8:73:04E6:B8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:0 | | |:BB:05:2F:70:9F:04:A9:0E:05:E9:26:34:A9:0E:05:E9:26:33:E8:70:88:A2 | | |3:E8:70:88:A2a=setup:actpass | [RFC5763] | |a=setup:actpassa=tls-id:89J2LRATQ3ULA24G9AHWVR31VJWSLB68 |[RFC5763][I-D.ietf-mmusic-dt | |a=tls-id:1|[I-D.ietf-mmusic-dtls-sdp]ls-sdp] | | a=rtcp-mux | [RFC5761] | | a=rtcp:64678 IN IP4 203.0.113.141 | [RFC3605] | | a=rtcp-rsize | [RFC5506] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |-negotiation]p-bundle-negotiatio | | | n] | | a=candidate:0 1 UDP 2113667327 192.0.2.4 | [RFC5245] | |192.0.2.461665 typ host | | | a=candidate:1 1 UDP 694302207 203.0.113.141 | [RFC5245] | |203.0.113.14154609 typ srflx raddr| | |192.0.2.4 rport 61665 | | | a=candidate:0 1 UDP 2113667326 192.0.2.4 | [RFC5245] | |192.0.2.461667 typ host | | | a=candidate:1 1 UDP 1694302206 | [RFC5245] | | 203.0.113.141 64678 typ srflx raddr | | | 192.0.2.4 rport 61667 | | | ****** Video-1 m=line ********* |********************************************** | | |************ | | m=video 0 UDP/TLS/RTP/SAVPF 98 100 | bundle-only video | | | line with port | | |portnumber set to zero | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=bundle-only |[I-D.ietf-mmusic-sdp-bundle[I-D.ietf-mmusic-sd | | |-negotiation]p-bundle-negotiatio | | | n] | | a=mid:m1 | [RFC5888] Video | | | m=line part of | | |ofBUNDLE group | | a=msid:ma tb | IdentifiesRTCMediaStream| | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tb) | | a=sendrecv | [RFC3264] | | a=rtpmap:98 VP8/90000 | [RFC7741] | | a=imageattr:98 [x=1280,y=720] | [RFC6236] | | a=fmtp:98 max-fr=30 | [RFC4566] | | a=rtcp-fb:* nack | [RFC5104] | | a=rtcp-fb:* nack pli | [RFC5104] | | a=rtcp-fb:* ccm fir | [RFC5104] | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |-negotiation]p-bundle-negotiatio | | | n] | | ****** Video-2 m=line ********* |********************************************** | | |************ | | m=video 0 UDP/TLS/RTP/SAVPF 101 103 | bundle-only video | | | line with port | | |portnumber set to zero | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=bundle-only |[I-D.ietf-mmusic-sdp-bundle[I-D.ietf-mmusic-sd | | |-negotiation]p-bundle-negotiatio | | | n] | | a=mid:m2 | [RFC5888] Video | | | m=line part of | | |ofBUNDLE group | | a=msid:ma tc | IdentifiesRTCMediaStream| | | RTCMediaStream ID | | | (ma) and | | | RTCMediaStreamTrack | | | ID (tc) | | a=sendrecv | [RFC3264] | | a=rtpmap:101 H264/90000 | [RFC6184] | | a=rtpmap:103 H264/90000 | [RFC6184] | | a=fmtp:101 profile-level- |[RFC6184]Camera-2,Encoding-[RFC6184]Camera-2,E | |id=4d0028;packetization-mode=1;max-id=4d0028;packetization-mode=1;max-fr=30 |1 Resolutionncoding-1 | |fr=30| Resolution | | a=rtcp-fb:* nack | [RFC5104] | | a=rtcp-fb:* nack pli | [RFC5104] | | a=rtcp-fb:* ccm fir | [RFC5104] | | a=extmap:2 urn:ietf:params:rtp- |[I-D.ietf-mmusic-sdp-bundle[I-D.ietf-mmusic-sd | | hdrext:sdes:mid |-negotiation]p-bundle-negotiatio | |+-------------------------------------+-----------------------------+| n] | +---------------------------------------------+---------------------+ Table 41: 5.4.3 SDP Simulcast bundle-only+----------------------------------------+--------------------------++-------------------------------------------------+-----------------+ | Answer SDP Contents | RFC#/Notes |+----------------------------------------+--------------------------++-------------------------------------------------+-----------------+ | v=0 | [RFC4566] | | o=- 20519 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | ****** Audio m=line ********* |*************************************** | | |******************* | | m=audio 49203 UDP/TLS/RTP/SAVPF 109 | [RFC4566] | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=rtcp:60065 IN IP4 203.0.113.141 | [RFC3605] | | a=sendrecv | [RFC3264] | | a=rtpmap:109 opus/48000/2 | [RFC7587] | | a=maxptime:120 | [RFC4566] | |a=ice-ufrag:ufrag:c300d85ba=ice-ufrag:c300d85b | [RFC5245] | |a=ice-a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [RFC5245] | |pwd:de4e99bd291c325921d5d47efbabd9a2 | | |a=fingerprint:sha-2566B:8B:F0:65:5F:76B:8B:F0:65:5F:78:E2:51:3 | [RFC5245] | |8:E2:51:3B:AC:6F:F3:3F:46:1B:35 :DC:B8 | |B:AC:6F:F3:3F:46:1B:35:DC:B8:5F:64:1A:24:C2:43: |:5F:64:1A:24:C2:43:F0:A1:58:D0:A1:2C:1| || 9:08F0:A1:58:D0:A1:2C:19:08 | | | a=setup:active | [RFC5763] | | a=rtcp-rsize | [RFC5506] | | a=extmap:1urn:ietf:params:rtp-urn:ietf:params:rtp-hdrext:ssrc- | [RFC6464] | |hdrext:ssrc-audio-levelaudio-level | | | a=candidate:0 1 UDP 2113667327 198.51.100.7 | [RFC5245] | |198.51.100.751556 typ host | | | a=candidate:1 1 UDP 694302207 203.0.113.77 | [RFC5245] | |203.0.113.7749203 typ srflx raddr| | |198.51.100.7 rport 51556 | | | a=candidate:0 2 UDP 2113667326 198.51.100.7 | [RFC5245] | |198.51.100.751558 typ host | | | a=candidate:1 2 UDP 1694302206 203.0.113.77 | [RFC5245] | |203.0.113.7760065 typ srflx raddr| | |198.51.100.7 rport 51558 | | | ****** Video m=line ********* |*************************************** | | |******************* | | m=video 0 UDP/TLS/RTP/SAVPF 98 100 | Bob doesn't | | | recognize | | | bundle-only andhence| | | hence the | | | m=line is | | | rejected | | | implicitly due | | | to port 0 | | ****** Video m=line ********* |*************************************** | | |******************* | | m=video 0 UDP/TLS/RTP/SAVPF 98 100 | Bob doesn't | | | recognize | | | bundle-only andhence| | | hence the | | | m=line is | | | rejected | | | implicitly due | | | to port 0 |+----------------------------------------+--------------------------++-------------------------------------------------+-----------------+ Table 42: 5.4.3 SDP Answer 5.4.4. Legacy Interop with RTP/AVP profile In the scenario desribed below, Alice is a legacy end-point which sends [RFC3264] Offer with RTP/AVP based audio and video descriptions along with DTLS fingerprint and RTCP feedback information. On the other hand, Bob being a WebRTC end-point follows the procedures in section 5.1.2 of [I-D.ietf-rtcweb-jsep] and accepts the Alice's offer for DTLS-SRTP based session with RTCP feedback. Successful 2-Way WebRTC <-> VOIP Interop Alice Bob | | | | |Alice is a legacy VOIP End-point & Bob is a WebRTC End-Point| | | | | | | | Offer(Audio:Opus Video:H.264) | |----------------------------------------------------------->| | | | | |Alice includes : | |Legacy compliant media description (RTP/AVP) with dtls | |fingerprint and rtcp feedback support | | | | Answer(Audio:Opus, Video:H.264) | |<-----------------------------------------------------------| | |Bob | |accepts | |"legacy | |compliant" | |m=line | | | | | Two way Opus Audio, H.264 Video | |............................................................| | Session also suports RTP/RTCP Mux, RTCP Feedback | | |+----------------------------------------+--------------------------++-------------------------------------------------+-----------------+ | Offer 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-a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 | [RFC5245] | |pwd:a28a397a4c3f31747d1ee3474af08a068 | | |a=rtcp-rsize | [RFC5506] | | ****** Audio m=line ********* |*************************************** | | |******************* | | m=audio 54732 RTP/AVP 109 | [RFC4566]Alice | | | includes | | | RTP/AVP audio | | | stream | | | description | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=fingerprint:sha-25619:E2:1C:3B:4B:919:E2:1C:3B:4B:9F:81:E6:B | [RFC5245] | |F:81:E6:B8:5C:F4:A5:A8:D8:73:04 :BB:05 | |8:5C:F4:A5:A8:D8:73:04:BB:05:2F:70:9F:04:A9:0E: |:2F:70:9F:04:A9:0E:05:E9:26:33:E8:70:8| || 8:A205:E9:26:33:E8:70:88:A2 | | | a=rtpmap:109 opus/48000 | | | a=ptime:20 | | | a=sendrecv | [RFC3264] | | a=rtcp-mux | [RFC5761]Alicestill| | | still includes | | | RTP/RTCP Mux | | | support | | a=rtcp:64678 IN IP4 203.0.113.141 | [RFC3605] | | a=candidate:0 1 UDP 2113667327 192.0.2.4 54732 | [RFC5245] | |192.0.2.4 54732typ host | | | a=candidate:1 1 UDP 694302207 203.0.113.141 | [RFC5245] | |203.0.113.14154732 typ srflx raddr| | |192.0.2.4 rport 54732 | | | a=candidate:0 2 UDP 2113667326 192.0.2.4 64678 | [RFC5245] | |192.0.2.4 64678typ host | | | a=candidate:1 2 UDP 1694302206 203.0.113.141 | [RFC5245] | |203.0.113.14164678 typ srflx raddr| | |192.0.2.4 rport 64678 | | | ****** Video m=line ********* |*************************************** | | |******************* | | m=video 62445 RTP/AVP 120 | [RFC4566]Alice | | | includes | | | RTP/AVP video | | | stream | | | description | | c=IN IP4 203.0.113.141 | [RFC4566] | | a=fingerprint:sha-256DC:B8:5F:64:1A:2DC:B8:5F:64:1A:24:C2:43:F | [RFC5245] | |4:C2:43:F0:A1:58:D0:A1:2C:19:08 :6B:8B | | | :F0:65:5F:78:E2:51:3B:AC:6F:F3:3F:46:10:A1:58:D0:A1:2C:19:08:6B:8B:F0:65:5F:78:E2:51: | | |B:353B:AC:6F:F3:3F:46:1B:35 | | | a=rtpmap:120 VP8/90000 | [RFC7741] | | a=sendrecv | [RFC3264] | | a=rtcp-mux | [RFC5761]Aliceintends| | | intends to | | | perform | | | RTP/RTCP Mux | | a=rtcp:54721 IN IP4 203.0.113.141 | [RFC3605] | | a=candidate:0 1 UDP 2113667327 192.0.2.4 62445 | [RFC5245] | |192.0.2.4 62445typ host | | | a=candidate:1 1 UDP 1694302207 203.0.113.141 | [RFC5245] | |203.0.113.14162537 typ srflx raddr| | |192.0.2.4 rport 62445 | | | a=candidate:0 2 UDP 2113667326 192.0.2.4 54721 | [RFC5245] | |54721typ host | | | a=candidate:1 2 UDP 1694302206 203.0.113.141 | [RFC5245] | |203.0.113.14154721 typ srflx raddr| | |192.0.2.4 rport 54721 | | | a=rtcp-fb:120 nack pli | [RFC5104] Alice | | | indicates | | | support for | | | Picture lossIndication| | | Indication and | | | NACK RTCP | | | feedback | | a=rtcp-fb:120 ccm fir | [RFC5104] |+----------------------------------------+--------------------------++-------------------------------------------------+-----------------+ Table 43: 5.4.5 SDP Offer+----------------------------------------+--------------------------++-------------------------------------------------+-----------------+ | Answer SDP Contents | RFC#/Notes |+----------------------------------------+--------------------------++-------------------------------------------------+-----------------+ | v=0 | [RFC4566] | | o=- 16833 0 IN IP4 0.0.0.0 | [RFC4566] | | s=- | [RFC4566] | | t=0 0 | [RFC4566] | | ****** Audio m=line ********* |*************************************** | | |******************* | | m=audio 49203 RTP/AVP 109 | [RFC4566] Bobaccepts| | | accepts RTP/AVP | | | based audio | | | stream | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=rtpmap:109 opus/48000 | | | a=ptime:20 | | | a=sendrecv | [RFC3264] | | a=ice-ufrag:c300d85b | [RFC5245] | |a=ice-a=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 | [RFC5245] | |pwd:de4e99bd291c325921d5d47efbabd9a2 | | |a=fingerprint:sha-256BB:05:2F:70:9F:0BB:05:2F:70:9F:04:A9:0E:0 | [RFC5245] | |4:A9:0E:05:E9:26:33:E8:70:88:A2 :19:E2 | | | :1C:3B:4B:9F:81:E6:B8:5C:F4:A5:A8:D8:75:E9:26:33:E8:70:88:A2:19:E2:1C:3B:4B:9F:81:E6: | | |3:04B8:5C:F4:A5:A8:D8:73:04 | | | a=rtcp-mux | [RFC5761] | | a=candidate:0 1 UDP 2113667327 198.51.100.7 | [RFC5245] | |198.51.100.749203 typ host | | | a=candidate:1 1 UDP 1694302207 203.0.113.77 | [RFC5245] | |203.0.113.7749203 typ srflx raddr| | |198.51.100.7 rport 49203 | | | ****** Video m=line ********* |*************************************** | | |******************* | | m=video 63130 RTP/SAVP 120 | [RFC4566] Bobaccepts| | | accepts RTP/AVP | | | based video | | | stram | | c=IN IP4 203.0.113.77 | [RFC4566] | | a=rtpmap:120 VP8/90000 | [RFC7741] | | a=sendrecv | [RFC3264] | | a=ice-ufrag:e39091na | [RFC5245] | |a=ice-a=ice-pwd:dbc325921d5dd29e4e99147efbabd9a2 | [RFC5245] | |pwd:dbc325921d5dd29e4e99147efbabd9a2 | | |a=fingerprint:sha-256BB:0A9:0E:05:E9:BB:0A:0E:05:E9:26:33:E8:7 | [RFC5245] | |26:33:E8:70:88:A25:2F:70:9F:04: :19:E2 | | | :1C:3B:4B:9F:81:5:2F:70:9F:04::F4:A5:A0:88:A2:2F:70:9F:04:19:E2:1C:3B:4B:9F:81:56:2F: | | |8:D8:70:9F:04:F4:A5:A8:D8 | | | a=rtcp-mux | [RFC5761] | | a=candidate:0 1 UDP 2113667327 198.51.100.7 | [RFC5245] | |198.51.100.763130 typ host | | | a=candidate:1 1 UDP 1694302207 203.0.113.77 | [RFC5245] | |203.0.113.7763130 typ srflx raddr| | |198.51.100.7 rport 63130 | | | a=rtcp-fb:120 nack pli | [RFC5104] | | a=rtcp-fb:120 ccm fir | [RFC5104] |+----------------------------------------+--------------------------++-------------------------------------------------+-----------------+ Table 44: 5.4.5 SDP Answer 6. IANA Considerations This document requires no actions from IANA. 7. Security Considerations The IETF has published separate documents [I-D.ietf-rtcweb-security-arch] [I-D.ietf-rtcweb-security] describing the security architecture for WebRTC as a whole. In addition, since the SDP offer and answer messages can contain private information about addresses and sessions to be established between parties, if this information needs to be kept private, some security mechanism (using TLS transport for example) in the protocol used to carry the offers and answers must be used. 8. Acknowledgments We would like to thank Justin Uberti, Chris Flo, Paul Kyzivat, Nils Ohlmeier for their detailed review and inputs. Thanks to Adam Roach for providing syntax validation script to help highlight syntax and formatting errors. 9. Change Log [RFC EDITOR NOTE: Please remove this section when publishing] Changes from draft-ietf-rtcweb-sdp-08 o Fixed formatting and syntax issues pointed out by Adam Roach's validator script. List of issues are here: https://github.com/fluffy/ietf/issues?q=is%3Aissue+is%3Aclosed o Align examples to match latest bundle specification as pointed by Christer Holmberg Changes from draft-ietf-rtcweb-sdp-07 o Incorporate review from Nils. Changes from draft-ietf-rtcweb-sdp-06 o Keep Alive Version. Changes from draft-ietf-rtcweb-sdp-05 o Title change. Changes from draft-ietf-rtcweb-sdp-04 o Add IPv6 Example. o Add a=rtcp-mux-only and fix a=rtcp in examples. o Fix Idnits. o Add Security Considerations section. Changes from draft-ietf-rtcweb-sdp-02 to draft-ietf-rtcweb-sdp-04 o Alignment with JSEP-19. o Added a=identity example. o Added a=dtls-id, a=group:LS in the examples. o Added Appendix section to capture list of checklists for the attributes. o Removed SSRC lines to match JSEP-19. o Closed open issues on a=fingerprint, a=rtcp and a=rtcp-mux-only from ietf96 to reflect JSEP-19. o Simplied Inter-op example Changes from draft-ietf-rtcweb-sdp-02 o Version increment to avoid expiry Changes from draft-ietf-rtcweb-sdp-01 o Complete face-lift o Added visual markers around m=lines to indicate their type, added spacing between tables for aiding readers o Updated table names to indicate offer vs answer o Attempted to align to latest versions of SCTP, BUNDLE, MSID drafts o Added mid header extensions to all the lines o Harmonized BUNDLE semantics and conventions updated. Changes from draft-ietf-rtcweb-sdp-00 o Updated Simulcast/FEC/RTX examples to use RID framework o Fixed BUNDLE references for a=bundle-only Changes from draft-nandakumar-rtcweb-sdp-08 o Fixed typos o Moved to a WG version Changes from draft-nandakumar-rtcweb-sdp-06 and draft-nandakumar- rtcweb-sdp-07 o Added clarification on Call-Flow diagram usage o More cleanups Changes from draft-nandakumar-rtcweb-sdp-05 o Added Ascii chart for all the SDP Eaxamples o Improved text and updated SDP Examples for Simulcast and FEC o Fixed MediaStream ID Semantics SDP Errors Changes from draft-nandakumar-rtcweb-sdp-04 o Interim version of the draft to avert expiry o Corrected placement of c= line as per RFC4566 o Updated simulcast SDP to reflect draft-westerlund-avtcore-rtp- simulcast-04 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. o Added examples for few more BUNDLE variants o Added new examples for Simulcast and SVC 10. Informative References [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with Session Description Protocol (SDP)", RFC 3264, DOI 10.17487/RFC3264, June 2002, <https://www.rfc- editor.org/info/rfc3264>. [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session Description Protocol", RFC 4566, DOI 10.17487/RFC4566, July 2006, <https://www.rfc-editor.org/info/rfc4566>. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <https://www.rfc- editor.org/info/rfc2119>. [RFC5245] Rosenberg, J., "Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal for Offer/Answer Protocols", RFC 5245, DOI 10.17487/RFC5245, April 2010, <https://www.rfc- editor.org/info/rfc5245>. [RFC5506] Johansson, I. and M. Westerlund, "Support for Reduced-Size Real-Time Transport Control Protocol (RTCP): Opportunities and Consequences", RFC 5506, DOI 10.17487/RFC5506, April 2009, <https://www.rfc-editor.org/info/rfc5506>. [RFC3551] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and Video Conferences with Minimal Control", STD 65, RFC 3551, DOI 10.17487/RFC3551, July 2003, <https://www.rfc- editor.org/info/rfc3551>. [RFC4796] Hautakorpi, J. and G. Camarillo, "The Session Description Protocol (SDP) Content Attribute", RFC 4796, DOI 10.17487/RFC4796, February 2007, <https://www.rfc- editor.org/info/rfc4796>. [RFC5761] Perkins, C. and M. Westerlund, "Multiplexing RTP Data and Control Packets on a Single Port", RFC 5761, DOI 10.17487/RFC5761, April 2010, <https://www.rfc- editor.org/info/rfc5761>. [RFC5763] 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 5763, DOI 10.17487/RFC5763, May 2010, <https://www.rfc-editor.org/info/rfc5763>. [RFC5104] Wenger, S., Chandra, U., Westerlund, M., and B. Burman, "Codec Control Messages in the RTP Audio-Visual Profile with Feedback (AVPF)", RFC 5104, DOI 10.17487/RFC5104, February 2008, <https://www.rfc-editor.org/info/rfc5104>. [RFC4588] Rey, J., Leon, D., Miyazaki, A., Varsa, V., and R. Hakenberg, "RTP Retransmission Payload Format", RFC 4588, DOI 10.17487/RFC4588, July 2006, <https://www.rfc- editor.org/info/rfc4588>. [RFC5956] Begen, A., "Forward Error Correction Grouping Semantics in the Session Description Protocol", RFC 5956, DOI 10.17487/RFC5956, September 2010, <https://www.rfc- editor.org/info/rfc5956>. [RFC5888] Camarillo, G. and H. Schulzrinne, "The Session Description Protocol (SDP) Grouping Framework", RFC 5888, DOI 10.17487/RFC5888, June 2010, <https://www.rfc- editor.org/info/rfc5888>. [RFC6236] Johansson, I. and K. Jung, "Negotiation of Generic Image Attributes in the Session Description Protocol (SDP)", RFC 6236, DOI 10.17487/RFC6236, May 2011, <https://www.rfc-editor.org/info/rfc6236>. [RFC6184] Wang, Y., Even, R., Kristensen, T., and R. Jesup, "RTP Payload Format for H.264 Video", RFC 6184, DOI 10.17487/RFC6184, May 2011, <https://www.rfc- editor.org/info/rfc6184>. [RFC5583] Schierl, T. and S. Wenger, "Signaling Media Decoding Dependency in the Session Description Protocol (SDP)", RFC 5583, DOI 10.17487/RFC5583, July 2009, <https://www.rfc-editor.org/info/rfc5583>. [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson, "RTP: A Transport Protocol for Real-Time Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550, July 2003, <https://www.rfc-editor.org/info/rfc3550>. [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, DOI 10.17487/RFC3261, June 2002, <https://www.rfc- editor.org/info/rfc3261>. [RFC3605] Huitema, C., "Real Time Control Protocol (RTCP) attribute in Session Description Protocol (SDP)", RFC 3605, DOI 10.17487/RFC3605, October 2003, <https://www.rfc- editor.org/info/rfc3605>. [RFC4733] Schulzrinne, H. and T. Taylor, "RTP Payload for DTMF Digits, Telephony Tones, and Telephony Signals", RFC 4733, DOI 10.17487/RFC4733, December 2006, <https://www.rfc- editor.org/info/rfc4733>. [RFC6464] Lennox, J., Ed., Ivov, E., and E. Marocco, "A Real-time Transport Protocol (RTP) Header Extension for Client-to- Mixer Audio Level Indication", RFC 6464, DOI 10.17487/RFC6464, December 2011, <https://www.rfc- editor.org/info/rfc6464>. [RFC6465] Ivov, E., Ed., Marocco, E., Ed., and J. Lennox, "A Real- time Transport Protocol (RTP) Header Extension for Mixer- to-Client Audio Level Indication", RFC 6465, DOI 10.17487/RFC6465, December 2011, <https://www.rfc- editor.org/info/rfc6465>. [RFC7587] Spittka, J., Vos, K., and JM. Valin, "RTP Payload Format for the Opus Speech and Audio Codec", RFC 7587, DOI 10.17487/RFC7587, June 2015, <https://www.rfc- editor.org/info/rfc7587>. [RFC7741] Westin, P., Lundin, H., Glover, M., Uberti, J., and F. Galligan, "RTP Payload Format for VP8 Video", RFC 7741, DOI 10.17487/RFC7741, March 2016, <https://www.rfc- editor.org/info/rfc7741>. [RFC7826] Schulzrinne, H., Rao, A., Lanphier, R., Westerlund, M., and M. Stiemerling, Ed., "Real-Time Streaming Protocol Version 2.0", RFC 7826, DOI 10.17487/RFC7826, December 2016, <https://www.rfc-editor.org/info/rfc7826>. [I-D.ietf-mmusic-sdp-bundle-negotiation] Holmberg, C., Alvestrand, H., and C. Jennings, "Negotiating Media Multiplexing Using the Session Description Protocol (SDP)", draft-ietf-mmusic-sdp-bundle-negotiation-39negotiation-48 (work in progress),August 2017.January 2018. [I-D.ietf-mmusic-sdp-simulcast] Burman, B., Westerlund, M., Nandakumar, S., and M. Zanaty, "Using Simulcast in SDP and RTP Sessions", draft-ietf-mmusic-sdp-simulcast-10mmusic-sdp-simulcast-11 (work in progress),JulyDecember 2017. [I-D.ietf-mmusic-rid]Thatcher, P., Zanaty, M., Nandakumar, S., Burman, B.,Roach, A.,and B. Campen,"RTP Payload Format Restrictions",draft-ietf-mmusic-rid-11draft-ietf- mmusic-rid-14 (work in progress),July 2017.February 2018. [I-D.ietf-rtcweb-jsep] Uberti, J., Jennings, C., and E. Rescorla, "JavaScript Session Establishment Protocol", draft-ietf-rtcweb-jsep-24 (work in progress), October 2017. [I-D.ietf-mmusic-trickle-ice] Ivov, E., Rescorla, E., and J. Uberti, "Trickle ICE: Incremental Provisioning of Candidates for the Interactive Connectivity Establishment (ICE) Protocol", draft-ietf- mmusic-trickle-ice-02 (work in progress), January 2015. [I-D.ietf-mmusic-msid] Alvestrand, H., "WebRTC MediaStream Identification in the Session Description Protocol", draft-ietf-mmusic-msid-16 (work in progress), February 2017. [I-D.ietf-mmusic-sctp-sdp] Holmberg, C., Shpount, R., Loreto, S., and G. Camarillo, "Session Description Protocol (SDP) Offer/Answer Procedures For Stream Control Transmission Protocol (SCTP) over Datagram Transport Layer Security (DTLS) Transport.", draft-ietf-mmusic-sctp-sdp-26 (work in progress), April 2017. [I-D.ietf-rtcweb-data-channel] Jesup, R., Loreto, S., and M. Tuexen, "WebRTC Data Channels", draft-ietf-rtcweb-data-channel-13 (work in progress), January 2015. [I-D.ietf-payload-flexible-fec-scheme] Singh, V., Begen, A., Zanaty, M., and G. Mandyam, "RTP Payload Format for Flexible Forward Error Correction (FEC)", draft-ietf-payload-flexible-fec-scheme-05 (work in progress), July 2017. [I-D.ietf-mmusic-mux-exclusive] Holmberg, C., "Indicating Exclusive Support of RTP/RTCP Multiplexing using SDP", draft-ietf-mmusic-mux- exclusive-12 (work in progress), May 2017. [I-D.ietf-mmusic-dtls-sdp] Holmberg, C. and R. Shpount, "Session Description Protocol (SDP) Offer/Answer Considerations for Datagram Transport Layer Security (DTLS) and Transport Layer Security (TLS)",draft-ietf-mmusic-dtls-sdp-31draft-ietf-mmusic-dtls-sdp-32 (work in progress), October 2017. [I-D.ietf-rtcweb-security-arch] Rescorla, E., "WebRTC Security Architecture", draft-ietf-rtcweb-security-arch-12rtcweb-security-arch-13 (work in progress),June 2016.October 2017. [I-D.ietf-rtcweb-security] Rescorla, E., "Security Considerations for WebRTC", draft-ietf-rtcweb-security-08ietf-rtcweb-security-10 (work in progress),February 2015.January 2018. [I-D.ietf-avtext-rid] Roach, A., Nandakumar, S., and P. Thatcher, "RTP Stream Identifier Source Description (SDES)", draft-ietf-avtext- rid-09 (work in progress), October 2016. [WebRTC] W3C, "WebRTC 1.0: Real-time Communication Between Browsers", <http://dev.w3.org/2011/webrtc/editor/webrtc.html> . Appendix A. Appendix A.1. JSEP SDP Attributes Checklist This section compiles a high-level checklist of the required SDP attributes to be verified against the examples defined in this specification. The goal here is to ensure that the examples are compliant to the rules defined in section 5 of the [I-D.ietf-rtcweb-jsep] specification. A.1.1. Common Checklist This subsection lists SDP attributes that mostly apply at the session level. o v=0 MUST be the first SDP line. o o= line MUST follow with values '-' for username, 64 bit value for session id and dummy values for 'nettype', 'addrtype' and 'unicast-address' (for example: IN IP4 0.0.0.0). o o= line MUST have the session version incremented in the cases of subsequent offers. o s= MUST be the third line with the value of '-'. o t= line MUST follow with the values for 'start-time' and 'stop- time' set to zeroes. o a=identity line MUST be included at the session level if WEBRTC Identity mechanism is being used. o a=ice-options:trickle MUST be present at the session level in all offers and answers when supported. A.1.2. RTP Media Description Checklist Following set of checklist items apply to RTP audio and video media descriptions. o The media description's port value MUST either be set to dummy value of '9' or MUST use the port from the default candidate, if available. o The media description's proto value MUST be 'UDP/TLS/RTP/SAVPF' for JSEP offers. o JSEP answerer MUST support any combination of "RTP/[S]AVP[F]" for interoperability scenarios as defined in section 5 of [I-D.ietf-rtcweb-jsep] o c= line MUST be the first line in a media description. A dummy value of 'IN IP 0.0.0.0' is set if there are no candidates gathered or its value MUST match the default candidate. o a=mid attribute MUST be in included. o One of a=sendrecv/a=sendonly/a=recvonly/a=inactive SDP direction attributes MUST be present. o a=rtpmap and a=fmtp attributes per primary, retransmission and forward error correction media format MUST be included. o a=rtcp-fb lines for each supported feedback mechanism MUST be included when using RTP with feedback o a=imageattr can be optionally present for video media descriptions. o a=msid line MUST be included for all the media senders identifying the MediaStreamTrack (i.e when a=sendonly/a=sendrecv attribute is present). o a=extmap line identifying the BUNDLE header extension MUST be present. o a=extmap lines for other supported RTP header extensions MUST be included. o a=rid line 'per encoding' with the direction of 'send' MUST be included when further constraining the media format or multiple encodings per media format is needed. o a=simulcast line MUST be present if there exists more than one 'a=rid' lines for the media senders. o a=bundle-only attribute MUST be present for media descriptions that are impacted by various bundle policies (such as max-bundle/ balanced) o For media descriptions that aren't "a=bundle-only" and that have unique address, following attributes MUST be present: * a=ice-ufrag and a=ice-pwd * a=fingerprint * a=setup with value 'actpass' in the offers and a value of 'active'/'passive' in the answerer. * a=tls-id * a=rtcp * a=rtcp-mux * For offerers requiring RTCP to be multiplexed, 'a=rtcp-mux- only' line * a=rtcp-rsize o a=group:BUNDLE line with all the 'mid' identifiers part of the BUNDLE group is included at the session level. o a=group:LS session level attribute MUST be included wth the 'mid' identifiers that are part of the lip same sync group. A.1.3. DataChannel Media Description checklist If a datachannel is required, an 'application' type media description MUST be included with the following properties: o Media description's proto value MUST be 'UDP/DTLS/SCTP' in the JSEP offers. o An JSEP answerer MUST support reception of 'UDP/DTLS/SCTP'/'TCP/DTLS/SCTP'/'DTLS/SCTP' for backward compatibility reasons. o A value of 'webrtc-datachannel' MUST be used for the media description 'fmt' value. o a=mid line MUST be present. o a=sctp-port with SCTP port number MUST be included. o a=max-message-size MAY be included, if appropriate. Authors' Addresses Suhas Nandakumar Cisco 170 West Tasman Drive San Jose, CA 95134 USA Email: snandaku@cisco.com Cullen Jennings Cisco 170 West Tasman Drive San Jose, CA 95134 USA Phone: +1 408 421-9990 Email: fluffy@cisco.com