MMUSIC Working Group A. Johnston Internet-Draft WorldCom Expires: [-April 27,-] {+August 31,+} 2003 R. Sparks dynamicsoft [-October 27, 2002-] {+March 2, 2003+} Session Description Protocol Offer Answer Examples [-draft-johnston-mmusic-offer-answer-examples-00-] {+draft-johnston-mmusic-offer-answer-examples-01+} Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as [-Internet- Drafts.-] {+Internet-Drafts.+} 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." The list of current Internet-Drafts can be accessed at http:// www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on [-April 27,-] {+August 31,+} 2003. Copyright Notice Copyright (C) The Internet Society [-(2002).-] {+(2003).+} All Rights Reserved. Abstract This document gives examples of Session Description Protocol (SDP) offer answer exchanges. Examples include codec negotiation and selection, hold and resume, and addition and deletion of media streams. The examples show multiple media types, bidirectional, unidirectional, inactive streams and dynamic payload types. Common Third Party Call Control (3pcc) examples are also given. Johnston & Sparks Expires [-April 27,-] {+August 31,+} 2003 [Page 1] Internet-Draft SDP Offer Answer Examples [-October 2002-] {+March 2003+} Table of Contents 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Codec Negotiation and Selection . . . . . . . . . . . . . . . 3 2.1 [-Audio: 3 offered, 1 accepted, Video: 2 offered,-] {+Audio and Video+} 1 [-accepted-] {+. . . . . . . . . . . . . . . . . . . .+} . . 3 2.2 [-Audio: 3 offered, 2 accepted,-] {+Audio and+} Video [-declined, second exchange Audio: 1 offered, 1 accepted-] {+2 . . . . . . . . . .+} . . . . . . . . . . . . 4 2.3 [-Audio:-] {+Audio and Video+} 3 [-offered, 1 accepted with different dynamic payload, Video: 2 offered, 1 accepted-] {+. . . . . . . . . .+} . . . . . . . . . . . . 6 2.4 [-Audio: sendrecv and sendonly established-] {+Two Audio Steams+} . . . . . . . . . . . [-7-] {+. . . . . . . . . . . . 6+} 2.5 Audio and Video [-established in first exchange, second exchange changes address and port-] {+4 . . . . . . . .+} . . . . . . . . . . . . . . 7 2.6 [-Two audio streams offered, one accepted, one declined-] {+Audio Only 1+} . . . . [-9-] {+. . . . . . . . . . . . . . . . . . . . . 8+} 2.7 Audio and Video [-session established, second video codec added in second exchange-] {+5 . . .+} . . . . . . . . . . . . . . . . . . . 9 2.8 [-Audio: 3 offered, 1 accepted, Video: 2 offered, 1 accepted with different address-] {+Audio and Video 6 . .+} . . . . . . . . . . . . . . . . . . . . 11 3. Hold and Resume Scenarios . . . . . . . . . . . . . . . . . . [-12-] {+11+} 3.1 [-Audio: offered, placed on hold in answer, counter offer taken off hold . .-] {+Hold and Unhold 1+} . . . . . . . . . . . . . . . . . . . . . . [-12-] {+11+} 3.2 {+Hold with+} Two [-Audio-] Streams [-established in initial exchange - one is put on hold in second exchange-] {+. . . .+} . . . . . . . . . . . . . . . . 13 4. Addition and Deletion of Media Streams . . . . . . . . . . . . 14 4.1 [-Audio: 1 stream established in first exchange, 2nd exchange establishes 2nd one-way stream-] {+Second Audio Stream Added+} . . . . . . . . . . . [-14 4.2 Audio session established, video added after second exchange-] . . . . . . . {+14 4.2 Audio then Video Added+} . . . . . . . . . . . . . . . . . . . . 15 4.3 [-Two media streams established in the first exchange, one is deleted in the second exchange .-] {+Audio and Video, then Video Deleted+} . . . . . . . . . . . . . [-17-] {+16+} 5. Third Party Call Control (3pcc) . . . . . . . . . . . . . . . 18 5.1 No [-media offered and accepted, media added in second exchange-] {+Media, then Audio Added+} . . . . . . . . . . . . . . . . . . {+18 5.2 Hold and Unhold 2 .+} . . . . . . . . . [-18 5.2 Audio: 0.0.0.0 in offer, accepted, second exchange, address changed and stream established-] . . . . . . . . . . . . 19 5.3 [-Audio: offered, accepted with address 0.0.0.0, second exchange, address changed-] {+Hold+} and [-stream established . .-] {+Unhold 3+} . . . . . [-20 6. Security Considerations-] . . . . . . . . . . . . . . . . . {+20 6. Security Considerations+} . . [-22 References-] . . . . . . . . . . . . . . . . . {+21 Informative References+} . . . . . . . . . [-22 Authors' Addresses-] . . . . . . . . . . . {+21 Authors' Addresses+} . . . . . . . . . . . [-22 Full Copyright Statement-] . . . . . . . . . . . {+21 Intellectual Property and Copyright Statements+} . . . . . . . . 23 Johnston & Sparks Expires [-April 27,-] {+August 31,+} 2003 [Page 2] Internet-Draft SDP Offer Answer Examples [-October 2002-] {+March 2003+} 1. Overview This document describes offer answer examples of Session Description Protocol (SDP) based on RFC 3264 [1]. The SDP in these examples are defined by RFC 2327 [2]. The offers and answers are assumed to be transported using a protocol such as Session Initiation Protocol (SIP) [3]. Examples include codec negotiation and selection, hold and resume, and addition and deletion of media streams. The examples show multiple media types, bidirectional, unidirectional, inactive streams and dynamic payload types. Common Third Party Call Control (3pcc) [5] examples are also given. The following sections contain examples in which two parties, Alice and Bob, exchange SDP offers, answers, and, in some cases, [-counter (additional)-] {+additional+} offers and answers. 2. Codec Negotiation and Selection 2.1 [-Audio: 3 offered, 1 accepted, Video: 2 offered,-] {+Audio and Video+} 1 [-accepted-] This common scenario shows a video and audio session in which multiple codecs are offered but only one is accepted. As a result of the exchange shown below, Alice [-may send only PCMU audio-] and [-MPV video, but-] Bob may [-send either PCMU, PCMA, or iLBC-] {+send only PCMU+} audio and [-either H261 or-] MPV video. Note: Dynamic payload type 97 is used for iLBC [-codec.-] {+codec [6].+} Johnston & Sparks Expires [-April 27,-] {+August 31,+} 2003 [Page 3] Internet-Draft SDP Offer Answer Examples [-October 2002-] {+March 2003+} [Offer] v=0 o=alice 2890844526 2890844526 IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} s= c=IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} t=0 0 m=audio 49170 RTP/AVP 0 8 97 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:97 iLBC m=video 51372 RTP/AVP 31 32 a=rtpmap:31 H261/90000 a=rtpmap:32 MPV/90000 [Answer] v=0 o=bob 2808844564 2808844564 IN IP4 [-host.there.com-] {+host.biloxi.example.com+} s= c=IN IP4 [-host.there.com-] {+host.biloxi.example.com+} t=0 0 m=audio 49174 RTP/AVP 0 a=rtpmap:0 PCMU/8000 m=video 49170 RTP/AVP 32 a=rtpmap:32 MPV/90000 2.2 [-Audio: 3 offered, 2 accepted,-] {+Audio and+} Video [-declined, second exchange Audio: 1 offered, 1 accepted-] {+2+} Alice can support PCMU, PCMA, and iLBC codecs, but not more than one at the same time. Alice offers all three to maximize chances of a successful exchange and Bob accepts two of them. Audio only session is established in initial exchange between Alice and Bob using either PCMU or PCMA codecs (payload type in RTP packet tells which is being used). Since Alice only supports one audio codec at a time, a [-counter-] {+second+} offer is made with just that one codec to limit the codec choice to just one. Note: the version number is incremented in both SDP messages in the [-counter-] {+second+} exchange. Now only {+the+} PCMU codec may be used for media session between Alice and Bob. Note: The declined video stream still present in the second exchange of SDP with ports set to zero. Johnston & Sparks Expires [-April 27,-] {+August 31,+} 2003 [Page 4] Internet-Draft SDP Offer Answer Examples [-October 2002-] {+March 2003+} [Offer] v=0 o=alice 2890844526 2890844526 IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} s= c=IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} t=0 0 m=audio 49170 RTP/AVP 0 8 97 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:97 iLBC m=video 51372 RTP/AVP 31 32 a=rtpmap:31 H261/90000 a=rtpmap:32 MPV/90000 [Answer] v=0 o=bob 2808844564 2808844564 IN IP4 [-host.there.com-] {+host.biloxi.example.com+} s= c=IN IP4 [-host.there.com-] {+host.biloxi.example.com+} t=0 0 m=audio 49172 RTP/AVP 0 8 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 m=video 0 RTP/AVP 31 a=rtpmap:31 H261/90000 [-[Counter-Offer]-] {+[Second-Offer]+} v=0 o=alice 2890844526 2890844527 IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} s= c=IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} t=0 0 m=audio 51372 RTP/AVP 0 a=rtpmap:0 PCMU/8000 m=video 0 RTP/AVP 31 a=rtpmap:31 H261/90000 [-[Counter-Answer]-] {+[Second-Answer]+} v=0 o=bob 2808844564 2808844565 IN IP4 [-host.there.com-] {+host.biloxi.example.com+} s= c=IN IP4 [-host.there.com-] {+host.biloxi.example.com+} t=0 0 m=audio 49172 RTP/AVP 0 Johnston & Sparks Expires [-April 27,-] {+August 31,+} 2003 [Page 5] Internet-Draft SDP Offer Answer Examples [-October 2002-] {+March 2003+} a=rtpmap:0 PCMU/8000 m=video 0 RTP/AVP 31 a=rtpmap:31 H261/90000 2.3 [-Audio:-] {+Audio and Video+} 3 [-offered, 1 accepted with different dynamic payload, Video: 2 offered, 1 accepted-] As a result of this exchange, Bob can send with either PCMU, PCMA, or iLBC for audio and H261 or MPV for video. Alice can send with iLBC and H261. Note: change of dynamic payload type from 97 to 99 between the offer and the answer is OK since it references same codec. [Offer] v=0 o=alice 2890844526 2890844526 IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} s= c=IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} t=0 0 m=audio 49170 RTP/AVP 0 8 97 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:97 iLBC m=video 51372 RTP/AVP 31 32 a=rtpmap:31 H261/90000 a=rtpmap:32 MPV/90000 [Answer] v=0 o=bob 2808844564 2808844564 IN IP4 [-host.there.com-] {+host.biloxi.example.com+} s= c=IN IP4 [-host.there.com-] {+host.biloxi.example.com+} t=0 0 m=audio 49172 RTP/AVP 99 a=rtpmap:99 iLBC m=video 51374 RTP/AVP 31 a=rtpmap:31 H261/90000 [-Johnston & Sparks Expires April 27, 2003 [Page 6] Internet-Draft SDP Offer Answer Examples October 2002-] 2.4 [-Audio: sendrecv and sendonly established-] {+Two Audio Steams+} Alice sends but can not receive RFC 2833 tones [4] in a separate {+Johnston & Sparks Expires August 31, 2003 [Page 6] Internet-Draft SDP Offer Answer Examples March 2003+} audio stream. Bob accepts both audio streams. [Offer] v=0 o=alice 2890844526 2890844526 IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} s= c=IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} t=0 0 m=audio 49170 RTP/AVP 0 97 a=rtpmap:0 PCMU/8000 a=rtpmap:97 iLBC m=audio 49172 RTP/AVP 98 a=rtpmap:98 telephone-event a=sendonly [Answer] v=0 o=bob 2808844564 2808844564 IN IP4 [-host.there.com-] {+host.biloxi.example.com+} s= c=IN IP4 [-host.there.com-] {+host.biloxi.example.com+} t=0 0 m=audio 49172 RTP/AVP 97 a=rtpmap:97 iLBC m=audio 49174 RTP/AVP 98 a=rtpmap:98 telephone-event a=recvonly 2.5 Audio and Video [-established in first exchange, second exchange changes address and port-] {+4+} Alice and Bob establish an audio and video session. In a second exchange, Bob changes his address for media and Alice accepts with the same SDP as the initial exchange (and does not increment the version number). [Offer] v=0 o=alice 2890844526 2890844526 IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} s= {+c=IN IP4 host.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 97 a=rtpmap:97 iLBC+} Johnston & Sparks Expires [-April 27,-] {+August 31,+} 2003 [Page 7] Internet-Draft SDP Offer Answer Examples [-October 2002 c=IN IP4 host.anywhere.com t=0 0 m=audio 49170 RTP/AVP 97 a=rtpmap:97 iLBC-] {+March 2003+} m=video 51372 RTP/AVP 31 a=rtpmap:31 H261/90000 [Answer] v=0 o=bob 2808844564 2808844564 IN IP4 [-host.there.com-] {+host.biloxi.example.com+} s= c=IN IP4 [-host.there.com-] {+host.biloxi.example.com+} t=0 0 m=audio 49174 RTP/AVP 97 [-a=rtpmap:0 PCMU/8000-] {+a=rtpmap:97 iLBC+} m=video 49170 RTP/AVP 31 a=rtpmap:31 H261/90000 [-[Counter-Offer]-] {+[Second-Offer]+} v=0 o=bob 2808844564 2808844565 IN IP4 [-host.there.com-] {+host.biloxi.example.com+} s= c=IN IP4 [-newhost.there.com-] {+newhost.biloxi.example.com+} t=0 0 m=audio 49178 RTP/AVP 97 [-a=rtpmap:0 PCMU/8000-] {+a=rtpmap:97 iLBC+} m=video 49188 RTP/AVP 31 a=rtpmap:31 H261/90000 [-[Counter-Answer]-] {+[Second-Answer]+} v=0 o=alice 2890844526 2890844526 IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} s= c=IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} t=0 0 m=audio 49170 RTP/AVP 97 a=rtpmap:97 iLBC m=video 51372 RTP/AVP 31 a=rtpmap:31 H261/90000 [-Johnston & Sparks Expires April 27, 2003 [Page 8] Internet-Draft SDP Offer Answer Examples October 2002-] 2.6 [-Two audio streams offered, one accepted, one declined-] {+Audio Only 1+} Alice wishes to establish an audio session with Bob using either PCMU codec or iLBC codec with RFC2833 tones, but not both at the same time. The offer contains these two media streams. Bob declines the first one and accepts the second one. If both media streams had been accepted, Alice would have [-counter offered-] {+sent a second+} declining one of the {+Johnston & Sparks Expires August 31, 2003 [Page 8] Internet-Draft SDP Offer Answer Examples March 2003+} streams, as shown in Section 4.3. [Offer] v=0 o=alice 2890844526 2890844526 IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} s= c=IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 m=audio 51372 RTP/AVP 97 101 a=rtpmap:97 iLBC a=rtpmap:101 telephone-events [Answer] v=0 o=bob 2808844564 2808844564 IN IP4 [-host.there.com-] {+host.biloxi.example.com+} s= c=IN IP4 [-host.there.com-] {+host.biloxi.example.com+} t=0 0 m=audio 0 RTP/AVP 0 a=rtpmap:0 PCMU/8000 m=audio 49170 RTP/AVP 97 101 a=rtpmap:97 iLBC a=rtpmap:101 telephone-events 2.7 Audio and Video [-session established, second video codec added in second exchange-] {+5+} Alice and Bob establish an audio and video session in the first exchange. In the second exchange, Alice adds a second video codec which Bob accepts. [-Johnston & Sparks Expires April 27, 2003 [Page 9] Internet-Draft SDP Offer Answer Examples October 2002-] [Offer] v=0 o=alice 2890844526 2890844526 IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} s= c=IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} t=0 0 {+Johnston & Sparks Expires August 31, 2003 [Page 9] Internet-Draft SDP Offer Answer Examples March 2003+} m=audio 49170 RTP/AVP 99 a=rtpmap:99 iLBC m=video 51372 RTP/AVP 31 a=rtpmap:31 H261/90000 [Answer] v=0 o=bob 2808844564 2808844564 IN IP4 [-host.there.com-] {+host.biloxi.example.com+} s= c=IN IP4 [-host.there.com-] {+host.biloxi.example.com+} t=0 0 m=audio 49172 RTP/AVP 99 a=rtpmap:99 iLBC m=video 51374 RTP/AVP 31 a=rtpmap:31 H261/90000 [-[Counter-Offer]-] {+[Second-Offer]+} v=0 o=alice 2890844526 2890844527 IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} s= c=IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} t=0 0 m=audio 49170 RTP/AVP 99 a=rtpmap:99 iLBC m=video 51372 RTP/AVP 31 32 a=rtpmap:31 H261/90000 a=rtpmap:32 MPV/90000 [-[Counter-Answer]-] {+[Second-Answer]+} v=0 o=bob 2808844564 2808844565 IN IP4 [-host.there.com-] {+host.biloxi.example.com+} s= c=IN IP4 [-host.there.com-] {+host.biloxi.example.com+} t=0 0 m=audio 49172 RTP/AVP 99 a=rtpmap:99 iLBC m=video 51374 RTP/AVP 31 32 a=rtpmap:31 H261/90000 {+a=rtpmap:32 MPV/90000+} Johnston & Sparks Expires [-April 27,-] {+August 31,+} 2003 [Page 10] Internet-Draft SDP Offer Answer Examples [-October 2002 a=rtpmap:32 MPV/90000-] {+March 2003+} 2.8 [-Audio: 3 offered, 1 accepted, Video: 2 offered, 1 accepted with different address-] {+Audio and Video 6+} This scenario shows an audio and video offer that is accepted, but the answerer wants the video sent to a different address than the audio. This is a common scenario in conferencing where the video and audio mixing utilizes different servers. In this example, Alice offers audio and video and Bob accepts. [Offer] v=0 o=alice 2890844526 2890844526 IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} s= c=IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} t=0 0 m=audio 49170 RTP/AVP 0 8 97 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:97 iLBC m=video 51372 RTP/AVP 31 32 a=rtpmap:31 H261/90000 a=rtpmap:32 MPV/90000 [Answer] v=0 o=bob 2808844564 2808844564 IN IP4 [-host.there.com-] {+host.biloxi.example.com+} s= c=IN IP4 [-host.there.com-] {+host.biloxi.example.com+} t=0 0 m=audio 49174 RTP/AVP 0 a=rtpmap:0 PCMU/8000 [-c=IN IP4 otherhost.there.com-] m=video 49172 RTP/AVP 32 {+c=IN IP4 otherhost.biloxi.example.com+} a=rtpmap:32 MPV/90000 [-Johnston & Sparks Expires April 27, 2003 [Page 11] Internet-Draft SDP Offer Answer Examples October 2002-] 3. Hold and Resume Scenarios 3.1 [-Audio: offered, placed on hold in answer, counter offer taken off hold-] {+Hold and Unhold 1+} Alice calls Bob, but Bob answers placing Alice on hold. Bob then takes Alice off hold in the [-counter-] {+second+} offer. Alice changes port number in the second exchange. The media session between Alice and Bob is now active after Alice's [-counter-] {+second+} answer. Note that a=sendrecv could {+Johnston & Sparks Expires August 31, 2003 [Page 11] Internet-Draft SDP Offer Answer Examples March 2003+} be present in both [-counter-offer-] {+second offer+} and [-counter-exchange.-] {+answer exchange.+} This is a common flow in 3pcc [5] scenarios. [Offer] v=0 o=alice 2890844526 2890844526 IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} s= c=IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} t=0 0 m=audio 49170 RTP/AVP 0 97 a=rtpmap:0 PCMU/8000 a=rtpmap:97 iLBC [Answer] v=0 o=bob 2808844564 2808844564 IN IP4 [-host.there.com-] {+host.biloxi.example.com+} s= c=IN IP4 [-placeholder.there.com-] {+placeholder.biloxi.example.com+} t=0 0 m=audio 49172 RTP/AVP 97 a=rtpmap:97 iLBC a=sendonly [-[Counter-Offer]-] {+[Second-Offer]+} v=0 o=bob 2808844564 2808844565 IN IP4 [-host.there.com-] {+host.biloxi.example.com+} s= c=IN IP4 [-host.there.com-] {+host.biloxi.example.com+} t=0 0 m=audio 49170 RTP/AVP 97 a=rtpmap:97 iLBC [-[Counter-Answer]-] {+[Second-Answer]+} v=0 [-Johnston & Sparks Expires April 27, 2003 [Page 12] Internet-Draft SDP Offer Answer Examples October 2002-] o=alice 2890844526 2890844527 IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} s= c=IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} t=0 0 m=audio 49178 RTP/AVP 97 a=rtpmap:97 iLBC {+Johnston & Sparks Expires August 31, 2003 [Page 12] Internet-Draft SDP Offer Answer Examples March 2003+} 3.2 {+Hold with+} Two [-Audio-] Streams [-established in initial exchange - one is put on hold in second exchange-] Alice sends but can not receive RFC2833 tones in a separate audio stream. Bob accepts both audio streams. Bob then puts Alice's audio stream on hold but not the tone stream. Alice responds with identical SDP to the initial offer. [Offer] v=0 o=alice 2890844526 2890844526 IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} s= c=IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} t=0 0 m=audio 49170 RTP/AVP 0 97 a=rtpmap:0 PCMU/8000 a=rtpmap:97 iLBC m=audio 49172 RTP/AVP 98 a=rtpmap:98 telephone-event a=sendonly [Answer] v=0 o=bob 2808844564 2808844564 IN IP4 [-host.there.com-] {+host.biloxi.example.com+} s= c=IN IP4 [-host.there.com-] {+host.biloxi.example.com+} t=0 0 m=audio 49172 RTP/AVP 97 a=rtpmap:97 iLBC m=audio 49174 RTP/AVP 98 a=rtpmap:98 telephone-event a=recvonly [-[Counter-Offer]-] {+[Second-Offer]+} v=0 [-Johnston & Sparks Expires April 27, 2003 [Page 13] Internet-Draft SDP Offer Answer Examples October 2002-] o=bob 2808844564 2808844565 IN IP4 [-host.there.com-] {+host.biloxi.example.com+} s= c=IN IP4 [-host.there.com-] {+host.biloxi.example.com+} t=0 0 m=audio 49172 RTP/AVP 97 a=rtpmap:97 iLBC a=sendonly m=audio 49174 RTP/AVP 98 a=rtpmap:98 telephone-event a=recvonly [-[Counter-Answer]-] {+Johnston & Sparks Expires August 31, 2003 [Page 13] Internet-Draft SDP Offer Answer Examples March 2003 [Second-Answer]+} v=0 o=alice 2890844526 2890844527 IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} s= c=IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} t=0 0 m=audio 49170 RTP/AVP 0 97 a=rtpmap:0 PCMU/8000 a=rtpmap:97 iLBC m=audio 49172 RTP/AVP 98 a=rtpmap:98 telephone-event a=sendonly 4. Addition and Deletion of Media Streams This section shows addition and deletion of media streams. 4.1 [-Audio: 1 stream established in first exchange, 2nd exchange establishes 2nd one-way stream-] {+Second Audio Stream Added+} The second stream is added by Bob's media server (different connection address) to receive RFC 2833 telephone-events (DTMF digits, typically) from Alice. Alice accepts. Even though the 2nd stream is unidirectional, Alice receives RTCP packets on port 49173 from the media server. [Offer] v=0 o=alice 2890844526 2890844526 IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} s= c=IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} t=0 0 [-Johnston & Sparks Expires April 27, 2003 [Page 14] Internet-Draft SDP Offer Answer Examples October 2002-] m=audio 49170 RTP/AVP 0 97 a=rtpmap:0 PCMU/8000 a=rtpmap:97 iLBC [Answer] v=0 o=bob 2808844564 2808844564 IN IP4 [-host.there.com-] {+host.biloxi.example.com+} s= c=IN IP4 [-host.there.com-] {+host.biloxi.example.com+} t=0 0 m=audio 49170 RTP/AVP 97 {+Johnston & Sparks Expires August 31, 2003 [Page 14] Internet-Draft SDP Offer Answer Examples March 2003+} a=rtpmap:97 iLBC [-[Counter-Offer]-] {+[Second-Offer]+} v=0 o=bob 2808844564 2808844565 IN IP4 [-host.there.com-] {+host.biloxi.example.com+} s= c=IN IP4 [-host.there.com-] {+host.biloxi.example.com+} t=0 0 m=audio 49170 RTP/AVP 97 a=rtpmap:97 iLBC [-c=IN IP4 mediaserver.there.com-] m=audio 48282 RTP/AVP 98 {+c=IN IP4 mediaserver.biloxi.example.com+} a=rtpmap:98 telephone-events a=recvonly [-[Counter-Answer]-] {+[Second-Answer]+} v=0 o=alice 2890844526 2890844527 IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} s= c=IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} t=0 0 m=audio 49170 RTP/AVP 97 a=rtpmap:97 iLBC c=IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} m=audio 49172 RTP/AVP 98 a=rtpmap:98 telephone-events a=sendonly 4.2 Audio [-session established, video added after second exchange-] {+then Video Added+} Audio only session is established in initial exchange between Alice and Bob using PCMU codec. Alice adds a video stream which is [-Johnston & Sparks Expires April 27, 2003 [Page 15] Internet-Draft SDP Offer Answer Examples October 2002-] accepted by Bob. [Offer] v=0 o=alice 2890844526 2890844526 IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} s= c=IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} t=0 0 m=audio 49170 RTP/AVP 0 {+Johnston & Sparks Expires August 31, 2003 [Page 15] Internet-Draft SDP Offer Answer Examples March 2003+} a=rtpmap:0 PCMU/800 [Answer] v=0 o=bob 2808844564 2808844564 IN IP4 [-host.there.com-] {+host.biloxi.example.com+} s= c=IN IP4 [-host.there.com-] {+host.biloxi.example.com+} t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 [-[Counter-Offer]-] {+[Second-Offer]+} v=0 o=alice 2890844526 2890844527 IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} s= c=IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 m=video 49172 RTP/AVP 31 a=rtpmap:31 H261/90000 [-[Counter-Answer]-] {+[Second-Answer]+} v=0 o=bob 2808844564 2808844565 IN IP4 [-host.there.com-] {+host.biloxi.example.com+} s= c=IN IP4 [-host.there.com-] {+host.biloxi.example.com+} t=0 0 m=audio [-49170-] {+49172+} RTP/AVP 0 a=rtpmap:0 PCMU/8000 m=video 49168 RTP/AVP 31 a=rtpmap:31 H261/90000 [-Johnston & Sparks Expires April 27, 2003 [Page 16] Internet-Draft SDP Offer Answer Examples October 2002-] 4.3 [-Two media streams established in the first exchange, one is deleted in the second exchange-] {+Audio and Video, then Video Deleted+} Alice and Bob establish an audio and video session. In a second exchange, Bob deletes the video session resulting in an audio only session. [Offer] v=0 o=alice 2890844526 2890844526 IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com Johnston & Sparks Expires August 31, 2003 [Page 16] Internet-Draft SDP Offer Answer Examples March 2003+} s= c=IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} t=0 0 m=audio 49170 RTP/AVP 97 a=rtpmap:97 iLBC m=video 51372 RTP/AVP 31 a=rtpmap:31 H261/90000 [Answer] v=0 o=bob 2808844564 2808844564 IN IP4 [-host.there.com-] {+host.biloxi.example.com+} s= c=IN IP4 [-host.there.com-] {+host.biloxi.example.com+} t=0 0 m=audio 49174 RTP/AVP 97 a=rtpmap:0 PCMU/8000 m=video 49170 RTP/AVP 31 a=rtpmap:31 H261/90000 [-[Counter-Offer]-] {+[Second-Offer]+} v=0 o=bob 2808844564 2808844565 IN IP4 [-host.there.com-] {+host.biloxi.example.com+} s= c=IN IP4 [-host.there.com-] {+host.biloxi.example.com+} t=0 0 m=audio 49174 RTP/AVP 97 [-a=rtpmap:0 PCMU/8000-] {+a=rtpmap:97 iLBC+} m=video 0 RTP/AVP 31 a=rtpmap:31 H261/90000 [-[Counter-Answer]-] {+[Second-Answer]+} v=0 o=alice 2890844526 2890844527 IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} s= [-Johnston & Sparks Expires April 27, 2003 [Page 17] Internet-Draft SDP Offer Answer Examples October 2002-] c=IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} t=0 0 m=audio 49170 RTP/AVP 97 a=rtpmap:97 iLBC m=video 0 RTP/AVP 31 a=rtpmap:31 H261/90000 {+Johnston & Sparks Expires August 31, 2003 [Page 17] Internet-Draft SDP Offer Answer Examples March 2003+} 5. Third Party Call Control (3pcc) This section shows examples common in Third Party Call Control (3pcc) flows [5]. Call hold and resume flows are also common in 3pcc. 5.1 No [-media offered and accepted, media added in second exchange-] {+Media, then Audio Added+} The first offer from Alice contains no media lines, so Bob accepts with no media lines. In the second exchange, [-Alice adds an audio stream which Bob accepts. Johnston & Sparks Expires April 27, 2003 [Page 18] Internet-Draft SDP Offer Answer Examples October 2002-] {+Alice adds an audio stream which Bob accepts.+} [Offer] v=0 o=alice 2890844526 2890844526 IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} s= c=IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} t=0 0 [Answer] v=0 o=bob 2808844564 2808844564 IN IP4 [-host.there.com-] {+host.biloxi.example.com+} s= c=IN IP4 [-host.there.com-] {+host.biloxi.example.com+} t=0 0 [-[Counter-Offer]-] {+[Second-Offer]+} v=0 o=alice 2890844526 2890844527 IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} s= c=IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} t=0 0 m=audio 49170 RTP/AVP 97 a=rtpmap:97 iLBC [-[Counter-Answer]-] {+[Second-Answer]+} v=0 o=bob 2808844564 2808844565 IN IP4 [-host.there.com-] {+host.biloxi.example.com+} s= c=IN IP4 [-host.there.com-] {+host.biloxi.example.com+} t=0 0 m=audio 49172 RTP/AVP 97 a=rtpmap:97 iLBC {+Johnston & Sparks Expires August 31, 2003 [Page 18] Internet-Draft SDP Offer Answer Examples March 2003+} 5.2 [-Audio: 0.0.0.0 in offer, accepted, second exchange, address changed-] {+Hold+} and [-stream established-] {+Unhold 2+} The first offer from Alice contains the connection address 0.0.0.0 and a random port number, which means that Bob can not send media to Alice (the media stream is "black holed" or "bh"). Bob accepts with normal SDP. In the second exchange, Alice changes the connection address, Bob accepts, and a media session is established. [-Johnston & Sparks Expires April 27, 2003 [Page 19] Internet-Draft SDP Offer Answer Examples October 2002-] [Offer] v=0 o=alice 2890844526 2890844526 IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} s= c=IN IP4 0.0.0.0 t=0 0 m=audio 23442 RTP/AVP 97 a=rtpmap:97 iLBC [Answer] v=0 o=bob 2808844564 2808844564 IN IP4 [-host.there.com-] {+host.biloxi.example.com+} s= c=IN IP4 [-host.there.com-] {+host.biloxi.example.com+} t=0 0 m=audio 49170 RTP/AVP 97 a=rtpmap:97 iLBC [-[Counter-Offer]-] {+[Second-Offer]+} v=0 o=alice 2890844526 2890844527 IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} s= c=IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} t=0 0 m=audio 49170 RTP/AVP 97 a=rtpmap:97 iLBC [-[Counter-Answer]-] {+[Second-Answer]+} v=0 o=bob 2808844564 2808844564 IN IP4 [-host.there.com-] {+host.biloxi.example.com+} s= c=IN IP4 [-host.there.com-] {+host.biloxi.example.com+} t=0 0 m=audio 49170 RTP/AVP 97 a=rtpmap:97 iLBC {+Johnston & Sparks Expires August 31, 2003 [Page 19] Internet-Draft SDP Offer Answer Examples March 2003+} 5.3 [-Audio: offered, accepted with address 0.0.0.0, second exchange, address changed-] {+Hold+} and [-stream established-] {+Unhold 3+} The first offer from Alice contains an audio stream, but the answer from Bob contains the connection address 0.0.0.0 and a random port [-Johnston & Sparks Expires April 27, 2003 [Page 20] Internet-Draft SDP Offer Answer Examples October 2002-] number, which means that Alice can not send media to Bob (the media stream is "black holed" or "bh"). In the second exchange, Bob changes the connection address, Alice accepts, and a media session is established. [Offer] v=0 o=alice 2890844526 2890844526 IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} s= c=IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} t=0 0 m=audio 49170 RTP/AVP 97 a=rtpmap:97 iLBC [Answer] v=0 o=bob 2808844564 2808844564 IN IP4 [-host.there.com-] {+host.biloxi.example.com+} s= c=IN IP4 0.0.0.0 t=0 0 m=audio 9322 RTP/AVP 97 a=rtpmap:97 iLBC [-[Counter-Offer]-] {+[Second-Offer]+} v=0 o=bob 2808844564 2808844565 IN IP4 [-host.there.com-] {+host.biloxi.example.com+} s= c=IN IP4 [-host.there.com-] {+host.biloxi.example.com+} t=0 0 m=audio 49172 RTP/AVP 97 a=rtpmap:97 iLBC [-[Counter-Answer]-] {+[Second-Answer]+} v=0 o=alice 2890844526 2890844526 IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} s= c=IN IP4 [-host.anywhere.com-] {+host.atlanta.example.com+} t=0 0 [-m=audio 49170 RTP/AVP 97 a=rtpmap:97 iLBC-] Johnston & Sparks Expires [-April 27,-] {+August 31,+} 2003 [Page [-21]-] {+20]+} Internet-Draft SDP Offer Answer Examples [-October 2002-] {+March 2003 m=audio 49170 RTP/AVP 97 a=rtpmap:97 iLBC+} 6. Security Considerations 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 in the protocol used to carry the offers and answers must be used. For SIP, this means using TLS transport and/or S/MIME encryption of the SDP message body. {+Informative+} References [1] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with Session Description Protocol (SDP)", RFC 3264, June 2002. [2] Handley, M. and V. Jacobson, "SDP: Session Description Protocol", RFC 2327, April 1998. [3] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M. and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002. [4] Schulzrinne, H. and S. [-Petrak,-] {+Petrack,+} "RTP Payload for DTMF Digits, Telephony Tones and Telephony Signals", RFC 2833, May 2000. [5] Rosenberg, J., [-Peterson, J.,-] Schulzrinne, [-H. and G.-] {+H.,+} Camarillo, {+G. and J. Peterson,+} "Best Current Practices for Third Party Call Control in the Session Initiation Protocol", draft-ietf-sipping-3pcc-02 (work in progress), June 2002. {+[6] Duric, A. and S. Andersen, "RTP Payload Format for iLBC Speech", draft-ietf-avt-rtp-ilbc-00 (work in progress), October 2002.+} Authors' Addresses Alan Johnston WorldCom 100 South 4th Street St. Louis, MO [-63104-] {+63102+} EMail: alan.johnston@wcom.com {+Johnston & Sparks Expires August 31, 2003 [Page 21] Internet-Draft SDP Offer Answer Examples March 2003+} Robert J. Sparks dynamicsoft 5100 Tennyson Parkway Suite 1200 Plano, TX 75024 EMail: rsparks@dynamicsoft.com Johnston & Sparks Expires [-April 27,-] {+August 31,+} 2003 [Page 22] Internet-Draft SDP Offer Answer Examples [-October 2002-] {+March 2003 Intellectual Property Statement The IETF takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on the IETF's procedures with respect to rights in standards-track and standards-related documentation can be found in BCP-11. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification can be obtained from the IETF Secretariat. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to practice this standard. Please address the information to the IETF Executive Director.+} Full Copyright Statement Copyright (C) The Internet Society [-(2002).-] {+(2003).+} All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself