Rhino SIP Servlet Overview and Concepts

Size: px
Start display at page:

Download "Rhino SIP Servlet Overview and Concepts"

Transcription

1 Rhino SIP Servlet Overview and Concepts TAS-153-Issue Release 1 August 2018

2 Notices Copyright 2017 Metaswitch Networks. All rights reserved. This manual is issued on a controlled basis to a specific person on the understanding that no part of the Metaswitch Networks product code or documentation (including this manual) will be copied or distributed without prior agreement in writing from Metaswitch Networks. Metaswitch Networks reserves the right to, without notice, modify or revise all or part of this document and/or change product features or specifications and shall not be responsible for any loss, cost, or damage, including consequential damage, caused by reliance on these materials. Metaswitch and the Metaswitch logo are trademarks of Metaswitch Networks. Other brands and products referenced herein are the trademarks or registered trademarks of their respective holders. 2

3 Contents 1 Rhino SIP Servlet Overview and Concepts Topics Architecture SIP Servlet resource adaptor Container services Management tools Developing a SIP Servlet Application Package as a "SAR" file Deploy with console or Ant commands SIP Servlet 1.1 Resource Adaptor Type Activities SipApplicationSession SipSession Events Interfaces SipFactory SipSessionsUtil ActivityContextInterface Hybrid Applications Participating in application selection Hybrid application example Application Naming Automatic application naming Manual application naming Application Router Default application router Custom application routers SLEE Resource Adaptor Support How do applications access the RAs? Dependencies RA Type Bindings Package declaration for an application

4 1 Rhino SIP Servlet Overview and Concepts This document introduces features and concepts behind Rhino SIP Servlet, a SIP Servlet 1.1 JSR 289 container that runs on the OpenCloud Rhino SLEE. 1.1 Topics Architecture Developing a SIP Servlet Application SIP Servlet 1.1 Resource Adaptor Type Hybrid Applications Application Naming Application Router SLEE Resource Adaptor Support Example Applications An architectural overview of Rhino SIP Servlet How to develop applications with Rhino SIP Servlet What s in the Rhino SIP Servlet resource adaptor type How to write hybrid applications How Rhino SIP Servlet manages application naming Rhino SIP Servlet s application router support How to use SLEE resource adaptors in SIP Servlet applications SIP Servlet example applications. Other documentation for the Rhino SIP Servlet including the changelog and links to downloads, can be found on the Rhino SIP Servlet product page. 4

5 2 Architecture Below is a high-level diagram, followed by descriptions, of the main components of Rhino SIP Servlet. Users can provide the items colored yellow, in the SIP Servlet resource adaptor on page 5, container services on page 6 and management tools on page SIP Servlet resource adaptor The SIP Servlet RA is a SLEE resource adaptor providing the core of the Rhino SIP Servlet platform, including: a SIP transport layer for communicating with other SIP nodes on the network mapping of SIP network messages to and from the SIP Servlet API s SipServletRequest and SipServletResponse application selection using the Application Router on page 18 component Proxy, SipSession, and SipApplicationSession implementation management interfaces (MBeans) for configuration and deployment. The RA implements a SLEE resource adaptor type (RA type) that wraps the SIP Servlet 1.1 API. The RA type defines the events and activities that may be used by SLEE services. The SIP Servlet Container Service uses the SIP Servlet RA type when it wraps a servlet application (as described below), but may 5

6 also be used directly by native SLEE applications. See SIP Servlet 1.1 Resource Adaptor Type on page 8 and Hybrid Applications on page Container services The SIP Servlet Container Service is a SLEE service that wraps a SIP Servlet application, for deployment into the SLEE platform. When a SIP Servlet application is deployed, Rhino SIP Servlet generates a new container service that contains the SIP Servlet application, and deploys it in the SLEE. The diagram above shows two services, each of which represents a separate SIP Servlet application. The container service is responsible for providing the runtime environment required by a servlet application. It manages the ServletContext and servlet lifecycle, so is responsible for creating and destroying the servlet application s servlet and listener instances. The service will invoke the appropriate servlet methods when certain events are received from the RA, such as SIP requests or responses, ServletTimer events, SipApplicationSession, or SipSession events. The container services and SIP Servlet RA cooperate to provide a complete SIP Servlet 1.1 environment for servlet applications. 2.3 Management tools You manage Rhino SIP Servlet using JMX MBeans. The distribution includes console commands and Ant tasks for installing and uninstalling servlet applications, and configuring the platform. See the Installation and Administration Guide for details. Limitation: converged container support SIP Servlet 1.1 allows "converged containers" servlet containers that support SIP and HTTP servlets within the same application. Rhino SIP Servlet is not a converged container, it currently only supports SIP servlets. HTTP servlet and converged container support may be added in a future release. 6

7 3 Developing a SIP Servlet Application Developers who are already familiar with writing SIP Servlet applications need not change anything just to use Rhino SIP Servlet. They can continue to develop and test servlet applications using their existing tools, IDEs, and so on. Developers new to SIP Servlet should review the SIP Servlet 1.1 specification ( JSR 289 ) to get started and experiment with Rhino SIP Servlet s example applications. 3.1 Package as a "SAR" file SIP Servlet applications are packaged as a SAR (SIP Servlet ARchive) file, which like other SLEE or Java EE archive file types, is a JAR file containing the application s classes, resources and a deployment descriptor, sip.xml. The SAR file layout looks like this: WEB-INF/sip.xml # Deployment descriptor WEB-INF/classes/... # Application classes (servlets, listeners etc) WEB-INF/lib/... # Third-party libraries (jar files) 3.2 Deploy with console or Ant commands Once an application has been packaged as a SAR file, it can be installed into Rhino SIP Servlet using the install-ss (console) or <sipservlet:install> (Ant) commands. See Application Deployment in the Installation and Administration Guide. Unlike many other servlet containers, a newly-deployed Rhino SIP Servlet application is not automatically activated. Instead, it is deployed as a SLEE service, which requires an extra activation step before the SLEE will begin firing events to the service. You can activate the service using standard rhino-console commands, or the <sipservlet:activate> Ant task. 7

8 4 SIP Servlet 1.1 Resource Adaptor Type A SLEE resource adaptor type (RA Type) is a specification of the SLEE activities on page 8, events on page 9 and interfaces on page 12 that a resource adaptor (RA) implements. Rhino SIP Servlet includes an RA type for the SIP Servlet 1.1 API, which adapts the SIP Servlet API for use by SLEE applications. Developers of pure SIP Servlet applications may skip this section, as the Container services on page 6 hides these details from SIP Servlet applications. This section is useful to those developing Hybrid Applications on page 15 (SLEE applications directly on top of the SIP Servlet RA type). 4.1 Activities The SIP Servlet RA type defines SIP Servlet SipApplicationSession on page page and SipSession on objects as SLEE activities. This means that SBBs may attach to them, use CMP attributes on their activity context interfaces, set timers, or use the Activity Context Naming Facility SipApplicationSession The SIP Servlet creates SipApplicationSession activities automatically when it receives a new initial request for an application. An application can also create a new SipApplicationSession using SipFactory.createApplicationSession(). The SipApplicationSession activity ends when the session becomes invalidated in SIP Servlet 1.1, by: calling SipApplicationSession.invalidate() session expiration invalidate-when-ready is enabled and all SipSessions are ready to invalidate SipSession The SIP Servlet RA type creates SipSession activities when it receives new requests, or when an application sends an outgoing request using the SipFactory.createRequest() methods. SipSession activities end when the session becomes invalidated in SIP Servlet 1.1, by: calling SipSession.invalidate() session expiration invalidate-when-ready is enabled and the SipSession is ready to invalidate (for example, a dialog-ending request has been sent or received). 8

9 4.2 Events The SIP Servlet RA Type defines events that correspond to SIP Servlet s request-and-response callbacks, and also several listener events summarized below. EventTypeID (Name, Vendor, Version) SIP Servlet equivalent.invite, OpenCloud, 1.1 SipServlet.doInvite().ACK, OpenCloud, 1.1 SipServlet.doAck().CANCEL, OpenCloud, 1.1 SipServlet.doCancel().BYE, OpenCloud, 1.1 SipServlet.doBye().OPTIONS, OpenCloud, 1.1 SipServlet.doOptions().REGISTER, OpenCloud, 1.1 SipServlet.doRegister().INFO, OpenCloud, 1.1 SipServlet.doInfo().PRACK, OpenCloud, 1.1 SipServlet.doPrack().UPDATE, OpenCloud, 1.1 SipServlet.doUpdate().MESSAGE, OpenCloud, 1.1 SipServlet.doMessage().SUBSCRIBE, OpenCloud, 1.1 SipServlet.doSubscribe().NOTIFY, OpenCloud, 1.1 SipServlet.doNotify() Description Class An INVITE request was received. An ACK request was received. A CANCEL request was received. A BYE request was received. An OPTIONS request was received. A REGISTER request was received. An INFO request was received. A PRACK request was received. An UPDATE request was received. A MESSAGE request was received. A SUBSCRIBE request was received. A NOTIFY request was received. 9

10 .REFER, OpenCloud, 1.1 SipServlet.doRefer().PUBLISH, OpenCloud, 1.1 SipServlet.doPublish().UNKNOWN, OpenCloud, 1.1 SipServlet.doRequest() A REFER request was received. A PUBLISH request was received. A request with an unrecognized method was received. Use SipServletRequest.ge tmethod() to obtain the method. javax.servlet.sip.sipservletresponse.provisional, A provisional ( ) response was received. OpenCloud, 1.1 SipServlet.doProvisi javax.servlet.sip.sipservletresponse onalresponse() javax.servlet.sip.sipservletresponse.success, OpenCloud, 1.1 SipServlet.doSuccess Response() javax.servlet.sip.sipservletresponse.redirect, OpenCloud, 1.1 javax.sipservlet.dor edirectresponse() javax.servlet.sip.sipservletresponse.error, OpenCloud, 1.1 SipServlet.doErrorRe sponse() javax.servlet.sip.siperrorevent.noackreceived, OpenCloud, 1.1 SipErrorListener.noA ckreceived() javax.servlet.sip.siperrorevent.noprackreceived, OpenCloud, 1.1 SipErrorListener.noP rackreceived() A success ( ) response was received. javax.servlet.sip.sipservletresponse A redirect ( ) response was received. javax.servlet.sip.sipservletresponse An error ( ) response was received. javax.servlet.sip.sipservletresponse An OK response to an earlier INVITE was sent, but the ACK was never received (after 32s). javax.servlet.sip.siperrorevent A reliable provisional response was sent, but the PRACK was never received (after 32s). javax.servlet.sip.siperrorevent javax.servlet.sip.sipapplicationsessionevent.created, A new SipApplicationSession was created. OpenCloud, 1.1 SipApplicationSessio javax.servlet.sip.sipapplicati nlistener.sessioncreated() onsessionevent javax.servlet.sip.sipapplicationsessionevent.created, A new SipApplicationSession was created. OpenCloud, 1.1 SipApplicationSessio javax.servlet.sip. SipApplicat nlistener.sessioncreated() ionsessionevent 10

11 javax.servlet.sip.sipapplicationsessionevent.expired, A SipApplicationSession has expired. OpenCloud, 1.1 SipApplicationSessio javax.servlet.sip.sipapplicati nlistener.sessionexpired() onsessionevent javax.servlet.sip.sipapplicationsessionevent.expired, A SipApplicationSession has expired. OpenCloud, 1.1 SipApplicationSessio javax.servlet.sip. SipApplicat nlistener.sessionexpired() ionsessionevent javax.servlet.sip.sipapplicationsessionevent.readytoinvalidate, A SipApplicationSession has become ready to OpenCloud, 1.1 SipApplicationSessio invalidate. nlistener.sessionreadytoinvalidate() javax.servlet.sip.sipapplicati onsessionevent javax.servlet.sip.sipapplicationsessionevent. ReadyToInvalidate, OpenCloud, 1.1 SipApplicationSessionListener. sessionreadytoinvalidate() javax.servlet.sip.sipsessionevent.created, OpenCloud, 1.1 SipSessionListener.s essioncreated() A SipApplicationSession has become ready to invalidate. javax.servlet.sip. SipApplicat ionsessionevent A new SipSession was created. javax.servlet.sip.sipsessionevent javax.servlet.sip.sipsessionevent.readytoinvalidate, A SipApplicationSession has expired. OpenCloud, 1.1 SipSessionListener.s javax.servlet.sip.sipsessionevent essioncreated() javax.servlet.sip.sipsessionevent.invalidate, OpenCloud, 1.1 SipApplicationSessio nlistener.sessionreadytoinvalidate() javax.servlet.sip.sipsessionevent.invalidate, OpenCloud, 1.1 SipApplicationSessio nlistener. SessionReadyToInvalidate() A SipApplicationSession has become ready to invalidate. javax.servlet.sip.sipsessionevent A SipApplicationSession has become ready to invalidate. javax.servlet.sip.sipsessionevent Some things to note about SIP Servlet events Initial requests and mid-dialog requests have the same event type. The application must distingush between them using SipServletRequest.is Initial(), just as SIP servlets do. All events above are fired on the SipApplicationSession activity. Events that relate to a particular SipSession are still fired on the SipApplica tionsession, but the SipSession can always be retrieved from the event object. The decision to fire all events on the SipApplicationSession was 11

12 made only to avoid scenarios where the same event type could have been fired on either type of activity, depending on what made sense in particular circumstances. Just firing on the SipApplicationSession makes it simpler for the developer to reason about the events. There are no ServletTimer events, as the same functionality is already provided by the SLEE TimerFacility. There are no "session destroyed" events. The SLEE ActivityEndedEvent can be used for the same purpose. SipServletListener.servletInitialized() and the session attribute listeners are not part of this RA type. However they are implemented by the container service when running SIP Servlet applications. 4.3 Interfaces The SIP Servlet RA type specifies these intefaces: SipFactory on page SipSessionsUtil on page and ActivityContextInterface on page. (the SBB Interface), SipFactory The SIP Servlet SipFactory interface is this RA Type s SBB interface. An instance of SipFactory is bound in the SBB s JNDI environment when the SBB declares an RA Type binding in their sbb-jar.xml deployment descriptor: <resource-adaptor-type-binding> <resource-adaptor-type-ref> <resource-adaptor-type-name>sip Servlet RA Type</resource-adaptor-typename> <resource-adaptor-type-vendor>opencloud</resource-adaptor-type-vendor> <resource-adaptor-type-version>1.1</resource-adaptor-type-version> </resource-adaptor-type-ref> <activity-context-interface-factory-name>slee/resources/sipservlet/ activitycontextinterfacefactory</activity-context-interface-factory-name> <resource-adaptor-entity-binding> <resource-adaptor-object-name>slee/resources/sipservlet/provider</ resource-adaptor-object-name> <resource-adaptor-entity-link>slee/resources/sipservlet</resourceadaptor-entity-link> </resource-adaptor-entity-binding> </resource-adaptor-type-binding> In the above example, the SipFactory is bound to the name "slee/resources/sipservlet/provider". An SBB object can retrieve the SipFactory as follows: public abstract class MySipSbb implements Sbb { private SipFactory sipfactory; public void setsbbcontext(sbbcontext context) { 12

13 try { Context env = (Context) new InitialContext().lookup("java:comp/ env"); this.sipfactory = (SipFactory) env.lookup("slee/resources/ sipservlet/provider"); } catch (NamingException e) {... } } } SipSessionsUtil The SipSessionsUtil interface is made available to SBBs using a separate RA Type. To access SipSessionsUtil, SBBs must declare the following RA Type binding (in addition to the SIP Servlet RA Type as shown above): <resource-adaptor-type-binding> <resource-adaptor-type-ref> <resource-adaptor-type-name>sip Servlet-sessionsutil RA Type</resourceadaptor-type-name> <resource-adaptor-type-vendor>opencloud</resource-adaptor-type-vendor> <resource-adaptor-type-version>1.1</resource-adaptor-type-version> </resource-adaptor-type-ref> <resource-adaptor-entity-binding> <resource-adaptor-object-name>slee/resources/sipservlet/ sessionsutilprovider</resource-adaptor-object-name> <resource-adaptor-entity-link>slee/resources/sipservlet</resourceadaptor-entity-link> </resource-adaptor-entity-binding> </resource-adaptor-type-binding> and obtain the reference from JNDI: public abstract class MySipSbb implements Sbb { private SipFactory sipfactory; private SipSessionsUtil sessionsutil; public void setsbbcontext(sbbcontext context) { try { Context env = (Context) new InitialContext().lookup("java:comp/ env"); this.sipfactory = (SipFactory) env.lookup("slee/resources/ sipservlet/provider"); this.sessionsutil = (SipFactory) env.lookup("slee/resources/ sipservlet/sessionsutilprovider"); } catch (NamingException e) {... } } } 13

14 4.3.3 ActivityContextInterface The ActivityContextInterface factory interface for the SIP Servlet RA Type is com.opencloud.sipservlet.ratype.sipservletactivitycontextinterfacefactory : public interface SipServletActivityContextInterfaceFactory { public ActivityContextInterface getactivitycontextinterface(sipsession session) throws UnrecognizedActivityException, FactoryException; public ActivityContextInterface getactivitycontextinterface(sipapplicationsession session) throws UnrecognizedActivityException, FactoryException; } 14

15 5 Hybrid Applications As well as writing pure SIP Servlet applications, developers can use Rhino SIP Servlet to write hybrid applications : SLEE services that use the SIP Servlet RA Type API. This means they can make use of the nice features in the SIP Servlet API (such as built-in proxying), while also using the SLEE component model (SBBs, events, activities, activity contexts, and so on). 5.1 Participating in application selection Hybrid applications can take part in the application-selection process, controlled by the Application Router on page 18. SIP Servlet and hybrid applications can be composed together on the same SIP call. Hybrid applications are normal SLEE services, so are identified by their ServiceID. The Application Router uses application names to refer to the applications it selects. When deploying a hybrid application, the deployer must also manually create an application name on page 16 so that the Application Router can select it. 5.2 Hybrid application example The examples/proxy-hybrid directory in the Rhino SIP Servlet package contains an example SLEE service that uses the SIP Servlet API to implement a simple proxy. Run ant deploy in the examples/proxy-hybrid directory to deploy the service. Note that the service does not perform any SIP registration lookups; it simply forwards requests to the next hop. 15

16 6 Application Naming Applications deployed in a SIP Servlet container are identified using their application name, a string. The application developer or deployer sets the application name in the <app-name> element of the sip.xml deployment descriptor, or by using annotation s name attribute. The container uses the application name as the unique identifier for the application, and the application router uses application names when selecting the applications to run. Rhino SIP Servlet runs on the Rhino SLEE platform, and SIP Servlet applications are deployed as SLEE services. SLEE services are uniquely identified by their ServiceID, an identifier containing service name, vendor, and version strings. When the application router determines the next application to invoke, it returns the application name to the container. But in this case the "container" is the SIP Servlet RA, which must translate the name to a SLEE ServiceID, so that it can trigger the SLEE service containing the servlet application. For this reason, the SIP Servlet RA maintains a table that maps SIP Servlet application names to SLEE ServiceIDs, and vice versa. These mappings are called application name references in the Rhino SIP Servlet documentation. The SIP Servlet RA ensures a one-to-one mapping between application names and ServiceIDs. So it s impossible for more than one application name to map to the same ServiceID, or for more than one ServiceID to map to the same application name. 6.1 Automatic application naming When SIP servlet applications are installed using Rhino SIP Servlet s management commands ( install-ss (console) or <sipservlet:install> (Ant)), the SIP Servlet RA generates a SLEE service that wraps the servlet application. During deployment, the RA automatically creates an application name reference that maps the application name to the new service s ServiceID. 6.2 Manual application naming It s also possible to manually create application name references. This is only required when deploying Hybrid Applications on page 15, which are traditional SLEE services that use the SIP Servlet RA Type. These are deployed using Rhino s normal installation commands, bypassing the SIP Servlet RA s servlet deployment mechanisms. In this case it is necessary to manually setup the application name references, so that the application router can refer to hybrid applications by their servlet application names. If a SLEE service has no application name, it cannot be invoked by the SIP Servlet RA. 16

17 Application name references are managed using the createapplicationnameref, replaceapplicationnameref and removeapplicationnameref console commands, and corresponding Ant tasks. See the Installation and Administration Guide for details and examples. 17

18 7 Application Router SIP Servlet 1.1 specifies the Application Router component. The Application Router is responsible for selecting the SIP Servlet applications that will process an initial request. In other words, it determines how applications are composed. The servlet applications themselves do not have any knowledge of the Application Router, so they can be developed independently, and then composed together at deployment time, by configuring the Application Router for a particular scenario. The Application Router is, by design, a separate component to the SIP Servlet container. This means that users are free to use third-party Application Routers, or write their own. An Application Router may use any criteria for selecting applications, such as source or destination addresses, SIP header fields, time of day, database lookup, and so on. All SIP Servlet 1.1 containers must provide a Default Application Router, which is specified in SIP Servlet 1.1 Appendix C. Rhino SIP Servlet includes a Default Application Router, and users may also deploy their own. 7.1 Default application router The default application router (DAR) supplied with Rhino SIP Servlet implements the behaviour specified in SIP Servlet 1.1 Appendix C. It is configured using the properties file format described in the appendix. Configuration files are installed in the DAR using Rhino SIP Servlet s console or Ant commands. A DAR configuration file is a properties file, where each line begins with a SIP request method (such as INVITE, REGISTER), followed by a list of applications that will process that type of request. For example: REGISTER: ("Registrar", "DAR:From", "ORIGINATING", "", "NO_ROUTE", "0"), ("Presence", "DAR:From", "ORIGINATING", "", "NO_ROUTE", "1") INVITE: ("CallBarring", "DAR:From", "ORIGINATING", "", "NO_ROUTE", "0"), ("LocationServiceProxy", "DAR:From", "ORIGINATING", "", "NO_ROUTE", "1") This says that REGISTER requests will be processed by the "Registrar" application, then the "Presence" application. INVITE requests will trigger the "CallBarring" application, then the LocationServiceProxy" application. (The other arguments are described in SIP Servlet 1.1 Appendix C.) The installed DAR configuration is used for all initial requests; there is no support for conditional or peruser rules. 7.2 Custom application routers A custom application router can be used if more advanced application composition logic is required, such as subscriber lookup, or inspecting SIP header fields. See the Installation and Administration Guide for information on installing custom Application Routers. 18

19 8 SLEE Resource Adaptor Support Servlet applications deployed on Rhino SIP Servlet can use any SLEE Resource Adaptor (RA) deployed in the platform. The SLEE uses RAs to talk to external resources. They may implement any protocol. For example, OpenCloud provides RAs for SIP, HTTP, SS7 (CAP/INAP), Diameter, and many others. SIP Servlet applications running on Rhino SIP Servlet can use these RAs just like any other SLEE application, so servlets are not just limited to communicating using SIP. 8.1 How do applications access the RAs? Servlet applications need to use a subset of the SLEE API to access SLEE RAs. The SLEE specification defines how SLEE applications declare which RAs they need, how events are received from RAs, and how to access an RA s interface to interact with external resources. Rhino SIP Servlet provides the sipservlet-slee API that bridges between the SIP Servlet and SLEE containers. This allows servlet applications to use RAs in the same way as SLEE applications, without leaving the SIP Servlet application environment. The following sections describe how a servlet application can be enhanced to use SLEE RAs: Dependencies on page 20 RA Type Bindings on page 21 Resource Injection on page Activities and Activity Contexts on page Event Handling on page Converged Applications on page SLEE Libraries on page 19

20 9 Dependencies A servlet application using SLEE RAs has the following compile-time dependencies, which may be found under lib/ in the Rhino SIP Servlet distribution. slee-1.1.jar and jta-1.0.1b.jar the JAIN SLEE 1.1 API jars sipservlet-slee- <version>.jar interfaces to bridge between SLEE and SIP Servlet slee-annotations- <version>.jar annotations for declaring which SLEE RA types and events are required by an application. The actual version numbers may vary in different releases, so they are not shown above. The Ant build file common.xml defines the path reference sipservlet.api.classpath, which contains the SIP Servlet 1.1 API and the jars above. If using Ant, your own project can be compiled simply by importing common.xml and using the path reference: <import file="/path/to/rhino-sip-servlet/common.xml"/> </javac> Alternatively, make these jars available as appropriate for your own build environment. At runtime these dependencies are provided by the Rhino SIP Servlet platform, so do not need to be packaged with the servlet application. You will also need to provide the resource adaptor type jars and any other jars required by the particular RA types your application needs. These will usually be found in the distribution package for each RA. The RA types and RAs will be deployed separately in the SLEE, and do not need to be bundled with the servlet application. 20

21 10 RA Type Bindings Before an RA can be used, the application must declare a binding to an RA type. A resource adaptor type (RA type) is a SLEE component that specifies the interface between an RA and SLEE applications. It defines: the event types that may be fired by the RA the types of activities created by the RA the RA interface (a Java interface) that applications may call to use the RA the activity context interface factory interface (see below). When an application declares a binding to an RA type, Rhino ensures that the RA type s classes (and their dependencies) are available in the application s classloader, and any interfaces provided by the RA type are bound into JNDI at locations specified by the application in the binding. The same RA type may be implemented by more than one RA, and there may also be more than one instance of an RA ( RA entity in SLEE terms) deployed at a time. For example, there may be multiple HTTP RA entities deployed, each listening on a different port. So the the application s RA type binding can also specify which RA entity (or entities) it wants to use Package declaration for an application To declare an RA type binding, a servlet application uses annotation on a package. RA Type bindings apply to the entire application, so it makes sense to annotate the same package is declared (if using SIP Servlet annotations), or the top-level package of the application. must only be specified on one package in the application. Here is the package declaration for an example = "example", mainservlet = "HTTP", vendor = "OpenCloud", version = "2.2"), activitycontentinterfacefactoryname = "slee/resources/http/ acifactory", resourceadaptorentitylink = "slee/resources/http", resourceadaptorobjectname = "slee/resources/http/provider") }) package com.example.app; import com.opencloud.sipservlet.slee.annotation.sleeratypes; import javax.servlet.sip.annotation.sipapplication; import javax.slee.annotation.*; 21

22 Here the application is declaring a binding to the OpenCloud HTTP 2.2 RA type. This is an actual RA type, and is included with the example application in examples/http-example/. The various elements that make up the This annotation is the "container" for one or elements. If an application uses several RA types, then they must all be defined inside a element. Order is not significant. The start of an RA type binding declaration. ratype = " ", vendor = " ", version = " ") activitycontentinterfacefactoryname = " " resourceadaptorentitylink = " " resourceadaptorobjectname = " " This attribute specifies the RA type s component ID, a triple of name, vendor, and version strings. All SLEE components are identified in this way. At deploy time, this must match an RA type that is deployed in the SLEE. Optional. This attribute specifies the JNDI object name for the RA type s activity context interface factory interface. This is required if the application wants to attach to activities created by an RA, which is often the case. See [7.4 Activities and Activity Contexts]. Optional. Identifies the link name of an RA entity. This is a reference to an RA entity deployed in the SLEE. The link name may be anything, but must be configured (using SLEE management commands) to point to an actual RA entity in the SLEE before the application is deployed. Optional. This attribute specifies the JNDI object name for the RA interface provided by the RA entity linked to as above. This object implements the RA interface as defined by the RA type. This annotation marks those classes in the application that may receive SLEE events. Servlet and Listener classes may use this annotation

23 @EventMethod Marks an event handler method. The SLEE invokes this method when a matching event is received eventtype = " ", vendor = " ", version = " ") Like other SLEE components, event types are identified by name, vendor, and version. === == Event handler methods As well as the `@EventMethod` annotation, event handler methods must have a particular signature. * They must be public, not-static methods that return `void`. * The method name must be on `<event-name>`. The event name must be a unique name within the servlet application. * The first parameter is the event object. The parameter type is defined by the SLEE event type's definition, usually part of the RA type definition. * The second parameter is the ACI of the activity that the event was fired on. * The last parameter is the `SipApplicationSession` instance that is processing the event. The event handler method can process the event just like a SLEE SBB event handler method. The activity object associated with the event can be obtained using `ActivityContextInterface.getActivity()` on the ACI passed to the event handler method. == Initial events SIP servlet application instances are typically created when a new initial SIP request arrives, which is not associated with any existing `SipSession`. A new `SipSession` and `SipApplicationSession` are created to process the request, and the `SipApplicationSession` will hold any state for the new application instance. It is also possible to trigger a new application instance using events from other SLEE RAs. To do this, the application must declare that one or more event types are _initial events_. This is done by adding the `initialevent=true` attribute to an `@EventMethod` annotation: = "com.opencloud.slee.resources.http.httprequest.get", vendor = "OpenCloud", version = "2.2"), initialevent = true) public void onhttprequest(httprequest request, ActivityContextInterface aci, SipApplicationSession appsession) { log("servlet received HTTP request: " + request); } 23

24 Here this means that an HTTP GET request will create a new `SipApplicationSession` instance. It could then initiate a new `SipSession` with another SIP device, to implement a "click-to-dial" service. Initial events can also enable bxref:converged-applications[converged applications]. :leveloffset!: :ocdoc_current_file: /mnt/volume-01/jenkins/workspace/product/ra/sipservlet/ release-1.1.0/release-docs/sipservlet-docs/rhino-sip-servlet-overview-andconcepts/slee-resource-adaptor-support/converged-applications.adoc :here: slee-resource-adaptor-support/ :idprefix: converged-applications :leveloffset: 1 = Converged Applications :sortorder: 760 // DevPortal author: ~jonh Often it is desirable to have initial events be processed by the same application instance. For example, a conferencing service might want to have all calls to the conference address be handled by the same application instance, so the state of all participants can be easily managed in a single `SipApplicationSession`. == Session targeting mechanisms SIP Servlet provides several _session targeting_ mechanisms that allow initial SIP requests to be directed to the same `SipApplicationSession`. The most generic session targeting mechanism is the `@SipApplicationKey` method. The SIP Servlet container invokes a `@SipApplicationKey` method with the initial request, and the method returns a string which identifies a `SipApplicationSession`, creating the session if it doesn't exist. `@SipApplicationKey` only applies to SIP requests, but Rhino SIP Servlet provides an equivalent session targeting mechanism for non-sip initial events. This means that events from different protocols can be directed to the same application instance, enabling converged applications. session targeting To implement session targeting for non-sip events, a servlet application defines a `@SleeApplicationKey` method. This is very similar to `@SipApplicationKey` methods, in that it takes an initial event and returns a string. The string identifies a `SipApplicationSession` instance, which is created automatically if it doesn't already exist. 24

25 TIP: The method is only used for non-sip initial events; SIP events will still use To enable SIP and non-sip initial events to select the same application instance, the application developer just has to ensure that these two methods return the same values for related events. The signature of the method looks like this: public static String anymethodname(object event, Object activity) { } The method must satisfy these properties: * Only one method in the application can be annotated with `@SleeApplicationKey`. * The method must be public and static. * The method may have any name. * The method must return `String`. * The method must have two `Object` parameters, which are the SLEE event and its activity object. The body of the method can do anything, but it should be idempotent. It should inspect the event and activity parameters and extract the required information, such as user IDs or session IDs, to generate the return value. === Default session targeting behaviour If there is no `@SleeApplicationKey` method defined in the application, Rhino SIP Servlet will just create a new `SipApplicationSession` instance for each new non-sip activity. :leveloffset!: :ocdoc_current_file: /mnt/volume-01/jenkins/workspace/product/ra/sipservlet/ release-1.1.0/release-docs/sipservlet-docs/rhino-sip-servlet-overview-andconcepts/slee-resource-adaptor-support/slee-libraries.adoc :here: slee-resource-adaptor-support/ :idprefix: slee-libraries :leveloffset: 1 = SLEE Libraries :sortorder: 770 // DevPortal author: ~jonh Servlet applications may also use any library components deployed in the SLEE. Like RA type bindings, library bindings are declared using annotations on a package within the application: 25

26 [source,java] = "guava", vendor = "com.google.guava", version = = "protobufjava", vendor = "com.google.protobuf", version = "2.5.0")), }) package com.example.app; import com.opencloud.sipservlet.slee.annotation. ; import javax.slee.annotation. ; Here the application has declared a dependency on two other libraries. These libraries must be deployed in the SLEE before the servlet application can deploy. NOTE: Use of SLEE libraries is purely optional; servlet applications can also just put their dependencies in + `WEB-INF/lib` in their SAR file. SLEE libraries may be useful if they are shared by many applications on the same SLEE platform. :leveloffset!: :ocdoc_current_file: /mnt/volume-01/jenkins/workspace/product/ra/sipservlet/ release-1.1.0/release-docs/sipservlet-docs/rhino-sip-servlet-overview-andconcepts/example-applications.adoc :here: :idprefix: example-applications :leveloffset: 1 = Example Applications :sortorder: 800 // DevPortal author: ~ben Your Rhino SIP Servlet installation comes with example applications, in the `examples/` directory. Each subdirectory under `examples/` holds a self-contained SIP Servlet application, with source code and Ant deployment scripts. Running `ant` inside an example application's directory executes the default `deploy` build target, which builds the application and deploys it into the SLEE. Once deployed, the application can be tested using your preferred SIP testing tools, such as or sourceforge.net/projects/sipsak.berlios/[sipsak], or SIP softphones such as or WARNING: You must gxref:rhino-sip-servlet-installation-and-administrationguide/installing-rhino-sip-servlet[deploy a Rhino SIP Servlet RA entity] before attempting to install the example applications. 26

27 Below are descriptions of the sample applications: bxref:#code-sipservletservices-code[sipservlet-services], bxref:#code-proxy-hybrid-code[proxyhybrid] and bxref:#code-http-example-code[http-example]. == sipservlet-services [cols="1h,5a"] === What it does Implements some typical SIP services: * Registrar * Back-to-back user agent (B2BUA) & Proxy * Presence. How to configure * Only one of the B2BUA or Proxy servlets should be enabled at a time. * The B2BUA servlet is enabled by default. * To enable the Proxy servlet, uncomment the `<servlet-mapping>` element for `proxy-servlet` in the deployment descriptor, and comment out the corresponding `b2b-proxy-servlet` element. * Use the env-entry "`localdomains`" to specify a comma-separated list of domain names that the proxy and B2BUA consider to be local. If these servlets receive a request with a Request-URI containing a SIP identity (a.k.a. _address of record_) that is within one of these domains, the servlets lookup the SIP identity in the registration database to find a registered contact address. If no entry is found, an error response is returned to the caller. The registration database is populated by the Registrar servlet when SIP clients send REGISTER requests to register their current contact address. The application's deployment descriptor can be found at `resources/web-inf/ sip.xml`. Database it uses An embedded (in-process) Derby database to store SIP registrations; created automatically during deployment. === == proxy-hybrid NOTE: This is an example *hybrid application* -- a SLEE service that uses the SIP Servlet 1.1 RA Type, and uses the SIP Servlet Proxy interface to implement a simple proxy. [cols="1h,5a"] === What it does Implements a _very simple_ proxy; does not attempt to lookup registered SIP identities, so it can only forward requests to their next hop. 27

28 How to configure Edit the service's SBB deployment descriptor: `resources/meta-inf/sbbjar.xml`. _The environment entries_ `proxyrecordroute` _and_ `proxysupervised` _are applied to the_ `Proxy` _instances that are created when processing initial requests._ === == http-example NOTE: This is an example of a servlet application using a bxref:sleeresource-adaptor-support[slee Resource Adaptor] to communicate using another protocol, in this case HTTP. [cols="1h,5a"] === What it does A simple proxy that also uses the HTTP RA to make an HTTP request. Also processes incoming HTTP requests as initial events. How to configure No configuration required. === :leveloffset!: 28

Adding Telephony to Java Technology-Based Enterprise Applications

Adding Telephony to Java Technology-Based Enterprise Applications Adding Telephony to Java Technology-Based Enterprise Applications Jonathan Kaplan & Sreeram Duvur Researcher/Architect Sun Microsystems, Inc. http://glassfish.dev.java.net/ TS-4919 2007 JavaOne SM Conference

More information

Open Cloud Rhino SMPP Resource Adaptors Users Guide

Open Cloud Rhino SMPP Resource Adaptors Users Guide Open Cloud Rhino SMPP Resource Adaptors Users Guide Introduction This document is a short guide to using a Java SMPP API and resource adaptors with the Open Cloud Rhino SLEE SDK. It is intended for SDK

More information

[1]Oracle Communications Converged Application Server. Concepts Release 7.0 E

[1]Oracle Communications Converged Application Server. Concepts Release 7.0 E [1]Oracle Communications Converged Application Server Concepts Release 7.0 E52897-03 May 2016 Oracle Communications Converged Application Server Concepts, Release 7.0 E52897-03 Copyright 2005, 2016, Oracle

More information

Sentinel Registrar Overview and Concepts

Sentinel Registrar Overview and Concepts Sentinel Registrar Overview and Concepts TAS-025-Issue 2.7.0-Release 1 November 2017 Notices Copyright 2017 Metaswitch Networks. All rights reserved. This manual is issued on a controlled basis to a specific

More information

Oracle Communications Converged Application Server

Oracle Communications Converged Application Server Oracle Communications Converged Application Server Release Notes Release 5.0 E17652-03 July 2011 This document provides release notes for Oracle Communications Converged Application Server Release 5.0.

More information

Oracle Communications Converged Application Server

Oracle Communications Converged Application Server Oracle Communications Converged Application Server Release Notes Release 7.0 E39125-02 May 2016 This document provides release notes for Oracle Communications Converged Application Server. New Features

More information

Implementing a JSLEE Resource Adaptor A quick-starter s guide

Implementing a JSLEE Resource Adaptor A quick-starter s guide Implementing a JSLEE Resource Adaptor A quick-starter s guide by Michael Maretzke 30 th September 2005 Introduction JAIN SLEE? JSLEE? A resource adaptor? What s that all about? I ve got a network protocol

More information

Oracle Communications Converged Application Server

Oracle Communications Converged Application Server Oracle Communications Converged Application Server Technical Product Description Release 4.0 August 2008 Server Technical Product Description, Release 4.0 Copyright 2007, 2008, Oracle and/or its affiliates.

More information

Configuring Triggers. Viewing and Deleting Triggers

Configuring Triggers. Viewing and Deleting Triggers Configuring Triggers Viewing and Deleting Triggers Adding a Trigger Viewing, Adding, Moving, and Deleting Rules for a Trigger Adding, Editing, and Deleting Conditions for a Trigger Rule Viewing and Deleting

More information

Implementing a JSLEE Resource Adaptor A quick-starter s guide

Implementing a JSLEE Resource Adaptor A quick-starter s guide Implementing a JSLEE Resource Adaptor A quick-starter s guide by Michael Maretzke 5 th October 2005 Introduction JAIN SLEE? JSLEE? A resource adaptor? What s that all about? I ve got a network protocol

More information

Sentinel VoLTE Demonstration Image

Sentinel VoLTE Demonstration Image Sentinel VoLTE Demonstration Image TAS-177-Issue 2.6.0-Release 1 August 2018 Notices Copyright 2017 Metaswitch Networks. All rights reserved. This manual is issued on a controlled basis to a specific person

More information

Oracle WebLogic Server SIP Container

Oracle WebLogic Server SIP Container Oracle WebLogic Server SIP Container Developer s Guide 11g Release 1 (11.1.1) E15461-01 October 2009 Oracle WebLogic Server SIP Container Developer s Guide, 11g Release 1 (11.1.1) E15461-01 Copyright 2006,

More information

NetBeans IDE Field Guide

NetBeans IDE Field Guide NetBeans IDE Field Guide Copyright 2005 Sun Microsystems, Inc. All rights reserved. Table of Contents Extending Web Applications with Business Logic: Introducing EJB Components...1 EJB Project type Wizards...2

More information

BEAWebLogic SIP Server. Technical Product Description

BEAWebLogic SIP Server. Technical Product Description BEAWebLogic SIP Server Technical Product Description Version 3.1 Revised: July 16, 2007 Copyright Copyright 1995-2007 BEA Systems, Inc. All Rights Reserved. Restricted Rights Legend This software

More information

IP Multimedia Subsystem Part 5 Marek Średniawa

IP Multimedia Subsystem Part 5 Marek Średniawa IP Multimedia Subsystem Part 5 Marek Średniawa mareks@tele.pw.edu.pl Institute of Telecommunications Project is co-financed by European Union within the European Social Fund 1 Identification in IMS Identities

More information

BEAAquaLogic. Service Bus. Interoperability With EJB Transport

BEAAquaLogic. Service Bus. Interoperability With EJB Transport BEAAquaLogic Service Bus Interoperability With EJB Transport Version 3.0 Revised: February 2008 Contents EJB Transport Introduction...........................................................1-1 Invoking

More information

Oracle Communication and Mobility Server: Introduction Student Guide

Oracle Communication and Mobility Server: Introduction Student Guide Oracle Communication and Mobility Server: Introduction Student Guide D52943GC10 Edition 1.0 January 2008 D54065 Author Viktor Tchemodanov Technical Contributors and Reviewers Christer Fahlgren Adam Odessky

More information

web.xml Deployment Descriptor Elements

web.xml Deployment Descriptor Elements APPENDIX A web.xml Deployment Descriptor s The following sections describe the deployment descriptor elements defined in the web.xml schema under the root element . With Java EE annotations, the

More information

Mobicents JAIN SLEE SIP B2BUA Example User Guide. by Eduardo Martins and Bartosz Baranowski

Mobicents JAIN SLEE SIP B2BUA Example User Guide. by Eduardo Martins and Bartosz Baranowski Mobicents JAIN SLEE SIP B2BUA Example User Guide by Eduardo Martins and Bartosz Baranowski Preface... v 1. Document Conventions... v 1.1. Typographic Conventions... v 1.2. Pull-quote Conventions... vii

More information

Session 8. Reading and Reference. en.wikipedia.org/wiki/list_of_http_headers. en.wikipedia.org/wiki/http_status_codes

Session 8. Reading and Reference. en.wikipedia.org/wiki/list_of_http_headers. en.wikipedia.org/wiki/http_status_codes Session 8 Deployment Descriptor 1 Reading Reading and Reference en.wikipedia.org/wiki/http Reference http headers en.wikipedia.org/wiki/list_of_http_headers http status codes en.wikipedia.org/wiki/_status_codes

More information

Project SailFin Functional Specification for Sip Application Routing Author(s):

Project SailFin Functional Specification for Sip Application Routing Author(s): Functional Specification for Sip Application Routing Author(s): yvo.bogers@ericsson.com 1 Introduction 1.1 Revision history Revision Date Author Comments 0.1 2007-09-25 Yvo First draft based on mail discussions

More information

Functional Specification for Deployment Author(s):

Functional Specification for Deployment Author(s): Functional Specification for Deployment Author(s): prasad.subramanian@sun.com Version Comments Date 0.5 Initial Draft 07/21/2007 0.6 Feedback from Sreeram.duvur@sun.com 08/06/2007 0.7 Added specification

More information

Telecommunication Services Engineering Lab. Roch H. Glitho

Telecommunication Services Engineering Lab. Roch H. Glitho 1 2 Outline 1. Introduction 2. Core SIP 3. Selected Extensions 3 Introduction: Signaling vs Media Signaling: Session establishment Session tear down Changes to the session Supplementary services Media:

More information

SAS 9.2 Foundation Services. Administrator s Guide

SAS 9.2 Foundation Services. Administrator s Guide SAS 9.2 Foundation Services Administrator s Guide The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2009. SAS 9.2 Foundation Services: Administrator s Guide. Cary, NC:

More information

Java- EE Web Application Development with Enterprise JavaBeans and Web Services

Java- EE Web Application Development with Enterprise JavaBeans and Web Services Java- EE Web Application Development with Enterprise JavaBeans and Web Services Duration:60 HOURS Price: INR 8000 SAVE NOW! INR 7000 until December 1, 2011 Students Will Learn How to write Session, Message-Driven

More information

ECharts for SIP Servlets User Manual

ECharts for SIP Servlets User Manual ECharts for SIP Servlets User Manual Gregory W. Bond Eric Cheung Thomas M. Smith Venkita Subramonian AT&T Labs Research Version 2.5 Beta April 9, 2009 The latest version of this document is available from:

More information

Lotusphere IBM Collaboration Solutions Development Lab

Lotusphere IBM Collaboration Solutions Development Lab Lotusphere 2012 IBM Collaboration Solutions Development Lab Lab#4 IBM Sametime Unified Telephony Lite telephony integration and integrated telephony presence with PBX 1 Introduction: IBM Sametime Unified

More information

SIP Compliance APPENDIX

SIP Compliance APPENDIX APPENDIX E This appendix describes Cisco SIP proxy server (Cisco SPS) compliance with the Internet Engineering Task Force (IETF) definition of Session Initiation Protocol (SIP) as described in the following

More information

Overview of SIP. Information About SIP. SIP Capabilities. This chapter provides an overview of the Session Initiation Protocol (SIP).

Overview of SIP. Information About SIP. SIP Capabilities. This chapter provides an overview of the Session Initiation Protocol (SIP). This chapter provides an overview of the Session Initiation Protocol (SIP). Information About SIP, page 1 How SIP Works, page 4 How SIP Works with a Proxy Server, page 5 How SIP Works with a Redirect Server,

More information

IBM Operational Decision Manager Version 8 Release 5. Configuring Operational Decision Manager on WebLogic

IBM Operational Decision Manager Version 8 Release 5. Configuring Operational Decision Manager on WebLogic IBM Operational Decision Manager Version 8 Release 5 Configuring Operational Decision Manager on WebLogic Note Before using this information and the product it supports, read the information in Notices

More information

Artix for J2EE. Version 4.2, March 2007

Artix for J2EE. Version 4.2, March 2007 Artix for J2EE Version 4.2, March 2007 IONA Technologies PLC and/or its subsidiaries may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject

More information

Oracle Service Bus. Interoperability with EJB Transport 10g Release 3 (10.3) October 2008

Oracle Service Bus. Interoperability with EJB Transport 10g Release 3 (10.3) October 2008 Oracle Service Bus Interoperability with EJB Transport 10g Release 3 (10.3) October 2008 Oracle Service Bus Interoperability with EJB Transport, 10g Release 3 (10.3) Copyright 2007, 2008, Oracle and/or

More information

SIP Profiles on the Session Border Controller

SIP Profiles on the Session Border Controller 16 CHAPTER You can configure the Session Border Controller (SBC) with method and header profiles on Session Initiation Protocol (SIP) messages. These profiles are used to control which SIP requests are

More information

Updated after review Removed paragraph mentioned java source code.

Updated after review Removed paragraph mentioned java source code. Functional Specification for DCR Plug-in Support Author(s): joel.binnquist.xc@ericsson.com Version: 1.3 Version Date Comment 0.1 2009-01-20 First version 1.0 2009-04-02 Updated after review. - Removed

More information

J2EE Interview Questions

J2EE Interview Questions 1) What is J2EE? J2EE Interview Questions J2EE is an environment for developing and deploying enterprise applications. The J2EE platform consists of a set of services, application programming interfaces

More information

SAS 9.4 Foundation Services: Administrator s Guide

SAS 9.4 Foundation Services: Administrator s Guide SAS 9.4 Foundation Services: Administrator s Guide SAS Documentation July 18, 2017 The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2013. SAS 9.4 Foundation Services:

More information

Implementation Agreement for ISC interface MSF-IA-SIP.013-FINAL

Implementation Agreement for ISC interface MSF-IA-SIP.013-FINAL MSF-IA-SIP.013-FINAL MultiService Forum Implementation Agreement MSF-IA-SIP.013-FINAL Contribution Number: msf2006.004.04 Document Filename: MSF-IA-SIP.013-FINAL Working Group: Protocol and Control Title:

More information

Mobicents JAIN SLEE HTTP Servlet Resource Adaptor User Guide. by Amit Bhayani and Eduardo Martins

Mobicents JAIN SLEE HTTP Servlet Resource Adaptor User Guide. by Amit Bhayani and Eduardo Martins Mobicents JAIN SLEE HTTP Servlet Resource Adaptor User Guide by Amit Bhayani and Eduardo Martins Preface... v 1. Document Conventions... v 1.1. Typographic Conventions... v 1.2. Pull-quote Conventions...

More information

Tuning and development with SIP Servlet on Mobicents. Naoki Nishihara OKI Electric Industry Co.,Ltd Jean Deruelle Mobicents Sip Servlets Lead

Tuning and development with SIP Servlet on Mobicents. Naoki Nishihara OKI Electric Industry Co.,Ltd Jean Deruelle Mobicents Sip Servlets Lead Tuning and development with SIP Servlet on Mobicents Naoki Nishihara OKI Electric Industry Co.,Ltd Jean Deruelle Mobicents Sip Servlets Lead Agenda Introduction SIP Application behavior How to tune the

More information

Abstract. Testing was conducted at the Avaya Solution and Interoperability Test Lab.

Abstract. Testing was conducted at the Avaya Solution and Interoperability Test Lab. Avaya Solution & Interoperability Test Lab Application Notes for Configuring SIP Trunks between Avaya Aura TM Conferencing Standard Edition 6.0 and Cisco Unified Communications Manager 8.0 Issue 1.0 Abstract

More information

Voice over IP Consortium

Voice over IP Consortium Voice over IP Consortium Version 1.6 Last Updated: August 20, 2010 121 Technology Drive, Suite 2 University of New Hampshire Durham, NH 03824 Research Computing Center Phone: +1-603-862-0186 Fax: +1-603-862-4181

More information

Techniques for Building J2EE Applications

Techniques for Building J2EE Applications Techniques for Building J2EE Applications Dave Landers BEA Systems, Inc. dave.landers@4dv.net dave.landers@bea.com Why are we Here? Discuss issues encountered with J2EE Application deployment Based on

More information

J2EE Development. Course Detail: Audience. Duration. Course Abstract. Course Objectives. Course Topics. Class Format.

J2EE Development. Course Detail: Audience. Duration. Course Abstract. Course Objectives. Course Topics. Class Format. J2EE Development Detail: Audience www.peaksolutions.com/ittraining Java developers, web page designers and other professionals that will be designing, developing and implementing web applications using

More information

Enabling the IP Multimedia Subsystem (IMS) With Java Technology

Enabling the IP Multimedia Subsystem (IMS) With Java Technology Enabling the IP Multimedia Subsystem (IMS) With Java Technology Alka Gupta Staff Engineer Sun Microsystems www.sun.com TS-8152 Nasir Khan Staff Engineer SL JSR 289 BEA Systems www.bea.com 2006 JavaOne

More information

NetBeans 5.5 Web Services Consumption in Visual Web Pack Specification

NetBeans 5.5 Web Services Consumption in Visual Web Pack Specification NetBeans 5.5 Web Services Consumption in Visual Web Pack Specification NetBeans 5.5 Web Services Consumption in Visual Web Pack Version 1.0. 08/18/06 - initial version - Sanjay Dhamankar revised 01/28/07

More information

Session Initiation Protocol (SIP)

Session Initiation Protocol (SIP) Session Initiation Protocol (SIP) Introduction A powerful alternative to H.323 More flexible, simpler Easier to implement Advanced features Better suited to the support of intelligent user devices A part

More information

Session 9. Deployment Descriptor Http. Reading and Reference. en.wikipedia.org/wiki/http. en.wikipedia.org/wiki/list_of_http_headers

Session 9. Deployment Descriptor Http. Reading and Reference. en.wikipedia.org/wiki/http. en.wikipedia.org/wiki/list_of_http_headers Session 9 Deployment Descriptor Http 1 Reading Reading and Reference en.wikipedia.org/wiki/http Reference http headers en.wikipedia.org/wiki/list_of_http_headers http status codes en.wikipedia.org/wiki/http_status_codes

More information

Information About SIP Compliance with RFC 3261

Information About SIP Compliance with RFC 3261 APPENDIX A Information About SIP Compliance with RFC 3261 This appendix describes how the Cisco SIP IP phone complies with the IETF definition of SIP as described in RFC 3261. It has compliance information

More information

Oracle Fusion Middleware

Oracle Fusion Middleware Oracle Fusion Middleware Developing Oracle Coherence Applications for Oracle WebLogic Server 12c (12.2.1.2.0) E77826-02 December 2016 Documentation for developers and architects that describes how to develop,

More information

BEAWebLogic. Server. Programming WebLogic Deployment

BEAWebLogic. Server. Programming WebLogic Deployment BEAWebLogic Server Programming WebLogic Deployment Version 10.0 Revised: March 30, 2007 Contents 1. Introduction and Roadmap Document Scope and Audience............................................. 1-1

More information

All-IP Core Network Multimedia Domain

All-IP Core Network Multimedia Domain GPP X.S00-00-0 Version.0 Version Date: July 00 0 All-IP Core Network Multimedia Domain IP Multimedia (IMS) session handling; IP Multimedia (IM) Call Model; Stage 0 COPYRIGHT NOTICE GPP and its Organizational

More information

Nortel Secure Router 2330/4134 Configuration SIP Survivability. Release: 10.2 Document Revision: NN

Nortel Secure Router 2330/4134 Configuration SIP Survivability. Release: 10.2 Document Revision: NN Configuration SIP Survivability Release: 10.2 Document Revision: 01.01 www.nortel.com NN47263-510. . Release: 10.2 Publication: NN47263-510 Document release date: 7 September 2009 While the information

More information

1. Functional Specification for SailFin Administration Author(s): Contributors: Irfan A, Vijay G Version:0.5 1.

1. Functional Specification for SailFin Administration Author(s): Contributors: Irfan A, Vijay G Version:0.5 1. Functional Specification for Container Integration Author(s): Peter.Danielsson@ericsson.com, Eltjo.Boersma@ericsson.com Version: prel A4 1 Introduction

More information

Cisco TelePresence Conductor with Cisco Unified Communications Manager

Cisco TelePresence Conductor with Cisco Unified Communications Manager Cisco TelePresence Conductor with Cisco Unified Communications Manager Deployment Guide XC2.2 Unified CM 8.6.2 and 9.x D14998.09 Revised March 2014 Contents Introduction 4 About this document 4 Further

More information

Avigilon Control Center 6 System Integration Guide. for Jacques Technologies IP Audio Intercom System

Avigilon Control Center 6 System Integration Guide. for Jacques Technologies IP Audio Intercom System Avigilon Control Center 6 System Integration Guide for Jacques Technologies IP Audio Intercom System 2010-2018, Avigilon Corporation. All rights reserved. AVIGILON, the AVIGILON logo, AVIGILON CONTROL

More information

SIP Network Overview

SIP Network Overview CHAPTER 1 S Network Overview Revised: October 30, 2012, This guide describes the Session Initiation Protocol (S) signaling features supported in Release 6.0.4 of the Softswitch, and explains how to provision

More information

David Blevins State of OpenEJB 3.0

David Blevins State of OpenEJB 3.0 David Blevins dblevins@visi.com State of OpenEJB 3.0 OpenEJB 1 History OpenEJB 2 EJB 1.1 Only CMP with Castor JDO Embeddable Tomcat Integration Standalone Capable EJB 2.1 Certified CMP with TranQL IoC

More information

Mobicents JAIN SLEE HTTP Client Resource Adaptor User Guide. by Amit Bhayani and Eduardo Martins

Mobicents JAIN SLEE HTTP Client Resource Adaptor User Guide. by Amit Bhayani and Eduardo Martins Mobicents JAIN SLEE HTTP Client Resource Adaptor User Guide by Amit Bhayani and Eduardo Martins Preface... v 1. Document Conventions... v 1.1. Typographic Conventions... v 1.2. Pull-quote Conventions...

More information

Report of Otago Contributions to Telecom LifeLink Project

Report of Otago Contributions to Telecom LifeLink Project Report of Otago Contributions to Telecom LifeLink Project Nathan Lewis Hailing Situ Melanie Middlemiss The Information Science Discussion Paper Series Number 2008/02 July 2008 ISSN 1177-455X University

More information

For this week, I recommend studying Chapter 2 of "Beginning Java EE 7".

For this week, I recommend studying Chapter 2 of Beginning Java EE 7. For this week, I recommend studying Chapter 2 of "Beginning Java EE 7". http://find.lib.uts.edu.au/?r=opac_b2874770 261 We have been using a few container services and annotations but they have not been

More information

3GPP TS V ( )

3GPP TS V ( ) 3GPP TS 24.379 V13.1.1 (2016-06) Technical Specification 3rd Generation Partnership Project; Technical Specification Group Core Networks and Terminals; Mission Critical Push To Talk (MCPTT) call control;

More information

Polycom RealPresence Mobile for Android Phone

Polycom RealPresence Mobile for Android Phone Help 3.3 January 2015 3725-69926-004/A Polycom RealPresence Mobile for Android Phone Copyright 2015, Polycom, Inc. All rights reserved. No part of this document may be reproduced, translated into another

More information

Compliance with RFC 3261

Compliance with RFC 3261 APPENDIX A Compliance with RFC 3261 This appendix describes how the Cisco Unified IP Phone 7960G and 7940G complies with the IETF definition of SIP as described in RFC 3261. It contains compliance information

More information

SIP Session Initiation Protocol

SIP Session Initiation Protocol Session Initiation Protocol ITS 441 - VoIP; 2009 P. Campbell, H.Kruse HTTP Hypertext Transfer Protocol For transfer of web pages encoded in html: Hypertext Markup Language Our interest: primarily as model

More information

Voice over IP (VoIP)

Voice over IP (VoIP) Voice over IP (VoIP) David Wang, Ph.D. UT Arlington 1 Purposes of this Lecture To present an overview of Voice over IP To use VoIP as an example To review what we have learned so far To use what we have

More information

Mobicents EclipSLEE Plugin User Guide. by Alexandre Mendonça

Mobicents EclipSLEE Plugin User Guide. by Alexandre Mendonça Mobicents EclipSLEE Plugin User Guide by Alexandre Mendonça Preface... v 1. Document Conventions... v 1.1. Typographic Conventions... v 1.2. Pull-quote Conventions... vii 1.3. Notes and Warnings... vii

More information

Oracle Communications Network Charging and Control. Session Control Agent Alarms Guide Release

Oracle Communications Network Charging and Control. Session Control Agent Alarms Guide Release Oracle Communications Network Charging and Control Session Control Agent s Guide Release 12.0.0 December 2017 Copyright Copyright 2017, Oracle and/or its affiliates. All rights reserved. This software

More information

Sipelia User Guide 2.0 GA. Click here for the most recent version of this document.

Sipelia User Guide 2.0 GA. Click here for the most recent version of this document. Sipelia User Guide 2.0 GA Click here for the most recent version of this document. Copyright notice 2015 Genetec Inc. All rights reserved. Genetec Inc. distributes this document with software that includes

More information

Cisco TelePresence Conductor with Cisco Unified Communications Manager

Cisco TelePresence Conductor with Cisco Unified Communications Manager Cisco TelePresence Conductor with Cisco Unified Communications Manager Deployment Guide TelePresence Conductor XC4.0 Unified CM 10.5(2) January 2016 Contents Introduction 6 About this document 6 Related

More information

<Insert Picture Here> WebLogic JMS Messaging Infrastructure WebLogic Server 11gR1 Labs

<Insert Picture Here> WebLogic JMS Messaging Infrastructure WebLogic Server 11gR1 Labs WebLogic JMS Messaging Infrastructure WebLogic Server 11gR1 Labs Messaging Basics Built-in Best-of-Breed Messaging (JMS) Engine Years of hardening. Strong performance.

More information

Bare Timestamp Signatures with WS-Security

Bare Timestamp Signatures with WS-Security Bare Timestamp Signatures with WS-Security Paul Glezen, IBM Abstract This document is a member of the Bare Series of WAS topics distributed in both stand-alone and in collection form. The latest renderings

More information

Configuring Multi-Tenants on SIP Trunks

Configuring Multi-Tenants on SIP Trunks The feature allows specific global configurations for multiple tenants on SIP trunks that allow differentiated services for tenants. allows each tenant to have their own individual configurations. The

More information

ETSI TS V1.1.1 ( )

ETSI TS V1.1.1 ( ) TS 183 028 V1.1.1 (2006-04) Technical Specification Telecommunications and Internet Converged Services and Protocols for Advanced Networking (TISPAN); Common basic communication procedures; Protocol specification

More information

4.2 IMS Service Creation

4.2 IMS Service Creation 4.2 IMS Service Creation 63 IMS service layer application servers IMS basic telephony Simulation servers Subscriber data HSS -AS #1 -AS #2 MMTel application servers Cx IP access network Gm P-CSCF Mw S-CSCF

More information

Ulticom Signalware TCAP Stack

Ulticom Signalware TCAP Stack Ulticom Signalware TCAP Stack Configuration Reference for CGIN 1.5 4 JULY 2012 ULTICOM SIGNALWARE TCAP STACK CONFIGURATION REFERENCE FOR CGIN 1.5 JULY 4, 2012 Copyright and Disclaimers Copyright 2012 OpenCloud

More information

Oracle WebLogic Server

Oracle WebLogic Server Oracle WebLogic Server Creating WebLogic Domains Using the Configuration Wizard 10g Release 3 (10.1.3) August 2008 Oracle WebLogic Server Creating WebLogic Domains Using the Configuration Wizard, 10g Release

More information

Active Endpoints. ActiveVOS Platform Architecture Active Endpoints

Active Endpoints. ActiveVOS Platform Architecture Active Endpoints Active Endpoints ActiveVOS Platform Architecture ActiveVOS Unique process automation platforms to develop, integrate, and deploy business process applications quickly User Experience Easy to learn, use

More information

Oracle Java CAPS Database Binding Component User's Guide

Oracle Java CAPS Database Binding Component User's Guide Oracle Java CAPS Database Binding Component User's Guide Part No: 821 2620 March 2011 Copyright 2009, 2011, Oracle and/or its affiliates. All rights reserved. License Restrictions Warranty/Consequential

More information

BEAWebLogic Server. WebLogic Web Services: Advanced Programming

BEAWebLogic Server. WebLogic Web Services: Advanced Programming BEAWebLogic Server WebLogic Web Services: Advanced Programming Version 10.0 Revised: April 28, 2008 Contents 1. Introduction and Roadmap Document Scope and Audience.............................................

More information

Database Binding Component User's Guide

Database Binding Component User's Guide Database Binding Component User's Guide Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. Part No: 821 1069 05 December 2009 Copyright 2009 Sun Microsystems, Inc. 4150 Network Circle,

More information

Installation & Configuration Guide Version 4.0

Installation & Configuration Guide Version 4.0 TekSIP Installation & Configuration Guide Version 4.0 Document Revision 6.8 https://www.kaplansoft.com/ TekSIP is built by Yasin KAPLAN Read Readme.txt for last minute changes and updates, which can be

More information

Pexip Infinity and Polycom DMA Deployment Guide

Pexip Infinity and Polycom DMA Deployment Guide Introduction Pexip Infinity and Polycom DMA Deployment Guide Polycom DMA is a SIP/H.323 registrar and call control device. This guide describes how to integrate the Pexip Infinity solution with a deployment

More information

Application Notes for Configuring the ADTRAN NetVanta UC Server with Avaya IP Office 6.1 Issue 1.0

Application Notes for Configuring the ADTRAN NetVanta UC Server with Avaya IP Office 6.1 Issue 1.0 Avaya Solution & Interoperability Test Lab Application Notes for Configuring the ADTRAN NetVanta UC Server with Avaya IP Office 6.1 Issue 1.0 Abstract These Application Notes describe the procedure for

More information

Topics Augmenting Application.cfm with Filters. What a filter can do. What s a filter? What s it got to do with. Isn t it a java thing?

Topics Augmenting Application.cfm with Filters. What a filter can do. What s a filter? What s it got to do with. Isn t it a java thing? Topics Augmenting Application.cfm with Filters Charles Arehart Founder/CTO, Systemanage carehart@systemanage.com http://www.systemanage.com What s a filter? What s it got to do with Application.cfm? Template

More information

CUCM XO SIP Trunk Configuration Guide

CUCM XO SIP Trunk Configuration Guide QUANTiX QFlex Session Border Controller CUCM 10.0 - XO SIP Trunk Configuration Guide Release 5.6.2-9 Document revision: 01.01 www.genband.com 2 630-02102-01 QUANTiX QFlex Session Border Controller Publication:

More information

Cisco TelePresence Conductor with Unified CM

Cisco TelePresence Conductor with Unified CM Cisco TelePresence Conductor with Unified CM Deployment Guide TelePresence Conductor XC3.0 Unified CM 10.x Revised February 2015 Contents Introduction 5 About this document 5 Related documentation 5 About

More information

New Features in EJB 3.1

New Features in EJB 3.1 New Features in EJB 3.1 Sangeetha S E-Commerce Research Labs, Infosys Technologies Limited 2010 Infosys Technologies Limited Agenda New Features in EJB 3.1 No Interface View EJB Components in WAR Singleton

More information

Java EE 6 - Update Harpreet Singh GlassFish Portfolio Product Manager

Java EE 6 - Update Harpreet Singh GlassFish Portfolio Product Manager Java EE 6 - Update Harpreet Singh GlassFish Portfolio Product Manager Sun Microsystems 1 The Elephant In The Room 2 Here's what I can... Show Say 3 Business As Usual 4 Business As Usual = Participate in

More information

Five9 Adapter for Oracle

Five9 Adapter for Oracle Cloud Contact Center Software Five9 Adapter for Oracle Administrator s Guide July 2017 This guide describes how to configure the integration between Five9 and the Oracle Service Cloud, previously know

More information

Configuring SIP Registration Proxy on Cisco UBE

Configuring SIP Registration Proxy on Cisco UBE The Support for SIP Registration Proxy on Cisco UBE feature provides support for sending outbound registrations from Cisco Unified Border Element (UBE) based on incoming registrations. This feature enables

More information

Session Initiation Protocol (SIP) Basic Description Guide

Session Initiation Protocol (SIP) Basic Description Guide Session Initiation Protocol (SIP) Basic Description Guide - 1 - Table of Contents: DOCUMENT DESCRIPTION... 4 SECTION 1 NETWORK ELEMENTS... 4 1.1 User Agent... 4 1.2 Proxy server... 4 1.3 Registrar... 4

More information

V3 EJB Test One Pager

V3 EJB Test One Pager V3 EJB Test One Pager Overview 1. Introduction 2. EJB Testing Scenarios 2.1 EJB Lite Features 2.2 API only in Full EJB3.1 3. Document Review 4. Reference documents 1. Introduction This document describes

More information

Avigilon Control Center 5 System Integration Guide. for Jacques IP Audio Intercom System

Avigilon Control Center 5 System Integration Guide. for Jacques IP Audio Intercom System Avigilon Control Center 5 System Integration Guide for Jacques IP Audio Intercom System 2010-2017, Avigilon Corporation. All rights reserved. AVIGILON, the AVIGILON logo, AVIGILON CONTROL CENTER, ACC and

More information

RESTCOMMONE. SIP Servlets. Copyright All Rights Reserved Page 2

RESTCOMMONE. SIP Servlets. Copyright All Rights Reserved Page 2 RESTCOMMONE SIP Servlets Copyright All Rights Reserved Page 2 RestcommONE Core Components RestcommOne Connect Visual Designer Web Browser WebRTC SDK s Mobile WebRTC SDK s RESTful API Layer RestcommOne

More information

MyEclipse EJB Development Quickstart

MyEclipse EJB Development Quickstart MyEclipse EJB Development Quickstart Last Revision: Outline 1. Preface 2. Introduction 3. Requirements 4. MyEclipse EJB Project and Tools Overview 5. Creating an EJB Project 6. Creating a Session EJB -

More information

Interactive Distance Learning based on SIP

Interactive Distance Learning based on SIP S. Sae-Wong, T. Kamolphiwong, S. Kamolphiwong, and N. Wittayasirikul Centre for Network Research (CNR), Department of Computer Engineering, Faculty of Engineering, Prince of Songkla University, Hatyai,

More information

Department of Computer Science. Burapha University 6 SIP (I)

Department of Computer Science. Burapha University 6 SIP (I) Burapha University ก Department of Computer Science 6 SIP (I) Functionalities of SIP Network elements that might be used in the SIP network Structure of Request and Response SIP messages Other important

More information

Distributed Systems Architecture

Distributed Systems Architecture Distributed Systems Architecture Lab Session 1. Introduction to ZeroC Ice Francisco Moya November 15, 2011 In this session we will learn to use basic Ice tools to develop a very

More information

Support of parallel BPEL activities for the TeamCom Service Creation Platform for Next Generation Networks

Support of parallel BPEL activities for the TeamCom Service Creation Platform for Next Generation Networks Support of parallel BPEL activities for the TeamCom Service Creation Platform for Next Generation Networks T.Eichelmann 1, 2, W.Fuhrmann 3, U.Trick 1, B.Ghita 2 1 Research Group for Telecommunication Networks,

More information

Chapter 1 Introducing EJB 1. What is Java EE Introduction to EJB...5 Need of EJB...6 Types of Enterprise Beans...7

Chapter 1 Introducing EJB 1. What is Java EE Introduction to EJB...5 Need of EJB...6 Types of Enterprise Beans...7 CONTENTS Chapter 1 Introducing EJB 1 What is Java EE 5...2 Java EE 5 Components... 2 Java EE 5 Clients... 4 Java EE 5 Containers...4 Introduction to EJB...5 Need of EJB...6 Types of Enterprise Beans...7

More information