Subject: RE: SIP: mandatory Contact

From: "Donovan, Steven R." <[email-masked]>
Date: Mon, 03 May 1999 13:25:01 +0000

Jonathan,

I hate to quibble, but it seems to me that if we make it so the UAS and UAC
need to receive INVITEs and 200 OKs without Contacts then we really aren't
making them mandatory.

Are you suggesting that we make them "strongly suggested".  It is certainly
the case that not including the contact header in the INVITE or 200 OK can
cause misrouted re-INVITE, INFO and BYE messages.

I think that the SIP spec also needs to add more information in section 6.29
to explain how the called user agent uses the Record-Route and Contact
headers to build the route header in subsequent requests.

Regards,

Steve

-----Original Message-----
From: Jonathan Rosenberg [mailto:[email-masked]]
Sent: Sunday, May 02, 1999 11:19 PM
To: Donovan, Steven R.
Cc: Lars Berggren; Anders Kristensen; Hearty, John H.;
[email-masked]'
Subject: Re: SIP: mandatory Contact

> Donovan, Steven R. wrote:
> 
> What are we trying to solve here, making SIP work through NATs or
> making the record-route/route mechanism work?
> 
> It seems to me that the former is outside the bounds of the SIP
> specification and that the latter is absolutely necessary.
> 
> The handling of re-INVITES from the called UA is a specific case that
> argues for making the contact mandatory in the initial INVITE
> message.  Proxy servers that remain in the signaling path will need to
> be able to differentiate between INVITEs and re-INVITES.  If the
> calling UA is not included in the Route header, then SPS1 from my
> original flows will have no way of knowing that a re-INVITE from B,
> the called user agent, is indeed a re-INVITE.  If SPS1 thinks that it
> is a new INVITE, then it is likely to query a location server to
> determine how to route the INVITE message.  There is a chance that the
> INVITE will get correctly routed, but there is a significant chance
> that it won't.
> 
> Making the Contact mandatory in the initial INVITE and as a result
> included in the called user agents route header will fix this problem,
> as SPS1 can use the presence of the route header as in indicator that
> this is no a new INVITE.

It sounds to me like there is consensus to make Contact madatory in
INVITE and in 200 OK. I still believe a UAS should be prepared to
receive an INVITE without Contact, and a UAC should be prepared to
receive a 200 OK without (in other words, the currently specified
behavior should be used). 

-Jonathan R.

-- 
Jonathan D. Rosenberg                       Lucent Technologies
Member of Technical Staff                   101 Crawfords Corner Rd.
High Speed Networks Research                Holmdel, NJ 07733
FAX: (732) 834-5379                         Rm. 4C-526
EMAIL: [email-masked]
URL: http://www.cs.columbia.edu/~jdrosen

---

From: Jonathan Rosenberg <[email-masked]>
Date: Mon, 03 May 1999 10:01:23 -0400

> I hate to quibble, but it seems to me that if we make it so the UAS
> and UAC need to receive INVITEs and 200 OKs without Contacts then we
> really aren't making them mandatory.

This falls under the "be strict in sending, gracious in receiving"
design philosophy. Insertion of the field will be made a MUST, but for
robustness, the UAS and UAC should handle it without. Furthermore, There
may be situations where NAT's might possibly remove these headers, as
someone has pointed out.

> I think that the SIP spec also needs to add more information in
> section 6.29 to explain how the called user agent uses the
> Record-Route and Contact headers to build the route header in
> subsequent requests.

Yes, this need clarification.

Thanks,
Jonathan R.