Subject: RE: [SIP] Receiving unrecognized To tags

From: Jonathan Rosenberg <[email-masked]>
Date: Sun, 10 Dec 2000 18:39:50 -0500

I recognize that this thread is ancient, but I am putting together
text/proposals for open issues on the list, and the issues of tags is one of
them. As such, I thought it useful to answer some of these older questions
based on more recent understandings.

> -----Original Message-----
> From: [email-masked]
> [mailto:[email-masked]]On Behalf Of
> [email-masked]
> Sent: Wednesday, September 06, 2000 7:05 PM
> To: [email-masked]
> Subject: [SIP] Receiving unrecognized To tags
> 
> 
> Section 7.4.18 of rfc-bis says a 481 is returned if "the 
> server received an
> INVITE with a To tag that does not match the local tag value."
>  
> Section 10.1.1 says, "An incoming request is accepted unless 
> the Call-ID
> value matches an existing call and the request has a tag 
> value of To header
> that does not match the user agent server's tag value."
>  
> Section 11.5 says, "It is possible that the To header in an 
> INVITE request
> has a tag, but the UAS believes this to be a new call. [...] 
> The UAS MAY
> either accept or reject the request."
>  
> What if a UA receives an INVITE with an unknown Call ID and 
> an unknown To
> tag? Sections 7 and 11 would seem to imply that the INVITE 
> could be rejected
> with a 481, and section 10 would seem to imply that a new 
> call leg should be
> created. Which is correct? Or am I misreading something?

Section 10 is incorrect. 

If the Call-ID is new, and the To tag exists AND is unknown, reject. If the
Call-ID is new, and the To tag exists, and is a tag that the UA knows it has
used for itself, it MAY either accept or reject the request.

>  
> If a UA always uses the same tag value, shouldn't it 
> automatically reject
> any request that has a different To tag? 

Yes.

> On the other hand, 
> if a UA for some
> reason generates a new tag for every call, I suppose it 
> wouldn't necessarily
> be able to tell whether an unrecognized To tag was one that 
> it had in fact
> previously issued.

Right, in which case the call is rejected, and the UA cannot recover
from crash and reboots. A perfectly acceptable thing to do if you
don't care about this feature.

>  
> Also, I'm a little confused about the forking issue. Suppose 
> an INVITE gets
> forked to two UA's, one of which ends up as the UAS in a 
> lengthy call. Later
> on, a re-INVITE from the UAC gets forked to the same two 
> UA's. To the one
> that is not in the call, couldn't the wording of section 11.5 
> apply, so that
> the UA that is not involved in the call could reply to the 
> re-INVITE with a
> 200 OK? I would have thought that the existence of the tag in 
> the INVITE
> would indicate to this UA that it should not accept the INVITE.

Your assessment is correct; the wording in 11.5 is wrong. The UA not
in the call would reject the call, since the To tag is present and not
its own.

-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

_______________________________________________
SIP mailing list
[email-masked]
http://lists.bell-labs.com/mailman/listinfo/sip