draft-ietf-sipping-sip-offeranswer-01.txt   draft-ietf-sipping-sip-offeranswer-02.txt 
SIPPING Working Group T. Sawada SIPPING Working Group T. Sawada
Internet Draft KDDI Corporation Internet Draft KDDI Corporation
Expires: November 2007 P. Kyzivat Expires: January 2008 P. Kyzivat
Cisco Systems, Inc. Cisco Systems, Inc.
May 28, 2007 July 9, 2007
SIP (Session Initiation Protocol) Usage of Offer/Answer Model SIP (Session Initiation Protocol) Usage of Offer/Answer Model
draft-ietf-sipping-sip-offeranswer-01.txt draft-ietf-sipping-sip-offeranswer-02.txt
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that By submitting this Internet-Draft, each author represents that
any applicable patent or other IPR claims of which he or she is any applicable patent or other IPR claims of which he or she is
aware have been or will be disclosed, and any of which he or she aware have been or will be disclosed, and any of which he or she
becomes aware will be disclosed, in accordance with Section 6 of becomes aware will be disclosed, in accordance with Section 6 of
BCP 79. BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
skipping to change at page 1, line 35 skipping to change at page 1, line 35
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html http://www.ietf.org/shadow.html
This Internet-Draft will expire on November 28, 2007. This Internet-Draft will expire on November 9, 2007.
Abstract Abstract
SIP utilizes offer/answer model to establish and update multimedia SIP utilizes offer/answer model to establish and update multimedia
sessions. The descriptions on how to use offer/answer in SIP are sessions. The descriptions on how to use offer/answer in SIP are
dispersed in the multiple RFCs. This document summarizes all the dispersed in the multiple RFCs. This document summarizes all the
current usage of offer/answer model in SIP communication. current usage of offer/answer model in SIP communication.
Table of Contents Table of Contents
1. Summary of SIP usage of Offer/Answer Model...................2 1. Summary of SIP usage of Offer/Answer Model................2
1.1. Offer/Answer Exchange Pairs in SIP Messages.............3 1.1. Offer/Answer Exchange Pairs in SIP Messages...........3
1.2. Rejection against an Offer..............................4 1.2. Rejection against an Offer.........................4
1.3. Session Description which is not Offer nor Answer........5 1.3. Session Description which is not Offer nor Answer.......5
2. Detailed Discussion on Offer/Answer Model for SIP............5 2. Detailed Discussion on Offer/Answer Model for SIP...........5
2.1. Offer/Answer for INVITE method with 100rel extension.....5 2.1. Offer/Answer for INVITE method with 100rel extension....5
2.1.1. INVITE Request with SDP............................6 2.1.1. INVITE Request with SDP.......................6
2.1.2. INVITE request without SDP.........................8 2.1.2. INVITE request without SDP.....................8
2.2. Offer/Answer Exchange in Early Dialog...................9 2.2. Offer/Answer Exchange in Early Dialog................9
2.3. Offer/Answer Exchange in Established Dialog.............9 2.3. Offer/Answer Exchange in Established Dialog...........9
3. Exceptional Case Handling...................................10 3. Exceptional Case Handling.............................10
3.1. Message Crossing Case Handling.........................10 3.1. Message Crossing Case Handling.....................10
3.2. Glare Case Handling....................................11 3.2. Glare Case Handling..............................11
4. Content of Offers and Answers...............................12 4. Content of Offers and Answers..........................12
4.1. General Principle for Constructing Offers and Answers...12 4.1. General Principle for Constructing Offers and Answers..12
4.2. Choice of Media Types and Formats to Include and Exclude13 4.2. Choice of Media Types and Formats to Include and Exclude13
4.2.1. Sending Initial INVITE with Offer.................13 4.2.1. Sending Initial INVITE with Offer..............13
4.2.2. Responding with Offer when Initial INVITE has no Offer13 4.2.2. Responding with Offer when Initial INVITE has no Offer13
4.2.3. Answering Initial INVITE with Offer...............14 4.2.3. Answering Initial INVITE with Offer.............14
4.2.4. Answering when Initial INVITE had no Offer.........14 4.2.4. Answering when Initial INVITE had no Offer.......14
4.2.5. Subsequent Offers and Answers.....................14 4.2.5. Subsequent Offers and Answers..................14
4.3. Hold and Resume of media...............................15 4.3. Hold and Resume of media..........................15
5. Remaining Issues or Best Practices on Offer/Answer..........16 5. Remaining Issues or Best Practices on Offer/Answer.........16
5.1. Rejecting PRACK Offer..................................16 5.1. Rejecting PRACK Offer............................16
5.2. Commit/Rollback of Offer/Answer on Unsuccessful re-INVITE 5.2. Commit/Rollback of Offer/Answer on Unsuccessful re-INVITE
Transaction................................................17 Transaction........................................17
6. Add New Offer/Answer Usage in SIP...........................18 6. Add New Offer/Answer Usage in SIP......................18
6.1. Explicit Usage........................................18 6.1. Explicit Usage..................................18
6.2. Rejection of an Offer..................................19 6.2. Rejection of an Offer............................19
6.3. Backward Compatibility.................................19 6.3. Backward Compatibility...........................19
6.4. Exceptional Case Handling..............................19 6.4. Exceptional Case Handling.........................19
7. Security Considerations.....................................19 7. Security Considerations..............................19
8. References.................................................19 8. References.........................................19
8.1. Normative References...................................19 8.1. Normative References.............................19
8.2. Informative References.................................19 8.2. Informative References...........................19
Author's Addresses............................................20 Author's Addresses.....................................20
Full Copyright Statement.......................................20 Full Copyright Statement................................20
Intellectual Property Statement................................20 Intellectual Property Statement..........................20
Acknowledgment................................................21 Acknowledgment........................................21
1. Summary of SIP usage of Offer/Answer Model 1. Summary of SIP usage of Offer/Answer Model
The offer/answer model itself is independent from the higher layer The offer/answer model itself is independent from the higher layer
application protocols which utilize it. SIP is one of the application protocols which utilize it. SIP is one of the
applications using offer/answer model. In RFC 3264 [3], which defines applications using offer/answer model. RFC 3264 [3] defines the
the offer/answer model, which SIP message should convey an offer or offer/answer model, but does not specify which SIP message should
an answer is not defined. This should be defined in the SIP core and convey an offer or an answer. This should be defined in the SIP core
extensions RFCs. and extensions RFCs.
In theory, any SIP message can include a session description in its In theory, any SIP message can include a session description in its
body. But a session description in a SIP message is not necessarily body. But a session description in a SIP message is not necessarily
an offer or an answer. Only the session description that conforms to an offer or an answer. Only the session description that conforms to
the rules described in the standard track RFCs can be interpreted as the rules described in the standards-track RFCs can be interpreted as
an offer or an answer. The rules for how to handle the offer/answer an offer or an answer. The rules for how to handle the offer/answer
model are currently defined in several RFCs. model are currently defined in several RFCs.
The offer/answer model defines the update of sessions. In SIP, dialog The offer/answer model defines the update of sessions. In SIP, dialog
is used to match the offer/answer exchange to the session which is to is used to match the offer/answer exchange to the session which is to
be updated with it. In other words, only the offer/answer exchange in be updated with it. In other words, only the offer/answer exchange in
the SIP dialog can update the session which is managed with it. the SIP dialog can update the session which is managed with it.
1.1. Offer/Answer Exchange Pairs in SIP Messages 1.1. Offer/Answer Exchange Pairs in SIP Messages
Currently, the rules on offer/answer model are defined in RFC 3261 Currently, the rules on offer/answer model are defined in RFC 3261
[1], RFC 3262 [2] and RFC 3311 [4]. In these RFCs, only the six [1], RFC 3262 [2] and RFC 3311 [4]. In these RFCs, only the six
patterns shown in Table 1 are defined for exchanging an offer and an patterns shown in Table 1 are defined for exchanging an offer and an
answer with SIP messages. answer with SIP messages.
Note that an offer/answer exchange initiated by an INVITE request Note that an offer/answer exchange initiated by an INVITE request
must follow exactly one of the patterns 1, 2, 3, 4. Only one of them, must follow exactly one of the patterns 1, 2, 3, 4. When an initial
one for each dialog if multiple dialogs are created, must occur in an INVITE causes multiple dialogs due to forking, an offer/answer
INVITE 3-way handshake process. Pattern 2 and pattern 4 can occur exchange is carried out independently in each distinct dialog.
only when the INVITE request does not include an offer. 'The first Pattern 2 and pattern 4 can occur only when the INVITE request does
reliable non-failure message' must have an offer if there is no offer not include an offer. 'The first reliable non-failure message' must
in the INVITE request. This means that UA which receives the INVITE have an offer if there is no offer in the INVITE request. This means
request without an offer must include an offer in the first reliable that UA which receives the INVITE request without an offer must
response with 100rel extension. If no reliable provisional response include an offer in the first reliable response with 100rel extension.
has been sent, the UAS must include an offer when sending 2xx If no reliable provisional response has been sent, the UAS must
response. include an offer when sending 2xx response.
In pattern 3, the first reliable provisional response may or may not In pattern 3, the first reliable provisional response may or may not
have an answer. When a reliable provisional response contains a have an answer. When a reliable provisional response contains a
session description, and is the first to do so, then that session session description, and is the first to do so, then that session
description is the answer to the offer in the INVITE request. description is the answer to the offer in the INVITE request.
In pattern 5, a PRACK request can contain an offer only if the In pattern 5, a PRACK request can contain an offer only if the
reliable response which it acknowledges contains an answer in the reliable response which it acknowledges contains an answer in the
previous offer/answer exchange. previous offer/answer exchange.
skipping to change at page 4, line 19 skipping to change at page 4, line 19
3. INVITE Req. 1xx-rel INVITE Resp. RFC 3262 O O X 3. INVITE Req. 1xx-rel INVITE Resp. RFC 3262 O O X
4. 1xx-rel INVITE Resp. PRACK Req. RFC 3262 O O X 4. 1xx-rel INVITE Resp. PRACK Req. RFC 3262 O O X
5. PRACK Req. 200 PRACK Resp. RFC 3262 X O O 5. PRACK Req. 200 PRACK Resp. RFC 3262 X O O
6. UPDATE Req. 2xx UPDATE Resp. RFC 3311 X O O 6. UPDATE Req. 2xx UPDATE Resp. RFC 3311 X O O
Table 1. Summary of SIP Usage of Offer/Answer Model Table 1. Summary of SIP Usage of Offer/Answer Model
In Table 1, '1xx-rel' corresponds to the reliable provisional In Table 1, '1xx-rel' corresponds to the reliable provisional
response which contains the 100rel option defined in RFC 3262 [2]. response which contains the 100rel option defined in RFC 3262 [2].
'Ini' column shows the ability to exchange the offer/answer to The 'Ini' column shows the ability to exchange the offer/answer to
initiate the session. 'O' indicates that the pattern can be used in initiate the session. 'O' indicates that the pattern can be used in
the initial offer/answer exchange, while 'X' indicates that it can the initial offer/answer exchange, while 'X' indicates that it can
not. Only the initial INVITE transaction can be used to exchange the not. Only the initial INVITE transaction can be used to exchange the
offer/answer to establish multimedia session. offer/answer to establish multimedia session.
'Est' column shows the ability to update the established session. The 'Est' column shows the ability to update the established session.
'Early' column shows the ability to be used to modify the established The 'Early' column indicates which patterns may be used to modify the
session in an early dialog. There are two ways to exchange a established session in an early dialog. There are two ways to
subsequent offer/answer in an early dialog. exchange a subsequent offer/answer in an early dialog.
1.2. Rejection against an Offer 1.2. Rejection against an Offer
How to reject an offer when it can not be accepted is not so clear How to reject an offer when it can not be accepted is not so clear
and some methods can not allow explicit rejection against an offer. and some methods can not allow explicit rejection against an offer.
Corresponding to the patterns in Table 1, how to reject an offer is Corresponding to the patterns in Table 1, how to reject an offer is
shown in Table 2. shown in Table 2.
When a UA receives an INVITE request with an offer which it can not When a UA receives an INVITE request with an unacceptable offer, it
accept, it should respond with a 488 response, preferably with should respond with a 488 response, preferably with Warning header
Warning header field indicating the reason of the rejection unless field indicating the reason of the rejection unless another response
another response code is more appropriate to reject it. (Pattern 1 code is more appropriate to reject it. (Pattern 1 and Pattern 3)
and Pattern 3)
When a UA receives an UPDATE request with an offer which it can not When a UA receives an UPDATE request with an offer which it can not
accept, it should respond with a 488 response preferably with Warning accept, it should respond with a 488 response preferably with Warning
header field indicating the reason of the rejection, unless another header field indicating the reason of the rejection, unless another
response code is more appropriate to reject it. (Pattern 6) response code is more appropriate to reject it. (Pattern 6)
When a UA receives a PRACK request with an offer which it can not When a UA receives a PRACK request with an offer which it can not
accept, it may respond with a 200 response with a syntactically accept, it may respond with a 200 response with a syntactically
correct session description followed by an UPDATE request possibly to correct session description followed by an UPDATE request possibly to
rearrange the session parameters if both ends support UPDATE method. rearrange the session parameters if both ends support UPDATE method.
skipping to change at page 6, line 15 skipping to change at page 6, line 15
response may include a session description in the body if the UAS has response may include a session description in the body if the UAS has
not sent a reliable response, but its session description is neither not sent a reliable response, but its session description is neither
an offer nor an answer. All the session descriptions in the an offer nor an answer. All the session descriptions in the
unreliable responses to the INVITE request must be identical to the unreliable responses to the INVITE request must be identical to the
answer which is included in the reliable response. Session answer which is included in the reliable response. Session
descriptions in an unreliable response that precedes a reliable descriptions in an unreliable response that precedes a reliable
response can be considered a "preview" of the session description response can be considered a "preview" of the session description
that will be coming, and hence may be treated like an offer or an that will be coming, and hence may be treated like an offer or an
answer until the actual one arrives. answer until the actual one arrives.
NOTE: This "preview" session description rule applies to a
single offer/answer exchange. In parallel offer/answer exchanges
(caused by forking) a UA may obviously receive the different
"preview" of answer in each dialog. UAs are expected to deal
with this.
2.1.1. INVITE Request with SDP 2.1.1. INVITE Request with SDP
When a UAC includes an SDP body in the INVITE request as an offer, it When a UAC includes an SDP body in the INVITE request as an offer, it
expects the answer to be received with one of the reliable responses. expects the answer to be received with one of the reliable responses.
Other than that, no offer/answer exchanges can occur in the INVITE 3- Other than that, no offer/answer exchanges can occur in the INVITE 3-
way handshake process. way handshake process.
UAC UAS UAC UAS
| F1 INVITE (SDP) | <- The offer in offer/answer model | F1 INVITE (SDP) | <- The offer in offer/answer model
|-------------------->| |-------------------->|
skipping to change at page 11, line 18 skipping to change at page 11, line 18
offer until the reliable response with an answer to the offer in the offer until the reliable response with an answer to the offer in the
INVITE request is acknowledged with a PRACK request. INVITE request is acknowledged with a PRACK request.
When offer2 is in a reliable provisional response or a successful When offer2 is in a reliable provisional response or a successful
final response, UA A knows it is not the answer to the offer1. For a final response, UA A knows it is not the answer to the offer1. For a
reliable response to an initial INVITE request, this case never reliable response to an initial INVITE request, this case never
happens. For a reliable response to a re-INVITE request, UA A can happens. For a reliable response to a re-INVITE request, UA A can
detect the offer2 is not the answer1. In this case, UA A can not detect the offer2 is not the answer1. In this case, UA A can not
reject offer2 in a reliable response, it is recommended to wait for reject offer2 in a reliable response, it is recommended to wait for
answer1 before sending a PRACK request with the answer to offer2. answer1 before sending a PRACK request with the answer to offer2.
Note that if UA A does not send an INVITE request without session Note that this case only occurs when UA A, while waiting for an
description if it has sent the offer which has not yet received the answer, sends an INVITE request without session description.
answer to it, this case never happens.
3.2. Glare Case Handling 3.2. Glare Case Handling
When both ends in a dialog send a new offer at nearly the same time, When both ends in a dialog send a new offer at nearly the same time,
UA may receive a new offer before it receives the answer to the offer UA may receive a new offer before it receives the answer to the offer
it sent as described in Figure 4. This case is called a 'glare' case it sent as described in Figure 4. This case is called a 'glare' case
in general. in general.
A B A B
|offer1 offer2| |offer1 offer2|
|-------\ /-------| |-------\ /-------|
| \/ | | \/ |
| /\ | | /\ |
|<------/ \------>| |<------/ \------>|
Figure 4 Glare Case Figure 4 Glare Case
When offer2 is in an UPDATE request or (re-)INVITE request, it must When offer2 is in an UPDATE request or (re-)INVITE request, it must
be rejected with a 491 response. be rejected with a 491 response.
When offer2 is in a PRACK request, it may be accepted with 200 or may When offer2 is in a PRACK request (within the current rules, only
be rejected with a 491 response. A 491 response may be adequate for possible if offer1 is in an UPDATE request), the PRACK may be
offer/answer model but it may delay the completion of the reliable accepted with 200 or may be rejected with a 491 response. A 491
response transfer mechanism or, in worst case, may result in the response is valid to satisfy the offer/answer model but it may delay
failure to complete the SIP transaction because there is no clear the completion of the reliable response transfer mechanism or, in
retry rule when a PRACK request is rejected with a 491 response. To worst case, may result in the failure to complete the SIP transaction
avoid this glare condition, UA is recommended not to send an offer, because there is no clear retry rule when a PRACK request is rejected
which currently must be in an UPDATE request, if it has generated the with a 491 response. To avoid this glare condition, UA A should not
reliable provisional response with the answer to the offer in the send an offer if it has already sent a reliable provisional response
INVITE request which is not acknowledged with a PRACK request. containing an answer to a previous offer and has not received the
corresponding PRACK request.
To avoid glare condition for offer2 in the response, UA A is To avoid a glare condition involving an offer in a response, when UA
recommended not to send a new offer if it has sent a (re)INVITE A has sent a (re)INVITE request without session description, it
request without session description and has not received the reliable should not send an offer until it has received an offer in a reliable
response which includes the offer. response to the (re)INVITE, and sent an answer to that offer.
4. Content of Offers and Answers 4. Content of Offers and Answers
While RFCs 3264[3] and 3312[5] give some guidance, questions remain While RFCs 3264[3] and 3312[5] give some guidance, questions remain
about exactly what should be included in an offer or answer. This is about exactly what should be included in an offer or answer. This is
especially a problem when the common "hold" feature has been especially a problem when the common "hold" feature has been
activated, and when there is the potential for a multimedia call. activated, and when there is the potential for a multimedia call.
Details of behavior depend on the capabilities and state of the User Details of behavior depend on the capabilities and state of the User
Agent. The kinds of recommendations that can be made are limited by Agent. The kinds of recommendations that can be made are limited by
skipping to change at page 13, line 9 skipping to change at page 13, line 9
A UA should send an answer that includes as close an approximation to A UA should send an answer that includes as close an approximation to
what the UA and its user are interested in doing at that time, while what the UA and its user are interested in doing at that time, while
remaining consistent with the offer/answer rules of RFC 3264[3] and remaining consistent with the offer/answer rules of RFC 3264[3] and
other RFCs. other RFCs.
NOTE: "at that time" is important. The device may permit the NOTE: "at that time" is important. The device may permit the
user to configure which supported media are to be used by user to configure which supported media are to be used by
default. default.
Some UAs may not have an understanding of what it is interested in In some cases a UA may not have direct knowledge of what it is
doing at a particular time. (E.g. a gateway to a different protocol.) interested in doing at a particular time. If it is an intermediary it
In this case the UA could delegate the decision to the other protocol, may be able to delegate the decision. In the worst case it may apply
if the situation can be represented. Or it can make some assumptions. a default, such as assuming it wants to use all of its capabilities.
This may result in a limitation in what works through the gateway.
4.2. Choice of Media Types and Formats to Include and Exclude 4.2. Choice of Media Types and Formats to Include and Exclude
4.2.1. Sending Initial INVITE with Offer 4.2.1. Sending Initial INVITE with Offer
When a UAC sends an initial INVITE with an offer, it has complete When a UAC sends an initial INVITE with an offer, it has complete
freedom to choose which media type(s) and media format(s) (payload freedom to choose which media type(s) and media format(s) (payload
types in the case of RTP) it should include in the offer. types in the case of RTP) it should include in the offer.
The media types may be all or a subset of the media the UAC is The media types may be all or a subset of the media the UAC is
skipping to change at page 13, line 51 skipping to change at page 13, line 50
largely the same options as when sending an initial INVITE with an largely the same options as when sending an initial INVITE with an
offer, but there are some differences. The choice may be governed by offer, but there are some differences. The choice may be governed by
both static (default) selections of media types as well as dynamic both static (default) selections of media types as well as dynamic
selections made by a user via interaction with the device while it is selections made by a user via interaction with the device while it is
alerting. alerting.
NOTE: The offer may be sent in a provisional response, before NOTE: The offer may be sent in a provisional response, before
the user of the device has been alerted and had an opportunity the user of the device has been alerted and had an opportunity
to select media options for the call. In this case the UAS to select media options for the call. In this case the UAS
cannot include any call-specific options from the user of the cannot include any call-specific options from the user of the
device. It there is a possibility that the user of the device device. If there is a possibility that the user of the device
may wish to change what is offered before answering the call, will wish to change what is offered before answering the call,
then special care should be taken. If PRACK and UPDATE are then special care should be taken. If PRACK and UPDATE are
supported by caller and callee then an initial offer can be sent supported by caller and callee then an initial offer can be sent
reliably, and changed with an UPDATE if the user desires a reliably, and changed with an UPDATE if the user desires a
change. If PRACK and UPDATE are not supported then the initial change. If PRACK and UPDATE are not supported then the initial
offer cannot be changed until the call is fully established. In offer cannot be changed until the call is fully established. In
that case either the offer should be delayed until the 200 is that case either the offer should be delayed until the 200 is
sent, or else the offer should include the minimum set of media sent, or else the offer should include the minimum set of media
the user is able to select. the user is able to select.
4.2.3. Answering Initial INVITE with Offer 4.2.3. Answering Initial INVITE with Offer
When a UAS receives an initial INVITE with an offer, what media lines When a UAS receives an initial INVITE with an offer, what media lines
the answer may contain is constrained by RFC 3264.[3] The answer must the answer may contain is constrained by RFC 3264.[3] The answer must
contain the same number of m-lines as the offer, and they must contain the same number of m-lines as the offer, and they must
contain the same media types. Each media line may be accepted, by contain the same media types. Each media line may be accepted, by
including a non-zero port number, or rejected by including a zero including a non-zero port number, or rejected by including a zero
port number in the answer. The media lines that are accepted should port number in the answer. The media lines that are accepted should
typically be those that would have been offered had the INVITE not typically be those that would have been offered had the INVITE not
contained an offer, but with those not offered removed. contained an offer, but with those not offered removed.
The media formats the answer may contain is constrained by RFC 3264 The media formats the answer may contain are constrained by RFC 3264
[3]. For each accepted m-line in the answer, there must be at least [3]. For each accepted m-line in the answer, there must be at least
one media format in common with those in the request. The UAS may one media format in common with the corresponding m-line of the offer.
also include other media formats it is able to support at this time. The UAS may also include other media formats it is able to support at
However there is little benefit to including added types. this time. However there is little benefit to including added types.
If the UAS does not wish to indicate support for any of the media If the UAS does not wish to indicate support for any of the media
types in a particular media line of the offer it must reject the types in a particular media line of the offer it must reject the
corresponding media line, by setting the port number to zero. corresponding media line, by setting the port number to zero.
4.2.4. Answering when Initial INVITE had no Offer 4.2.4. Answering when Initial INVITE had no Offer
When a UAC has sent an initial INVITE without an offer, and then When a UAC has sent an initial INVITE without an offer, and then
receives a response with the first offer, it should answer in the receives a response with the first offer, it should answer in the
same way as a UAS receiving an initial INVITE with an offer. same way as a UAS receiving an initial INVITE with an offer.
skipping to change at page 16, line 17 skipping to change at page 16, line 17
Once in this state, to resume a two way exchange of media each side Once in this state, to resume a two way exchange of media each side
must reset its local hold status. If UA1 is first to go off hold it must reset its local hold status. If UA1 is first to go off hold it
will then send an offer with "a=sendrecv". The UA2 will respond with will then send an offer with "a=sendrecv". The UA2 will respond with
its desired state of "a=sendonly" because that is a permitted its desired state of "a=sendonly" because that is a permitted
response. When UA2 desires to also resume, it will send an offer with response. When UA2 desires to also resume, it will send an offer with
"a=sendrecv". In this case, because UA1 has the same desire it will "a=sendrecv". In this case, because UA1 has the same desire it will
respond "a=sendrecv". respond "a=sendrecv".
If UA2 has been "placed on hold" by UA1 via receipt of "a=inactive", If UA2 has been "placed on hold" by UA1 via receipt of "a=inactive",
and subsequently wants to initiate its own hold, it need not send a and subsequently wants to initiate its own hold, also using
new offer, since the only offer it could make would be "a=inactive" "a=inactive", it need not send a new offer, since the only valid
and that is already in effect in both directions. However, its local response is "a=inactive" and that is already in effect. However, its
desired state will now be either "sendonly" or "inactive" according local desired state will now be either "inactive". This affects what
to how it desires to send Music on Hold. This affects what it will it will send in future offers and answers.
send in future offers and answers.
5. Remaining Issues or Best Practices on Offer/Answer 5. Remaining Issues or Best Practices on Offer/Answer
This document clarifies the offer/answer usage in SIP and summarizes This document clarifies the offer/answer usage in SIP and summarizes
the correct or recommended behaviors along with the existing RFCs. To the correct or recommended behaviors along with the existing RFCs. To
create any new normative behaviors beyond these RFCs is not the create any new normative behaviors beyond these RFCs is not the
intent of this document. intent of this document.
However, through the scrutiny of the offer/answer model in SIP, some However, through the scrutiny of the offer/answer model in SIP, some
issues are found to be unresolved within the current set of RFCs. issues are found to be unresolved within the current set of RFCs.
skipping to change at page 17, line 8 skipping to change at page 17, line 8
Several candidates were proposed to resolve this issue, such as Several candidates were proposed to resolve this issue, such as
sending 2xx PRACK response without SDP to reject the offer. Some of sending 2xx PRACK response without SDP to reject the offer. Some of
the candidates may also be adapted as a way to reject an unacceptable the candidates may also be adapted as a way to reject an unacceptable
offer in a response. Anyway, those candidates violate the current offer in a response. Anyway, those candidates violate the current
rules and lose backward compatibility to some extent. It is beyond rules and lose backward compatibility to some extent. It is beyond
the scope of this document and remains for further study. the scope of this document and remains for further study.
5.2. Commit/Rollback of Offer/Answer on Unsuccessful re-INVITE 5.2. Commit/Rollback of Offer/Answer on Unsuccessful re-INVITE
Transaction Transaction
When a re-INVITE transaction fails, the dialog remains with the When a re-INVITE transaction fails, often the dialog remains with the
session bound to it. The issue here is what the session status is if session bound to it. The issue here is what the session status is if
offer/answer exchange has been completed before the re-INVITE offer/answer exchange has been completed before the re-INVITE
transaction fails with the final failure response (Figure 5). One transaction fails with the final failure response (Figure 5). One
option is to take those offer/answer exchanges not committed yet and option is to take those offer/answer exchanges not committed yet and
to make the session status rollback to the one before re-INVITE to make the session status rollback to the one before re-INVITE
transaction was initiated. Another option is to take those exchanges transaction was initiated. Another option is to take those exchanges
committed and to keep the session status as it is even after re- committed and to keep the session status as it is even after re-
INVITE fails. There is no clear consensus on which one is the correct INVITE fails. There is no clear consensus on which one is the correct
behavior. behavior.
 End of changes. 25 change blocks. 
100 lines changed or deleted 103 lines changed or added

This html diff was produced by rfcdiff 1.34. The latest version is available from http://tools.ietf.org/tools/rfcdiff/