\section*{Changes}

Since version -01, the following things have changed:
\begin{itemize}
% hgs 7/20/97
\item Added personal note to ``Searching'' section indicating that 6xx
codes may not be necessary. Added figures.

\item Initial author's note removed; dated.

\item Introduction rewritten to give quick, concise overview as to what
SIP does.

\item Conference control (tight vs.  loose) seems less and less
appropriate.  All share some state such as notions of membership; some
(ITU versions) tend to keep it in a central server, others distribute
it. Some state is synchronized at larger timescales than other. (After
all, even a server won't know if a participant disconnects from the
network until TCP keep-alive, if any, kicks in.)

\item Added list of related protocols to emphasize that this is part of
a whole architecture.

\item Terminology: user always reminds me of controlled substances; thus,
this term is avoided where better terminology exists. Since this
protocol sits at the boundary between traditional Internet and telephony
services, some of the terminology familiar in that realm is introduced.

\item Terminology:  user location server replaced by redirect server,
since a proxy server may also invoke user location.  Also, the actual
user location server (e.g., an LDAP, ULS or similar directory) may be
invoked using protocols other than SIP.

\item Rearranged ordering of address resolution to correspond to host
requirements for MX and suggestions in DNS SRV RFC.  Adding note about
caching and socket implementation.  Added note about using SMTP EXPN to
get an alternate address.

\item Defined SIP transaction, provisional and final responses.

\item Assigned values to timeout parameters; otherwise, there will be
unnecessary retransmissions between different implementations.

\item Retransmission was greatly simplified; there does not seem to be a
need for all the rules governing transitions between TCP and UDP
domains.  A proxy should look just like a server to one side and like a
client to the other.  Proxies need to maintain transaction state in any
event since they need to remember where they forwarded the last SIP
request to (\header{Confirm} wouldn't work otherwise, for example.). 
Invoking a location service may yield inconsistent results, introduces
additional failure modes (what if the location server is temporarily
unavailable?), increases delay and processing overhead.  UDP--UDP
proxies can still be built without state; they just forward packets and
responses.  Proxies with TCP on one and UDP on the other side will have
to act like a normal UDP server and issue 100 responses.

\item Removed redundancies and contradictions from request and response
definitions (space vs. SP, duplicate CRLF definition, recursive
request-header, \ldots).

\item Added the experimental methods \header{CONNECTED}, {\REGISTER},
\header{UNREGISTER} and {\BYE}.

\item Re-engineered the invitation reliability mechanism to use a
separate confirmation message.

\item Tentative increase of MTU to 1500 bytes, as per discussion in
Stevens.

\item Added \header{Reach}, \header{Organization}, \header{Subject},
\header{Priority}, \header{Authorization}, \header{WWW-Authentication}
headers for improved call handling.  WWW ``basic'' authentication isn't
great, but it is widely deployed and probably sufficient for giving out
``private'' telephone numbers, particularly those where the callee
incurs a charge.  (I want to be able to give somebody a password to call
my 800 number via an Internet gateway; authenticating who that person is
requires that I modify a script on my server to add another
distinguished name to the list of allowable callees.)

\item Renamed \header{Reason} to \header{Warning} (to align with HTTP)
header since the response line already offers a failure reason. 
Unfortunately, listing several failures is not all that helpful since
the calling party cannot determine which of the media within the
description causes the difficulty or whether it was the set of media as
a whole, but it may give the user agent some indication as to what's
going on. 

\item SEP and CRLF in headers removed, since this is always implied
between items.  Missing ":" added.  CRLF was already in the message
definition.  Also, unlike RFC 822 and HTTP, the definition did not allow
spaces between the field name and the colon.

\item Added (reluctantly) password to URL. It's no worse than ftp and
needed to easily call from a secure web page, without having to type in
a password manually.

\item Added port to SIP URL to specify non-standard port.

% end hgs 7/21/97

\item CAPABILITIES to OPTIONS for closer alignment with HTTP and RTSP;

\item Path to Via for closer alignment with HTTP and RTSP;

\item Content type meta changed to application, since ``meta'' doesn't
exist as a top-level Internet media type.

\item Formatting closer to HTTP and RTSP.

\item Explain relationship to H.323.

\end{itemize}
