Subject: RE: [MMUSIC] Offer in a 200 (OK) and ICE

From: "Brett Tate" <[email-masked]>
Date: Fri, 5 Jan 2007 11:31:55 -0500

My understanding of rfc3311 is that sending an UPDATE with offer over an
early dialog which has had no prior offer/answer exchange is not be
allowed.

RFC3311 section 5.1 bullet 4 indicates that the callee "cannot" send it.
And my interpretation (which might be incorrect) of bullet 2 is that the
"UPDATE can contain an offer if" should be interpreted as "UPDATE can
contain an offer only if".  Thus the caller also cannot send it.

If my interpretation is incorrect, hopefully the call flow and
expectations get reflected within draft-ietf-sipping-sip-offeranswer.

> -----Original Message-----
> From: Paul Kyzivat [mailto:[email-masked]] 
> Sent: Friday, January 05, 2007 9:52 AM
> To: Christer Holmberg (JO/LMF)
> Cc: Miguel Garcia; Gonzalo Camarillo (JO/LMF); mmusic
> Subject: Re: [MMUSIC] Offer in a 200 (OK) and ICE
> 
> Christer,
> 
> A non-reliable response *can* establish a dialog - *if* it is 
> received by the UAC. In that case the UAC knows a dialog has 
> been established, but the UAS does not.
> 
> So, if a UAC receives an unreliable provisional that contains 
> a tag it could potentially then send an UPDATE within that dialog.
> 
> But when the UAS sends that unreliable provisional, since it 
> doesn't know for sure that a dialog has been established, it 
> can't yet send an UPDATE. If it did send one, and the 
> provisional had been lost, then the UAC would not be able to 
> associate the UPDATE with a dialog, and it would fail.
> 
> 	Paul
> 
> Christer Holmberg (JO/LMF) wrote:
> > Hi,
> > 
> >>> Can someone enlighten me as to why UPDATE isn't equally 
> acceptable 
> >>> for
> > 
> >>> transporting an SDP offer as reliable 18x/PRACK?
> >> Well, you really need the reliable 18x to establish a dialog. 
> > 
> > I don't want to argue against you on that, but I HAVE heard 
> opinions 
> > saying that you do not need a reliable response in order to 
> establish 
> > a dialog.
> > 
> > Also, chapter 12.1 of RFC3261 does say the following:
> > 
> > "Dialogs are created through the generation of non-failure 
> responses 
> > to requests with specific methods.  Within this specification, only 
> > 2xx and 101-199 responses with a To tag, where the request 
> was INVITE, 
> > will establish a dialog.  A dialog established by a 
> non-final response 
> > to a request is in the "early" state and it is called an early 
> > dialog."
> > 
> > Note that the text only talks about non-failure responses (2xx and 
> > 101-199), not reliable responses (reliable provisional responses
> > (101-199) are not even defined in 3261).
> > 
> >> If you send the UPDATE prior to a 18x, then the UPDATE would 
> >> establish the dialog. You would need to have it carry the 
> >> record-route, and all kinds of awful things.
> > 
> > Yes, and that is a good reason not to send UPDATE before 
> you have sent 
> > a reliable response - at least not by the called party. 
> But, one could 
> > claim that the early dialog may still be established before that.
> > 
> >> A better alternative would be to have a 18x/PRACK without an 
> >> offer/answer exchange, followed by an UPDATE from callee 
> to caller at 
> >> some point in time. I can't think of a reason that wouldn't work, 
> >> except that RFC 3261 is pretty clear that the offer is supposed to 
> >> come in the first reliable response. So, omitting one in the 18x 
> >> would probably seriously confuse most implementations.
> > 
> > This is related to the discussion about the MUST to send an 
> offer in 
> > the first reliable 18x. It is listed as an issue in the 
> offer/answer draft.

_______________________________________________
mmusic mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/mmusic

---

From: Paul Kyzivat <[email-masked]>
Date: Fri, 05 Jan 2007 17:08:37 -0500

> early dialog which has had no prior offer/answer exchange is not be

I agree.

And this can be viewed as a consequence of other requirements:
- you can't send the UPDATE till an early dialog has been established
- to establish the early dialog you need to send a reliable provisional
- if there was no offer in the INVITE, then there must be an offer
   in the first reliable response.

	Paul

---

From: "Christer Holmberg \(JO/LMF\)" <[email-masked]>
Date: Tue, 9 Jan 2007 20:01:36 +0100

Hi, 

>>My understanding of rfc3311 is that sending an UPDATE with 
>>offer over an early dialog which has had no prior offer/answer 
>>exchange is not be allowed.
> 
>I agree.

I also agree. 

My point was that one could claim that if the "answer" is sent
unreliably, the UAC knows it has got it, so it could send a new offer in
the UPDATE. But, that is not allowed.
 
>- to establish the early dialog you need to send a reliable provisional

Earlier you said the follwing: "A non-reliable response *can* establish
a dialog - *if* it is received by the UAC."

So, yes, the UAS must send a reliable response in order to establish an
early dialog.

But, as you said, the UAC can establish a dialog even when receiving an
unreliable response. But the UAC still not allowed to send a new offer
within that dialog, since no answer has yet been delivered reliably (the
unreliable 18x may have included a "preview" of the answer, but it
doesn't count).

>- if there was no offer in the INVITE, then there must be an offer in
the first reliable response.

That is currently the rule, yes, but one of the issues listed in the
offer-answer draft.

Regards,

Christer

> > And my interpretation (which might be incorrect) of bullet 
> 2 is that 
> > the "UPDATE can contain an offer if" should be interpreted 
> as "UPDATE 
> > can contain an offer only if".  Thus the caller also cannot send it.
> > 
> >> received by the UAC. In that case the UAC knows a dialog has been 
> >> established, but the UAS does not.
> >>
> >> So, if a UAC receives an unreliable provisional that 
> contains a tag 
> >> it could potentially then send an UPDATE within that dialog.
> >>
> >> But when the UAS sends that unreliable provisional, since 
> it doesn't 
> >> know for sure that a dialog has been established, it can't 
> yet send 
> >> an UPDATE. If it did send one, and the provisional had been lost, 
> >> then the UAC would not be able to associate the UPDATE 
> with a dialog, 
> >> and it would fail.
> >>
> >> 	Paul
> >>

---

From: Paul Kyzivat <[email-masked]>
Date: Tue, 09 Jan 2007 17:12:11 -0500

Christer,

The subject of this thread scopes it to the case where there would be an 
offer in the 200. That can only happen if there was no offer in the 
invite. The issues you raise below are when there was an offer in the 
invite, which is off topic for this thread. I agree the situation is a 
bit different in that case, but if you want to discuss that, how about 
starting a new thread for it.

	Paul

---

From: "Christer Holmberg \(JO/LMF\)" <[email-masked]>
Date: Wed, 10 Jan 2007 04:37:36 +0100

Hi Paul,

I just wanted to clarify that, even if a UAC can send an UPDATE on an
dialog it created when receiving an unreliable 18x, that UPDATE can not
contain an offer (or an answer for that matter). I don't want to change
that behavior :)

Regards,

Christer 

> Sent: 10. tammikuuta 2007 0:12
> Cc: Brett Tate; mmusic
> The subject of this thread scopes it to the case where there 
> would be an offer in the 200. That can only happen if there 
> was no offer in the invite. The issues you raise below are 
> when there was an offer in the invite, which is off topic for 
> this thread. I agree the situation is a bit different in that 
> case, but if you want to discuss that, how about starting a 
> new thread for it.
> 
> 	Paul
> 
> >>> My understanding of rfc3311 is that sending an UPDATE with offer 
> >>> over an early dialog which has had no prior offer/answer 
> exchange is 
> >>> not be allowed.
> >> I agree.
> > 
> > I also agree. 
> > 
> > unreliably, the UAC knows it has got it, so it could send a 
> new offer 
> > in the UPDATE. But, that is not allowed.
> >  
> > Earlier you said the follwing: "A non-reliable response *can* 
> > establish a dialog - *if* it is received by the UAC."
> > 
> > So, yes, the UAS must send a reliable response in order to 
> establish 
> > an early dialog.
> > 
> > But, as you said, the UAC can establish a dialog even when 
> receiving 
> > an unreliable response. But the UAC still not allowed to send a new 
> > offer within that dialog, since no answer has yet been delivered 
> > reliably (the unreliable 18x may have included a "preview" of the 
> > answer, but it doesn't count).
> >