My apologies for indicating "SHOULD"; draft-ietf-sipcore-reinvite-04 and RFC3311 actually appear to use "MUST". Thus based upon the draft, an UPDATE without SDP MUST now be rejected unless an answer SDP has been received for the INVITE's offer SDP. The draft doesn't adjust the rfc4028 behavior that you appear to want altered. If want the rfc4028 behavior changed, I recommend that you post your concerns to the sipcore working group.
Draft-ietf-sipcore-reinvite-04 section 3.5: " An UPDATE request without an offer can change dialog parameters. So can a non-2xx final response to a re-INVITE request or a 2xx response to an INVITE request (re-INVITE or initial INVITE). However, there are no rules to avoid a collision between an offerless UPDATE request and a final response to an INVITE request. The rules in Section 4.5<http://tools.ietf.org/html/draft-ietf-sipcore-reinvite-04#section-4.5>, which are given in the context of target refreshes, cover these types of collisions as well. Therefore, there is no need to specify further rules here." Draft-ietf-sipcore-reinvite-04 section 4.5: " When checking for glare situations, UAs MUST treat every UPDATE request as if it contained an offer. Additionally, UAs MUST treat the exchange of a 2xx response to an INVITE request and its corresponding ACK request as an offer/answer exchange. Consequently, the rules regarding glare situations applicable to offer/answer exchanges are also applicable to those exchanges." RFC3311 section 5.2: " If an UPDATE is received that contains an offer, and the UAS has generated an offer (in an UPDATE, PRACK or INVITE) to which it has not yet received an answer, the UAS MUST reject the UPDATE with a 491 response. Similarly, if an UPDATE is received that contains an offer, and the UAS has received an offer (in an UPDATE, PRACK, or INVITE) to which it has not yet generated an answer, the UAS MUST reject the UPDATE with a 500 response, and MUST include a Retry-After header field with a randomly chosen value between 0 and 10 seconds." From: Harbhanu [mailto:[email protected]] Sent: Sunday, May 23, 2010 3:34 AM To: Brett Tate; [email protected] Cc: [email protected]; [email protected]; [email protected] Subject: RE: [Sip] Reg. session timer+earlyupdate >> Concerning your example... yes; the UPDATE 2xx is allowed (even though >> potentially not following a SHOULD). Please let me know which 'SHOULD' clause is missed... Although in the draft, it does mentions about failure response to re-INVITE, but again the crossover of success response will make things murkier. "If the UAC of a re-INVITE transaction sends an UPDATE request with an offer, receives a non-2xx response to the re-INVITE, and then a 2xx response to the UPDATE request, the UA SHOULD generate a new re- INVITE or UPDATE request in order to make sure that both UAs have a common view of the state of the session, as described in Section 3.4." Here, I beg to disagree that UAC should run a timer value of 1800, since then the sole purpose of this early refresh will be defeated. Although what you just said is as per 4028, but as already discussed, it doesn't mention anything about early negotiation of Session-timer and certainly not the UPDATE/ INVITE glare. So 4028 will not suffice to standardize the behavior here. So, either the UPDATE should be *explicitly* disallowed and rejected with a 491 or it should be treated as a refresh request queued after the INVITE, to be effective after the INVITE parameters takes effect and thus making both run with SE value 600. Here, the basis of former behavior can be formed as - the INVITE is carrying the 'offer', to negotiate the SE, and thus it disallows the generation of UPDATE which too attempts to update the SE ('offer'). Please share your opinion. *********************************************************************************************************************************************************** This e-mail and attachments contain confidential information from HUAWEI, which is intended only for the person or entity whose address is listed above. Any use of the information contained herein in any way (including, but not limited to, total or partial disclosure, reproduction, or dissemination) by persons other than the intended recipient's) is prohibited. If you receive this e-mail in error, please notify the sender by phone or email immediately and delete it! ________________________________ From: Brett Tate [mailto:[email protected]] Sent: Friday, May 21, 2010 10:23 PM To: Harbhanu; [email protected] Cc: [email protected]; [email protected]; [email protected] Subject: RE: [Sip] Reg. session timer+earlyupdate Yes; draft-ieff-sipcore-reinvite-03.txt attempts to address some of the issues. My favorite is the sections 3.5/4.5 text indicating to treat (from a glare perspective) UPDATE without SDP as though it contained an offer. Thus if I understand correctly, an UPDATE without SDP SHOULD trigger 491 if step 1 contained offer SDP and step 3 was sent from UE2 to UE1. Concerning your example (assuming step 1 contained offer SDP), I currently find the draft to be ambiguous concerning sending 491, 500, or 200. The ambiguity relates to not having a precise definition of glare and some vendors preferring to send 491 instead of 500. Concerning your example... yes; the UPDATE 2xx is allowed (even though potentially not following a SHOULD). However at step 4, session-expires 600 becomes active; and at step 5 session-expires 1800 becomes active. From: Harbhanu [mailto:[email protected]] Sent: Friday, May 21, 2010 10:07 AM To: Brett Tate; [email protected] Cc: [email protected]; [email protected]; [email protected] Subject: RE: [Sip] Reg. session timer+earlyupdate Hi Brett, I just came across an interesting draft in this regard - draft-ieff-sipcore-reinvite-03.txt. Please refer. IMO this does attempt to address a lot of UPDATE-[re-]INVITE pain areas ... 1. UE1 --- INVITE SE-1800 --> UE2 2. UE1 <--- 183 ------------------ UE2 3. UE1 --- UPDATE SE-600 --> UE2 4. UE1 <--- 200 UPDATE -SE600 -- UE2 5. UE1 <--- 200 INVITE SE-1800 -- UE2 AFAICU, as per this draft the UAS will take care of sending - 1. Either 2xx of INVITE and wait till its ACK for sending success response of UPDATE & might also send a 409... 2. Or 2xx of UPDATE before sending 2xx of INVITE. Similarly, UAC also do have clearly defined expectations ... That said, the UPDATE -2xx here is absolutely allowed and so does the INV 2xx... Although not explicitly specified in this draft, but for the given scenario both UAC and UAS SHOULD run timer with value 600. Atleast UAC MUST. Please correct me, if I am wrong. Thanks! Authors of draft-ieff-sipcore-reinvite-03.txt: IMO this draft can consider this glare scenario as well, i.e. session timer, to make it more a comprehensive text. Excellent effort anyways!! Regards, Harbhanu
_______________________________________________ Sip mailing list https://www.ietf.org/mailman/listinfo/sip This list is essentially closed and only used for finishing old business. Use [email protected] for questions on how to develop a SIP implementation. Use [email protected] for new developments on the application of sip. Use [email protected] for issues related to maintenance of the core SIP specifications.
