draft-ietf-mmusic-offer-answer-examples-06.txt | rfc4317.txt | |||
---|---|---|---|---|
MMUSIC Working Group A. Johnston | Network Working Group A. Johnston | |||
Internet-Draft MCI | Request for Comments: 4317 Tello Corporation | |||
Expires: December 30, 2005 R. Sparks | Category: Informational R. Sparks | |||
Estacado Systems | Estacado Systems | |||
June 28, 2005 | December 2005 | |||
Session Description Protocol Offer/Answer Examples | Session Description Protocol (SDP) | |||
draft-ietf-mmusic-offer-answer-examples-06 | Offer/Answer Examples | |||
Status of this Memo | Status of this Memo | |||
By submitting this Internet-Draft, each author represents that any | This memo provides information for the Internet community. It does | |||
applicable patent or other IPR claims of which he or she is aware | not specify an Internet standard of any kind. Distribution of this | |||
have been or will be disclosed, and any of which he or she becomes | memo is unlimited. | |||
aware will be disclosed, in accordance with Section 6 of BCP 79. | ||||
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 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 December 30, 2005. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (C) The Internet Society (2005). | Copyright (C) The Internet Society (2005). | |||
Abstract | Abstract | |||
This document gives examples of Session Description Protocol (SDP) | This document gives examples of Session Description Protocol (SDP) | |||
offer/answer exchanges. Examples include codec negotiation and | offer/answer exchanges. Examples include codec negotiation and | |||
selection, hold and resume, and addition and deletion of media | selection, hold and resume, and addition and deletion of media | |||
streams. The examples show multiple media types, bidirectional, | streams. The examples show multiple media types, bidirectional, | |||
unidirectional, inactive streams and dynamic payload types. Common | unidirectional, inactive streams, and dynamic payload types. Common | |||
Third Party Call Control (3pcc) examples are also given. | Third Party Call Control (3pcc) examples are also given. | |||
Table of Contents | Table of Contents | |||
1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Overview ........................................................3 | |||
2. Codec Negotiation and Selection . . . . . . . . . . . . . . . 3 | 2. Codec Negotiation and Selection .................................3 | |||
2.1 Audio and Video 1 . . . . . . . . . . . . . . . . . . . . 3 | 2.1. Audio and Video 1 ..........................................3 | |||
2.2 Audio and Video 2 . . . . . . . . . . . . . . . . . . . . 4 | 2.2. Audio and Video 2 ..........................................4 | |||
2.3 Audio and Video 3 . . . . . . . . . . . . . . . . . . . . 6 | 2.3. Audio and Video 3 ..........................................5 | |||
2.4 Two Audio Streams . . . . . . . . . . . . . . . . . . . . 6 | 2.4. Two Audio Streams ..........................................6 | |||
2.5 Audio and Video 4 . . . . . . . . . . . . . . . . . . . . 7 | 2.5. Audio and Video 4 ..........................................7 | |||
2.6 Audio Only 1 . . . . . . . . . . . . . . . . . . . . . . . 9 | 2.6. Audio Only 1 ...............................................8 | |||
2.7 Audio and Video 5 . . . . . . . . . . . . . . . . . . . . 9 | 2.7. Audio and Video 5 ..........................................9 | |||
2.8 Audio and Video 6 . . . . . . . . . . . . . . . . . . . . 11 | 2.8. Audio and Video 6 .........................................10 | |||
3. Hold and Resume Scenarios . . . . . . . . . . . . . . . . . . 12 | 3. Hold and Resume Scenarios ......................................12 | |||
3.1 Hold and Unhold 1 . . . . . . . . . . . . . . . . . . . . 12 | 3.1. Hold and Unhold 1 .........................................12 | |||
3.2 Hold with Two Streams . . . . . . . . . . . . . . . . . . 13 | 3.2. Hold with Two Streams .....................................13 | |||
4. Addition and Deletion of Media Streams . . . . . . . . . . . . 15 | 4. Addition and Deletion of Media Streams .........................15 | |||
4.1 Second Audio Stream Added . . . . . . . . . . . . . . . . 15 | 4.1. Second Audio Stream Added .................................15 | |||
4.2 Audio then Video Added . . . . . . . . . . . . . . . . . . 17 | 4.2. Audio, then Video Added ...................................16 | |||
4.3 Audio and Video, then Video Deleted . . . . . . . . . . . 18 | 4.3. Audio and Video, Then Video Deleted .......................17 | |||
5. Third Party Call Control (3pcc) . . . . . . . . . . . . . . . 20 | 5. Third Party Call Control (3pcc) ................................19 | |||
5.1 No Media, then Audio Added . . . . . . . . . . . . . . . . 20 | 5.1. No Media, Then Audio Added ................................19 | |||
5.2 Hold and Unhold 2 . . . . . . . . . . . . . . . . . . . . 21 | 5.2. Hold and Unhold 2 .........................................20 | |||
5.3 Hold and Unhold 3 . . . . . . . . . . . . . . . . . . . . 22 | 5.3. Hold and Unhold 3 .........................................21 | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 23 | 6. Security Considerations ........................................22 | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23 | 7. Informative References .........................................22 | |||
8. Informative References . . . . . . . . . . . . . . . . . . . . 23 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 24 | ||||
Intellectual Property and Copyright Statements . . . . . . . . 25 | ||||
1. Overview | 1. Overview | |||
This document describes offer/answer examples of Session Description | This document describes offer/answer examples of Session Description | |||
Protocol (SDP) based on RFC 3264 [1]. The SDP in these examples is | Protocol (SDP) based on RFC 3264 [1]. The SDP in these examples is | |||
defined by RFC 2327 [2]. The offers and answers are assumed to be | defined by RFC 2327 [2]. The offers and answers are assumed to be | |||
transported using a protocol such as Session Initiation Protocol | transported using a protocol such as Session Initiation Protocol | |||
(SIP) [3]. | (SIP) [3]. | |||
Examples include codec negotiation and selection, hold and resume, | Examples include codec negotiation and selection, hold and resume, | |||
and addition and deletion of media streams. The examples show | and addition and deletion of media streams. The examples show | |||
multiple media types, bidirectional, unidirectional, inactive streams | multiple media types, bidirectional, unidirectional, inactive | |||
and dynamic payload types. Common Third Party Call Control (3pcc) | streams, and dynamic payload types. Common Third Party Call Control | |||
[5] examples are also given. | (3pcc) [5] examples are also given. | |||
The following sections contain examples in which two parties, Alice | The following sections contain examples in which two parties, Alice | |||
and Bob, exchange SDP offers, answers, and, in some cases, additional | and Bob, exchange SDP offers, answers, and, in some cases, additional | |||
offers and answers. Note that the subject line (s=) contains a | offers and answers. Note that the subject line (s=) contains a | |||
single space character. | single space character. | |||
2. Codec Negotiation and Selection | 2. Codec Negotiation and Selection | |||
2.1 Audio and Video 1 | 2.1. Audio and Video 1 | |||
This common scenario shows a video and audio session in which | This common scenario shows a video and audio session in which | |||
multiple codecs are offered but only one is accepted. As a result of | multiple codecs are offered but only one is accepted. As a result of | |||
the exchange shown below, Alice and Bob may send only PCMU audio and | the exchange shown below, Alice and Bob may send only PCMU audio and | |||
MPV video. Note: Dynamic payload type 97 is used for iLBC codec [6]. | MPV video. Note: Dynamic payload type 97 is used for iLBC codec [6]. | |||
[Offer] | [Offer] | |||
v=0 | v=0 | |||
o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com | o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com | |||
skipping to change at page 4, line 32 | skipping to change at page 4, line 16 | |||
v=0 | v=0 | |||
o=bob 2808844564 2808844564 IN IP4 host.biloxi.example.com | o=bob 2808844564 2808844564 IN IP4 host.biloxi.example.com | |||
s= | s= | |||
c=IN IP4 host.biloxi.example.com | c=IN IP4 host.biloxi.example.com | |||
t=0 0 | t=0 0 | |||
m=audio 49174 RTP/AVP 0 | m=audio 49174 RTP/AVP 0 | |||
a=rtpmap:0 PCMU/8000 | a=rtpmap:0 PCMU/8000 | |||
m=video 49170 RTP/AVP 32 | m=video 49170 RTP/AVP 32 | |||
a=rtpmap:32 MPV/90000 | a=rtpmap:32 MPV/90000 | |||
2.2 Audio and Video 2 | 2.2. Audio and Video 2 | |||
Alice can support PCMU, PCMA, and iLBC codecs, but not more than one | 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 | at the same time. Alice offers all three to maximize chances of a | |||
successful exchange and Bob accepts two of them. Audio only session | successful exchange, and Bob accepts two of them. An audio-only | |||
is established in initial exchange between Alice and Bob using either | session is established in the initial exchange between Alice and Bob, | |||
PCMU or PCMA codecs (payload type in RTP packet tells which is being | using either PCMU or PCMA codecs (payload type in RTP packet tells | |||
used). Since Alice only supports one audio codec at a time, a second | which is being used). Since Alice only supports one audio codec at a | |||
offer is made with just that one codec to limit the codec choice to | time, a second offer is made with just that one codec, to limit the | |||
just one. | codec choice to just one. | |||
Note: the version number is incremented in both SDP messages in the | Note: the version number is incremented in both SDP messages in the | |||
second exchange. Now only the PCMU codec may be used for media | second exchange. After this exchange, only the PCMU codec may be | |||
session between Alice and Bob. | used for media session between Alice and Bob. | |||
Note: The declined video stream still present in the second exchange | Note: The declined video stream still present in the second exchange | |||
of SDP with ports set to zero. | of SDP with ports set to zero. | |||
[Offer] | [Offer] | |||
v=0 | v=0 | |||
o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com | o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com | |||
s= | s= | |||
c=IN IP4 host.atlanta.example.com | c=IN IP4 host.atlanta.example.com | |||
skipping to change at page 6, line 8 | skipping to change at page 5, line 41 | |||
v=0 | v=0 | |||
o=bob 2808844564 2808844565 IN IP4 host.biloxi.example.com | o=bob 2808844564 2808844565 IN IP4 host.biloxi.example.com | |||
s= | s= | |||
c=IN IP4 host.biloxi.example.com | c=IN IP4 host.biloxi.example.com | |||
t=0 0 | t=0 0 | |||
m=audio 49172 RTP/AVP 0 | m=audio 49172 RTP/AVP 0 | |||
a=rtpmap:0 PCMU/8000 | a=rtpmap:0 PCMU/8000 | |||
m=video 0 RTP/AVP 31 | m=video 0 RTP/AVP 31 | |||
a=rtpmap:31 H261/90000 | a=rtpmap:31 H261/90000 | |||
2.3 Audio and Video 3 | 2.3. Audio and Video 3 | |||
Alice offers three audio and two video codecs, while Bob accepts with | Alice offers three audio and two video codecs, while Bob accepts with | |||
a single audio and video codec. As a result of this exchange, Bob | a single audio and video codec. As a result of this exchange, Bob | |||
and Alice use iLBC for audio and H261 for video. | and Alice use iLBC for audio and H261 for video. | |||
Note: change of dynamic payload type from 97 to 99 between the offer | Note: change of dynamic payload type from 97 to 99 between the offer | |||
and the answer is OK since it references same codec. | and the answer is OK since the same codec is referenced. | |||
[Offer] | [Offer] | |||
v=0 | v=0 | |||
o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com | o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com | |||
s= | s= | |||
c=IN IP4 host.atlanta.example.com | c=IN IP4 host.atlanta.example.com | |||
t=0 0 | t=0 0 | |||
m=audio 49170 RTP/AVP 0 8 97 | m=audio 49170 RTP/AVP 0 8 97 | |||
a=rtpmap:0 PCMU/8000 | a=rtpmap:0 PCMU/8000 | |||
skipping to change at page 6, line 44 | skipping to change at page 6, line 32 | |||
v=0 | v=0 | |||
o=bob 2808844564 2808844564 IN IP4 host.biloxi.example.com | o=bob 2808844564 2808844564 IN IP4 host.biloxi.example.com | |||
s= | s= | |||
c=IN IP4 host.biloxi.example.com | c=IN IP4 host.biloxi.example.com | |||
t=0 0 | t=0 0 | |||
m=audio 49172 RTP/AVP 99 | m=audio 49172 RTP/AVP 99 | |||
a=rtpmap:99 iLBC/8000 | a=rtpmap:99 iLBC/8000 | |||
m=video 51374 RTP/AVP 31 | m=video 51374 RTP/AVP 31 | |||
a=rtpmap:31 H261/90000 | a=rtpmap:31 H261/90000 | |||
2.4 Two Audio Streams | 2.4. Two Audio Streams | |||
In this example, Alice wishes to establish separate audio streams, | In this example, Alice wishes to establish separate audio streams, | |||
one for normal audio and the other for telephone-events. Alice | one for normal audio and the other for telephone-events. Alice | |||
offers two separate streams, one audio with two codecs and the other | offers two separate streams, one audio with two codecs and the other | |||
with RFC 2833 [4] tones (for DTMF). Bob accepts both audio streams | with RFC 2833 [4] tones (for DTMF). Bob accepts both audio streams | |||
choosing the iLBC codec and telephone-events. | choosing the iLBC codec and telephone-events. | |||
[Offer] | [Offer] | |||
v=0 | v=0 | |||
skipping to change at page 7, line 36 | skipping to change at page 7, line 32 | |||
o=bob 2808844564 2808844564 IN IP4 host.biloxi.example.com | o=bob 2808844564 2808844564 IN IP4 host.biloxi.example.com | |||
s= | s= | |||
c=IN IP4 host.biloxi.example.com | c=IN IP4 host.biloxi.example.com | |||
t=0 0 | t=0 0 | |||
m=audio 49172 RTP/AVP 97 | m=audio 49172 RTP/AVP 97 | |||
a=rtpmap:97 iLBC/8000 | a=rtpmap:97 iLBC/8000 | |||
m=audio 49174 RTP/AVP 98 | m=audio 49174 RTP/AVP 98 | |||
a=rtpmap:98 telephone-event/8000 | a=rtpmap:98 telephone-event/8000 | |||
a=recvonly | a=recvonly | |||
2.5 Audio and Video 4 | 2.5. Audio and Video 4 | |||
Alice and Bob establish an audio and video session with a single | Alice and Bob establish an audio and video session with a single | |||
audio and video codec. In a second exchange, Bob changes his address | audio and video codec. In a second exchange, Bob changes his address | |||
for media and Alice accepts with the same SDP as the initial exchange | for media and Alice accepts with the same SDP as the initial exchange | |||
(and as a result does not increment the version number). | (and as a result does not increment the version number). | |||
[Offer] | [Offer] | |||
v=0 | v=0 | |||
o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com | o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com | |||
skipping to change at page 9, line 5 | skipping to change at page 8, line 40 | |||
v=0 | v=0 | |||
o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com | o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com | |||
s= | s= | |||
c=IN IP4 host.atlanta.example.com | c=IN IP4 host.atlanta.example.com | |||
t=0 0 | t=0 0 | |||
m=audio 49170 RTP/AVP 97 | m=audio 49170 RTP/AVP 97 | |||
a=rtpmap:97 iLBC/8000 | a=rtpmap:97 iLBC/8000 | |||
m=video 51372 RTP/AVP 31 | m=video 51372 RTP/AVP 31 | |||
a=rtpmap:31 H261/90000 | a=rtpmap:31 H261/90000 | |||
2.6 Audio Only 1 | 2.6. Audio Only 1 | |||
Alice wishes to establish an audio session with Bob using either PCMU | 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 | codec or iLBC codec with RFC2833 tones, but not both at the same | |||
time. The offer contains these two media streams. Bob declines the | time. The offer contains these two media streams. Bob declines the | |||
first one and accepts the second one. If both media streams had been | first one and accepts the second one. If both media streams had been | |||
accepted, Alice would have sent a second declining one of the | accepted, Alice would have sent a second declining one of the | |||
streams, as shown in Section 4.3. | streams, as shown in Section 4.3. | |||
[Offer] | [Offer] | |||
skipping to change at page 9, line 40 | skipping to change at page 9, line 31 | |||
o=bob 2808844564 2808844564 IN IP4 host.biloxi.example.com | o=bob 2808844564 2808844564 IN IP4 host.biloxi.example.com | |||
s= | s= | |||
c=IN IP4 host.biloxi.example.com | c=IN IP4 host.biloxi.example.com | |||
t=0 0 | t=0 0 | |||
m=audio 0 RTP/AVP 0 | m=audio 0 RTP/AVP 0 | |||
a=rtpmap:0 PCMU/8000 | a=rtpmap:0 PCMU/8000 | |||
m=audio 49170 RTP/AVP 97 101 | m=audio 49170 RTP/AVP 97 101 | |||
a=rtpmap:97 iLBC/8000 | a=rtpmap:97 iLBC/8000 | |||
a=rtpmap:101 telephone-event/8000 | a=rtpmap:101 telephone-event/8000 | |||
2.7 Audio and Video 5 | 2.7. Audio and Video 5 | |||
Alice and Bob establish an audio and video session in the first | Alice and Bob establish an audio and video session in the first | |||
exchange with a single audio and video codec. In the second | exchange with a single audio and video codec. In the second | |||
exchange, Alice adds a second video codec which Bob accepts which | exchange, Alice adds a second video codec, which Bob accepts. This | |||
allows Alice and Bob to switch between the two video codecs without | allows Alice and Bob to switch between the two video codecs without | |||
another offer/answer exchange. | another offer/answer exchange. | |||
[Offer] | [Offer] | |||
v=0 | v=0 | |||
o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com | o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com | |||
s= | s= | |||
c=IN IP4 host.atlanta.example.com | c=IN IP4 host.atlanta.example.com | |||
t=0 0 | t=0 0 | |||
skipping to change at page 11, line 8 | skipping to change at page 10, line 42 | |||
o=bob 2808844564 2808844565 IN IP4 host.biloxi.example.com | o=bob 2808844564 2808844565 IN IP4 host.biloxi.example.com | |||
s= | s= | |||
c=IN IP4 host.biloxi.example.com | c=IN IP4 host.biloxi.example.com | |||
t=0 0 | t=0 0 | |||
m=audio 49172 RTP/AVP 99 | m=audio 49172 RTP/AVP 99 | |||
a=rtpmap:99 iLBC/8000 | a=rtpmap:99 iLBC/8000 | |||
m=video 51374 RTP/AVP 31 32 | m=video 51374 RTP/AVP 31 32 | |||
a=rtpmap:31 H261/90000 | a=rtpmap:31 H261/90000 | |||
a=rtpmap:32 MPV/90000 | a=rtpmap:32 MPV/90000 | |||
2.8 Audio and Video 6 | 2.8. Audio and Video 6 | |||
This example shows an audio and video offer that is accepted, but the | This example shows an audio and video offer that is accepted, but the | |||
answerer wants the video sent to a different address than the audio. | answerer wants the video sent to a different address than that of the | |||
This is a common scenario in conferencing where the video and audio | audio. This is a common scenario in conferencing where the video and | |||
mixing utilizes different servers. In this example, Alice offers | audio mixing utilizes different servers. In this example, Alice | |||
audio and video and Bob accepts. | offers audio and video, and Bob accepts. | |||
[Offer] | [Offer] | |||
v=0 | v=0 | |||
o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com | o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com | |||
s= | s= | |||
c=IN IP4 host.atlanta.example.com | c=IN IP4 host.atlanta.example.com | |||
t=0 0 | t=0 0 | |||
m=audio 49170 RTP/AVP 0 8 97 | m=audio 49170 RTP/AVP 0 8 97 | |||
a=rtpmap:0 PCMU/8000 | a=rtpmap:0 PCMU/8000 | |||
skipping to change at page 12, line 7 | skipping to change at page 12, line 7 | |||
c=IN IP4 host.biloxi.example.com | c=IN IP4 host.biloxi.example.com | |||
t=0 0 | t=0 0 | |||
m=audio 49174 RTP/AVP 0 | m=audio 49174 RTP/AVP 0 | |||
a=rtpmap:0 PCMU/8000 | a=rtpmap:0 PCMU/8000 | |||
m=video 49172 RTP/AVP 32 | m=video 49172 RTP/AVP 32 | |||
c=IN IP4 otherhost.biloxi.example.com | c=IN IP4 otherhost.biloxi.example.com | |||
a=rtpmap:32 MPV/90000 | a=rtpmap:32 MPV/90000 | |||
3. Hold and Resume Scenarios | 3. Hold and Resume Scenarios | |||
3.1 Hold and Unhold 1 | 3.1. Hold and Unhold 1 | |||
Alice calls Bob, but Bob answers placing Alice on hold. Bob then | Alice calls Bob, but when Bob answers he places Alice on hold. Bob | |||
takes Alice off hold in the second offer. Alice changes port number | then takes Alice off hold in the second offer. Alice changes port | |||
in the second exchange. The media session between Alice and Bob is | number in the second exchange. The media session between Alice and | |||
now active after Alice's second answer. Note that a=sendrecv could | Bob is now active after Alice's second answer. Note that a=sendrecv | |||
be present in both second offer and answer exchange. This is a | could be present in both second offer and answer exchange. This is a | |||
common flow in 3pcc [5] scenarios. | common flow in 3pcc [5] scenarios. | |||
[Offer] | [Offer] | |||
v=0 | v=0 | |||
o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com | o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com | |||
s= | s= | |||
c=IN IP4 host.atlanta.example.com | c=IN IP4 host.atlanta.example.com | |||
t=0 0 | t=0 0 | |||
m=audio 49170 RTP/AVP 0 97 | m=audio 49170 RTP/AVP 0 97 | |||
skipping to change at page 13, line 47 | skipping to change at page 13, line 14 | |||
[Second-Answer] | [Second-Answer] | |||
v=0 | v=0 | |||
o=alice 2890844526 2890844527 IN IP4 host.atlanta.example.com | o=alice 2890844526 2890844527 IN IP4 host.atlanta.example.com | |||
s= | s= | |||
c=IN IP4 host.atlanta.example.com | c=IN IP4 host.atlanta.example.com | |||
t=0 0 | t=0 0 | |||
m=audio 49178 RTP/AVP 97 | m=audio 49178 RTP/AVP 97 | |||
a=rtpmap:97 iLBC/8000 | a=rtpmap:97 iLBC/8000 | |||
3.2 Hold with Two Streams | 3.2. Hold with Two Streams | |||
In this example, two audio streams are established in the first | In this example, two audio streams have been established in the first | |||
offer/answer exchange. In this second offer/answer exchange, one of | offer/answer exchange. In this second offer/answer exchange, one of | |||
the audio streams ins placed on hold. Alice offers two media | the audio streams is placed on hold. Alice offers two media streams, | |||
streams, a bidirectional audio stream and a send only telephone event | a bidirectional audio stream and a send-only telephone event stream. | |||
stream. Bob accepts both streams. Bob then puts Alice's audio | Bob accepts both streams. Bob then puts Alice's audio stream on hold | |||
stream on hold but not the tone stream. Alice responds with | but not the tone stream. Alice responds with identical SDP to the | |||
identical SDP to the initial offer. | initial offer. | |||
[Offer] | [Offer] | |||
v=0 | v=0 | |||
o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com | o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com | |||
s= | s= | |||
c=IN IP4 host.atlanta.example.com | c=IN IP4 host.atlanta.example.com | |||
t=0 0 | t=0 0 | |||
m=audio 49170 RTP/AVP 0 97 | m=audio 49170 RTP/AVP 0 97 | |||
a=rtpmap:0 PCMU/8000 | a=rtpmap:0 PCMU/8000 | |||
skipping to change at page 15, line 22 | skipping to change at page 15, line 9 | |||
a=rtpmap:0 PCMU/8000 | a=rtpmap:0 PCMU/8000 | |||
a=rtpmap:97 iLBC/8000 | a=rtpmap:97 iLBC/8000 | |||
m=audio 49172 RTP/AVP 98 | m=audio 49172 RTP/AVP 98 | |||
a=rtpmap:98 telephone-event/8000 | a=rtpmap:98 telephone-event/8000 | |||
a=sendonly | a=sendonly | |||
4. Addition and Deletion of Media Streams | 4. Addition and Deletion of Media Streams | |||
This section shows addition and deletion of media streams. | This section shows addition and deletion of media streams. | |||
4.1 Second Audio Stream Added | 4.1. Second Audio Stream Added | |||
In this example, the first offer/answer exchange establishes a single | In this example, the first offer/answer exchange establishes a single | |||
audio stream with a single codec. The second offer/answer exchange | audio stream with a single codec. The second offer/answer exchange | |||
adds a second audio stream for telephone events. The second stream | adds a second audio stream for telephone events. The second stream | |||
is added by Bob's media server (different connection address) to | is added by Bob's media server (different connection address) to | |||
receive RFC 2833 telephone-events (DTMF digits, typically) from | receive RFC 2833 telephone-events (DTMF digits, typically) from | |||
Alice. Alice accepts. Even though the 2nd stream is unidirectional, | Alice. Alice accepts. Even though the second stream is | |||
Alice receives RTCP packets on port 49173 from the media server. | unidirectional, Alice receives RTCP packets on port 49173 from the | |||
media server. | ||||
[Offer] | [Offer] | |||
v=0 | v=0 | |||
o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com | o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com | |||
s= | s= | |||
c=IN IP4 host.atlanta.example.com | c=IN IP4 host.atlanta.example.com | |||
t=0 0 | t=0 0 | |||
m=audio 49170 RTP/AVP 0 97 | m=audio 49170 RTP/AVP 0 97 | |||
a=rtpmap:0 PCMU/8000 | a=rtpmap:0 PCMU/8000 | |||
skipping to change at page 17, line 5 | skipping to change at page 16, line 32 | |||
s= | s= | |||
c=IN IP4 host.atlanta.example.com | c=IN IP4 host.atlanta.example.com | |||
t=0 0 | t=0 0 | |||
m=audio 49170 RTP/AVP 97 | m=audio 49170 RTP/AVP 97 | |||
a=rtpmap:97 iLBC/8000 | a=rtpmap:97 iLBC/8000 | |||
m=audio 49172 RTP/AVP 98 | m=audio 49172 RTP/AVP 98 | |||
c=IN IP4 host.atlanta.example.com | c=IN IP4 host.atlanta.example.com | |||
a=rtpmap:98 telephone-event/8000 | a=rtpmap:98 telephone-event/8000 | |||
a=sendonly | a=sendonly | |||
4.2 Audio then Video Added | 4.2. Audio, then Video Added | |||
Audio only session is established in initial exchange between Alice | An audio-only session is established in the initial exchange between | |||
and Bob using PCMU codec. Alice adds a video stream which is | Alice and Bob using PCMU codec. Alice adds a video stream that is | |||
accepted by Bob. | accepted by Bob. | |||
[Offer] | [Offer] | |||
v=0 | v=0 | |||
o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com | o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com | |||
s= | s= | |||
c=IN IP4 host.atlanta.example.com | c=IN IP4 host.atlanta.example.com | |||
t=0 0 | t=0 0 | |||
m=audio 49170 RTP/AVP 0 | m=audio 49170 RTP/AVP 0 | |||
skipping to change at page 18, line 8 | skipping to change at page 17, line 38 | |||
v=0 | v=0 | |||
o=bob 2808844564 2808844565 IN IP4 host.biloxi.example.com | o=bob 2808844564 2808844565 IN IP4 host.biloxi.example.com | |||
s= | s= | |||
c=IN IP4 host.biloxi.example.com | c=IN IP4 host.biloxi.example.com | |||
t=0 0 | t=0 0 | |||
m=audio 49172 RTP/AVP 0 | m=audio 49172 RTP/AVP 0 | |||
a=rtpmap:0 PCMU/8000 | a=rtpmap:0 PCMU/8000 | |||
m=video 49168 RTP/AVP 31 | m=video 49168 RTP/AVP 31 | |||
a=rtpmap:31 H261/90000 | a=rtpmap:31 H261/90000 | |||
4.3 Audio and Video, then Video Deleted | 4.3. Audio and Video, Then Video Deleted | |||
Alice and Bob establish an audio and video session. In a second | Alice and Bob establish an audio and video session. In a second | |||
exchange, Bob deletes the video session resulting in an audio only | exchange, Bob deletes the video session, resulting in an audio-only | |||
session. | session. | |||
[Offer] | [Offer] | |||
v=0 | v=0 | |||
o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com | o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com | |||
s= | s= | |||
c=IN IP4 host.atlanta.example.com | c=IN IP4 host.atlanta.example.com | |||
t=0 0 | t=0 0 | |||
m=audio 49170 RTP/AVP 97 | m=audio 49170 RTP/AVP 97 | |||
skipping to change at page 20, line 10 | skipping to change at page 19, line 10 | |||
m=audio 49170 RTP/AVP 97 | m=audio 49170 RTP/AVP 97 | |||
a=rtpmap:97 iLBC/8000 | a=rtpmap:97 iLBC/8000 | |||
m=video 0 RTP/AVP 31 | m=video 0 RTP/AVP 31 | |||
a=rtpmap:31 H261/90000 | a=rtpmap:31 H261/90000 | |||
5. Third Party Call Control (3pcc) | 5. Third Party Call Control (3pcc) | |||
This section shows examples common in 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. | flows [5]. Call hold and resume flows are also common in 3pcc. | |||
5.1 No Media, then Audio Added | 5.1. No Media, Then Audio Added | |||
The first offer from Alice contains no media lines, so Bob accepts | The first offer from Alice contains no media lines, so Bob accepts | |||
with no media lines. In the second exchange, Alice adds an audio | with no media lines. In the second exchange, Alice adds an audio | |||
stream which Bob accepts. | stream that Bob accepts. | |||
[Offer] | [Offer] | |||
v=0 | v=0 | |||
o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com | o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com | |||
s= | s= | |||
c=IN IP4 host.atlanta.example.com | c=IN IP4 host.atlanta.example.com | |||
t=0 0 | t=0 0 | |||
[Answer] | [Answer] | |||
skipping to change at page 21, line 5 | skipping to change at page 20, line 5 | |||
[Second-Answer] | [Second-Answer] | |||
v=0 | v=0 | |||
o=bob 2808844564 2808844565 IN IP4 host.biloxi.example.com | o=bob 2808844564 2808844565 IN IP4 host.biloxi.example.com | |||
s= | s= | |||
c=IN IP4 host.biloxi.example.com | c=IN IP4 host.biloxi.example.com | |||
t=0 0 | t=0 0 | |||
m=audio 49172 RTP/AVP 97 | m=audio 49172 RTP/AVP 97 | |||
a=rtpmap:97 iLBC/8000 | a=rtpmap:97 iLBC/8000 | |||
5.2 Hold and Unhold 2 | 5.2. Hold and Unhold 2 | |||
The first offer from Alice contains the connection address 0.0.0.0 | 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 | 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 | Alice (the media stream is "black holed" or "bh"). Bob accepts with | |||
normal SDP. In the second exchange, Alice changes the connection | normal SDP. In the second exchange, Alice changes the connection | |||
address, Bob accepts, and a media session is established. | address, Bob accepts, and a media session is established. | |||
[Offer] | [Offer] | |||
v=0 | v=0 | |||
skipping to change at page 22, line 5 | skipping to change at page 21, line 5 | |||
[Second-Answer] | [Second-Answer] | |||
v=0 | v=0 | |||
o=bob 2808844564 2808844564 IN IP4 host.biloxi.example.com | o=bob 2808844564 2808844564 IN IP4 host.biloxi.example.com | |||
s= | s= | |||
c=IN IP4 host.biloxi.example.com | c=IN IP4 host.biloxi.example.com | |||
t=0 0 | t=0 0 | |||
m=audio 49170 RTP/AVP 97 | m=audio 49170 RTP/AVP 97 | |||
a=rtpmap:97 iLBC/8000 | a=rtpmap:97 iLBC/8000 | |||
5.3 Hold and Unhold 3 | 5.3. Hold and Unhold 3 | |||
The first offer from Alice contains an audio stream, but the answer | 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 | from Bob contains the connection address 0.0.0.0 and a random port | |||
number, which means that Alice can not send media to Bob (the media | number, which means that Alice can not send media to Bob (the media | |||
stream is "black holed" or "bh"). In the second exchange, Bob | stream is "black holed" or "bh"). In the second exchange, Bob | |||
changes the connection address, Alice accepts, and a media session is | changes the connection address, Alice accepts, and a media session is | |||
established. | established. | |||
[Offer] | [Offer] | |||
skipping to change at page 23, line 17 | skipping to change at page 22, line 15 | |||
6. Security Considerations | 6. Security Considerations | |||
SDP offer and answer messages can contain private information about | SDP offer and answer messages can contain private information about | |||
addresses and sessions to be established between parties. If this | addresses and sessions to be established between parties. If this | |||
information needs to be kept private, some security mechanism in the | information needs to be kept private, some security mechanism in the | |||
protocol used to carry the offers and answers must be used. For SIP, | 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 | this means using TLS transport and/or S/MIME encryption of the SDP | |||
message body. | message body. | |||
It is important that SDP offer and answer messages be properly | It is important that SDP offer and answer messages be properly | |||
authenticated and authorized before using them to establish a media | authenticated and authorized before they are used to establish a | |||
session. Example SIP mechanisms include SIP Digest, certs, or | media session. Examples of SIP mechanisms include SIP Digest, certs, | |||
cryptographically verified SIP identity. | and cryptographically-verified SIP identity. | |||
7. IANA Considerations | ||||
This document introduces no IANA considerations. | ||||
8. Informative References | 7. Informative References | |||
[1] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with | [1] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with | |||
Session Description Protocol (SDP)", RFC 3264, June 2002. | Session Description Protocol (SDP)", RFC 3264, June 2002. | |||
[2] Handley, M. and V. Jacobson, "SDP: Session Description | [2] Handley, M. and V. Jacobson, "SDP: Session Description | |||
Protocol", RFC 2327, April 1998. | Protocol", RFC 2327, April 1998. | |||
[3] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., | [3] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., | |||
Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: | Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: | |||
Session Initiation Protocol", RFC 3261, June 2002. | Session Initiation Protocol", RFC 3261, June 2002. | |||
skipping to change at page 24, line 8 | skipping to change at page 23, line 8 | |||
the Session Initiation Protocol (SIP)", BCP 85, RFC 3725, | the Session Initiation Protocol (SIP)", BCP 85, RFC 3725, | |||
April 2004. | April 2004. | |||
[6] Duric, A. and S. Andersen, "Real-time Transport Protocol (RTP) | [6] Duric, A. and S. Andersen, "Real-time Transport Protocol (RTP) | |||
Payload Format for internet Low Bit Rate Codec (iLBC) Speech", | Payload Format for internet Low Bit Rate Codec (iLBC) Speech", | |||
RFC 3952, December 2004. | RFC 3952, December 2004. | |||
Authors' Addresses | Authors' Addresses | |||
Alan Johnston | Alan Johnston | |||
MCI | Tello Corporation | |||
100 South 4th Street | 999 Baker Way, Suite 250 | |||
St. Louis, MO 63102 | San Mateo, CA 94404 | |||
Email: alan.johnston@mci.com | EMail: ajohnston@tello.com | |||
Robert J. Sparks | Robert J. Sparks | |||
Estacado Systems | Estacado Systems | |||
Email: RjS@estacado.net | EMail: rjsparks@estacado.net | |||
Intellectual Property Statement | Full Copyright Statement | |||
Copyright (C) The Internet Society (2005). | ||||
This document is subject to the rights, licenses and restrictions | ||||
contained in BCP 78, and except as set forth therein, the authors | ||||
retain all their rights. | ||||
This document and the information contained herein are provided on an | ||||
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | ||||
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET | ||||
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, | ||||
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE | ||||
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | ||||
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | ||||
Intellectual Property | ||||
The IETF takes no position regarding the validity or scope of any | The IETF takes no position regarding the validity or scope of any | |||
Intellectual Property Rights or other rights that might be claimed to | Intellectual Property Rights or other rights that might be claimed to | |||
pertain to the implementation or use of the technology described in | pertain to the implementation or use of the technology described in | |||
this document or the extent to which any license under such rights | this document or the extent to which any license under such rights | |||
might or might not be available; nor does it represent that it has | might or might not be available; nor does it represent that it has | |||
made any independent effort to identify any such rights. Information | made any independent effort to identify any such rights. Information | |||
on the procedures with respect to rights in RFC documents can be | on the procedures with respect to rights in RFC documents can be | |||
found in BCP 78 and BCP 79. | found in BCP 78 and BCP 79. | |||
Copies of IPR disclosures made to the IETF Secretariat and any | Copies of IPR disclosures made to the IETF Secretariat and any | |||
assurances of licenses to be made available, or the result of an | 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 | attempt made to obtain a general license or permission for the use of | |||
such proprietary rights by implementers or users of this | such proprietary rights by implementers or users of this | |||
specification can be obtained from the IETF on-line IPR repository at | specification can be obtained from the IETF on-line IPR repository at | |||
http://www.ietf.org/ipr. | http://www.ietf.org/ipr. | |||
The IETF invites any interested party to bring to its attention any | The IETF invites any interested party to bring to its attention any | |||
copyrights, patents or patent applications, or other proprietary | copyrights, patents or patent applications, or other proprietary | |||
rights that may cover technology that may be required to implement | rights that may cover technology that may be required to implement | |||
this standard. Please address the information to the IETF at | this standard. Please address the information to the IETF at ietf- | |||
ietf-ipr@ietf.org. | ipr@ietf.org. | |||
Disclaimer of Validity | ||||
This document and the information contained herein are provided on an | ||||
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | ||||
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET | ||||
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, | ||||
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE | ||||
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | ||||
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | ||||
Copyright Statement | ||||
Copyright (C) The Internet Society (2005). This document is subject | ||||
to the rights, licenses and restrictions contained in BCP 78, and | ||||
except as set forth therein, the authors retain all their rights. | ||||
Acknowledgment | Acknowledgement | |||
Funding for the RFC Editor function is currently provided by the | Funding for the RFC Editor function is currently provided by the | |||
Internet Society. | Internet Society. | |||
End of changes. 43 change blocks. | ||||
138 lines changed or deleted | 113 lines changed or added | |||
This html diff was produced by rfcdiff 1.28, available from http://www.levkowetz.com/ietf/tools/rfcdiff/ |