For the WAS 8.0 beta we have added support for Communications Enabled Applications.
First, I thought it would be useful to define what Communications Enabled Applications are. As defined by Wikipedia, Communications Enabled Applications are:

A communications enabled application (CEA) is a set of information technology (IT) components and communication technology components
that are integrated using a particular service-oriented architecture (SOA) to increase the productivity of an organization and/or
improve the quality of users' experiences.
Communication enablement adds real-time networking functionality to an IT application. Providing communications capability to an IT application:
• removes the human latency which exists when (i) making sense of information from many different sources, (ii) orchestrating suitable
responses to events, and (iii) keeping track of actions carried out when responding to information received.
• enables users to be part of the creative flow of content and processes.
What distinguishes a CEA from other software applications is its intrinsic reliance upon communications technologies to accomplish
its objectives. A CEA depends on real-time networking capabilities together with such network oriented functions as location,
presence, proximity, and identity.
Another distinguishing characteristic of a CEA is the implicit assumption that network services will be available as callable services
within the SOA frameworks from which the CEA is constructed. To provide callable services, the network services which are
available today must be made virtual and component-like.
CEAs apply to business processes as well as instances where no obvious business process which requires improvement
exists (e.g., games, entertainment video). CEAs that apply to business processes are referred to as communications
enabled business processes or communications enabled business solutions.

For the WAS 8.0 beta we have added support for Communications Enabled Applications.
First, I thought it would be useful to define what Communications Enabled Applications are. As defined by Wikipedia, Communications Enabled Applications are:

<pre class="jive-pre"> A communications enabled application (CEA) is a set of information technology (IT) components and communication technology components
that are integrated using a particular service-oriented architecture (SOA) to increase the productivity of an organization and/or
improve the quality of users' experiences.
Communication enablement adds real-time networking functionality to an IT application. Providing communications capability to an IT application:
• removes the human latency which exists when (i) making sense of information from many different sources, (ii) orchestrating suitable
responses to events, and (iii) keeping track of actions carried out when responding to information received.
• enables users to be part of the creative flow of content and processes.
What distinguishes a CEA from other software applications is its intrinsic reliance upon communications technologies to accomplish
its objectives. A CEA depends on real-time networking capabilities together with such network oriented functions as location,
presence, proximity, and identity.
Another distinguishing characteristic of a CEA is the implicit assumption that network services will be available as callable services
within the SOA frameworks from which the CEA is constructed. To provide callable services, the network services which are
available today must be made virtual and component-like.
CEAs apply to business processes as well as instances where no obvious business process which requires improvement
exists (e.g., games, entertainment video). CEAs that apply to business processes are referred to as communications
enabled business processes or communications enabled business solutions.
</pre>
Our Communications Enabled Applications capabilities include:

Re: Feature Focus Week: Communications Enabled Applications ( CEA )

‏2010-09-27T16:14:28Z

This is the accepted answer.
This is the accepted answer.

CEA Widgets

Here is a quick overview of some of the Web 2.0 widgets included in the WAS 8.0 Beta:

Click To Call - the ability to send a message into our REST service for it to make a phone call between two parties. This widget needs two phone numbers,
one for the callee and one for the caller. The caller can be specified by the user of the widget and the callee can be embedded.
The widget could also be easily extended to pull the caller information from another source.

Call Notifications - the ability communicate with our REST service to monitor a phone for caller ID type information. This widget needs the phone number to monitor,
which could have been entered or pushed through an extension to the javascript.

Collaboration Dialog - this is a modal window which controls the sharing of information between two peers.
There are some basic send and receive event semantics around this widget that allow extensions to send and receive various pieces of data.

Contact Center Cobrowsing - when a caller enters through our click to call widget and the callee enters through the call notification widget,
the two users are able to launch a collaboration dialog that has the ability to have a controlled browsing session between the two peer users.

Peer to Peer cobrowsing - has the ability to create a link which allows two users to enter a cobrowsing session without being involved with the telephony widgets.
One user creates the link and sends it to the other via some method such as instant messaging or email. Since this link is created via a REST service,
there could be some intelligence in a site which includes this sort of interaction without the widgets involved.
Once the link is entered on the peer user's side, the two users can enter a collaborative cobrowsing session.

Two Way Forms - allows you to take a dojo dijit style form and augment it to have a writer and reader side on various fields.
This is handy when one side must review the correctness of the data the other side is entering.

Re: Feature Focus Week: Communications Enabled Applications ( CEA )

‏2010-09-27T16:23:28Z

This is the accepted answer.
This is the accepted answer.

CEA Mobile Widgets

The WAS 8.0 beta also includes the CEA mobile widgets:
• Delivers versions of Click to call, Call Notifications, Contact Center Co-browsing,
Peer-to-peer Co-browsing and Two Way Synchronized Forms optimized for iPhone and Android mobile browser applications.
• Helps customers build applications with native mobile web application look and feel.
• Support for mobile specific interactions such as touch and gesture support for selecting, scrolling and zooming on mobile browsers.
• Enables mobile users to Co-browse with desktop or mobile users.

Re: Feature Focus Week: Communications Enabled Applications ( CEA )

The first step when embedding any of the CEA widgets into your application is to copy the ceadojo directory ( <washome>\etc\cea\javascript\ceadojo ) into your application.

Based on where you copied the ceadojo directory you will need to use that path when pointing to the various JavaScript and CSS files.
For this post I will assume that I've copied the ceadojo directory directly under the context root and the HTML file that I am adding the widget to is at the same path.

For the Click to call widget we need to import the following CSS files:

There are a few additional attributes that need to be configured for Click to call.
• widgetNumber is used by the Click to call widget to determine what number to call.
• enableCollaboration determines whether this widget will be made available for Contact center cobrowsing. If Contact center cobrowsing is enabled you should also configure the next two attributes
• canControlCollaboration determines whether this widget will be able to drive the collaboration session
• defaultCollaborationUri specifies what page to load first when the Contact center cobrowsing is started.

The following HTML code snippet will place the Call notification widget on the page:

For the Call notification widget the same attributes apply, however "widgetNumber" is an optional attribute that determines what number to monitor for incoming calls.
If not specified the user will be presented with a textfield to enter the number.

Embedding the CEA Telephony Widgets into an Application

The first step when embedding any of the CEA widgets into your application is to copy the ceadojo directory ( <washome>\etc\cea\javascript\ceadojo ) into your application.

Based on where you copied the ceadojo directory you will need to use that path when pointing to the various JavaScript and CSS files.
For this post I will assume that I've copied the ceadojo directory directly under the context root and the HTML file that I am adding the widget to is at the same path.

For the Click to call widget we need to import the following CSS files:
<pre class="jive-pre">
<style type="text/css">
@import "./ceadojo/dijit/themes/tundra/tundra.css";
@import "./ceadojo/cea/widget/ClickToCall/ClickToCall.css";
@import "./ceadojo/cea/widget/CollaborationDialog/CollaborationDialog.css";
</style>
</pre>
The CSS imports for the Call notification widget are the same just replace ClickToCall/ClickToCall.css with CallNotification/CallNotification.css.

The next step is to import the CEA widget toolkit. Importing the CEA widget toolkit is just like importing any other Dojo toolkit.
This step is the same for both telephony widgets.
<pre class="jive-pre">
<script type="text/javascript" src="./ceadojo/dojo/dojo.js" djConfig="parseOnLoad: true, isDebug: false"></script>
</pre>
The CEA widgets are built on top of Dojo's Tundra theme. So next we need to add this theme to the body:
<pre class="jive-pre">
<body class="tundra">
</pre>
And finally the last step is to place the CEA widget on the page. The following HTML code snippet will place the Click to call widget on the page:
<pre class="jive-pre">
<div ceadojoType="cea.widget.ClickToCall" widgetNumber="000-000-0000" enableCollaboration="true" canControlCollaboration="true" defaultCollaborationUri="index.html"></div>
</pre>
There are a few additional attributes that need to be configured for Click to call.
• widgetNumber is used by the Click to call widget to determine what number to call.
• enableCollaboration determines whether this widget will be made available for Contact center cobrowsing. If Contact center cobrowsing is enabled you should also configure the next two attributes
• canControlCollaboration determines whether this widget will be able to drive the collaboration session
• defaultCollaborationUri specifies what page to load first when the Contact center cobrowsing is started.

The following HTML code snippet will place the Call notification widget on the page:
<pre class="jive-pre">
<div ceadojoType="cea.widget.CallNotification" enableCollaboration="true" canControlCollaboration="true" defaultCollaborationUri="index.html"></div>
</pre>
For the Call notification widget the same attributes apply, however "widgetNumber" is an optional attribute that determines what number to monitor for incoming calls.
If not specified the user will be presented with a textfield to enter the number.