haifa labs swg (@rehovot) © 2006 ibm corporation sipping with websphere application server v6.1 uri...

47
Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Upload: mary-weaver

Post on 26-Mar-2015

221 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (@Rehovot)

© 2006 IBM Corporation

Sipping with WebSphere Application Server v6.1

Uri SegevManager, SIP Infrastructure Development Team

Page 2: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation2

Agenda

JSR 116 Overview – Basic concepts and API

SIP Container Overview and Architecture

Introduction to the IBM IMS Presence Server

Page 3: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation3

Agenda

JSR 116 Overview – Basic concepts and API

SIP Container Overview and Architecture

Introduction to the IBM IMS Presence Server

Page 4: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation4

Goals

Create a platform that enables creation of SIP services the same way that it is possible for HTTP

It is not possible to use the HTTP servlets paradigm since SIP control is very different from HTTP

JSR 116 (SIP Servlet API) goal is to provide a similar mechanism for SIP

Page 5: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation5

What Is A Servlet?

Sun’s Definition: “A Java program that runs as part of a network service, typically an HTTP server and responds to requests from clients“

Page 6: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation6

Why extending the Servlets model for SIP?

Servlets API is an open standard supported by multiple vendors

Containers manage Servlet’s life cycle, session’s state, fault-tolerance, scalability, security

Application’s developers can focus solely on their application

HTTP Servlets are widely used in Web development. Large community of developers already familiar with the concepts of the Servlets API

New Services developed as Servlets can interact with existing components (HTTP Servlets, EJBs) creating converged applications

Page 7: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation7

Other Goals

Application composition – enabling a SIP servlets to be written in a way that one servlet can be called after the other servlet completes

Converged applications – enabling converging both SIP and HTTP applications

Both application composition and converged applications are not very well defined in JSR 116

The SIP container implements both but other implementations of the container may differ…

Page 8: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation8

Similarities between HTTP and SIP Servlets

The container hides the low level protocol, exposes high level API

Servlets invocation is triggered by events (request/response)

The container selects the appropriate Servlet to invoke

Developers override methods in the Servlet’s base class and provide specific implementation

Servlets are grouped into applications (war/sar) and deployed with a deployment descriptor (web.xml/sip.xml)

The container manages Servlet’s life-cycle, session state

Page 9: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation9

HTTP Servlets

Used for developing Web Application

A set of Servlets that process HTTP Requests. Responses are sent back to the client as HTTP responses containing web pages

Developers overrides the doGet and doPost methods of the HTTP Servlet class and provide specific functionality

HTTP Servlets and their deployment descriptor (web.xml) are packaged into a WAR file by the developer/builder and deployed to the server by administrators

Container manages Servlet’s life cycle, replication of Session state, fail-over, authentication, security

Page 10: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation10

HTTP Servlet API

destroy()

service()

init()

servlet

HTTP Response

Client Servlet Methods

HTTP Response

doPut()

doPost()

doGet()

Error Response

Rules

HTTP Response

Error Response

HTTP Request

Web Container

Page 11: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation11

SIP Servlets

Used for developing systems that process SIP Signaling, e.g., telecom applications (SIP), presence servers (SIMPLE)

SIP Servlets process both SIP Requests and SIP Responses

Developers extend the SIP Servlet class and override methods that they wish to process:

• doRegister(…)

• doInvite(…)

• doMessage(…)

Page 12: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation12

SIP Servlets

Creating and sending a message is fast and easy (two lines of code)

SIP Servlets hide the complexity of the SIP protocol. No need to set complex headers: tag, call Id, cseq, record route, via

Containers handle retransmission of messages

Containers ensures that transactions are completed according to the spec

SIP Servlets do not store any state. Containers manage SIP Session and SIP Application Sessions

Page 13: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation13

SIP Servlet API

destroy()

service()

init()

doInvite() doAck()

doOptions() doCancel()

doRegister() doPrack() doInfo()

doNotify() doMessage() doSubscribe()

doProvisionalResponse() doSuccessResponse()

doErrorResponse() doRedirectResponse()

doResponse()

doRequest()

servlet

Create Request()

Create Response()

SIP Message

Client SIP Container SIP Servlet Methods

RulesSIP Message

Page 14: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation14

Differences Between HTTP And SIP Servlets

HTTP signaling less complex

– Only handles requests and generates responses

SIP signaling is much more complex

– Handle and generate requests and responses, Session management, Proxying

SIP servlets - response can be generated asynchronously

Servlet mapping for SIP servlets is done by a set of rules evaluated at runtime. Client applications are not aware of applications installed on the server.

HTTP SIP

HTTP servlets - the doService() method is expected to send a response within the same method call

HTTP request contains the name of the Servlet to invoke in the request URI

Page 15: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation15

Mapping SIP Requests To SIP Servlets

Servlet engines maintain a set of mappings which specify the conditions under which particular servlets should be invoked

A rule consists of a set of conditions, each of which test some property of the incoming request.

A simple rule: <servlet-mapping> <servlet-name>Registrar</servlet-name> <pattern> <equal> <var>request.method</var> <value>REGISTER</value> </equal> </pattern> </servlet-mapping>

Page 16: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation16

Mapping SIP Requests To SIP Servlets

A more complex rule: <pattern> <and> <equal> <var>request.method</var> <value>INVITE</value> </equal> <not> <contains ignore-case="true"> <var>request.from.display-name</var>

<value>Alice</value> </contains>

</not> <subdomain-of> <var>request.from.uri.host</var>

<value>ibm.com</value> </subdomain-of> </and></pattern>

Page 17: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation17

SIP Servlet Life Cycle

The container initiates the server by invoking init() with the appropriate parameters

After the servlet is initialized the container can call the service method by invoking the service() method with requests and responses

When the container decides to deactivate the servlet it calls the destroy() method

Page 18: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation18

SIP Servlet Example

public class RegisterSiplet extends SipServlet

{

protected void doRegister(SipServletRequest req)

{

//Let everyone Register, create an OK Response

SipServletResponse res = req.createResponse(SipServletResponse.SC_OK);

// Send response to the client.

res.send();

}

{

Page 19: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation19

SIP Servlet Capabilities

A SIP Servlet has read & write access to fields in the request/response

A SIP Servlet can perform the following SIP operations:– initiate new requests - services are not limited to responding only, they

can initiate calls to clients or other servers.

– respond to incoming requests

– proxy requests forward: the container supports any combination of the following modes of operation:• parallel/sequential• record route - stay on signaling path• supervised by the application

Running within a J2EE container provides the Servlet access to : EJB, JDBC, JNDI, JMS, javaMail and more

Page 20: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation20

Acting as a UAC

Creating initial requests using SipFactory

– SipServletRequest createRequest(); Creating subsequent requests using SipSession

– SipServletRequest createRequest(String method); Push Route header using SipServletRequest

– Void pushRoute(SipURI uri); Send the request

– void send(); The application is invoked for all incoming responses

Sending CANCEL using the SipServletRequest

– SipServletRequest createCancel();

Page 21: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation21

Acting as a UAS

Creating responses using SipServletRequest

– SipServletResponse createResponse();

Receiving ACK

– Applications are notified of incoming ACKs for 2xx responses to INVITE.

Receiving CANCEL

– Applications are notified of incoming CANCEL for a request (which has not yet been responded)

Page 22: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation22

Proxying

Proxying is relatively easy

Public void doInvite(SipServletRequst req) {

Proxy proxy = req.getProxy();

proxy.setXXX(true);

proxy.proxyTo(URI);

}

The container supports any combination of the following modes of operation:

– parallel/sequential

– record route - stay on signaling path

– Supervised by the application

Page 23: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation23

Converged Application – SIP & HTTP

Servlet container are expected to support both the SIP and HTTP Servlet APIs

Advanced services will combine multiple modes of communication, for example, telephony, Web, email, presence and instant messaging

Page 24: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation24

Application Composition Example

LS – Location Server

OCS – On Call Screening

Page 25: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation25

SipSession

SipSession represents a point to point SIP relationship– i.e. a dialog or a pseudo dialog

Get session informationString getId();String getCallId();Address getLocalParty();

Create subsequent requestsSipServletRequest createRequest(String method);

Store and retrieve session datavoid setAttribute(String name, Object attribute);Object getAttribute(String name);Enumeration getAttributeNames();

Page 26: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation26

SipApplicationSession

Unlike the HTTP model, SIP applications may consist of more than one session (conference application, converged application)

SipApplicationSession contains one or more sessions (Not necessarily SIP sessions)

Get sessions

Iterator getSessions();

Iterator getSessions(String protocol); Life cycle

setExpires, invalidate Attributes

Get, set, remove

Page 27: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation27

Timer Service

A container provided service that allows application to schedule timers and receive notifications when timers expires

ServletContext sc = getServletContext();

String path = ‘javax.servlet.sip.TimerService’;

TimerService ts = sc.getProperty(path);

ts.createTimer(...(

Page 28: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation28

Agenda

JSR 116 Overview – Basic concepts and API

SIP Container Overview and Architecture

Introduction to the IBM IMS Presence Server

Page 29: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation29

WAS Unified Application Server

TCP

WebSphere Application Server

SIP Container Pre-processorSIP

HTTP Container Pre-processor

SSL

HTTP

Web Container

UDP

Presence

Registrar

Session Mgr.

Other

Page 30: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation30

Scalability & Failover

The containers replicate session information between them

When a container crashes the other containers in the cluster take over and deal with the sessions of the failing container

The proxies route messages according to load between the containers

When a container crashes the proxy knows how to route messages to the appropriate containers that holds the failed sessions

Page 31: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation31

Load Balancing / Fail Over

TCP

SIP (TCP)

UDP

WEB Container

Logic

Servlet

Servlet

Servlet

Servlet

HTTP Transport

SIP Transport

WEB Container

Logic

Servlet

Servlet

Servlet

Servlet

HTTP Transport

SIP Transport

WEB Container

Logic

Servlet

Servlet

Servlet

Servlet

HTTP Transport

SIP Transport

WEB Container

Logic

Servlet

Servlet

Servlet

Servlet

HTTP Transport

SIP Transport

IHS

HTTP (TCP)

SIP (UDP)

Proxy

Plug-in

Page 32: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation32

Agenda

JSR 116 Overview – Basic concepts and API

SIP Container Overview and Architecture

Introduction to the IBM IMS Presence Server

Page 33: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation33

Connectivity Layer Comprised of routers and switches to access a network

Control Layer Comprised of control servers for managing calls and sessions

Applications Layer Comprised of applications to execute services for the userPresence

Server

HSS

IP, GSM or others

I-CSCF

GLS IM

S-CSCF

P-CSCF

Presence for IMS

Page 34: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation34

publish

Presentity

notify

subscribe

fetc

h

publish notify

Fetcher

Subscriber

accepts, stores, and distributes the

presence information

PresenceServer

Presence Model

no

tify

Page 35: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation35

Presence Server Capabilities

Allows people to know the status of others Used in a buddy list application

User sends a PUBLISH to indicate their own status User status is defined in XML

• Base schema is part of the SIMPLE extensions• But as with all XML, it is infinitely extensible

User sends a SUBSCRIBE to express interest in another user The server will respond with a NOTIFY indicating the current status

of the specified user If requested in the SUBSCRIBE, the server will continue to issue

NOTIFYs every time the specified user changes status

Page 36: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation36

Presence Information Flow

External Provider

Data

PresenceServer

Raw Presence Document

Composed Presence Document

Storage

Location Service

Calendar

Publishing presence

information

Page 37: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation37

Presence Information Flow

Privacy

SubscriptionRequest

Subscribing on presence information

PresenceServer

Storage

AllowedForbidden

Sending the stored

presence information to

watchers

Page 38: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation38

Architecture

IBM Websphere Presence Server is based on SIP technology SIP Container - Web container extension for SIP applications Implements RFCs and drafts relevant to presence

IBM Websphere Presence Server is developed on top of WAS Fully integrated with J2EE architecture Includes EJBs, JDBC, JMS, Java servlets (SIP servlets) Can be deployed in a distributed environment

IBM Websphere Presence Server supports Standard presence objects (user, conference) Custom presence objects (taxi, printer, game)

Page 39: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation39

Architecture

IBM Websphere Presence Server is made up of a collection of inter-working services and utilities

Presence Service – handles PUBLISH and SUBSCRIBE requests and sends NOTIFY messages

Miscellaneous services (external providers, resource list, privacy)

IBM Websphere Presence Server is extensible New services and utilities New types of presence information New sources of presence information

Page 40: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation40

Extensions

External providers

RLS providers

XML manipulation utilities

Page 41: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation41

External Provider – Location-based Service

GPSMobile Location Protocol

Wireless Base

Station

RawPresenceDocument

ComposedPresenceDocument

includesgeographic

al location

WebspherePresence

Server

External Provider

Provides a set of APIs for external

providers

John is about to join a meeting. He changes his status to ‘busy’ ‘in a meeting’ and publishes the presence document

Page 42: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation42

Extensions to WPS

External providers

RLS providers

XML manipulation utilities

Page 43: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation43

RLS Providers

Alice

Joe

Bill

Andrew

Tony

Creates a list of buddies [email protected]

Creates a list of buddies [email protected]

LDAP

WMM

XCAP

RLS Provider

Provides a set of APIs for RLS providers

SIP NOTIFY

Websphere Presence

Server

SIP SUBSCRIBE [email protected]

Storage

PUT

GET

Page 44: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation44

Extensions to WPS

External providers

RLS providers

XML manipulation utilities

Page 45: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation45

XML Manipulation Utilities

Presence information is presented in XML format

Presence schema is defined by IETF in RFC 3863 but …it can be extended

IBM Websphere Presence Server provides support for the pidf schema

IBM Websphere Presence Server provides two extension points to handle custom XML

– Aggregator

– Document processor

Page 46: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation46

Default Aggregator

IETF RFC 3903 – Publish define the natural decomposition of a presence

<?xml version="1.0" encoding="UTF-8"?> <root entity="pres:[email protected]" xmlns="test:ns"> <test id="old attr1"> <child>old child 1 </child> <child>old child 2 </child> </test></root> <?xml version="1.0" encoding="UTF-8"?>

<root entity="pres:[email protected]" xmlns="test:ns"> <test id="old attr1"> <child>old child 3 </child> <child>old child 4 </child> </test> </root>

Aggregator

<?xml version="1.0" encoding="UTF-8"?> <root entity="pres:[email protected]" xmlns="test:ns"> <test id="old attr1"> <child>old child 1 </child> <child>old child 2 </child> </test> <test id="old attr1"> <child>old child 3 </child> <child>old child 4 </child> </test> </root>

Page 47: Haifa Labs SWG (@Rehovot) © 2006 IBM Corporation Sipping with WebSphere Application Server v6.1 Uri Segev Manager, SIP Infrastructure Development Team

Haifa Labs SWG (Rehovot team)

© 2006 IBM Corporation47