\section{SIP Message Body}
\label{sec:message-body}

\subsection{Body Inclusion}

Requests {\MAY} contain message bodies unless otherwise noted.  In this
specification, the {\CANCEL} request {\MUSTNOT} contain a message body. 

The use of message bodies for {\REGISTER} requests is for further study.

For response messages, the request method and the response status code
determine the type and interpretation of any message body.  All
responses {\MAY} include a body.  Message bodies for 1xx responses
contain advisory information about the progress of the request.
1xx responses to {\INVITE} requests {\MAY} contain session descriptions.
Their interpretation depends on the response status code, but generally
informs the caller what kind of session the callee is likely to
establish, subject to later modification in the 2xx response.
Request methods not defined in this specification {\MAY} also contain
session descriptions.
2xx responses to {\INVITE} requests contain session descriptions.  In
3xx responses, the message body {\MAY} contain the description of
alternative destinations or services, as described in
Section~\ref{sec:3xx}.  For responses with status 400 or greater, the
message body {\MAY} contain additional, human-readable information about
the reasons for failure.  It is {\RECOMMENDED} that information in 1xx
and 300 and greater responses be of type {\tt text/plain} or {\tt
text/html}.

\subsection{Message Body Type}

The Internet media type of the message body {\MUST} be given by the
\header{Content-Type} header field.  If the body has undergone any
encoding (such as compression) then this {\MUST} be indicated by the
\header{Content-Encoding} header field, otherwise
\header{Content-Encoding} {\MUST} be omitted.  If applicable, the
character set of the message body is indicated as part of the
\header{Content-Type} header-field value.

The ``multipart'' MIME type \cite{rfc2046} {\MAY} be used within the
body of the message.  Clients that send requests containing multipart
message bodies {\MUST} be able to send a session description as a
non-multipart message body if the server requests this through an
\header{Accept} header field.

\subsection{Message Body Length}

The body length in bytes {\SHOULD} be given by the
\header{Content-Length} header field.  Section~\ref{sec:Content-Length}
describes the behavior in detail.

The ``chunked'' transfer encoding of HTTP/1.1 {\MUSTNOT} be used for
SIP.  (Note:  The chunked encoding modifies the body of a message in
order to transfer it as a series of chunks, each with its own size
indicator.)
