Nobody ever said developing CTI applications was easy, and until TMC Labs examined
N-softs Etrog platform, we thought the same thing. Etrog allows you to design once
and implement many times across several different switching platforms, without
compatibility hassles. Etrog speeds your CTI development time by abstracting the complex
and proprietary communications to switches, which also differ from switch to switch. It
lets you communicate with CSTA-compatible PBXs in order to control, route, and manipulate
phone calls. This development platform is perfectly suited for creating call center, voice
messaging, and other applications.
Etrog consists of five main components: Server, Agent, Observer, Business Router, and
Qmanager. These components provide CTI developers with the tools to communicate with PBXs,
granting the capability to monitor and manipulate phone calls. These components also
provide higher level functions, such as statistics gathering, call routing, and object
queuing.
Before we discuss how Etrog fared in our testing, it is important to understand the
Etrog architecture. Here are explanations of the Etrog components and how they integrate
with each other:
Etrog Server: An ActiveX control used to develop server-based call routing and/or
monitoring applications, providing direct access to Etrog-supported PBXs. Server can
monitor extensions for call activity and provide software control of telephony actions
such as Answer Call, Offer Call, Cancel Offer, and End Call. Etrog Server can optionally
provide limited IVR features to help develop IVR-based call routing and ACD applications.
Etrog Server can also monitor route points for non-IVR-based call routing.
Etrog Agent: An ActiveX control used to develop desktop applications. Agent provides
direct access to Etrog-supported PBXs. Therefore, it can monitor extensions for call
activity and provide software control of telephony actions such as Take Call, Transfer
Call, Conference Call, Consult Agent, etc. It is also able to access user-defined call
data associated with calls. Etrog Agent is typically used to develop desktop CTI
applications that provide screen-pops and software call control.
Etrog Observer: An application that runs on the primary CTI server in any call center.
Observer monitors call center activity and renders this information available to clients
that connect to it using its ActiveX based client/server architecture. Clients may log
into the Observer as participating Agents or as applications requesting real time
information. Agents logging into the Observer will be monitored via the CTI link. A
combination of call events received from the PBX and application level states are used to
manage Agent States and Call Data. The result is a type of software-based ACD, which
allows agents to log into virtual ACD groups that are purely driven by the Observer.
Etrog Business Router: A configurable host-based call router ready to install with very
little integrator configuration required. It directs incoming calls to the proper
department, agent group, or specific person within your business based upon DNIS or ANI.
The Business Router also includes a small set of standard IVR features that can be used to
help route calls based on menu selections, caller entered customer numbers, and database
lookups. A graphical interface is available to simplify design and configure the flow of
IVR actions. Each IVR action is represented by an icon, (for example, PlayFile,
Voice-mailRecord) making development fairly easy and intuitive.
Etrog Qmanager: Provides a method for organizing and prioritizing items (such as phone
calls or e-mails) that need to be routed to some limited resource (such as agents within a
call center). Essentially, this component is what its name implies its a
queue manager. We should point out, however, that QManager does not provide
any routing mechanisms. It simply provides a means of organizing items that need to be
routed. Therefore, to provide ACD-like routing capabilities, QManager would be used as
part of an overall solution.
INSTALLATION
We installed the Etrog product from the CD-ROM without a problem. Since Etrog is
a CTI development platform that works with either C++ or Visual Basic (the
developers preference), we decided to install Microsoft Visual Basic 5.0 to try out
some CTI applications. We also needed to install a Dialogic D/41D 4-port voice board,
along with the drivers onto a Windows NT server. In addition, we installed Dialogics
CSTA Switch Simulator software to act as our CSTA-compatible switch (PBX), as well as
Dialogics CT Connect 3.0. Once we installed all of these hardware and software
components, and individually tested them to ensure they were working, we were ready to
test the Etrog platform. Overall, installation was very easy and we didnt encounter
any serious difficulties, thus earning a perfect 5 installation rating.
DOCUMENTATION
Most of the manuals are in Adobe Acrobat format. To help CTI developers learn how
to create CTI applications, N-soft includes tutorials that explain how to use Etrog using
either Visual Basic or C++. The manuals include diagrams that depict how the Etrog
architecture fits in with other telephony systems, as well as computers. These diagrams
are valuable because they help the user understand how to take advantage of the Etrog
development platform. Many of the manuals contain tables of contents, as well as indexes
and (in some instances) glossaries of terms. There were quite a few Acrobat files, which
made the documentation a bit fragmented, but overall we were quite pleased with the
documentation, which earned a 4.5 rating.
FEATURES
Etrog is compatible with most PBX systems that support Phase II CSTA-compatible
Switches, including the popular non-CSTA switches: Nortel Meridian and Lucent G3. To link
with a supported PBX, Etrog requires the installation of CT Connect 3.0. Etrog features
the ability to request call information such as the Call Reference Number, ANI, and DNIS
from an incoming line. In addition, the system can perform IVR transfers through the Etrog
Routing ActiveX, avoiding the need for Call Progress Analysis.
Etrog follows the call throughout its entire lifecycle and tracks each event as it
occurs. Each event provides an interface structure with information about the event such
as start and end times, call reference number, caller ID, agent ID, and DNIS values.
The routed events provide information that can help an application module find the best
or next agent for the call, place the call in an IVR queue, and transfer the call as soon
as the agent becomes available.
Other Etrog features include:
- ActiveX controls for easier and faster development
- Screenpop capabilities
- Define multiple Route Points for responding to route requests
- Define several different groups of agents in a call center
- Query the availability of a group, (i.e. are all agents in a group busy, etc.)
- Determine an agents state changes; (i.e. ready, busy, busy doing other work,
logout, etc.)
OPERATIONAL TESTING
The Etrog Server container application runs on a Windows NT computer. Etrog
Server communicates with the Dialogic CT Connect Service on the Telephony Server, which,
in turn, communicates with the switch.
Software developers who are familiar with ActiveX or certain Visual Basic custom
controls know that you are sometimes limited to just one instantiation of a particular
control within an application. Similarly, an Etrog Server container application should
only use a single Server ActiveX control, which can monitor one or more extensions, or
route points as needed.
Server provides four sets of CTI features. These features focus around Call Control
Groups, Agent Groups, Route Points, and basic IVR.
Call Control Groups
The Etrog Server ActiveX provides for definition of a generic call control group,
a group of devices consisting of call control features such as Answer Call, Transfer Call,
and Hangup Call. A call control group allows CTI enabling of an IVR for host-based
routing, voice mail, and call queuing. All call events can be recorded to create call
statistics.
Call events are passed via the CCGroupCallEvent event and are responded to via the
serial number that arrives with the call. Definition and control of a call control group
within your CTI application (using Visual Basic or C++) typically consist of the following
steps:
- Call CreateCCGroup() to define a call control group with the first device in the group.
- Call AddToCCGroup() to add devices to the group.
- Respond to call events posted to CCGroupCallEvent().
- Usually, call AnswerCall() when EV_INBOUND_CALL is received.
- Call HangUpCall() if no transfer is required on the call.
- Call OfferCall() to transfer the call to another extension.
- Call FinishTransfer() after receiving EV_ANSWERED_OP (only if the switch requires a two
part transfer).
- Respond accordingly when receiving an EV_LINEDROP_OP and/or EV_LINEDROP_TP events.
Every Call Center Needs Agents
The Etrog Agent container application runs on a Windows 95 or NT computer. Etrog
Agent will communicate with the CT Connect Service on the Telephony Server, which then
communicates with the switch. The Etrog Agent control can monitor one or more extensions
as needed.
While we didnt actually write a CTI application from scratch, we did load a few
of the sample applications that ship on the Etrog CD. We modified the source code and made
several additions to see how easy it is to develop using Etrog. CTI developers who have
written CTI applications in the past using Dialogics CT Connect 3.0, will find it
easier to learn to develop on Etrog. We were able to create some simple applications that
logged on an agent and accepted incoming calls.
Reporting
We examined the statistical data on call-center activities and routing activities
that can be collected using Etrog. You can get statistics by agent, group, or global call
center and can report on calls handled, total idle time, and total work time.
Observer Server manages call level statistics and organizes information by calls in
availability group, calls waiting, calls being handled by agent, and calls waiting by
category.
Observer Server provides group-level statistics for aggregate totals, including: calls
handled by group, the number of available agents in a group, number of busy agents in a
group, number of total agents logged on to group, as well as total agent call time, total
agent idle time, and total agent other work and after-call work time.
Next, we tested the Etrog Business Router, which distributes incoming calls according to
routing rules that have been set. The Business Router monitors route points or specific
extensions for incoming calls. After detecting an incoming call, Business Router takes two
steps to qualify each call. First, Business Router intelligently gathers and assesses
available call and caller information. Information can include:
- The DNIS (Dialed Number ID Service), the actual number dialed.
- The ANI (Automatic Number ID), the callers own phone number.
- The callers choices from IVR (Interactive Voice Response) activity.
Next, Business Router quickly determines an appropriate transfer destination. The
destination could be an agent group, a specific agent, or a specific PBX dialable number
(DN) within a business.
Each DNIS can possess its own set of call routing rules, called a Business Router
application. The IVR call flow is defined using an easy-to-use graphical app-gen called
the Business Router Diagrammer. Each call routing rule is configured to transfer a call to
the appropriate agent or agent group. Each application consists of two sets of rules: one
for business hours, one for non-business hours.
In order to run the Business Router, we first needed to run the Observer Server. We
also needed to register or logon some call center agents into the CSTA-compatible switch.
In order to do this, we used Dialogics CT Connect 3.0 software to simulate a
CSTA-compatible switch. We ran a Dialogic program called CtcTest, which loads a
command-line interface similar to a DOS shell. From this command line, we typed in
reg 2501, which executes a batch file that sets various parameters, and
essentially assigns extension 2501 to be logged on within this command-line interface.
Basically, any CSTA switch messages for extension 2501 can be monitored from this
command-line interface.
Next, we needed to make a call into the CSTA switch. We loaded another CSTA
command-line interface by running the CtcTest program again. We typed in reg
2000 to register this command line as extension 2000. Then, from this same command
line, we typed in makecall 2001. Since extensions 2001-2004 are IVR extensions
assigned to the four ports of the Dialogic D41/D, the Business Router application
immediately answered the call and we were able to listen to the IVR greeting from a phone
handset plugged into the Dialogic board. CSTA messages for extensions 2000 and 2001 were
also displayed in one of the appropriate command-line interfaces, which we were able to
monitor.
Once the IVR (Business Router) picked up, we pressed a touch-tone key which transferred
us into the Sales queue. The next available agent (extension 2501) was assigned to the
incoming call, which then required that we type in answer to answer the call
transferred from the IVR. At this point, the transfer is completed and the agent can speak
with the caller. During all of this activity, we were also able to monitor the
agents status, and which calls they were taking from the ActiveView program.
Essentially, ActiveView assists in visualization of call center activity by agents,
groups, and calls. ActiveView is an unsupported sample program that demonstrates the power
and flexibility of Etrog to create call center applications. In Figure 16 you will see
agent 2001 taking a call from extension 2001 (coincidentally the same number), which is
the extension mapped to IVR port #1 the port we dialed into.
ROOM FOR IMPROVEMENT
We do have a few suggestions for this product. For one, wed like to see a
multimedia training guide running on the Etrog Server, which teaches new developers how to
create CTI applications on the Etrog platform. This multimedia training guide could
include screenshots, a moving mouse cursor to show the developer what to click on, as well
as a voice-over to explain in detail what is happening. Since N-soft was generous enough
to include a few sample Visual Basic and C++ applications, it might be useful to integrate
the sample CTI applications with the multimedia tutorial.
We like the Active View application, which is a sample call center application written
using Microsofts Visual C++. Active View actually utilizes the Observer Client
ActiveX control to communicate with the various Etrog CTI components. Although we had
access to the source code (we requested to see it), the CD-ROM included does not contain
the source code, though we are told that the next revision of N-softs product will
include it.
CONCLUSION
Developing CTI applications using Etrog makes a lot of sense in many situations.
Does your business need to route many calls to distinct, predefined teams or availability
groups? Do you need information about calls or callers before answering calls? Are
powerful ACD functionality, call blending, and flexible call statistics important? If so,
then Etrog is the perfect solution to meet your business needs. By using open technologies
such as ActiveX, CT Connect, and TAPI, Etrog enables developers to quickly create powerful
CTI applications. TMC Labs highly recommends that any serious CTI developer check out
N-softs Etrog.
Figure 16   [return to text]
|