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.

Reply via email to