Subject: [Sip] Distinguishing subscription from polling resource state

From: "Tim Rang" <[email-masked]>
Date: Tue, 22 Nov 2005 17:02:24 -0800

I have an issue regarding RFC 3265 section 3.3.6 "Polling Resource
State".  It is clear that a SUBSCRIBE request with an Expires value of 0
may constitute a resource query or an unsubscribe, depending upon
whether a dialog exists.  If I have a proxy server wants to distinguish
between unsubscribe and resource query, and my proxy server does not
maintain dialog state, what message element(s) can it use to make that
determination?

My position is that you can use the To tag parameter (or lack of).  On
reading through 3261, 12.1.2 states that To tags should not be expected
as they were not mandated in 2543 (there seems to be a lot of this
lately).  However, 2543 states in section 6.37-
 
  "It MUST be placed in the To field of the response by each instance
when there is a possibility that the request was forked at an
intermediate proxy."

That RFC is silent on when it is ok to omit.  My read of this is that a
UAS can only "know" that a forking server was NOT in the path in one
condition- if the request was sent peer to peer, without any proxy
servers in the path. 

Accepting that, and knowing that my question is unique to scenarios when
proxies are involved, is it ok to assume that any SUBSCRIBE request sent
by a UA (either 3261 or 2543 compliant) which passes through a proxy
meets the following conditions-

-          if a tag parameter is present in the To header, then the
SUBSCRIBE (Expires=0) is in fact an unsubscribe.

-          If a tag parameter is NOT present, the SUBSCRIBE (Expires=0)
is a polling subscribe?

Thanks,

Tim Rang

_______________________________________________
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: "Dale R. Worley" <[email-masked]>
Date: Wed, 23 Nov 2005 10:30:21 -0500

On Tue, 2005-11-22 at 17:02 -0800, Tim Rang wrote:
> I have an issue regarding RFC 3265 section 3.3.6 “Polling Resource
> State”.  It is clear that a SUBSCRIBE request with an Expires value of
> 0 may constitute a resource query or an unsubscribe, depending upon
> whether a dialog exists.  If I have a proxy server wants to
> distinguish between unsubscribe and resource query, and my proxy
> server does not maintain dialog state, what message element(s) can it
> use to make that determination?

Why would it need to distinguish between "unsubscribe" and "resource
query"?  In either usage, the UAS is *required* to send a complete
status, so the response that the proxy has to process is no different.

Dale

---

From: Paul Kyzivat <[email-masked]>
Date: Wed, 23 Nov 2005 10:41:04 -0500

Tim Rang wrote:
> State”.  It is clear that a SUBSCRIBE request with an Expires value of 0 
> between unsubscribe and resource query,

Why would the proxy want to know? Perhaps to do authorization for 
messages outside a dialog but not for those in a dialog???

> and my proxy server does not 
> My position is that you can use the To tag parameter (or lack of).  On reading through 3261, 12.1.2 states that To tags should not be expected as they were not mandated in 2543 (there seems to be a lot of this lately).  However, 2543 states in section 6.37-
> 
>   “It MUST be placed in the To field of the response by each instance when there is a possibility that the request was forked at an intermediate proxy.”
> 
> UAS can only “know” that a forking server was NOT in the path in one 

Well, an unsubscribe *is* a polling subscribe, in that it results in one 
last transmission of state as well as terminating the subscription.

There is also the possibility that the UAS has crashed and forgotten the 
dialog state. In that case the UAS most likely will fail the request 
with a 481 response. But it might recover the dialog and then terminate it.

Depending on what you are trying to accomplish, a UAC might use a bogus 
To-tag to get around you. Most UASs would probably respond with a 481, 
but a buggy one, or one that is complicit with the UAC might accept it.

	Paul