[image]
Avaya DevConnect Center
Home IP Communications Contact Centers Unified Communications Communications Enabled Business Processes Avaya DevConnect Portal RSS Feed
[image]
DevX exclusive! This Preview Edition eBook provides you with an introduction to key concepts and an overview for developing communications applications with the Device, Media, and Call Control (DMCC) service of Avaya Communication Manager with the Avaya DMCC Dashboard. Get your free ebook now!
[image]
Register to join the Avaya DevConnect Program to gain access to Avaya APIs & SDKs, purchase Avaya products for development at discounted prices, and receive a discount on training and certification. More information
[image]
Sign up for your free email newsletter today!
Avaya Developer News


Avaya AE Services Provide Rapid Telephony Integration with Facebook
With social media, email and instant messaging competing with the phone as communication media, integrating phone conversations with Web 2.0 applications is the logical next step for communication. In this piece, Ty Anderson talks about integrating Avaya AE Services with Facebook to create a new customer dynamic.  

Nothing beats the spoken word for speed and efficiency when collaborating on an idea. Clearly there are many ways to communicate quickly today, for example email, instant messaging, twitter, and texting (SMS). Although these methods might be quick, they are not nearly as effective as picking up the phone and expressing your ideas verbally. But today, connecting with people over the phone can prove to be a challenging task as email and instant messaging gain preference over the phone as a primary personal preference for communications.

But what if you could combine the speed and efficiency of email or instant messaging with the impact of the spoken word? What if you could call one of your suppliers to instantly connect with a knowledgeable sales representative about a new development tool? You would get the information you need when you needed it (i.e. now). At the same time, your supplier would be connected to a qualified lead and would not upset you by forcing you to listen to a call menu and then wait on-hold for 20 minutes.

This type of instant connection is possible today as millions of Internet users flock to social-media outlets like Facebook and MySpace. The fact that so many people visit these sites daily means ample opportunity exists for companies to take advantage and connect with customers in new ways. In this article, I will show how Avaya combined their AE Services platform with one of the most popular social networks today, Facebook.

Application Enablement Services Provide Telephony RAD Capabilities
The Avaya communication platforms all contain capabilities that allow developers to build applications that connect people in new and different ways. For example, Avaya Application Enablement Services (AE Services) provides a set of telephony capabilities for Avaya Communication Manager that can be used in your applications.

Before we take a look at the Avaya Facebook Application, let's take a look at what AE Services is and what it delivers. Avaya AE Services is middleware, exposing APIs that provide developers with access to a core set of telephony-related features for Avaya Communication Manager, such as telephone call information and call control capabilities. By providing a rich set of APIs, client-side libraries, protocols, and web services, AE Services serves as the link between your application and Avaya Communication Manager. All that's left is for you to map the desired functionality from your application to the AE Services using one or more of the APIs, such as the Telephony Web Service.

The Telephony Web Service, which is one of the many SDKs provided with AE Services, gives you basic telephony features related to call handling. The web service provides key call controls that allow you to initiate calls, transfer calls and disconnect calls. Table 1 contains the main calls in the Telephony Web Service.

Table 1. The AE Services Telephony Web Service Methods

Method

Description

makeCall

Creates a call between the originating party and the destination party or parties.

singleStepConferenceCall

Creates a conference call by adding an additional destination party to an already active call.

 

singleStepTransferCall

Transfers an active call to a new destination party.

answerAlertingCall

Answers a call for a specified party.

disconnectActiveCall

Disconnects a specified party from an active call.

attach

Creates a call session and authenticates the originating party.

release

Ends a call session and frees server resources.

As you can see, these methods reduce the complexity of making calls and managing existing connections. The complexity of managing session state has been abstracted by AE Services so that all you need to do is maintain Session IDs that identify your session when making calls through AE Services.

Facebook Application Showcases AE Services Feature Set
Avaya recently created a Facebook application that serves as a great example of just what is possible when you develop with AE Services. In just over four weeks, an internal team at Avaya built a "Click-to-Call" (CTC) application that allows Facebook users to call their friends and associates from within the Facebook network.

Facebook is particularly interesting as a platform for this sample application because of the potential for viral distribution. Facebook allows you to create a network of Friends who are able to see your profile information. The profile includes any information you choose to make available, including the applications you've added to your Facebook profile page. Facebook not only allows your friends to see the applications, but to easily add them to their own profiles. Alternately, you can directly 'share' an application with one or more of your contacts. So, if you write an application that lots of Facebook users like, you can experience very quick distribution of your application to a significant number of users through the social network effects of Facebook.

After adding the CTC application, Facebook users can access a contact database of other users of the application and then initiate a call at any time with the click of a button.

Figure 1. The Avaya Click-To-Call Application Residing in Facebook

Thanks to the API provided by Facebook, user interface elements were a simple part of the development process (see Figure 1). All that was needed to integrate with Facebook was to follow the specifications of the Facebook API and then map the UI elements to AE Services methods (for example mapping the Call button to the makeCall method).

From an architecture standpoint, the components of the CTC application are (see Figure 2):

Facebook Application: The Facebook APIs and REST (Representational State Transfer) Server. These components are the foundation for building Facebook applications. The Facebook API is not in the scope of this article but you can learn more at Facebook's developer portal.

A Java-based Web server: The web server can be a full-blown J2EE server, but it is not required. For the Click-to-Call application, Avaya used an Apache Web Server with a Tomcat servlet engine. The purpose of the web server is to host the Application Servlet and the Communication Proxy. When Avaya built their demo application, they deployed this web server inside the Demilitarized Zone (DMZ) between their corporate network and the public Internet in order to maintain secure access to their mission-critical corporate communications systems.

Application Servlet: Receives requests from Facebook. A typical request example is the initialization of the user interface that generates Facebook Markup Language (FBML). The FBML represents the Click-to-Call application's user interface elements. Another example is when the user clicks the Call button. In this case, the FBML generates a request to the Application Servlet (see Figure 2).

Communication Proxy: Serializes call requests and sends them to the AE Services Facebook Proxy.

Application Server: Residing inside the corporate firewall, this server hosts the AE Services Facebook Proxy along with other applications and components. AE Services itself resides on an independent server platform, and does not support co-resident client applications directly. Therefore this server provides the inside-the-firewall portion of the client application.

AE Services Facebook Proxy: Receives serialized call requests from the Communication Proxy and initializes Registration objects.

AE Services Client Library: The AE Services Telephony Service client libraries

Figure 2. The Avaya Click-To-Call Facebook Application Architecture and Process Flow

Perhaps the easiest way to understand how these components work together is to walk through the establishment of a call (see Figure 2).

Initialize the Click-To-Call Application: The user activates the application within Facebook. The CTC application sends a POST request to the Application Servlet specifying the Initialize command in the query string ("Command=Initialize"). The Application Servlet then generates the FBML that will render the CTC screen in Facebook. This includes the call button, the configuration screen, the log screen, etc. The Facebook server converts the FBML into HTML and sends the output to the user's browser.

As part of initialization, the user enters their own contact phone numbers, which will enable other application users to initiate calls to them. One of the unique side effects of this model is that users initiate calls to others using the "call" button on the application GUI--the actual contact numbers (which could be an office phone, home phone, cell phone, etc.) are never exposed to other users. The application itself retrieves these phone numbers from the Facebook database and forwards the numbers to the AE Services makeCall method, which provides a level of privacy and security for all application users.


Register Call Request Handler: The AE Services Facebook proxy initializes a Registration object and serializes the object for passage through the firewall to the Communication Proxy. The Communication Proxy reads the Registration object and creates a ServerCommunicationConnection to handle call requests from the CTC Facebook application.

Send Call Request: When the user clicks the Call button, the Facebook server invokes an instance of the Application Servlet. The Application Servlet then invokes the makeCall web service method in the Communication Proxy which, in turn, identifies the appropriate ServerCoummunicationConnection to handle the call request. The ServerCommunicationConnection has a method (sendRequestToEnterpriseServer) that is invoked to send a serialized version of the Request object to the AE Services Facebook proxy.

Make Call: The AE Services Facebook proxy decodes the call request received from the Communication Proxy and places a call through the AE Services client library.



JupiterOnlineMedia

internet.com earthweb.com Devx.com mediabistro.com Graphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and JupiterOnlineMedia

Jupitermedia Corporate Info

Copyright 2008 Jupitermedia Corporation All Rights Reserved.
Legal Notices, Licensing, Reprints, & Permissions, Privacy Policy.

Web Hosting | Newsletters | Tech Jobs | Shopping | E-mail Offers


You are viewing a mobilized version of this site...
View original page here

How do you rate mobile version of this page?

Mobilized by Mowser Mowser