\section{Overview of SIP Functionality}
\label{sec:functionality}

SIP is an application-layer control
protocol that can establish, modify, and terminate multimedia sessions
(conferences) such as Internet telephony calls. SIP can also invite
participants to already existing sessions, such as multicast
conferences. Media can be added to (and removed from) an existing
session. SIP transparently supports name mapping and redirection
services, which supports \emph{personal mobility}
\citenonnorm{Pand9506:Emerging} - users can maintain a single
externally visible identifier regardless of their network
location.

SIP supports five facets of establishing and terminating multimedia
communications:

\begin{description}
\item[User location:] determination of the end system to be used for
communication;

\item[User availability:] determination of the willingness of the called
party to engage in communications;

\item[User capabilities:] determination of the media and media
parameters to be used;

\item[Session setup:] ``ringing'', establishment of session parameters
at both called and calling party;

\item[Session management:] including transfer and termination of
sessions, modifying session parameters, and invoking services.

\end{description}

SIP is not a vertically integrated communications system. SIP is
rather a component that can be used with other IETF protocols to
build a complete multimedia architecture. Typically, these
architectures will include protocols such as the real-time
transport protocol (RTP) (RFC~1889~\citenonnorm{rfc1889}) for transporting
real-time data and providing QoS feedback, the real-time streaming
protocol (RTSP) (RFC~2326~\citenonnorm{rfc2326}) for controlling delivery of
streaming media, the Media Gateway Control Protocol (MEGACO) 
(RFC~3015~\citenonnorm{rfc3015}) for controlling gateways to the 
Public Switched Telephone Network (PSTN), and the session description 
protocol (SDP)
(RFC~2327~\citenorm{rfc2327}) for describing multimedia sessions.  Therefore, SIP
should be used in conjunction with other protocols in order to provide
complete services to the users. However, the basic functionality and
operation of SIP does not depend on any of these protocols.

SIP does not provide services. SIP rather provides primitives that can 
be used to implement different services. For example, SIP can locate a 
user and deliver an opaque object to his current location. If this 
primitive is used to deliver a session description written in SDP, for 
instance, the endpoints can agree on the parameters of a session. 
If the same primitive is used to deliver a photo of the caller as well 
as the session description, a "caller ID" service can be easily implemented. 
As this example shows, a single primitive is typically used to provide 
several different services. 

SIP does not offer conference control services such as floor control or 
voting and does not prescribe how a conference is to be managed. SIP can 
be used to initiate a session that uses some other conference control 
protocol. Since SIP messages and the sessions they establish can pass
through entirely different networks, SIP cannot, and does not, provide
any kind of network resource reservation capabilities.

The nature of the services provided make security particularly
important. To that end, SIP provides a suite of security services,
which include denial-of-service prevention, authentication (both user
to user and proxy to user), integrity protection, and encryption and
privacy services. 

SIP works with both IPv4 and IPv6.
