Home arrow News arrow New Releases of ECharts for SIP Servlets, KitCAT, ECharts and the DFC Application Router
New Releases of ECharts for SIP Servlets, KitCAT, ECharts and the DFC Application Router Print
On this three year anniversary of echarts.org, we are pleased to announce the release of ECharts for SIP Servlets (E4SS) v2.5-beta, KitCAT v1.1-beta, ECharts v1.3.1-beta and the DFC Application Router v 1.3-beta.

For those unfamiliar with these technologies: E4SS is a development framework for SIP Servlet-based telecom applications, KitCAT is a functional test framework for converged (SIP and HTTP) applications, ECharts is a state machine-based programming language derived from the UML Statecharts and the DFC Application Router is an application router for SIP Servlet containers based on the principles of Distributed Feature Composition (DFC). When combined, these technologies provide the fastest way we know of for developing dependable, converged telecom applications. And all of these technologies are available as open source software!

The highlights of this major release are (1) E4SS now fully supports the SIP Servlet 1.1 (JSR 289) standard (2) E4SS now includes 13 reusable, modular telecom features (including a SIP registrar and click-to-dial), and 21 reusable, telecom machine fragments (including a B2BUA and 'call hold') (3) E4SS comes bundled with KitCAT (4) enhancements to the E4SS converged application framework (5) E4SS support for "bound boxes", a convenient and powerful abstraction for SIP Servlet 1.1 session key-based targeting (6) a number of other important modifications and bug fixes to all the released packages.

Read on for more details about this release and instructions on how to upgrade from previous releases.

E4SS: SIP Servlet 1.1 Support

This release of the E4SS development kit (E4SS DK) now fully supports SIP Servlet 1.1 (JSR 289) containers. This means that applications developed with E4SS take full advantage of container support for application routers, converged applications and session key-based targeting (more on this momentarily). This release has been tested on the open source SailFin v1 b60g container and Oracle's OCCAS v4.0.

Applications developed with this E4SS release will no longer run on containers supporting the previous SIP Servlet 1.0 (JSR 116) standard. As announced earlier, we no longer plan to distribute an E4SS DK for SIP Servlet 1.0 however we are maintaining a maintenance branch of E4SS in our code repository where we are applying bug fixes. Users needing access to this code can freely download it from SVN here and compile it.

E4SS: New Reusable Features and Fragments

The E4SS DK now includes 13 reusable, modular telecom features. A feature is a complete unit of telecom functionality, developed with E4SS and packaged as a jar file, that is ready to be incorporated into a third-party converged application. Very little telecom knowledge is required to use a feature - typically all one needs to do is implement the feature's SIP-to-Java interface in order to customize it for use in an application. All of the features have been tested and are bundled with their KitCAT test cases. Some examples of the features included with this release: a SIP registrar servlet for managing registration requests from SIP phones, a request proxy servlet for conditionally forwarding or rejecting a call, click-to-dial for connecting two parties via non-SIP means (e.g. via HTTP), and a VXML-based call redirector that supports a caller interacting with an interactive voice response (IVR) system. Take a look at the E4SS javadocs for the complete list of features.

The E4SS DK also includes 21 reusable telecom machine fragments. A machine fragment is an ECharts machine that performs some common telephony task that is easily incorporated into another ECharts machine. Utilizing fragments really speeds up development of a custom E4SS feature. Probably the most commonly used fragment is the Back-to-Back User Agent fragment (B2buaSafeFSM) that provides B2BUA functionality: both sunny day and rainy day scenarios. Some other example fragments are the HoldFSM for putting a caller on hold, the TransparentFSM for transparently propagating messages between two parties, the ByeSwitchFSM for tearing down one end of a two party call and connecting the remaining party to a new party, and ThirdPartyCCFlow1FSM to support third party call control (e.g. click-to-dial). See the E4SS javadocs for a complete list of fragments.

E4SS: KitCAT Bundling

KitCAT now comes bundled with the E4SS development kit so there's no need to download it separately anymore. KitCAT is now tightly integrated with the E4SS DK. All the reusable features now include KitCAT test cases. Also the E4SS 'appgen' utility, which is used to build an E4SS application skeleton, now generates a skeleton test directory that includes everything required to quickly get started testing your application with KitCAT. See the E4SS User Manual for more information.

E4SS: Convergence Framework

The E4SS convergence framework provides a convenient abstractions for the more primitive SIP Servlet 1.1 container mechanisms supporting converged (SIP and HTTP) applications. This release includes three enhancements to the existing convergence framework: (1) a convenience method is now provided to publish an application's SIP application session ID; (2) a utility is available to obtain the current SIP message obviating the need to include the message as a SIP-to-Java method parameter; (3) a utility is available to obtain an application session's "initiating request", that is, the SIP request that resulted in the creation of the application session. Also, the "Converged" interface is now deprecated since it was only required for supporting SIP Servlet 1.0 containers. See the E4SS User Manual for more information on the convergence framework.

E4SS: Bound Boxes

A bound box is a convenient abstraction for utilizing the lower-level SIP Servlet 1.1 session key-based targeting mechanism. Bound boxes are used to support features that require subsequent invocations to serve the same user (i.e. the same subscriber URI) to be handled by the same application session. A common example of this kind of feature is Call Waiting. To obtain this functionality all that is required is for an E4SS feature's machine to implement the BoundBoxMachine interface. For an example, see the Busy Rejector feature in the E4SS DK features directory. Note that bound box support is currently only available on OCCAS. Bugs in the current version of SailFin (v1 b60g) prevent it from working on SailFin.

E4SS: Message Abstraction

In response to suggestions from Peter Klein, we've rationalized the approach used for wrapping/unwrapping SIP messages in E4SS. In this release, we only wrap messages that trigger message transitions in ECharts machines. However, any messages saved by E4SS are unwrapped before saving so that when they are retrieved from E4SS (e.g. via a call to SipPort.getInitialRequest()), the unwrapped message is returned. This is a breaking change which may require you to modify code that may be expecting a wrapped message when retrieving a saved message from E4SS. In most cases, there is no need for an application to explicitly store a received INVITE, as the message can be obtained via a SipPort API call. So to create an outgoing INVITE on SipPort b, based on an incoming INVITE to SipPort a, you can use code of this form: "b.createInvite(a.getInitialRequest())". See the E4SS User Manual for more information on the message abstraction.

E4SS: Deployment Descriptors

Since the SIP Servlet 1.1 standard uses a different sip.xml deployment descriptor than used for the SIP Servlet 1.0 standard, the deployment descriptors for all the reusable features have been updated to the new standard. Also, the appgen utility, used to build an E4SS application skeleton, has been updated to generate the new form of deployment descriptor.

E4SS and ECharts: Python Compatibility

We've made modifications to support Python v2.2 through v2.6.1.

E4SS: B2buaFSM Deprecated

We've deprecated B2uaFSM in favor of the (safer) B2buaSafeFSM.

E4SS: User Manual

The E4SS User Manual has been updated and enhanced. It now includes information for configuring the DFC Application Router and configuring the SailFin and OCCAS containers to use E4SS and the DFC Application Router.

E4SS: Bug Fixes and Leak Fix

We've fixed a number of bugs including some related to automatic termination behavior. We also patched a leak that occurred in any machine that utilized timed transitions.

DFC Application Router:

DFC Application Router comes bundled with the E4SS DK but you can use it with non-E4SS applications if you wish. The DFC Application Router is now intended for use only in SIP Servlet 1.1 containers. In addition to a few bug fixes the DFC Application Router now re-loads its configuration file, approuter.xml, whenever applications are deployed or undeployed on the container. For more information about the DFC Application Router see the E4SS User Manual.

KitCAT: Bug Fixes

This release of KitCAT is a bug fix release.

ECharts: Bug Fixes

This release of ECharts is a bug fix release. Some problems related to machine diagram display and interaction in javadocs were fixed.

Discuss this article on the forums. (0 posts)
Last Updated ( Tuesday, 14 April 2009 )
< Prev   Next >
Copyright © 2006-2009 echarts.org