Subject: RE: [SIP] re-INVITE without SDP

From: Jonathan Rosenberg <[email-masked]>
Date: Tue, 27 Mar 2001 03:29:44 -0500

> -----Original Message-----
> From: Brett Tate [mailto:[email-masked]]
> Sent: Wednesday, March 21, 2001 7:39 PM
> To: SIPbell-labs (E-mail)
> Subject: [SIP] re-INVITE without SDP
> 
> 
> I am glad to see the issue 
> "re-INVITE without SDP" has been marked 
> closed, but please provide the flow 
> details (since I don't recall the meeting 
> or minutes were it was closed).
> 
> As an FYI, I guess that I should point 
> out that re-INVITE-without-SDP suddenly has 
> a different meaning from INVITE-without-SDP.  

No, it doesn't.

> 
> This means that 3 new ways of SDP matching 
> has been introduced for re-INVITEs. 
> (implied-SDP means no-SDP so use 
> call-leg's previously accepted SDP)

Nope. See comments below.

> 1) 
> INVITE(SDP)
> 200(SDP)
> ACK
> 2) 
> INVITE 
> 200(SDP)
> ACK(SDP)

These two are fine.

> 3) 
> re-INVITE(implied-SDP)
> 200(implied-SDP)
> ACK

If implied-SDP means no-SDP, this is not correct. THere are only
two cases, SDP-in-INVITE, and SDP-in-200, or SDP-in-200, or SDP-in-ACK.

> 4) 
> re-INVITE(implied-SDP)
> 200(SDP)
> ACK

Nope. Not allowed as per above.

> 
> 5) 
> re-INVITE(implied-SDP)
> 200(SDP)
> ACK(SDP) SDP does NOT have to match implied-SDP.
> 

Heaven forbid, no.

> 
> Methods 1 and 2 have been in the bis since 
> August 1999.  Method 1 still works for re-INVITEs.
> 
> Since method 2 no longer applies to re-INVITE 
> scenarios, methods 3-5 have been introduced.

Why? THat was not the conclusion of the meeting.

Re-invite without SDP is allowed. Re-invite without SDP must have SDP in 200
OK, and then SDP in ACK, just as INVITE. The UAS can offer whatever SDP it
likes in the 200 OK, just as in INVITE. Of course, as with any other
mid-call SDP offer, it should only add m lines to any previous SDP used, or
mark unneeded m lines with port 0 to close. Standard stuff. The SDP in the
ACK must match up with the SDP in 200 OK, just like INVITE.

Hope that clarifies it.

-Jonathan R.

---
Jonathan D. Rosenberg                       72 Eagle Rock Ave.
Chief Scientist                             First Floor
dynamicsoft                                 East Hanover, NJ 07936
[email-masked]                     FAX:   (973) 952-5050
http://www.cs.columbia.edu/~jdrosen         PHONE: (973) 952-5000
http://www.dynamicsoft.com

_______________________________________________
This list is for continuing development of the SIP protocol.
The sip-implementor's list is the place to discuss implementation,
and to receive advice on understanding existing sip.
To subscribe to it, send mail to 
[email-masked] with "subscribe" in the body.

---

From: "Brett Tate" <[email-masked]>
Date: Tue, 27 Mar 2001 15:48:15 -0500

> ACK must match up with the SDP in 200 OK, just like INVITE.

Thanks for the clarification Jonathan.

I completely agree that the above text is
how things should work.  However your text
does not match up with the minutes of the
IETF 50 open issues BOF which mentioned
"The re-INVITE without SDP means
“no change, keep whatever you already have”".
Your text implies that the following call
flow should work, but the BOF minutes doesn't.

A                          B
 --- INVITE (SDP-A) ------->
<--- 200 (SDP-B) ----------
 --- ACK ------------------>
 --- INVITE (hold-SDP-A) -->
<--- 200 (SDP-B) ----------  (message 5)
 --- ACK ------------------>
 --- INVITE --------------->
<--- 200 (SDP-B) ----------  (message 8)
 --- ACK (SDP-A2) --------->

(The SDP-A2 is SDP-A with a higher
origin version and maybe a different
connection address and/or port.)

Some implementations provide hold-SDP at
message 5; this is fine if they don't want
to listen while having been put on hold.
However some of the same devices would
provide hold-SDP at message 8 even though
user B did not actually wish to remain on
hold.

Is the above flow considered a valid call
flow for re-INVITE-without-SDP?

If so, is it ok to encourage vendors of
bis fully-compliant products to only provide
hold-SDP in a 200 for re-INVITE-without-SDP
if the UA wishes to keep/put the call on
hold?