Subject: [Sip] Early Dialogue Handling

From: "B Venkat S.R Swamy" <[email-masked]>
Date: Mon, 12 Nov 2007 11:09:19 +0530

Hi

For an early dialogue sent after 1xx response to Invite and before the 2xx 
response, what is the expected behaviour for routing the early dialogue if 
1xx(non-100) does not
contain Contact Header.

Options:

> Route the message to the same address where initial Invite was sent.
> It is mandatory to give Contact header in 1xx if early dialogue is to be 
sent.( This would require change in RFC 3261). Give an error response to 
the early dialogue, if 
contact is not received in 1xx(non-100).
> Fail the dialogue/call.

regards
Venkat 

***********************  Aricent-Restricted   ***********************
"DISCLAIMER: This message is proprietary to Aricent  and is intended solely for the use of 
the individual to whom it is addressed. It may contain privileged or confidential information and should not be 
circulated or used for any purpose other than for what it is intended. If you have received this message in error, 
please notify the originator immediately. If you are not the intended recipient, you are notified that you are strictly
prohibited from using, copying, altering, or disclosing the contents of this message. Aricent accepts no responsibility for 
loss or damage arising from the use of the information transmitted by this email including damage from virus."
_______________________________________________
Sip mailing list  https://www1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use [email-masked] for questions on current sip
Use [email-masked] for new developments on the application of sip

---

From: Paul Kyzivat <[email-masked]>
Date: Mon, 12 Nov 2007 08:20:16 -0500

B Venkat S.R Swamy wrote:
> 
> Hi
> 
> For an early dialogue sent after 1xx response to Invite

I'm a little confused by your terminolog. A dialog is not something you 
send. It is something that exists, or not. You can have an early dialog 
even if you choose not to send any messages within it.

I guess you are asking how to construct a message to be sent within an 
early dialog if the 1xx response that established the early dialog did 
not contain a Contact header.

> and before the 
> 2xx response, what is the expected behaviour for routing the early 
> dialogue if 1xx(non-100) does not
> contain Contact Header.
> 
> Options:
> 
>  > It is mandatory to give Contact header in 1xx if early dialogue is to 
> be sent.( This would require change in RFC 3261).

AFAIK it is indeed required to provide a Contact address in responses 
that establish a dialog (early or not). I was thinking 3261 already 
called for this, but I'll have to spend some time looking at 3261 to 
confirm that.

> Give an error response 
> to the early dialogue, if

Since the problem is with a response, you can't give an error response 
to it. You will have to make do.

>  > Fail the dialogue/call.

The strongest thing you could do is send a CANCEL, which doesn't require 
the Contact. (You can't send a BYE because that is also an in-dialog 
request.)

If you received an *unreliable* provisional with a to-tag, you can just 
make-do by not trying to send any messages within the dialog until you 
do get a Contact, at least in the 2xx response.

If you received a *reliable* provisional without a Contact then you have 
a problem because you are obligated to send a PRACK within the dialog 
but you don't have the info to do so. In that case I think you must send 
a CANCEL or else just pretend the response was unreliable. (Which 
probably won't work well.)

I suppose you could have a UAS that sends a Contact in one response and 
then fails to send it in subsequent responses. In that case you might 
try to use the most recent one you have received.

	Good luck,
	Paul

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

---

From: "B Venkat S.R Swamy" <[email-masked]>
Date: Tue, 13 Nov 2007 20:15:56 +0530

Hi 

I am sorry for that confusing statements, let me correct and clarify it as 
follows:

1> Invite sent to the network
2> 1xx response to Invite received from network without any Contact 
header. Dialogue gets established.
3> An early in-dialogue transaction (say OPTION/UPDATE) initiated.

problem: where should this new transaction be routed.

Options: 

> Route the transaction to the same address where initial Invite was sent. 

> Give an error response to the early in-dialogue(say OPTION/UPDATE) 
transaction, if contact is not received in 1xx(non-100) till we receive it 
in 2xx response.
It is mandatory to give Contact header in 1xx if early in-dialogue 
transaction is to be sent.( This would require change in RFC 3261). 
> Fail the dialogue/call.

I could get some clarification from your responses, but find my comments 
inline[BVS] below

regards
Venkat

Paul Kyzivat <[email-masked]> 
11/12/2007 06:50 PM

To
B Venkat S.R Swamy/HSS@HSS
cc
[email-masked]
Subject
Re: [Sip] Early Dialogue Handling

If you received an *unreliable* provisional with a to-tag, you can just 
make-do by not trying to send any messages within the dialog until you 
do get a Contact, at least in the 2xx response.
[BVS]>>> does it mean we ignore the message or give negative response to 
it.

                 Good luck,
                 Paul

> the individual to whom it is addressed. It may contain privileged or 
confidential information and should not be 
> circulated or used for any purpose other than for what it is intended. 
If you have received this message in error, 
> please notify the originator immediately. If you are not the intended 
recipient, you are notified that you are strictly
> prohibited from using, copying, altering, or disclosing the contents of 
this message. Aricent accepts no responsibility for

---

From: [email-masked]
Date: Thu, 15 Nov 2007 19:03:12 -0500

From: "B Venkat S.R Swamy" <[email-masked]>

Such a 1xx response is incorrect.

>From a practical point of view, it is incorrect because it would cause
the creation of an early dialog, but the UAC would not know the
contact address of the UAS.  This results in the difficulties you have
enumerated.

>From a standards point of view, see these sections of RFC 3261:

   13.3.1.1 Progress

   If the UAS is not able to answer the invitation immediately, it can
   choose to indicate some kind of progress to the UAC (for example, an
   indication that a phone is ringing).  This is accomplished with a
   provisional response between 101 and 199.  These provisional
   responses establish early dialogs and therefore follow the procedures
   of Section 12.1.1 in addition to those of Section 8.2.6.

   12.1.1 UAS behavior

   When a UAS responds to a request with a response that establishes a
   dialog (such as a 2xx to INVITE), the UAS MUST [...].  The UAS MUST
   add a Contact header field to the response.  The Contact header
   field contains an address where the UAS would like to be contacted
   for subsequent requests in the dialog [...].

Dale