\section{Introduction}
\label{sec:intro}

There are many applications of the Internet that require the creation
and management of a session, where a session is considered an exchange
of data between an association of participants.  The implementation of
these applications is complicated by the practices of participants: users
may move between endpoints, they may be addressable by multiple names,
and they may communicate in several different media - sometimes
simultaneously.  Numerous protocols have been authored that carry
various forms of real-time multimedia session data such as voice, video,
or text messages.  SIP works in concert with these protocols by enabling
Internet endpoints (called \emph{user agents}) to discover one another and
to agree on a characterization of a session they would like to share. 
For locating prospective session participants, and for other functions,
SIP enables creation of an infrastructure of network hosts (called
\emph{proxy servers}) to which user agents can send registrations,
invitations to sessions, and other requests.  SIP is an agile,
general-purpose tool for creating, modifying, and terminating sessions
that works independently of underlying transport protocols and without
dependency on the type of session that is being established.
