BEA Systems, Inc.

BEA WebLogic SIP Server 2.2 API Reference


com.bea.wcp.sip.engine.server
Class ContentIndirectionUtil

java.lang.Object
  extended bycom.bea.wcp.sip.engine.server.ContentIndirectionUtil

public final class ContentIndirectionUtil
extends java.lang.Object

A SIP message consists of a start line, various headers, and then the body of the message. Content Indirection (CI) allows the body to be located outside the message itself, allowing later retrieval. This second location is provided in a header, and consists of an URL, typically using HTTP. Additional headers provide secondary information about the body, such as its size, and the lifetime of the URL.

Content Indirection is described in a draft document.

Here is an example message from the draft. Note the URL parameter appearing in the Content-Type header.

            INVITE sip:boromir@example.com SIP/2.0
            From: <sip:gandalf@example.net>;tag=347242
            To: <sip:boromir@example.com>
            Call-ID: 3573853342923422@example.net
            CSeq: 2131 INVITE
            Accept: message/external-body application/sdp
            Content-Type: message/external-body;
                 ACCESS-TYPE=URL;
                 URL="http://www.example.net/party/06/2002/announcement";
                 EXPIRATION="Sat, 20 Jun 2002 12:00:00 GMT";
                 size=231
            Content-Length: ...

            Content-Type: application/sdp
            Content-Disposition: session
            Content-ID: <4e5562cd1214427d@example.net>
 

This static class presents two utility methods which make it easier to use Content Indirection.

Use the bodyIsIndirect() method to check whether a SIP message is using content indirection. If it is, then call parseIndirectContentData() to get an ICParsedData object. On the ICParsedData object, call getContentTypeAttributes() to get the available attribute names, such as "ACCESS-TYPE" and "URL" in the example above. The value corresponding to each attibute can be retrieved with getContentTypeAttributeValue().

Note that the message using indirect content has what amount to headers in the body of the message. There are three of them in the above example. Get the available headers by calling getBodyHeaders(). Retrieve the value of each header by calling getBodyHeaderValue().

Copyright © 2006 BEA Systems, Inc. All Rights Reserved.

Method Summary
static boolean bodyIsIndirect(SipServletMessage msg)
          Is msg using Indirect Content?
static ICParsedData parseIndirectContentData(SipServletMessage msg)
          Return an object that can provide the attributes and body headers from a message that is using content indirection.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

bodyIsIndirect

public static boolean bodyIsIndirect(SipServletMessage msg)
Is msg using Indirect Content?


parseIndirectContentData

public static ICParsedData parseIndirectContentData(SipServletMessage msg)
                                             throws ContentIndirectionException
Return an object that can provide the attributes and body headers from a message that is using content indirection. See above for a description of correct use.

Returns:
is not null
Throws:
ContentIndirectionException

Documentation is available at
http://download.oracle.com/docs/cd/E13209_01/wlcp/wlss22/
Copyright 2006 BEA Systems Inc.