Support for Encoded Multipart Message Bodies

SIP messages and responses may arrive at the Oracle Communications Session Border Controller with encoded multipart message bodies, such that the content of the body is unreadable. This information may be encoded for the purpose of compressing the data. Normally, the Oracle Communications Session Border Controller would consider the body invalid and reject the entire message, replying to the sender with a 400 Invalid Body error response. The user, however, can configure the sip-config option, proxy-content-type-encodings, allowing the Oracle Communications Session Border Controller to accept, process and forward messages containing these encoded parts. This configuration causes the Oracle Communications Session Border Controller to ignore the encoding, identify the end of the message via content length, and pass the message towards its intended recipient with the multipart body fully encoded.

The condition that triggers this functionality is the Oracle Communications Session Border Controller recognizing the presence of a multipart message body and the definition of the encoding type within the message.

NOTIFY sip:user@example.com SIP/2.0 
Via: SIP/2.0/TCP 
...
Content-Type: multipart/mixed;boundary="imdn-boundary"
Content-Encoding: gzip

... Encoded multipart content ...

When configured, the proxy-content-type-encodings is simply a list of strings. The Oracle Communications Session Border Controller looks to match the string defining the content encoding with a string in the list to proceed with the functionality.

The Oracle Communications Session Border Controller only performs this procedure on messages encoded with types for which it is configured and that are properly formed. Examples of when the Oracle Communications Session Border Controller does not perform this procedure include:

  • The Oracle Communications Session Border Controller receives a message with an encoded multipart message block, but proxy-content-type-encodings list is empty. In this case, the Oracle Communications Session Border Controller responds with a 415 Unsupported Media Type.
  • The message arrives with a multipart message body with encoding for which the proxy-content-type-encodings is configured, but there is no terminating boundary. In this case, the Oracle Communications Session Border Controller replies with a 400 Invalid Body error.
  • The Oracle Communications Session Border Controller receives a response with an encoded multipart message block, but proxy-content-type-encodings list is empty. In this case, the Oracle Communications Session Border Controller simple drops the response.

Multipart Message Encoding Support Configuration

The procedure below provides the steps needed to configure the Oracle Communications Session Border Controller for multipart message encoding support.

To have your Oracle Communications Session Border Controller proxy messages despite the presence of the specified multipart message encoding:
  1. In Superuser mode, use the following command sequence to access the sip-config element.
    ORACLE# configure terminal
    ORACLE(configure)# session-router
    ORACLE(session-router)# sip-config
    ORACLE(sip-config)#

    From this point, you can configure encoding support.

  2. Configure the desired encoding types using the option followed by comma-separated coding types.

    The example below configures support for gzip and compressed encoding.

    ORACLE(sip-config)# options +proxy-content-type-encodings=gzip,compress
  3. Type done and exit configuration mode. Save and activate your configuration.