Subject: RE: [Sip] RE: wording in the dialog package on mid-dialog requests

From: "Paul D.Smith" <[email-masked]>
Date: Mon, 14 Feb 2005 16:19:51 -0000

David, Paul, Rohan,

Having read David's e-mail, I believe there is one question that, if we can
answer it, holds the key to resolving this discussion.  The question is:

  "What happens if someone challenges a BYE?"

Now if we assume a couple of proxies between UAC and UAS, and everyone
wants authentication, I expected the flow to be as follows.

UAC          P1          P2           UAS

--- RQ ---->
<-- 407 ----
--- RQ ----> --- RQ ---->
<-- 407 ---- <-- 407 ----
--- RQ ----> --- RQ ----> --- RQ ---->
<-- 401 ---- <-- 401 ---- <-- 401 ----
--- RQ ----> --- RQ ----> --- RQ ---->
<-- 200 ---- <-- 200 ---- <-- 200 ----

I base this on RFC3665, section 3.3 which shows a request (actually
an INVITE) traversing multiple proxies.

>From your (Rohan, David, Paul K.) comments, I believe that the flow you are
expecting is the following.

UAC          P1          P2           UAS

--- RQ ----> [Dialog has ended on UAC]
<-- 407 ----

I don't believe a UAC is permitted to send requests on a dialog that is in
terminated state.  Therefore since the dialog ends on sending the first BYE,
I believe that the UAC cannot send any further requests, so cannot take any
further action when challenged.  

Can you please confirm whether my understanding is correct or clarify what
aspect of this I have misunderstood?  We may then continue, or close, this
discussion based on our mutual understanding of this scenario.

Regards,
Paul D Smith
Network Protocols Group 
Data Connection Ltd (DCL)
Tel: +44 20 8366 1177  Email: [email-masked] 
Fax: +44 20 8363 1039  Web:   http://www.dataconnection.com

_______________________________________________
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, 14 Feb 2005 11:52:21 -0500

> wants authentication, I expected the flow to be as follows.

I have been making a slightly different point. It is that it is not the 
*dialog* that has ended upon sending a BYE. It is the dialog *usage* 
(for the invite) that has perhaps ended. (Or perhaps not, depending on 
the outcome of this discussion.)

This problem arises because of an ambiguity in 3261 between 'dialog' and 
'invite usage of dialog'. That ambiguity is compounded in the "dialog" 
event package, which is really an 'invite usage of dialog' event package.

> terminated state. 

Its not permitted to send messages on a *dialog* that has terminated. It 
might however be permitted to send messages *about* a usage that has 
terminated, in order to ensure that the other party knows that that 
usage has terminated. Until the other party knows that, it won't know 
that the dialog is gone.

> Therefore since the dialog ends on sending the first BYE,

This just seems overly simplistic to me. It seems like the UAC should be 
able to keep trying to get the BYE through as long as there is no 
evidence that the *dialog* is gone.

However, this isn't always going to be enough, so there will alsways be 
some weird cases. For instance, suppose at the time the call was 
established the UAC had to prompt the user for a password, in order to 
handle a digest challenge. And it has been using the resulting 
credentials since then. But then suppose those credentials expire before 
the BYE is sent. When the BYE is challenged, it may be necessary to 
prompt the user for a new password before responding to the challenge. 
If so, and if the user has hung up and walked away, that just isn't 
going to happen. In that case the BYE just isn't going to make it. Tough!

	Paul

---

From: Rohan Mahy <[email-masked]>
Date: Mon, 14 Feb 2005 09:33:51 -0800

Hi Paul,

BYE is unique in that when my UA sends a BYE, it is done with the 
usage. If the peer challenges the BYE, my UA will of course try to 
automatically resend the BYE with the appropriate credentials, but this 
does not impact my view of the state of the usage.  I am done with it.  
Nothing you can do will bring the usage back from the dead.  The 
challenge may increase the amount of time my peer thinks the usage is 
alive when I think it is dead, and that is perfectly fine.

thanks,
-rohan

---

From: Paul Kyzivat <[email-masked]>
Date: Mon, 14 Feb 2005 15:39:58 -0500

Rohan Mahy wrote:
> 
> Hi Paul,
> 
> BYE is unique in that when my UA sends a BYE, it is done with the usage. 
> If the peer challenges the BYE, my UA will of course try to 

I'm perfectly fine with that as long as as:
- we are talking about the *usage*, not the *dialog*
- its ok to keep trying to get that BYE through