Subject: Re: [SIP] why is contact header mandatory invites and positive responses?

From: [email-masked]
Date: Fri, 12 Jan 2001 09:43:21 -0600

Juha wrote
>to me it doesn't make sense that contact header is mandatory in invites
>and positive responses.

>in cases where the company policy is that sip messages must go via a
>given proxy (that then relays them to/from uas within the company
>network), the contact header gives wrong information to the other party.
>the semantics of contact header "it provides a URL where the user can be
>reached for further communications" simply are not true in such a
>situation.

The inclusion of Contact header makes a lot of things easier, ranging from such
simple facts that it allows
UA to present to the user who was contacted in case an INVITE was forked
(otherwise the only difference
in 200OK is different To-tag which doesn't say much about who was contacted) to
making Record-Route following
easier. If you have UAS that doesn't follow Record-Route properly then you have
two options: do not call such a UAS :-)
or make your contact to be [email-masked] instead of IP address of
your phone.

>i would not care otherwise, but i have already met three commercial sip
>user agents that inspite of the record route in the messages, still send
>their acks to the address in the contact header instead of that in the
>record-route.

obviously these are not SIP compliant implementations and I don't think there is
a way to deal with it. There is
no way to make everything work as they should if one party follows its own
secret logic.

>unless the contact header can't be made optional also in invites and
>positive oks, i would very strongly urge that the sip bakeoffs and call
>flow documents would include test cases to check the correct ua behavior
>in the presense of both record-route and contact header.

>-- juha
regards, Jacek Grabiec

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

---

From: Sunitha Kumar <[email-masked]>
Date: Fri, 12 Jan 2001 10:44:03 -0800

If a contact is contained in a response, then that gets appended to the Route list,
as given in 6.34.2 in the Sept4th SIP bis.
If a contact is contained in the initial request, i.e INVITE, then, my
understanding is, the responses should look at via on the INVITE, and get routed to
those addresses. In this case, since the proxies have added their address in the
Via, while forwarding the message, the response goes to the same set of proxies.
When the response reaches the last proxy, then the contact is looked up, and the
response is sent to that UAC.
So, in both cases, the Contact field is handled gracefully.

--
Sunitha Kumar
http://www.cisco.com

---

From: Billy Biggs <[email-masked]>
Date: Fri, 12 Jan 2001 17:04:54 -0500

[email-masked] ([email-masked]):

> [...] or make your contact to be [email-masked] instead
> of IP address of your phone.
                          
  If your Contact address does not specify your client directly, then
you will have problems:

  1. The proxy server listed may act in redirect mode.  This is bad:
      - It may generate mid-call redirects, which breaks everything.
      - It may drop ACKs, since it can return a redirection response.

  2. The proxy may fork, which means we can't use the contact address 
     for attended transfer, etc...

  (1) is extremely evil.  Softclients on multi-homed PCs MUST ask the
user to pick an IP address from a list, or loop through the routing
table themselves (not possible in some languages ie. Java).

  In general, never use your well-known address as your Contact.

  Maybe we should mention this somewhere... ??

-- 
Billy Biggs                     [email-masked]
http://www.billybiggs.com/      [email-masked]