Subject: [Sipping] Remaining offer/answer issue: how to reject an SDP offer sent in PRACK

From: "Christer Holmberg" <[email-masked]>
Date: Tue, 26 Aug 2008 08:03:13 +0200

Hi,

Now when we agreed on a way on how to solve the re-INVITE fallback
issue, one remaining open issue in the offer-answer draft is how to
reject SDP offers sent in PRACKs.

I would like to collect ideas on how it could be done.

NOTE: At this point I DO NOT want to discuss the pros/cons of different
alternatives, their impacts on existing normative text, or whether they
work in the first place, but simply do some brainstorming :)

Some ideas:

-	Reply 200 OK without SDP answer

-	Reply with 4xx responses, indicating that the PRACK itself was
ok, but the SDP offer was rejected

-	Reply 200 OK with "dummy" SDP answer, then immediately send
UPDATE with fallback SDP offer

-	Do not use PRACK for offer/answer in the first place

-	Stop using 100rel all together (Dean's proposal in the War On
Forking)

Some more?

Personally I don't see a
make-sure-you-send-an-offer-which-will-not-be-rejected alternative as
feasible, because the UAS may want to reject the offer based on other
circumstances (e.g. overload).

Regards,

Christer

_______________________________________________
Sipping mailing list  https://www.ietf.org/mailman/listinfo/sipping
This list is for NEW development of the application of SIP
Use [email-masked] for questions on current sip
Use [email-masked] for new developments of core SIP

---

From: "Sanjay Sinha (sanjsinh)" <[email-masked]>
Date: Tue, 26 Aug 2008 17:53:53 -0400

What is the reason for rejecting the offer, because of negotiation
failure or the fact that UAS does not like updated offer in Prack.

________________________________

	From: [email-masked] [mailto:[email-masked]]
On Behalf Of Christer Holmberg
	Sent: Tuesday, August 26, 2008 2:03 AM
	To: sipping LIST
	Subject: [Sipping] Remaining offer/answer issue: how to reject
an SDP offersent in PRACK

	Hi, 

	Now when we agreed on a way on how to solve the re-INVITE
fallback issue, one remaining open issue in the offer-answer draft is
how to reject SDP offers sent in PRACKs.

	NOTE: At this point I DO NOT want to discuss the pros/cons of
different alternatives, their impacts on existing normative text, or
whether they work in the first place, but simply do some brainstorming
:)

	Some ideas: 

	-       Reply with 4xx responses, indicating that the PRACK
itself was ok, but the SDP offer was rejected 

	-       Reply 200 OK with "dummy" SDP answer, then immediately
send UPDATE with fallback SDP offer 

	-       Stop using 100rel all together (Dean's proposal in the
War On Forking) 

	Some more? 

	Personally I don't see a

	Regards, 

	Christer

---

From: "Christer Holmberg" <[email-masked]>
Date: Wed, 27 Aug 2008 09:51:57 +0200

Hi,
 
What reasons do you normally have for rejecting an offer? You don't like
what has been offered, or you are not able to provide was have been
offered.
 
Regards,
 
Christer

From: Sanjay Sinha (sanjsinh) [mailto:[email-masked]] 
Sent: 27. elokuuta 2008 0:54
To: Christer Holmberg; sipping LIST
Subject: RE: [Sipping] Remaining offer/answer issue: how to reject an
SDP offersent in PRACK

	Hi, 

	Some ideas: 

	Some more? 

	Personally I don't see a

	Regards, 

	Christer

---

From: Paul Kyzivat <[email-masked]>
Date: Wed, 27 Aug 2008 11:08:11 -0400

> -       Stop using 100rel all together (Dean's proposal in the War On 

There are no perfect choices here.

What is wrong with just returning any appropriate error response - e.g. 
488? The main problem with that is whether it did/didn't ack the 
response. After considering alternatives, ISTM that this should then 
also mean that the reliable response has not yet been acknowledged, and 
so another PRACK must be sent - preferably one without an offer.

	Thanks,
	Paul

> ------------------------------------------------------------------------
>

---

From: "Christer Holmberg" <[email-masked]>
Date: Wed, 27 Aug 2008 19:13:49 +0200

Hi Paul,
 
>488?

That is the second alternative in my list.

>The main problem with that is whether it did/didn't ack the 

...or, we could define that a 488 must not be sent for PRACK unless the reliable response was acknowledged.

But, I guess one potential issue with that is that if is an intermediate, and not the endpoint sending the reliable responses, which sends the 488 then the reliable responses will keep coming (since the endpoint sending the reliable responses never got the PRACK).

Maybe we could specify that the RSeq header shall be included in the PRACK response, to indicate that the relaible response has NOT been acknowledged yet?

Regards,

Christer

	Thanks,
	Paul

---

From: "Sanjay Sinha (sanjsinh)" <[email-masked]>
Date: Wed, 27 Aug 2008 13:26:14 -0400

Yeah, probably it was a dumb question.
 
I am ok with the option of rejecting the offer with 4xx response,
indicating that Prack is complete, but offer is not acceptable.
 
Sanjay

	From: Christer Holmberg [mailto:[email-masked]] 
	Sent: Wednesday, August 27, 2008 3:52 AM
	To: Sanjay Sinha (sanjsinh); sipping LIST
	Subject: RE: [Sipping] Remaining offer/answer issue: how to
reject an SDP offersent in PRACK

	Hi,
	 
	What reasons do you normally have for rejecting an offer? You
don't like what has been offered, or you are not able to provide was
have been offered.
	 
	Regards,
	 
	Christer

	From: Sanjay Sinha (sanjsinh) [mailto:[email-masked]] 
	Sent: 27. elokuuta 2008 0:54
	To: Christer Holmberg; sipping LIST
	Subject: RE: [Sipping] Remaining offer/answer issue: how to
reject an SDP offersent in PRACK

	What is the reason for rejecting the offer, because of
negotiation failure or the fact that UAS does not like updated offer in
Prack.

		From: [email-masked]
[mailto:[email-masked]] On Behalf Of Christer Holmberg
		Sent: Tuesday, August 26, 2008 2:03 AM
		To: sipping LIST
		Subject: [Sipping] Remaining offer/answer issue: how to
reject an SDP offersent in PRACK

		Hi, 

		Now when we agreed on a way on how to solve the
re-INVITE fallback issue, one remaining open issue in the offer-answer
draft is how to reject SDP offers sent in PRACKs.

		NOTE: At this point I DO NOT want to discuss the
pros/cons of different alternatives, their impacts on existing normative
text, or whether they work in the first place, but simply do some
brainstorming :)

		Some ideas: 

		-       Reply with 4xx responses, indicating that the
PRACK itself was ok, but the SDP offer was rejected 

		-       Reply 200 OK with "dummy" SDP answer, then
immediately send UPDATE with fallback SDP offer 

		-       Do not use PRACK for offer/answer in the first
place 

		-       Stop using 100rel all together (Dean's proposal
in the War On Forking) 

		Some more? 

		Personally I don't see a

		Regards, 

		Christer

---

From: Paul Kyzivat <[email-masked]>
Date: Wed, 27 Aug 2008 18:27:21 -0400

> ...or, we could define that a 488 must not be sent for PRACK unless the reliable response was acknowledged.

I thought about trying to classify responses as to whether they imply 
that the response has been acked or not. (Obviously 200 does. You are 
proposing that 488 should. Most likely there would be others.)

> But, I guess one potential issue with that is that if is an intermediate, and not the endpoint sending the reliable responses, which sends the 488 then the reliable responses will keep coming (sinc…

Allowing intermediates (proxies) to send reliable responses is a 
*terrible* idea. I thought we had already excluded that.

But the response to the PRACK itself could be coming from a proxy. E.g. 
a 407 or a 408. I could see no way to discern which are which.

I propose it is better for the UAC to assume that any failure response 
to a PRACK requires a new PRACK to be sent to ack the response.

> Maybe we could specify that the RSeq header shall be included in the PRACK response, to indicate that the relaible response has NOT been acknowledged yet?

???

So you are suggesting that something special be added to a non-200 PRACK 
response to acknowledge the PRACK while rejecting it? While that could 
work, it seems arcane. Its even hard to describe.

	Thanks,
	Paul

---

From: "Christer Holmberg" <[email-masked]>
Date: Thu, 28 Aug 2008 08:01:06 +0200

Hi Paul, 

>>>What is wrong with just returning any appropriate error response -
e.g. 488?
>>>The main problem with that is whether it did/didn't ack the response.

>>>After considering alternatives, ISTM that this should then also mean 
>>>that the reliable response has not yet been acknowledged, and so 
>>>another PRACK must be sent - preferably one without an offer.
>> 
that the response has been acked or not. (Obviously 200 does. You are
proposing that 488 should. Most likely there would be 
>others.)

Or, as I suggested, instead of the response code we use the RSeq header
to indicate whether the response has been acked or not. Maybe that would
be more "safe".

>>But, I guess one potential issue with that is that if is an
intermediate, and not the endpoint sending the reliable responses, which
sends the 488 then the reliable responses will keep coming 
>>(since the endpoint sending the reliable responses never got the
PRACK).

What I meant was that a UAS is sending the reliable response. But, then
an intermediate rejects the PRACK with 488 (because it contains an offer
the intermediate doesn't like). In this case the UAS will keep
re-transmitting the reliable response, so the UAC will have to send a
new PRACK (without SDP).

But, what IF the first PRACK actually acknowledged the reliable
response? In that case I guess the UAS may send a 481 to the second
PRACK? Will the UAC just accept it and "move on"?

But, in any case, I will document this send-a-new-PRACK-without-SDP as
one option.

>>Maybe we could specify that the RSeq header shall be included in the
PRACK response, to indicate that the relaible response has NOT been
acknowledged yet?
>
>???
>
>So you are suggesting that something special be added to a non-200
PRACK response to acknowledge the PRACK while rejecting it? 

Yes. Today, neither RSeq nor RAck are inserted in the PRACK response.
So, an RSeq in the non-200 PRACK response would have the same meaning as
in a reliable provisional resonse: "Hey, this is the seq number you have
to send a PRACK for".

Regards,

Christer

>> This list is for NEW development of the application of SIP Use 
>> [email-masked] for questions on current sip Use 
>> [email-masked] for new developments of core SIP
> 
>

---

From: "Ian Elz" <[email-masked]>
Date: Thu, 28 Aug 2008 09:56:03 +0200

Paul, Christer,

I liked one of the original ideas. PRACK not being used for
offer/answer.

I would modify it though to allow an sdp answer in the PRACK but not an
offer.

This would allow an INVITE with no sdp to be sent with the sdp offer in
the provisional response and the answer in the PRACK. (I think that this
is essential for preconditions where the empty INVITE is sent e.g. 3PCC)

The approach would also resolve one of the preconditions queries. 

Does it make sense for a confirmed offer to be sent in a PRACK?

Theoretically it does but whether it would ever happen in practice is
another matter.

Ian Elz

System Manager
DUCI LDC UK
(Lucid Duck)

Office: + 44 24 764 35256
gsm: +44 7801723668
[email-masked]

-----Original Message-----
From: [email-masked] [mailto:[email-masked]] On
Behalf Of Christer Holmberg
Sent: 28 August 2008 07:01
To: Paul Kyzivat
Cc: sipping LIST
Subject: Re: [Sipping] Remaining offer/answer issue: how to reject an
SDPoffer sent in PRACK

Hi Paul, 

e.g. 488?

PRACK).

Regards,

Christer

---

From: "Ian Elz" <[email-masked]>
Date: Thu, 28 Aug 2008 11:36:47 +0200

Christer,

Forgot about the compatibility issues of changing the sdp offer/answer
with PRACK.

488 appears to be the best way forward then.

Ian Elz

System Manager
DUCI LDC UK
(Lucid Duck)

-----Original Message-----
From: Christer Holmberg 
Sent: 28 August 2008 10:12
To: Ian Elz; 'Paul Kyzivat'
Cc: 'sipping LIST'
Subject: RE: [Sipping] Remaining offer/answer issue: how to reject an
SDPoffer sent in PRACK

Hi Ian,

I think not allowing SDP in PRACK is too late at this stage.

PRACK is used to carry SDP at least in preconditions scenarios, and
there are also non-IETF SDOs which have defined such procedures. Not
allowing SDP in PRACK would require big changes, in a number of
different places.

I think the good thing with the 488 proposal is that the SDP offer would
be rejected in exactly the same way as when carried in any other type of
SIP request.

We DO need to figure out the issue how to make sure the UAC knows
whether the reliable provisonal response has been acknowledged, but
unless there are any objections I would propose that we move forward
with the 488 proposal and then start looking into the details.

Regards,

Christer

-----Original Message-----
From: Ian Elz 
Sent: 28. elokuuta 2008 10:56
To: Christer Holmberg; Paul Kyzivat
Cc: sipping LIST
Subject: RE: [Sipping] Remaining offer/answer issue: how to reject an
SDPoffer sent in PRACK

Paul, Christer,

Ian Elz

System Manager
DUCI LDC UK
(Lucid Duck)

-----Original Message-----

Hi Paul, 

e.g. 488?

PRACK).

Regards,

Christer

---

From: "Christer Holmberg" <[email-masked]>
Date: Thu, 28 Aug 2008 11:11:49 +0200

Hi Ian,

Regards,

Christer

-----Original Message-----
From: Ian Elz 
Sent: 28. elokuuta 2008 10:56
To: Christer Holmberg; Paul Kyzivat
Cc: sipping LIST
Subject: RE: [Sipping] Remaining offer/answer issue: how to reject an
SDPoffer sent in PRACK

Paul, Christer,

Ian Elz

System Manager
DUCI LDC UK
(Lucid Duck)

-----Original Message-----

Hi Paul, 

e.g. 488?

PRACK).

Regards,

Christer

---

From: "Rockson Li (zhengyli)" <[email-masked]>
Date: Fri, 29 Aug 2008 22:49:12 +0800

Christer,

RFC3262 says,

If the PRACK does match an
   unacknowledged reliable provisional response, it MUST be responded to
   with a 2xx response.

So in your proposal, you guys will update RFC3262 accordingly?

thanks
-Rockson 

-----Original Message-----
From: [email-masked] [mailto:[email-masked]] On
Behalf Of Christer Holmberg
Sent: Thursday, August 28, 2008 5:12 PM
To: Ian Elz; Paul Kyzivat (pkyzivat)
Cc: sipping LIST
Subject: Re: [Sipping] Remaining offer/answer issue: how to reject
anSDPoffer sent in PRACK

Hi Ian,

Regards,

Christer

-----Original Message-----
From: Ian Elz
Sent: 28. elokuuta 2008 10:56
To: Christer Holmberg; Paul Kyzivat
Cc: sipping LIST
Subject: RE: [Sipping] Remaining offer/answer issue: how to reject an
SDPoffer sent in PRACK

Paul, Christer,

Ian Elz

System Manager
DUCI LDC UK
(Lucid Duck)

-----Original Message-----

Hi Paul, 

e.g. 488?

PRACK).

Regards,

Christer

---

From: "Christer Holmberg" <[email-masked]>
Date: Fri, 29 Aug 2008 17:39:51 +0200

Hi Rockson,

We are currently having discussions on exactly HOW to handle the
documentation.

Regards,

Christer

-----Original Message-----
From: Rockson Li (zhengyli) [mailto:[email-masked]] 
Sent: 29. elokuuta 2008 17:49
To: Christer Holmberg; Ian Elz; Paul Kyzivat (pkyzivat)
Cc: sipping LIST
Subject: RE: [Sipping] Remaining offer/answer issue: how to reject
anSDPoffer sent in PRACK

Christer,

RFC3262 says,

thanks
-Rockson 

-----Original Message-----

Hi Ian,

Regards,

Christer

-----Original Message-----
From: Ian Elz
Sent: 28. elokuuta 2008 10:56
To: Christer Holmberg; Paul Kyzivat
Cc: sipping LIST
Subject: RE: [Sipping] Remaining offer/answer issue: how to reject an
SDPoffer sent in PRACK

Paul, Christer,

Ian Elz

System Manager
DUCI LDC UK
(Lucid Duck)

-----Original Message-----

Hi Paul, 

e.g. 488?

PRACK).

Regards,

Christer