×

SUBSCRIBE TO TMCnet
TMCnet - World's Largest Communications and Technology Community

CHANNEL BY TOPICS


QUICK LINKS




 

July 1998


Software Components Simplify CTI

BY CARL R. STRATHMEYER

Computer telephony integration (CTI) is not an application, it's a feature - a feature that needs to be added to a huge number of existing applications, be they off-the-shelf or custom-built. And if the CTI industry adopts the computing industry's established methods for application integration, it will be much easier to include these CTI features in any application we want. For the forseeable future, the most efficient and effective integration methods will be based on the principle of packaged software components. Let's take a look at how computer telephony fits into that software component

ActiveX OR JAVA BEANS, THE CHOICE IS YOURS
There are two principal models for packaged software components in today's commercial marketplace. Microsoft promotes the ActiveX architecture (formerly called OCX), and Sun Microsystems promotes the Java Beans architecture. Each has advantages and disadvantages. ActiveX modules can only be used in Windows environments such as Windows 95, Windows NT, and Internet Explorer. Java Bean modules are platform-independent and can be used (at least in principle) on any operating system or browser platform that supports Java. But for the moment at least, ActiveX holds the edge with respect to commercial importance -there are many more commercially available container applications that support ActiveX software components.

The principles behind these two architectures are much the same. A container application provides the overall structure, while software component modules can be embedded into the container framework to provide specific capabilities. The software components are portable and can be embedded into many different containers; the component and its container need not come from the same source. Once a component module is embedded in a container, the functions of that module become available to the container application. The functions are usually invoked via some kind of macro language or other flexible customization mechanism.

Current State Of Affairs
The ActiveX and Java Bean software component architectures make it much easier to add CTI features to applications. CTI-based applications have historically been difficult to develop, because application developers had to use complex procedural programming interfaces (APIs) to get access to the CTI capabilities they needed. For example, telephone-based applications generally involve responding to call events that arrive at random times. These are difficult to handle with traditional telephony APIs, because the flow of the application software must be interrupted when a telephony event is processed. It takes a programmer with special experience developing real-time systems to properly handle these interruptions without disrupting other portions of the application. Furthermore, interrupt-based application software is difficult to test and maintain. This state of affairs explains why there are still comparatively few CTI-enhanced applications on the market even though customer interest is high.

Change Just Around The Bend
Software component technology will change this, and change it quickly. For example, both ActiveX and Java Beans standardize real-time event handling. Container applications know that events will be signaled by a software component in a certain way, and they have standard methods for handling them. The application developer simply provides a series of instructions that specify what action should be taken when each specific kind of event occurs, and does not have to construct the more difficult underlying event-handling mechanisms. When a telephone event is detected, the software component signals the container application, which in turn executes the series of application instructions specified for that event. All of the complex real-time event mechanisms are handled automatically within the software components and the container application, greatly reducing the likelihood of programming errors. The result is a dramatic reduction in the complexity of CTI-based applications, and the very attractive possibility of adding CTI capabilities to nearly any component-compliant container application.

The best way to appreciate this dramatic simplification is to look at a concrete example of using the software component strategy to add CTI features to an existing application. For our example, we will work with the ActiveX architecture, although the same principles apply to applications based on Java Beans. The environment we chose for this example is Microsoft Access, a very popular application generator and database package. Microsoft Access is an ActiveX container environment, which means that we can include ActiveX packaged software components into applications built with it. For our application, we chose the NorthWind sample application that Microsoft ships with Access. This application includes many of the functions, screens, and data elements required by a typical sales organization.

REAL-WORLD APPLICATION
In the example that follows, we will add a preview dialing function to the existing NorthWind customer screen. With this new CTI function, a user can view a customer information record and then click on a Dial button to launch a telephone call to that customer using a telephone number in the customer record. We will use the ActiveX control supplied by Dialogic as part of its CT-Connect CTI server product.

[This ActiveX control, as well as a free evaluation copy of CT-Connect and a copy of the modified NorthWind application from this example, can be found at www.dialogic.com/prod-ucts/ctconnect. If you want to try this example yourself, download both the CT-Connect Evaluation Kit Windows client module and the CT-Connect ActiveX control and accompanying documentation, and install them on your Windows 95 or Windows NT system. (To actually launch a call, you will also need a CTI-equipped telephone system and the CT-Connect Evaluation Kit server module.)]

Once you have the ActiveX control installed on your system, creating the preview dialing function for the NorthWind application involves just a few simple steps. First, we must place the ActiveX control on the form. To do this, start Access and open the NorthWind application. Open the Customer form in design mode and use the toolbar's Custom Control button to select the CT-Connect ActiveX control. Paint the control onto the form in any convenient location; the control will be invisible when the application is running. Right-click on the control and open its Properties window. Set the name of the control to "MyPhone," and set the custom properties to indicate the telephone line that you want the control to represent. (These custom properties are explained in the control's User Guide.)

Next, we must place a Dial button on the form and connect it to the MakeCall function of the ActiveX control. Click the Command Button tool on the Access toolbar and paint a new command button in a convenient location. Right-click the button and open its properties window. Change both the button's name and its caption to "Dial."

Close the button's properties window and right-click the Dial button again to open the Build Event editor. Select the Code Builder function. When Access opens this window, it will build a new event-handling subroutine for the Dial button's Click event. This is where you specify what should happen when someone clicks on the new Dial button. In our case, we want to launch a CTI call. So in the subroutine area, enter:
MyPhone.MakeCall Phone

This simple instruction invokes the MakeCall function of the ActiveX control. The data item called "Phone" is the field in the NorthWind customer table where the customer's telephone number is stored.

We have one more housekeeping matter to take care of. The CT-Connect ActiveX control must be turned on before it is used, and should be turned off before the application terminates. Access has Form Load and Form Unload events that we can use to trigger these actions. To set these up, select Form in the top left drop-down box; in the top right drop-down box, select Load. Access creates a subroutine that will be executed when the Customer screen is first displayed. Enter:
MyPhone.StartMonitoring

That's all it takes to get the control turned on at the appropriate time. Turn it off the same way: In the top right drop-down box, select "Unload." In the subroutine that Access creates for you, enter:
MyPhone.StopMonitoring

You're done! Save the modified form using the "File" menu item at the top of the screen. Your NorthWind application now has a new preview dialing function. Wasn't that easy? With a few more steps, you can add a complete set of screen-phone functions (answer, hang up, transfer, conference, hold, and even agent login and logout functions) and a screen pop when inbound calls arrive. These functions are all illustrated in the example NorthWind application file on the Web site mentioned at the end of this article.

IDENTIFY CALLERS
When you are implementing CTI functions, you will quickly discover that it is important to accurately identify callers, and that the calling party telephone number is not always suitable for doing that. Most applications use some form of interactive voice response (IVR) to identify the callers. If you have an existing IVR system, you can modify its scripts so that the data it collects is deposited somewhere for later use by the desktop systems that execute the screen pops. Then an ActiveX or Java Bean control can be used within a desktop application to signal the arriving call, whereupon the application retrieves the caller's data from the IVR's repository.

As an alternative to a full-fledged IVR system, you can use voice-processing boards with an enhanced ActiveX control such as the "Etrog" controls available from N-Soft. Such controls, in conjunction with a CTI-equipped telephone system and server, allow you to easily generate voice prompts to callers, collect identifying information, store that information for later desktop use, and then trigger screen pops and other actions based on that data within desktop container applications.

CONCLUSION
All of this is going to change the way the market sells and installs CTI systems. Until now, the market has relied primarily on off-the-shelf CTI application products. With the emergence of packaged CTI software components that fit into industry-standard container applications, CTI features can now be added to existing applications in the field. Even more important, this work is now easier to understand and execute, and it uses the same skills utilized by application integrators working with other software components. As you have just seen, if you can paint a button on a visual form, you can construct a CTI application. Exciting, isn't it?

Carl R. Strathmeyer is marketing director, Computer-Telephone Division, of Dialogic Corporation. Dialogic is a leading manufacturer of high-performance, standards-based computer telephony components. Dialogic products are used in voice, fax, data, voice recognition, speech synthesis, and call center management CT applications. The company is headquartered in Parsippany, New Jersey, with regional headquarters in Tokyo and Brussels, and sales offices worldwide. For more information, visit the Dialogic Web site.

 







Technology Marketing Corporation

2 Trap Falls Road Suite 106, Shelton, CT 06484 USA
Ph: +1-203-852-6800, 800-243-6002

General comments: [email protected].
Comments about this site: [email protected].

STAY CURRENT YOUR WAY

© 2026 Technology Marketing Corporation. All rights reserved | Privacy Policy