This chapter describes how to use the Oracle Communications Converged Application Server SipServletMessage
interface and configuration parameters to control Session Initiation Protocol (SIP) message header formats.
Applications that operate on wireless networks may want to limit the size of SIP headers to reduce the size of messages and conserve bandwidth. Java Specification Request (JSR) 359 provides the SipServletMessage.setHeaderForm()
method, which enables application developers to set a long or compact format for the value of a given header.
One feature of the SipServletMessage
application program interface (API) provided in JSR 359 is the ability to set long or compact header formats for the entire SIP message using the setHeaderForm
method.
In addition to SipServletMessage
, Converged Application Server provides a container-wide configuration parameter that can control SIP header formats for all system-generated headers. This system-wide parameter can be used along with SipServletMessage.setHeaderForm
and SipServletMessage.setHeader
to further customize header formats.
Table 11-1 defines the compact header abbreviations described in the SIP specification (http://www.ietf.org/rfc/rfc3261.txt
). Specifications that introduce additional headers may also include compact header abbreviations.
Header formats can be specified at the header, message, and SIP Servlet container levels. Table 11-2 shows the header format that results when adding a new header with SipServletMessage.setHeader
, given different container configurations and message-level settings with WlssSipServletResponse.setUseHeaderForm.
Table 11-2 API Behavior when Adding Headers
SIP Servlet Container Header Configuration (use-compact-form Setting) | WlssSipServletMessage.setUseHeaderForm Setting | SipServletMessage.setHeader Value | Resulting Header |
---|---|---|---|
COMPACT |
DEFAULT |
”Content-Type” |
”Content-Type” |
COMPACT |
DEFAULT |
”c” |
”c” |
COMPACT |
COMPACT |
”Content-Type” |
”c” |
COMPACT |
COMPACT |
”c” |
”c” |
COMPACT |
LONG |
”Content-Type” |
”Content-Type” |
COMPACT |
LONG |
”c” |
”Content-Type” |
LONG |
DEFAULT |
”Content-Type” |
”Content-Type” |
LONG |
DEFAULT |
”c” |
”c” |
LONG |
COMPACT |
”Content-Type” |
”c” |
LONG |
COMPACT |
”c” |
”c” |
LONG |
LONG |
”Content-Type” |
”Content-Type” |
LONG |
LONG |
”c” |
”Content-Type” |
FORCE_COMPACT |
DEFAULT |
”Content-Type” |
”c” |
FORCE_COMPACT |
DEFAULT |
”c” |
”c” |
FORCE_COMPACT |
COMPACT |
”Content-Type” |
”c” |
FORCE_COMPACT |
COMPACT |
”c” |
”c” |
FORCE_COMPACT |
LONG |
”Content-Type” |
”Content-Type” |
FORCE_COMPACT |
LONG |
”c” |
”Content-Type” |
FORCE_LONG |
DEFAULT |
”Content-Type” |
”Content-Type” |
FORCE_LONG |
DEFAULT |
”c” |
”Content-Type” |
FORCE_LONG |
COMPACT |
”Content-Type” |
”c” |
FORCE_LONG |
COMPACT |
”c” |
”c” |
FORCE_LONG |
LONG |
”Content-Type” |
”Content-Type” |
FORCE_LONG |
LONG |
”c” |
”Content-Type” |
Table 11-3 shows the system header format that results when setting the header format with WlssSipServletResponse.setUseHeaderForm
given different container configuration values.
Table 11-3 API Behavior for System Headers
SIP Servlet Container Header Configuration (use-compact-form Setting) | WlssSipServletMessage.setUseHeaderForm Setting | Resulting Contact Header |
---|---|---|
COMPACT |
DEFAULT |
”m” |
COMPACT |
COMPACT |
”m” |
COMPACT |
LONG |
”Contact” |
LONG |
DEFAULT |
”Contact” |
LONG |
COMPACT |
”m” |
LONG |
LONG |
”Contact” |
FORCE_COMPACT |
DEFAULT |
”m” |
FORCE_COMPACT |
COMPACT |
”m” |
FORCE_COMPACT |
LONG |
”Contact” |
FORCE_LONG |
DEFAULT |
”Contact” |
FORCE_LONG |
COMPACT |
”m” |
FORCE_LONG |
LONG |
”Contact” |