+ All Categories
Home > Documents > Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent...

Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent...

Date post: 23-Mar-2020
Category:
Upload: others
View: 5 times
Download: 0 times
Share this document with a friend
122
Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002
Transcript
Page 1: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Avaya™ Interaction Center Release 6.0Avaya Agent Integrator’s Guide

DXX-1002-03Issue 1.0

June 2002

Page 2: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

2002, Avaya Inc.All Rights Reserved

NoticeEvery effort was made to ensure that the information in this book was complete and accurate at the time of printing. However, information is subject to change.

Preventing Toll Fraud“Toll fraud” is the unauthorized use of your telecommunications system by an unauthorized party (for example, a person who is not a corporate employee, agent, subcontractor, or working on your company's behalf). Be aware that there may be a risk of toll fraud associated with your system and that, if toll fraud occurs, it can result in substantial additional charges for your telecommu-nications services.

Avaya Fraud InterventionIf you suspect that you are being victimized by toll fraud and you need technical support or assistance, call Technical Service Center Toll Fraud Intervention Hotline at +1 800 643 2353.

Providing Telecommunications SecurityTelecommunications security (of voice, data, and/or video communications) is the prevention of any type of intrusion to (that is, either unauthorized or mali-cious access to or use of your company's telecommunications equipment) by some party.

Your company's “telecommunications equipment” includes both this Avaya product and any other voice/data/video equipment that could be accessed via this Avaya product (that is, “networked equipment”).

An “outside party” is anyone who is not a corporate employee, agent, subcon-tractor, or working on your company's behalf. Whereas, a “malicious party” is anyone (including someone who may be otherwise authorized) who accesses your telecommunications equipment with either malicious or mischievous intent.

Such intrusions may be either to/through synchronous (time-multiplexed and/or circuit-based) or asynchronous (character-, message-, or packet-based) equip-ment or interfaces for reasons of:

• Utilization (of capabilities special to the accessed equipment)• Theft (such as, of intellectual property, financial assets, or toll-facility

access)• Eavesdropping (privacy invasions to humans)• Mischief (troubling, but apparently innocuous, tampering)• Harm (such as harmful tampering, data loss or alteration, regardless of

motive or intent)Be aware that there may be a risk of unauthorized intrusions associated with your system and/or its networked equipment. Also realize that, if such an intru-sion should occur, it could result in a variety of losses to your company (includ-ing but not limited to, human/data privacy, intellectual property, material assets, financial resources, labor costs, and/or legal costs).

Your Responsibility for Your Company's Telecommunications SecurityThe final responsibility for securing both this system and its networked equip-ment rests with you - an Avaya customer's system administrator, your telecom-munications peers, and your managers. Base the fulfillment of your responsibility on acquired knowledge and resources from a variety of sources including but not limited to:

• Installation documents• System administration documents• Security documents• Hardware-/software-based security tools• Shared information between you and your peers• Telecommunications security experts

To prevent intrusions to your telecommunications equipment, you and your peers should carefully program and configure your:

• Avaya-provided telecommunications systems and their interfaces• Avaya-provided software applications, as well as their underlying

hardware/software platforms and interfaces• Any other equipment networked to your Avaya products.

Avaya National Customer Care CenterAvaya provides a telephone number for you to use to report problems or to ask questions about your contact center. The support telephone number is 1-800-242-2121.

Ordering InformationAvaya Publications Center Voice: +1 800 457 1235 International Voice: 410 568 3680 Fax: +1 800 457 1764 International Fax: 410 891 0207 Email: [email protected]

Write: GlobalWare Solutions Attention: Avaya Account Manager200 Ward Hill Avenue Haverhill, MA 01835 USA

Order: Document No. DXX-1002-03, Issue 1.0, June 2002

To order product documentation online, go to http://www.avayadocs.com, click on Online Services, and select the appropri-ate product group.

WarrantyAvaya Inc. provides a limited warranty on this product. Refer to the “Limited use Software License Agreement” provided with your package.

Avaya Web Pagehttp://www.avaya.com

TrademarksAvaya, Conversant, CustomerQ, Definity, DefinityOne, Nabnasset, Quintus, and WebQ are registered trademarks or trademarks of Avaya Inc. in the United States or other countries or both.

Portions of Avaya Interaction Center include technology used under license as listed below, and are copyright of the respective companies and/or their licen-sors:

ActivePerl is a trademark of ActiveState Tool Corp. This product includes software developed by the Apache Software Foundation (http://www.apache.org/). Cognos, Impromptu and Powerplay are registered trademarks of Cognos Incorporated. YACC++ is a registered trademark of Compiler Resources, Inc. APEX, ComponentOne, VideoSoft, True DBGrid, VSVIEW, SizerOne, VS-OCX, VSFlexGrid, VSFORUM, VSREPORTS, VSDOCX, VSSPELL, and TrueDBList are either registered trademarks or trademarks of ComponentOne LLC. CT Connect, Dialogic, Intel, and Pentium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. Hummingbird is a registered trademark of Hummingbird, Ltd. SearchServer is a trademark of Hummingbird, Ltd. RISC System/6000 and DirectTalk/2 are trademarks of International Business Machines Corporation in the United States or other countries or both. IBM, OS/2, AS/400, CICS, WebSphere, CT, VisualAge, and DirectTalk are registered trademarks of International Business Machines Corporation in the United States or other countries or both. Lotus and Lotus Sametime are trademarks or registered trademarks of Lotus Development Corporation and/or IBM Corporation in the United States, other countries, or both. VisualX is a registered trademark of Intergroup Technologies, Inc. ActiveX, Visio, Internet Explorer, Windows, Windows NT, Windows 2000, Win32s, SQL Server, Visual Basic, Visual C++, Outlook, and FrontPage are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. TimesTen is a registered trademark of TimesTen Performance Software. Oracle is a registered trademark, and Oracle8i and Oracle® SQL/Services are trademarks or registered trademarks of Oracle Corporation. Rogue Wave and .h++ are registered trademarks of Rogue Wave Software Inc. SourcePro is a trademark of Rogue Wave Software, Inc. Siebel is a trademark of Siebel Systems, Inc. BasicScript is a registered trademark of Summit Software Company. Sun, iPlanet, Java, Solaris JRE, J2EE, JavaServer Pages, and all Java-based trademarks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. SPARC is a registered trademark of SPARC International, Inc. Products bearing SPARC trademarks are based on an architecture devel-oped by Sun Microsystems, Inc. In3D is a trademark of Visual Insights, Inc. InstallShield® is a registered trademark and service mark of InstallShield Software Corporation in the United States and/or other countries. ORBacus is a trademark of IONA Technologies PLC. Formula One is a licensed trademark and Tidestone Technologies, Inc. Visual Components, First Impression, and VisualSpeller are registered trademarks of Tidestone Technologies, Inc. JRun is a trademark of Macromedia, Inc. in the United States and/or other countries. Intervoice is a registered trademark of Intervoice-Brite, Inc. UNIX is a registered trademark of The Open Group in the United States and other countries. Acrobat is a registered trademark of Adobe Systems.

Other product and brand names are trademarks of their respective owners.

AcknowledgmentThis document was written by the CRM Information Development group of Avaya

Page 3: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

3

BEFORE YOU BEGIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1 OVERVIEW. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Integration Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

IC Scripts Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Component Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Default Component Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Customization Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2 CUSTOMIZING AVAYA AGENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19The Format of the CDL File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

Setting Global Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

Specifying the Login Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

Specifying Framework IC Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Specifying the Frames in Your Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Specifying the Panes Within a Frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Specifying IC Scripts Within a Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

Specifying the Controls Within a Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Specifying IC Scripts Within a Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Specifying Avaya Agent Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Ending the Definition Sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Avaya Agent Initialization and Exit Hooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Running Avaya Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Keyboard Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3 CONTACT HANDLING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Lifecycle of a Contact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

Avaya Agent Contact Handling IC Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Screen Pop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

CONTENTS

Page 4: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

4 Avaya Agent Integrator’s Guide

Contents

4 CORE SERVICES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41Core Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

Status Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

Status States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

Status Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

Retrieving and Setting EDU Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Blender Client Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

CDL Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

IC Scripts That Make Core Services Work Together . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

5 CONTACT VIEWING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45Active Contact Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

IC Scripts That Work With the Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

CDL Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

EDU Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

The EDU Viewer GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

The XSL Stylesheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

XML Script Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

EDU Containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

EDU Lifecycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

IC Scripts That Work With the Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

CDL Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Contact History Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

MS TabStrip Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Contact History Filter Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Configuring Supporting Servers and Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Implement a Routing Engine Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

IC Scripts That Work With the Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

CDL Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

6 MEDIA CHANNELS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57The Voice Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

What is Softphone? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

Page 5: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Issue 1.0 June 2002 5

Contents

Voice Channel Terms and Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

Telephony Programming Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

IC Scripts That Work With the Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

The Web Agent Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

IC Scripts That Work With the Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

The Chat Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

Web State Event Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

IC Scripts That Work With the Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

The Email Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

Email Management Channel Terms and Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

Required Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

The Avaya Email Management Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

IC Scripts for Email Management Contact Handling . . . . . . . . . . . . . . . . . . . . . . . . . . 72

CDL Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

7 PROMPTER CLIENT INTEGRATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75Starting a Flow in a Prompter Client Instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

Flow Construction Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

IC Scripts that Work with the Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

CDL Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

8 CONTACT WRAPUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79WrapUp Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

WrapUp Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

WrapUp Process Using the WrapUp Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

IC Scripts That Work With the Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

CDL Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Prompter Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Setting the correct EDU Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Setting the Correct IC Script Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

WrapUp Process using the Prompter Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

IC Scripts That Make WrapUp Work Through Prompter Client . . . . . . . . . . . . . . . . . 83

CDL Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

Page 6: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

6 Avaya Agent Integrator’s Guide

Contents

9 OUTBOUND LIST PROCESSING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85Setting Up Outbound Calling Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

Creating an Outbound Calling List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

Checking the Status of a List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

IC Scripts That Work With the Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

10 ADDITIONAL CONTROLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

Async . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

IC Scripts That Work With the Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

CDL Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

11 SIEBEL 2000 INTEGRATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

Comparison of Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

Configuring the EDU Server for Siebel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

Configuring Customer Management for Siebel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

Configuring IC Manager – IC Web Management Administration Integration . . . . . . 95

Server-Side Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

Client-Side Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

CDL Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

IC Scripts Enabling Siebel Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

Siebel–Avaya Data Relationship . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

I: Linking of Siebel Data to Contact History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

II: Linking of Siebel Contact to Web Agent User Record . . . . . . . . . . . . . . . . . . . . . 105

III: Showing Siebel Data in the Report Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

A IC SCRIPTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107Avaya Agent IC Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

B ADDING EDU CHANGE EVENT HANDLING . . . . . . . . . . . . . . . . . . . . .109Modify Softphone_Initialize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

Page 7: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Issue 1.0 June 2002 7

Contents

Write an Event Handler IC Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

Hook the Event Handler IC Script to the Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

Test the Result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

C TROUBLESHOOTING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

Page 8: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

8 Avaya Agent Integrator’s Guide

Contents

Page 9: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

9

BEFORE YOU BEGIN

Typographical ConventionsThis guide uses the following font conventions:

Notes, Tips, and Cautions

Note: A note calls attention to important information.

Tip: A tip offers additional how-to advice.

Caution: A caution points out actions that may lead to data loss or other serious problems.

Contacting Technical SupportIf you are having trouble using Avaya software, you should:

1 Retry the action. Carefully follow the instructions in written or online documentation.

2 Check the documentation that came with your hardware for maintenance or hardware-related issues.

Font Type Meaning

code This font signifies commands, information that you enter into the computer, or information contained in a file on your computer.

italics This font is used to add emphasis to important words and for references to other chapter names and manual titles.

It also indicates variables in a command string.

jump Blue text in online documents indicates a hypertext jump to related information. To view the related material, click on the blue text.

!

Page 10: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

10 Avaya Agent Integrator’s Guide

3 Note the sequence of events that led to the problem and the exact messages displayed. Have the Avaya documentation available.

4 If you continue to have a problem, contact Avaya Technical Support by:

� Logging in to the Avaya Technical Support Web site (http://www.avaya.com/support/qq).

� Calling or faxing one of the following numbers from 8:30 a.m. to 8:30 p.m. (Eastern Standard Time), Monday through Friday (excluding holidays):� Toll free in the U.S. only: 1-888-TECH-SPT (1-888-832-4778)� Direct line for international and domestic calls: 512-425-2201� Direct line for faxes: 512-719-8225

� Sending email with your question or problem to [email protected]. You may be asked to email one or more files to Technical Support for analysis of your application and its environment.

Note: If you have difficulty reaching Avaya Technical Support through the above URL or email address, please go to www.avaya.com for further information.

Product DocumentationMost Avaya product documentation is available in both printed and online form. However, some reference material is available only online, and certain information is available only in printed form. A PDF document with detailed information about all of the documentation for the Avaya Interaction Center is included in the Doc directory on the product CD-ROM. This PDF document is also included on the separate documentation CD-ROM.

Readme File

The Readme file is an HTML file included on the Avaya Interaction Center software CD-ROM. This file contains important information that was collected too late for inclusion in the printed documentation. The Readme file can include installation instructions, system requirements, information on new product features and enhancements, suggested work-arounds to known problems, and other information critical to successfully installing and using your Avaya software. You may also receive a printed Addendum to the Readme, containing similar information uncovered after the manufacture of the product CD-ROM. You should review the Readme file and the Readme Addendum before you install your new Avaya software.

Electronic Documentation

The electronic documentation (in PDF or HTML format) for each Avaya Interaction Center product is installed automatically with the program. Electronic documentation for the entire Avaya product suite is included on the product CD-ROM and the documentation CD-ROM.

You can also view the documentation set online at http://www.avayadocs.com.

Page 11: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Educational Services

Issue 1.0 June 2002 11

Printed Documentation

You can purchase printed copies of these manuals separately. For details, see Ordering Information on the back of this manual’s title page.

License to Print the Electronic Documentation

Online copies of documentation are included on the CD-ROM that accompanies every software release. An Avaya customer who has licensed software (a “Licensee”) is entitled to make this online documentation available on an internal network or “intranet” solely for the Licensee's use for internal business purposes. Licensees are granted the right to print the documentation corresponding to the software they have purchased solely for such purposes.

Right-To-Print License Terms

Documents must be printed “as-is” from the provided online versions. Making changes to documents is not permitted. Documents may be printed only by any employee or contractor of Licensee that has been given access to the online documentation versions solely for Licensee's internal business purposes and subject to all applicable license agreements with Avaya. Both online and printed versions of the documents may not be distributed outside of Licensee enterprise or used as part of commercial time-sharing, rental, outsourcing, or service bureau use, or to train persons other than Licensee's employees and contractors for Licensee's internal business purposes, unless previously agreed to in writing by Avaya. If Licensee reproduces copies of printed documents for Licensee's internal business purposes, then these copies should be marked “For internal use only within <Licensee> only.” on the first page or cover (where <Licensee> is the name of Licensee). Licensee must fully and faithfully reproduce any proprietary notices contained in the documentation. The copyrights to all documentation provided by Avaya are owned by Avaya and its licensors. By printing any copy of online documentation Licensee indicates its acceptance of these terms and conditions. This license only governs terms and conditions of printing online documentation. Please reference the appropriate license agreement for terms and conditions applicable to any other use, reproduction, modification, distribution or display of Avaya software and documentation.

Educational ServicesAvaya University provides excellent training courses on a variety of topics. For the latest course descriptions, schedules, and online registration, you can get in touch with us:� Through the web at http://learning2.avaya.com� Over the telephone at 800-288-5327 (within the U.S.) +001 303-406-6089 (outside of the U.S.)� Through email at [email protected]

Page 12: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

12 Avaya Agent Integrator’s Guide

Page 13: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

13

CHAPTER 1OVERVIEW

Avaya Agent is a framework that can host any number of OLE controls for the agent to use.

The framework is similar to the Microsoft Windows taskbar, consisting of one or more QFrames (windows) that can be anchored to the left, right, top, or bottom of the agent’s screen. These frames contain tabbed QPanes on which the OLE controls reside.

When the agent launches Avaya Agent, his or her desktop is resized and Windows prevents other applications from using the area occupied by the Avaya Agent frames. The rest of the agent’s desktop is available for any other applications, such as Microsoft Word.

Integration TasksAs the system integrator for Avaya Agent, you will be defining the agent’s work environment by deciding what he or she will see. You need to determine:� What controls you want displayed.� What logical groups can be made from the controls—these groups will become your panes.� How many Avaya Agent QFrames you need and where they will appear.� What QPanes you want in each QFrame.� The size and position of the Avaya Agent QFrame(s), QPane(s), and controls.� How the controls interact with each other and with any application running in the desktop area,

and what IC Scripts need to be written to make that interaction happen.

Avaya Agent’s layout is written in an XML (eXtensible Markup Language) specification file called the CDL (Agent Console Definition Language) file that you modify and save to the database. When an agent logs in, the system accesses the stored layout and sets up the agent’s machine accordingly.

When you install the Avaya Agent design layouts, you select which configuration is the closest match to what you intend to implement at your company. Then you use the default CDL file as a starting point. (For details on actually changing the CDL file, see “The Format of the CDL File,” on page 19.)

Page 14: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 1 Overview

14 Avaya Agent Integrator’s Guide

The interactions between controls, and between a control and an application, is governed by a set of IC Scripts you write or modify using the VBA (Visual Basic for Applications)-based IC Script methods provided by Avaya. For details, refer to IC Scripts Language Reference.

IC Scripts OverviewIC Scripts are VBA (Visual Basic for Applications)-based subroutines that can be run either explicitly or when an event is raised. Events can be raised by:� Controls.� Framework events such as pane activation or deactivation. (For a complete list of events, refer

to IC Scripts Language Reference.)� Mouse clicks.� Key clicks.

These subroutines can do almost anything, from displaying an alert for the agent to saving information into the database. For a complete list of Avaya-specific methods you can use in your IC Scripts, and a general overview of how IC Scripts should be written, refer to IC Scripts Language Reference.

Component OverviewComponents are made up of a control (or group of controls) and the corresponding IC Scripts used to integrate the control(s) into Avaya Agent. Out-of-the-box, Avaya Agent has several different types of components. The following section lists the types of components and gives a brief description of what those components are.

Core Services: This component is the basis for the Avaya IC environment. It must be in place before any Media Channel can be integrated.

Media Channels: These are components used for handling media contacts in Avaya Agent. The following are included in Avaya Agent:� Voice: Voice is provided through the Softphone, which is an electronic interface to an agent's

phone that controls all the standard telephony functions. It includes:� Telephony aware buttons that support various operations such as answer call, hang up, and

make call.� Informational fields that can display the agent or phone state.� A call list that shows all active lines.� A dial directory.

� Email: Allows Customer Service Representatives (CSRs) to view and respond to email messages that come into the call center.

� Chat: Allows CSRs to interact with contacts that come into the call center via Chat through the Web Agent Client.

Page 15: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Component Overview

Issue 1.0 June 2002 15

Contact Viewing: These components can be used in conjunction with one or more Media components. The following are the Contact Viewing components included in Avaya Agent:� EDU Viewer: A GUI interface to the information contained in an Electronic Data Unit (EDU)

that is associated with every contact.� Contact History Browser, Contact History Filter, and Active Contact Viewer: Allows CSRs to

view all historical contacts for a given contact.

Contact Wrapup: These are components that are used for wrapping up contacts across any media:� Wrapup Dialog Control. A dialog box that appears when a contact is completed that requests

wrapup information from the agent.

Standalone: These are components which can be used by themselves or with others. The following are included in Avaya Agent:� PrompterClient: PrompterClient is a component used for running Prompter Flows in Avaya

Agent. � Outbound List Processing: Enables agents to call a pre-selected list of customers and view

customer information while they're doing so (this feature requires the CallCenterQ or List Management Business Application).

Note: If desired, you can gather wrapup information using a Prompter script instead of the wrapup dialog control.

Page 16: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 1 Overview

16 Avaya Agent Integrator’s Guide

Default Component Layout

The following drawing shows the location of components in the out-of-the-box Avaya Agent layout:

Customization StepsThe Avaya Agent interface developer should complete the following tasks to produce a functioning contact center application:

1 Design the general flow of the interface based on the components described in this manual.

2 Mock up the interface: location, customizable components and application.

Page 17: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Customization Steps

Issue 1.0 June 2002 17

3 Review the avaya_agent_en.cdl found in <IC_install_dir>\IC60\design\qconsole for items to alter. This file is created during installation. Modify or remove items based on your design.

4 Modify those IC Scripts which interact with the components you have customized. You would use IC Scripts to perform activities triggered by events in the Avaya Agent interface. Refer to IC Scripts Language Reference for more information.

5 Design Workflow and Prompter scripts using Workflow Designer. In general, you use these scripts to enforce business rules. You may use workflows to control the flow of contacts entering your contact center. Prompter scripts are used to prompt and direct responses from agents in different scenarios. For more information, see Avaya Workflow Designer Guide.

6 Save both modified IC Scripts and avaya_agent_en.cdl to the application database via Database Designer. For more information, refer to IC Database Designer Application Reference.

Page 18: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 1 Overview

18 Avaya Agent Integrator’s Guide

Page 19: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

19

CHAPTER 2CUSTOMIZING AVAYA AGENT

As discussed in Chapter 1, Avaya Agent consists of one or more frames whose size, position, and contents you specify using a CDL file written in XML. In those frames, you can include one or more panes, and each of those panes can have one or more controls embedded in it.

During the Avaya Agent designer install, the default CDL file is saved in <IC_install_dir>\IC60\design\QConsole\avaya_agent_en.cdl.

You can edit CDL file using any text or XML editor, and then save it to the database using Database Designer. (For details, refer to IC Database Designer Application Reference.)

The Format of the CDL FileThe CDL file is built from a series of tags. Some tags affect the application as a whole, while others apply to just one pane or control. The file has a nested structure; each section starts with a beginning tag and ends with a closing tag. The basic structure looks like this:

Start QConsoleLogin optionsAvaya Agent propertiesIC Script FilesFramework IC ScriptsFrame 1Pane 1 in Frame 1IC Scripts for a paneControls in the pane

IC Scripts for the controlEnd Controls

End Pane 1Pane 2 in Frame 1IC Scripts for a paneControls in the pane

IC Scripts for the controlEnd Controls

End Pane 2End Frame 1Frame 2... Pane, IC Script, and Control definitions ...

End Frame 2End QConsole

Page 20: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 2 Customizing Avaya Agent

20 Avaya Agent Integrator’s Guide

The available tags are described below. To see examples of how the out-of-the-box version of Avaya Agent looks and functions when you put the entire system together, refer to Avaya Agent User’s Guide.

Note: All CDL tags have the format <tagname ...attributes...> [optional intermediate tags] </tagname> to show the start and end points for each tag. If a tag is only one line long, however, you can also use the format <tagname ...attributes... /> to designate the start and end of a tag instead of using the full </tagname>.

Setting Global Options

The first section in the CDL file lets you set the global options for Avaya Agent.

<QConsole> ... </QConsole>

Description The QConsole tag lets you set global Avaya Agent attributes.

Syntax <QConsole Name="Name" Version="Version" Description="Description">...rest of the QConsole definition statements...

</QConsole>

Example <QConsole Name="outboundlists" Version="6.0" Description="QConsole Spec containing List Management">

Specifying the Login Dialog

This section lets you specify which controls require login information and what information they need. It is built from a series of tags that get increasingly more specific, and there is a cumulative example after the QField tag to show what they look like when put together.

For a detailed description of the login process, see “Avaya Agent Initialization and Exit Hooks,” on page 32.

Attribute Value Description

Name Any text string The case-sensitive name of the CDL layout in the database. Each layout must have a unique name.

Version Any text string The version number so you can keep track of changes.

Description Any text string A description of the layout that should indicate what the layout is used for.

Page 21: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

<QLogin> ... </QLogin>

Issue 1.0 June 2002 21

<QLogin> ... </QLogin>

Description The QLogin tag lets you specify which components need login information.

Syntax <QLogin>...rest of the QLogin section statements...

</QLogin>

<QComponentDictionary> ... </QComponentDictionary>

Description The QComponentDictionary tag is a wrapper around all the components that require login information.

Syntax <QLogin><QComponentDictionary>...QComponent definition statements...

</QComponentDictionary></QLogin>

<QComponent> ... </QComponent>

Description The QComponent tag provides a tab name that will be used for a specific component and becomes a wrapper around the login fields. You may add QField tags within this tag; these fields will be added to the first Avaya Agent Login tab.

Syntax <QLogin><QComponentDictionary>

<QComponent Name="Name" Visible="Visible">...field definitions...

</QComponent></QComponentDictionary>

</QLogin>

<QField> ... </QField>

Description The QField tag lets you specify what login fields to display for a specific component.

Syntax <QLogin>

<QComponentDictionary><QComponent Name="sName">

Attribute Value Description

Name Any text string The name of the component. This name is displayed as the tab name in the Avaya Agent Login dialog box.

Visible “True” or “False” Whether the component is visible or not. Default: True.

Label Any text string This is the name that is displayed in the tab of the login.

Page 22: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 2 Customizing Avaya Agent

22 Avaya Agent Integrator’s Guide

<QField Label="Label" Space="Space" Password="Password" /></QComponent>

</QComponentDictionary></QLogin>

Example <QLogin><QComponentDictionary><QComponent Name="Application"><QField Label="Login ID:" Space="0" Password="FALSE" /><QField Label="Password:" Space="0" Password="TRUE" />

</QComponent></QComponentDictionary>

</QLogin>

<QPropertyDictionary> ... </QPropertyDictionary>

Description The QPropertyDictionary tag begins and ends the name/value pair definition section.

Syntax <QPropertyDictionary>

...name/value statements...</QPropertyDictionary>

<QSection> ... </QSection>

Description The QSection tag lists the name/value pair (or pairs) you want to set for a given section. (You can think of each QSection as the equivalent of an application Preferences section, where functionally-related properties are grouped together under a common header.)

Attribute Value Description

Label Any text string The field label.

Space Any integer The number of blank lines to leave between the label and the input field.

For example, to have the input field on the same line as the label, you would use Space="0" (zero). To have it on the following line, use Space="1" (one). Default: Space="0"

Password “True” or “False” Whether this field is a password. If this is set to True, Avaya Agent replaces the user’s input with asterisks (*). Default: False.

Page 23: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

<QScriptFileDictionary> ... </QScriptFileDictionary>

Issue 1.0 June 2002 23

Syntax <QPropertyDictionary><QSection Name="Name" sPairName="Value" [sPairName="Value"sPairName="Value" ... sPairName="Value"]>

</QSection></QPropertyDictionary>

Example <QPropertyDictionary>

<QSection Name="General" HasApp="False" HasSoftphone="False"/><QSection Name="Application" CommandLine=""/><QSection Name="Softphone" ACD="False"/>

</QPropertyDictionary>

Specifying Framework IC Scripts

The next two sections are the:� QScript File Dictionary, which is the collection of files in which the Avaya Agent IC Scripts

are stored.� QScript Dictionary, which specifies what IC Scripts are to be run at the main Avaya Agent

hook points. (For details, refer to IC Scripts Language Reference.)

<QScriptFileDictionary> ... </QScriptFileDictionary>

Description The QScriptFileDictionary tag begins and ends the list of files that contain the Avaya Agent IC Scripts.

Syntax <QScriptFileDictionary>...IC Script files...

</QScriptFileDictionary>

<QScriptFile> ... </QScriptFile>

Description The QScriptFile tag lists gives the name of an IC Script and specifies what file it is in. The file attribute is that file name you open in Database Designer and save to the database. You should have a <QScriptFile> definition for each IC Script that your Avaya Agent application will run.

Syntax <QScriptFileDictionary><QScriptFile Name="Name" File="File"></QScriptFile>

</QScriptFileDictionary>

Attribute Value Description

Name Any text string The name of the section whose name/value pairs you want to set.

PairName Any text string The name portion of the name/value pair.

Value Any text string The value portion of the name/value pair.

Page 24: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 2 Customizing Avaya Agent

24 Avaya Agent Integrator’s Guide

Example <QScriptFileDictionary><QScriptFile Name="QConsole_BeforeLogin" File="qconsole.qsc"/><QScriptFile Name="QConsole_Login" File="qconsole.qsc"/><QScriptFile Name="QConsole_AfterLogin" File="qconsole.qsc"/><QScriptFile Name="QConsole_BeforeExit" File="qconsole.qsc"/><QScriptFile Name="QConsole_Exit" File="qconsole.qsc"/><QScriptFile Name="QConsole_MouseDown" File="qconsole.qsc"/><QScriptFile Name="QConsole_KeyDown" File="qconsole.qsc"/><QScriptFile Name="LM_BeforeNavigate2" File="listmanagement.qsc"/>

</QScriptFileDictionary>

<QScriptDictionary> ... </QScriptDictionary>

Description The QScriptDictionary tag begins and ends the list of hooks that will launch IC Scripts. You need to specify a separate QScriptDictionary section for the framework as whole as well as for each pane and each control that uses IC Scripts.

Syntax <QScriptDictionary>...IC Script hooks...

</QScriptDictionary>

<QScript> ... </QScript>

Description The QScript tag gives a hook and the associated IC Script.

Syntax <QScriptDictionary>

<QScript Hook="Hook" [Key="Key"] Name="QScriptName"> </QScript></QScriptDictionary>

Attribute Value Description

Name Any text string The name of the IC Script.

File Any text string The file name in which the IC Script resides. This can be a fully qualified file name, or a name relative to the directory in which the CDL layout (the one that you open in Database Designer and compiled) is stored. Default is relative to the CDL layout directory.

Page 25: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

<QFrameDictionary> ... </QFrameDictionary>

Issue 1.0 June 2002 25

Example This example shows the QScript Dictionary for the framework. Examples of pane and control dictionaries can be found in those sections.

<QScriptDictionary><!-- Keyboard Accelerator Definitions for Avaya Agent--><QScript Hook="KeyDown" Key="Alt+A" Name="QConsole_KeyDown"/><QScript Hook="KeyDown" Key="Alt+C" Name="QConsole_KeyDown"/><QScript Hook="KeyDown" Key="Alt+D" Name="QConsole_KeyDown"/><QScript Hook="KeyDown" Key="Alt+H" Name="QConsole_KeyDown"/><QScript Hook="KeyDown" Key="Alt+N" Name="QConsole_KeyDown"/><QScript Hook="KeyDown" Key="Alt+O" Name="QConsole_KeyDown"/><QScript Hook="KeyDown" Key="Alt+P" Name="QConsole_KeyDown"/><QScript Hook="KeyDown" Key="Alt+R" Name="QConsole_KeyDown"/><QScript Hook="KeyDown" Key="Alt+S" Name="QConsole_KeyDown"/>

</QScriptDictionary>

Specifying the Frames in Your Application

The next sections define the frames that will appear in Avaya Agent. You need one QFrame definition within this section for each frame in the application. You can have up to four frames.

<QFrameDictionary> ... </QFrameDictionary>

Description The QFrameDictionary tag begins and ends the list of frames.

Syntax <QFrameDictionary>

...Frame definition statements...</QFrameDictionary>

<QFrame> ... </QFrame>

Description The QFrame tag begins and ends each frame definition section.

Syntax <QFrameDictionary>

Attribute Value Description

Hook A text string The name of the hook point at which you want the IC Script to run.

Key (optional) Any key or a combination using:Alt+<any key>Ctrl+<any key>Shift+<any key>

The key or key combination that runs the script specified in Name.

This is an optional parameter that is only used when the IC Scripts are being associated with a pane.

QScriptName A text string The name of the IC Script you want to run.

Label Any text string This is the name that is displayed in the GUI

Page 26: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 2 Customizing Avaya Agent

26 Avaya Agent Integrator’s Guide

<QFrame Name="sName" [Width="Width"|Height="Height"] Orientation="Orientation" Visible="Visible">

.... Pane and control definition statements ....</QFrame>

</QFrameDictionary>

Example <QFrameDictionary><QFrame Name="Right_Frame" Width="200" Orientation="RIGHT" Visible="TRUE">.... Pane and control definition statements ....

</QFrame></QFrameDictionary>

<QStartMenu> ... </QStartMenu>

Description The QStartMenu tag controls whether there is a Start menu button in the frame.

Syntax <QStartMenu Visible="Visible"> </QStartMenu>

Example <QStartMenu Visible="True" />

Attribute Value Description

Name Any text string The name of the Avaya Agent frame.

Width or Height A numeric value If the orientation is Left or Right, use the Width attribute to specify the width in pixels.

If the Orientation is Top or Bottom, use the Height attribute to specify the height in pixels.

Orientation "Left", "Right", "Top", or "Bottom"

Where the frame is anchored on the user’s desktop.

Visible “True” or “False” Whether the frame is visible. If not, none of the entities it contains will be created and none of its associated IC Scripts will be pushed to the database.Default: True.

Label Any text string This is the name that is displayed in the GUI

Attribute Value Description

Visible “True” or “False” Whether the Avaya Agent menu is visible or not.Default: True.

Note: If all frames have the QStartMenu tag set to false, or the tag is not defined for any Avaya Agent frame, then the application forces QStartMenu="True" for the first visible frame defined in the CDL file.

Page 27: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

<QTab> ... </QTab>

Issue 1.0 June 2002 27

<QTab> ... </QTab>

Description The QTab tag controls what the tabs for Avaya Agent look like.

Syntax <QTab Wrap="Wrap" Appearance="Appearance"> </QTab>

Example <QTab Wrap="True" Appearance="Buttons"> </QTab>

Specifying the Panes Within a Frame

The next section is the Pane Dictionary that collects all the panes that are part of Avaya Agent. For each pane, you specify its name and the IC Scripts that should run at different points during execution. After you specify the IC Scripts, you create a Control Dictionary that lists the OLE controls in the pane. (For more information, see “Specifying the Controls Within a Pane,” on page 29.)

<QPaneDictionary> ... </QPaneDictionary>

Description The QPaneDictionary tag begins and ends the list of panes in the given frame.

Syntax <QPaneDictionary>

...Pane definition statements...</QPaneDictionary>

<QPane> ... </QPane>

Description The QPane tag begins and ends each pane definition section. If you want to keep this pane in the CDL file for reference or future use, set the Visible option to False and it will be ignored when the CDL file is compiled.

Attribute Value Description

Wrap “True” or “False” Whether the tabs should wrap if they are longer than the pane is wide.

If this is set to False and they do not fit on one row, the application adds a scroll bar to the frame.

Default: True.

Appearance "Tabs" or "Buttons" Whether the tab names look like standard tabs or buttons.

Default: Tabs.

Page 28: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 2 Customizing Avaya Agent

28 Avaya Agent Integrator’s Guide

Syntax <QPaneDictionary><QPane Name="Name" Label=”Label” Visible="Visible"> .... Control definition statements ....

</QPane></QPaneDictionary>

Example <QPaneDictionary><QPane Name="List Management" Label=”” Visible="True">.... Control definition statements ....

</QPane></QPaneDictionary>

Specifying IC Scripts Within a Pane

You can specify the IC Scripts within a pane using a QScript Dictionary section exactly the same as the one described for the framework on page 24.

The following is an example of this dictionary for a pane:

<QPaneDictionary>

<QPane Name="List Management" Visible="True">

<QScriptDictionary><QScript Hook="MouseDown" Name="QConsole_MouseDown" /><QScript Hook="KeyDown" Key="Alt+N" Name="QConsole_KeyDown" /><QScript Hook="KeyDown" Key="Alt+P" Name="QConsole_KeyDown" /><QScript Hook="KeyDown" Key="Alt+D" Name="QConsole_KeyDown" /><QScript Hook="KeyDown" Key="Alt+C" Name="QConsole_KeyDown" />

</QScriptDictionary>... Control definition statements

</QPane></QPaneDictionary>

Attribute Value Description

Name Any text string The name of the Avaya Agent pane.

This name must be unique between all panes in a given frame because IC Script methods use the name to identify the pane.

You can, however, have two panes with the same name if they are in different frames.

Label Any text string The label that Avaya Agent displays on the pane in the client GUI.

If this field is omitted or set to Label=””, Avaya Agent uses the Name attribute as the label.

Visible “True” or “False” Whether the pane is visible. If not, it will not be created and any associated IC Scripts will not be pushed to the database.Default: True.

Page 29: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

<QControlDictionary> ... </QControlDictionary>

Issue 1.0 June 2002 29

Specifying the Controls Within a Pane

The next section is the Control Dictionary. You need one control dictionary section for each pane named above. This section is also where you specify what IC Scripts will run in response to events raised by the control. When you are setting up the control dictionary, you need to determine what events might be raised and how you want to handle them. Make sure that the event names you use match exactly with the names that the control uses.

<QControlDictionary> ... </QControlDictionary>

Description The QControlDictionary tag begins and ends the list of controls in the given pane.

Syntax <QControlDictionary>...Control definition statements...

</QControlDictionary>

<QControl> ... </QControl>

Description The QControl tag begins and ends each control definition section. If you want to keep this control in the CDL file for reference or future use, set the Visible option to False and it will be ignored when the CDL file is compiled.

Syntax <QControlDictionary><QControl Name="Name" ProgId="ProgID" Left="Left" Top="Top" Width="Width" Height="Height" Visible="Visible"> .... QScript definition statements ....

</QControl></QControlDictionary>

Attribute Value Description

Name Any text string The name of the control. This name must be unique no matter what pane or frame the control appears in.

ProgId Any text string The ProgID of the OLE control. (You can find this name in the documentation for the control.)

Left A numeric value, in pixels

The location of left-hand edge of the control, relative to the left edge of the pane (the X coordinate).

Top A numeric value, in pixels

The amount of space between the top of the pane and the top of the control (the Y coordinate)

Width A numeric value, in pixels

The width of the control in pixels.

Page 30: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 2 Customizing Avaya Agent

30 Avaya Agent Integrator’s Guide

Example <QControlDictionary>

<QControl Name="LM_WebBrowser" ProgID="Shell.Explorer" Left="2"

Top="2" Width="185" Height="709">

... QScript Definitions ...</QControl>

</QControlDictionary>

Specifying IC Scripts Within a Control

You can specify the IC Scripts within a control using a QScript Dictionary section exactly the same as the one described for the framework on page 24. IC Scripts can be attached to application events to override or add to the default action, or to implement business rules.

You can use IC Scripts with Avaya Agent:� To pop a message when an agent is assigned a phone call or email.� To determine which requests should get routed to which agents or queues.� If Avaya Agent is running with CallCenterQ, to bring up the contact's record in the

CallCenterQ application when the agent takes ownership of the contact.� To store information entered by the agent into the Avaya Agent database.

For information on creating, editing, and debugging IC Scripts, as well as information on how to save your IC Scripts to the database, refer to IC Database Designer Application Reference.

For information on the available IC Script methods and the event hooks that you can associate with IC Script programs, refer to IC Scripts Language Reference.

The following is an example of this dictionary for a control:

QControlDictionary><QControl Name="LM_WebBrowser" ProgID="Shell.Explorer" Left="2" Top="2" Width="185" Height="709"><QScriptDictionary><QScript Event="BeforeNavigate2" Name="LM_BeforeNavigate2" />

</QScriptDictionary></QControl>

</QControlDictionary>

Height A numeric value, in pixels

The height of the control in pixels.

Visible “True” or “False” Whether the control is created. If not, the control is not used and the associated IC Scripts are not pushed to the database.

Label Any text string This is the name that is displayed in the GUI

Attribute Value Description

Page 31: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

<QControl> ... </QControl>

Issue 1.0 June 2002 31

Specifying Avaya Agent Properties

This section lets you specify name/value pairs that can be used by the IC Scripts associated with Avaya Agent.

The following table describes the IC Manager Properties that are used by Avaya Agent. For more information on setting properties, see IC Administration Volume 2: Agents, Customers, & Queues.

Section Description

Agent/Desktop This section contains the Agent's Desktop settings applicable to IC Agent.

Agent/Desktop/BlendingMode This section contains properties for defining how Blending Mode works in the Agent’s Desktop.

Agent/Desktop/ContactSuspension This section contains properties for defining how Contact Suspension works in the Agent's Desktop.

Agent/Desktop/Directory This section contains properties for defining the behavior of the Directory in the Agent's Desktop.

Agent/Desktop/Directory/SkillProficiency This section contains Skill Proficiency-specific properties of the Directory in the Agent's Desktop.

Agent/Desktop/Directory/Voice This section contains Voice-specific properties of the Directory in the Agent's Desktop.

Agent/Desktop/Email This section contains email specific properties of the agent's desktop.

Agent/Desktop/Email/AlertInfo/REQ This section contains properties for to the Alert Info to be set for Emails sent to a Customer requiring more info from the Agent's Desktop.

Agent/Desktop/Email/AlertInfo/SME This section contains properties for the Alert Info to be set for Emails sent to a Subject Matter Expert from the Agent's Desktop.

Agent/Desktop/Layout This section contains properties for associating a Console layout to a workgroup/agent

Agent/Desktop/Prompter This section contains properties for defining the behavior of the Prompter in the Agent's Desktop.

Agent/Desktop/ScreenPop This section contains properties for defining how Screen Pops work in the Agent's Desktop.

Agent/Desktop/Softphone This section contains properties for defining the behavior of the Softphone in the Agent's Desktop.

Agent/Desktop/WAC This section contains properties for defining the behavior of the Web Agent Client in the Agent's Desktop.

Agent/Desktop/WrapUpDialog This section contains properties for defining the behavior of the WrapUp Dialog in the Agent's Desktop.

Page 32: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 2 Customizing Avaya Agent

32 Avaya Agent Integrator’s Guide

Ending the Definition Sections

When you are done defining the components in this pane, and then in Avaya Agent, you end all the definition sections.

</QPane>

</QPaneDictionary>

</QFrame>

</QFrameDictionary>

</QConsole>

Avaya Agent Initialization and Exit HooksThe following flowchart shows the process when an agent logs into, and eventually out of, Avaya Agent. From this flowchart, you can tell when the main IC Scripts hooks are run.

Page 33: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Running Avaya Agent

Issue 1.0 June 2002 33

After the agent has successfully logged into the database and before Avaya Agent downloads the CDL layout file specified on the command line, Avaya Agent tries to execute the IC Script AfterLoginHook. If this IC Script exists, Avaya Agent waits for the IC Script to run. Out-of-the-box, this IC Script is used to read the Agent/Desktop/Layout property value, and, if needed, set into the SApplication.Layout property. When you change this property, it overrides the CDL file specified on the command line based on whatever parameters you choose. For details about adding layouts to the database, refer to IC Database Designer Application Reference.

After the determination of which layout to use, Avaya Agent compares the database layout's modified time with the layout file cached on the agent’s machine. If the database version is newer, the new layout is retrieved and the agent is required to re-log in to any components specified in the Login section of the new CDL.

Note: It does not matter where the changes actually are in the CDL file—the agent must log in every time a new CDL file is retrieved from the database.

When the agent has successfully logged in, Avaya Agent proceeds to initialize the applications. If found, it runs the InitAppHook IC Script in the <application>.qsc file before it initializes and displays the Avaya Agent controls and logs into the other components specified in the CDL.

Finally, when the agent selects Exit, Avaya Agent runs the ExitAppHook IC Script in the <application>.qsc file. You can use this IC Script to ensure that agents have wrapped up all open contacts before they can exit the application.

For details about writing IC Scripts and a complete list of the events emitted by the Avaya Interaction Center, refer to IC Scripts Language Reference. For a complete listing of IC Scripts used by Avaya Agent, and general CDL settings, see Appendix A, “IC Scripts”

Running Avaya AgentWhen you have created your CDL file(s) and IC Scripts, you save them to the database as described in the IC Database Designer Application Reference. When they are uploaded, you can have your agents access them by setting up a shortcut for each agent using the command line arguments described below. Note that shortcut keys only work when Avaya Agent has the focus, not when the customer application is focused.

Page 34: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 2 Customizing Avaya Agent

34 Avaya Agent Integrator’s Guide

When you set up shortcuts for your agents, you can specify the following command line arguments:

Note: For a description of ADL files, refer to IC Database Designer Application Reference.

Keyboard NavigationIn addition to any keyboard shortcuts you have defined for a pane, Avaya Agent includes these standard shortcut keys:

Parameter Value Description

-d[irectory] "file_location" Directory where the temporary files that are downloaded from the database are kept. If this entry is not mentioned the files go to the system temp directory.

-n[ame] "datasource_name" Name of the datasource mentioned in ICManager. This information is put in the Datasource field of the login dialog.

-x[connectionset] "connection_set" If you need to override the default connection set named in the ADL file, you can specify the name of a different connection set to use. ***NOT USED***

-u[ser] "loginname" Login name of the user. If this parameter is specified along with the -p option, Avaya Agent will login automatically.

-p[assword] "password" Login password. If this parameter is specified along with the -u option, Avaya Agent will login automatically.

-layout "layout_name" The database name of the Avaya Agent layout spec to use when the agent logs into Avaya Agent. This name may be case sensitive depending on the database you are logging into. This parameter overrides the entry for the agent property (Under “Agent/Desktop” Layout property has to be set)

Key Function

F6 Navigate between QFrames.

<ctrl Tab> Navigate between tabbed QFrames, and the Avaya Agent button if there is one in the currently active pane.

Tab, <shift Tab> Navigate between controls.

Page 35: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

35

CHAPTER 3CONTACT HANDLING

As described in Chapter 1, the out-of-the-box Avaya Agent layout has separate components for handling different types of media contacts. When they are integrated into the design, however, Avaya Agent treats all contacts uniformly so you can set up a single strategy that can be applied to any and all media components.

This chapter describes the way contacts are handled, and discusses the Avaya Agent IC Scripts that you could use to integrate a new media channel if necessary.

Lifecycle of a ContactThe following diagram outlines the lifecycle of a contact within Avaya Agent:

** For more information, see Chapter 8, “Contact Wrapup”.

Page 36: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 3 Contact Handling

36 Avaya Agent Integrator’s Guide

The diagram above shows that any media channel can be integrated with Avaya Agent if it emits events when a contact:� comes in.� is selected.� is finished.

Because all contacts are handled through IC Scripts, changing the contact handling behavior can be done easily and uniformly.

Avaya Agent Contact Handling IC ScriptsIn this section we will take a look at the IC Scripts that are used for handling contacts in Avaya Agent. The first of these IC Scripts is QConsole_AddContact.

QConsole_AddContact is run from a Event Handler of an incoming contact. It performs the following functions:

1 It activates the Avaya Agent Contact tab so information about the incoming contact can be displayed.

2 It adds the information needed for handling the contact to the contact’s EDU. This information includes things like media type, screen pop values, customer key information, and contact labeling.

3 It adds the contact to an internal store of contacts via ContactList_Add. This will be used later for accessing information about all contacts in Avaya Agent.

4 If there is only one contact in Avaya Agent and Screen Pop is enabled, it performs a screen pop. (For details, see “Screen Pop,” on page 37.)

5 It adds the contact to the EDU Viewer. (For details, see “EDU Viewer,” on page 46.)

6 Finally, it adds the contact to the Contact History Browser.

Multiple contacts can be added to Avaya Agent using QConsole_AddContact. While the contact is still active in Avaya Agent, the information about the contact remains in the Contact Tab.

You can use QConsole_ShowContact to select a contact within one media, or to change to a contact in a different media. QConsole_ShowContact automatically refreshes any components displaying information about the newly-selected contact. In the out-of-the-box layout, this includes both the EDU Viewer and Contact History Browser.

When it comes time to close, or wrap up, a contact, you can use the QConsole_WrapContact IC Script. Out-of-the-box, there are two different means of performing Contact WrapUp; through the WrapUp Dialog or Prompter. (For details, see Chapter 8, “Contact Wrapup”). When the WrapUp Process is completed, then the QConsole_CompleteContact IC Script performs any logic necessary to “finish-up” the contact. At the end of QConsole_CompleteContact, QConsole_RemoveContact removes information about the contact from the components in Avaya Agent, including the EDU Viewer and Contact History Browser.

Page 37: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Avaya Agent Contact Handling IC Scripts

Issue 1.0 June 2002 37

Screen Pop

This section provides an overview of how information about contacts coming into Avaya Agent is shown in the application. An application can retrieve relevant customer information for display on an agent’s desktop just as a customer’s contact arrives. This display of customer information is usually referred to as a screen pop.

As described above, when a contact comes into Avaya Agent, QConsole_AddContact is run. In this IC Script, based on information in the EDU and type of contact, more information is put into the EDU so that a screen pop can be performed at any time. If the contact is associated with a known customer, then this information is the customer record’s key. If not, then it is the identifier for the customer specific to the media the contact came in on.

When a screen pop is done, Avaya Agent uses an IC Script called QConsole_PerformScreenPopFromEDU. This IC Script uses the information put into the EDU by QConsole_AddContact, then runs the ScreenPop IC Script.

ScreenPop performs the following steps:

1 Gets the Focus.

2 Gets the Tab.

3 Gets the Group.

4 Gets the Active Browser from the Group.

5 Sets QBE on the Table associated with the Group.

6 If applicable, puts the screen pop value into the Group.

7 Searches the Active Browser.

Each <appname>.qsc contains a ScreenPop IC Script. The following is an example of that IC Script (taken from CallCenterQ) and is executed when a screen pop is needed in the application.

'*************************************************************************'Script: ScreenPop'Purpose: Executed when a Screen Pop is needed in Application'Copyright: Copyright(c) 1997 - 2002 Avaya Inc,USA All rights Reserved'*************************************************************************'---------------------------------------------------------------------------' Global Constants, Types, and Variables for this IC Script'---------------------------------------------------------------------------'Following are Media Type ConstantsConst MT_VOICE = "voice"Const MT_EMAIL = "email"Const MT_CHAT = "chat"

'---------------------------------------------------------------------------' IC Script API Declarations'---------------------------------------------------------------------------

'---------------------------------------------------------------------------

Page 38: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 3 Contact Handling

38 Avaya Agent Integrator’s Guide

' Internal Subs & Functions'---------------------------------------------------------------------------

'---------------------------------------------------------------------------' Main'---------------------------------------------------------------------------Sub ScreenPop(sType As String, sTargetValue As String)Dim iApp As ApplicationDim iFocus As SFocusDim iNetwork As DBNetworkDim iForm As SForm Dim iBrowser1 As DBBrowserDim iTable1 As DBTableDim iGroup1 As SGroup

Dim CCQ_FOCUS As String, CCQ_FORM As StringDim CCQ_RELATION1 As StringDim CCQ_GROUP1 As StringDim CCQ_TABLE1 As StringDim CCQ_FIELD1 As String

Dim sFormattedValue As String

On Error GoTo ERROR_HANDLER'------------------- GUI ------------------------------

Set iApp = GetApp()

CCQ_GROUP1 = "customer"CCQ_TABLE1 = "customer"

' Based on the type of Screen Pop select the field and pre-format the valueSelect Case LCase(sType)

Case "customer_key"CCQ_FIELD1 = "pkey"sFormattedValue = sTargetValue

Case MT_VOICECCQ_FIELD1 = "phone"sFormattedValue = Format(sTargetValue, "(###) ###-####")

Case MT_EMAILCCQ_FIELD1 = "email"sFormattedValue = sTargetValue

Case MT_CHATCCQ_FIELD1 = "loginid"sFormattedValue = sTargetValue

Case ElseExit Sub

End Select

' Based on the App we will determine where to pop toSelect Case LCase(iApp.Name)

Case "ccq_request", "ccq_cr_request"

Page 39: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Avaya Agent Contact Handling IC Scripts

Issue 1.0 June 2002 39

CCQ_FOCUS = "Agent"CCQ_FORM = "request"CCQ_RELATION1 = "r_customer"

Case "ccq_contact", "ccq_cr_contact"CCQ_FOCUS = "Agent"CCQ_FORM = "contact"CCQ_RELATION1 = "r_customer"

Case "salesq"CCQ_FOCUS = "Lead Qualify"CCQ_FORM = "leadqualify"CCQ_RELATION1 = "r_leadcustomer"

Case ElseCCQ_FOCUS = "Agent"CCQ_FORM = "customer"CCQ_RELATION1 = "r_customer"

End Select

'Get a clear focusSet iFocus = iApp.GetClearFocus(CCQ_FOCUS)If iFocus Is Nothing Then Exit Sub

'Get the Form, Network and TablesSet iForm = iFocus.GetForm(CCQ_FORM)Set iNetwork = iFocus.Network()Set iTable1 = iNetwork.GetTable(CCQ_TABLE1)

'Clear this formiForm.Clear

'Set values into the GUI (if available)Set iGroup1 = iForm.GetGroup(CCQ_GROUP1)

If Not Len(iGroup1.GUIName(CCQ_FIELD1)) = 0 Then _iGroup1.SetValue iGroup1.GUIName(CCQ_FIELD1), sFormattedValue

'Get all the BrowsersSet iBrowser1 = iGroup1.GetActiveDBBrowser

'Set the search constraints (on DCO)iTable1.QBESetValue CCQ_FIELD1, "=" & sFormattedValue

'Now do the actual search iBrowser1.Search CCQ_RELATION1, QW_DCO_FILL_BOTH

'Clear the QBE data for future search by GUI or anything elseiTable1.QBEClear

'Show the formiFocus.ShowForm iForm.Name

Exit Sub

ERROR_HANDLER:iApp.UserMsg "ScreenPop error " & CStr(Err) & ": " & Error$, ebCritical

End Sub

Page 40: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 3 Contact Handling

40 Avaya Agent Integrator’s Guide

Page 41: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

41

CHAPTER 4CORE SERVICES

The Core control, the Status control, and the Blender Client control make up the core services for Avaya Agent. This chapter discusses each of these controls in detail.

For a description of the APIs for these controls, refer to Avaya Agent Control API Reference.

Core ControlThe Core control is the pivotal point of all contact handling within Avaya Agent. The main responsibility of Core is to provide EDU access to all Media Engines and IC Scripts in Avaya Agent. This control is part of the Phone Engine.

Status ControlThe Status control is used to change the status of multimedia channels and shows a visual indication of that status in Avaya Agent. It interacts with the invisible QBlenderClient control, which performs the majority of the processing, and QCore services. Optionally, it may interact with the Async control to provide status information of a long-running operation external to Avaya Agent. Such an operation may be an OLE Automation function, for example to perform a screen pop using CallCenterQ.

Status States

There are three states the Status control can be in:

State Description

available The Agent is available to be assigned tasks in one or more channels.

auxwork The Agent is not available to work on any tasks in any channel. (This is denoted by red Xs over the Agent and channel icons.)

init auxwork The Agent has requested a transition from Available to Unavailable, but there are still open tasks that must be wrapped up before the transition can be completed. (This is denoted by a grey X over the Agent icon.)

outbound agent is available to handle outbound contacts.

Page 42: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 4 Core Services

42 Avaya Agent Integrator’s Guide

Similarly, each channel control can be in one of three states:

Status Modes

There are two modes of operation in the Status Control, automatic and manual. In automatic mode, the maximum number of allowable tasks/channel is set by the system, and any change the agent makes to his or her availability applies to all channels.

In manual mode, the agent can set their own load for each channel, and they can set Availability or Unavailability separately for each channel.

Note: The maximum number of allowable tasks is controlled by Blender Flows. For more information, see Avaya Workflow Designer Guide, “Blender Flows”. You can prevent the agent from changing his load level, on a media by media basis. To do so, set a variable in the agent’s Agent Data Unit (ADU), media.privileges, via a Workflow. Set to "true" to enable manual mode or set to "false" (or omit the setting) to disable manual mode. For more information on ADUs, see Agent Data Unit Server Programmer’s Guide.

Automatic Mode

In automatic mode, only the Agent icon looks like a button because changes affect all channels. The agent can toggle between Available and Unavailable by clicking the Agent icon. If the Agent attempts to designate themselves as Unavailable while they have an active task, Avaya Agent goes into the init auxwork state and displays a message requesting that the agent wrap up any active tasks. When the last active task is closed, Avaya Agent goes into the auxwork state and the agent becomes Unavailable.

At this point, Avaya Agent displays a red X over the agent icon and each of the channel icons to indicate the agent is unavailable.

Manual Mode

In manual mode, the agent may transition each of the media channels manually from available to busy, or from busy to available. To indicate this, Avaya Agent displays the channel icons as buttons.

In addition, the agent may change the channel load values that control how many tasks the agent may have at any one time on a given media channel. Changing these load values may only be performed in manual mode.

To go into manual mode, the agent:

State Description

available The channel is open and the agent can be assigned tasks of this type.

busy The channel is closed and no new tasks can be assigned. (This is denoted by a red X over the icon.)

logged out The channel is unavailable. (This is denoted by a grey X over the icon.)

Page 43: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Blender Client Control

Issue 1.0 June 2002 43

1 Right-clicks Agent icon.

2 Selects Options from the pop-up menu.

Avaya Agent displays the Channel Load dialog box.

3 Selects the Manual Mode check box.

Avaya Agent changes to manual mode and allows the agent to change the channel loads

Retrieving and Setting EDU Data

For each contact received by an agent there is an accompanying EDU that contains information throughout the lifetime of that contact. Among the information that can be contained within the EDU is the customer specific information such as Account Number or Service ID. EDU data is accessible as name/value attribute pairs. To retrieve a value, methods exist to specify the attribute name (e.g., "account"). The value is returned in a string representation. In addition, methods exist that allow name/value attributes to be set in the EDU.

Blender Client ControlThe Blender Client control is the control that runs media blending within Avaya Agent. When logging into CoreServices, the BlenderClient assigns to the Blender Server and ADU Server. It processes ADU change events in order to set Agent availability. It also is advised of all Media channel engines in Avaya Agent so that it may set availability.

Note: For a full description of Blender processing, see Avaya Workflow Designer Guide, “Blender Server”.

CDL Settings

To use the Core services, you need to set the following CDL parameters:

QSection Name

Attribute(s) Description

Core Services ServerRestartRetryCount

number of times to retry

Core Services ServerRestartRetryWaitTime

number of seconds to wait between each try

Page 44: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 4 Core Services

44 Avaya Agent Integrator’s Guide

IC Scripts That Make Core Services Work TogetherThe following IC Scripts work with all of the Core Services controls.

IC Script File Location Description

CoreServices_BeforeLogout coreservices.qsc Used to perform any pre-logout functionality before allowing logout to continue in Avaya Agent.

CoreServices_Exit coreservices.qsc Used to exit the components within CoreServices.

CoreServices_Initialize coreservices.qsc Used to initialize components within CoreServices.

CoreServices_Login coreservices.qsc Used to login to components within CoreServices.

CoreServices_Logout coreservices.qsc Used to logout of components within CoreServices.

QConsole_GetCoreServices qconsole.qsc Used to obtain the Core Object from Avaya Agent.

PhoneEngine_OnCoreStateChanged coreservices.qsc Run when receiving a Core State Change Event.

CoreServices_GetEDUValue coreservices.qsc Use for easily retrieving an EDU Value.

CoreServices_LinkEDUs coreservices.qsc Used for calling the Report Server method of linking two EDU's together. Returns the EDUId of the HUB.

CoreServices_GetHUBEDU coreservices.qsc Used for returning the HUB EDUId for a given EDU Id.

CoreServices_GetRelatedEDUs coreservices.qsc Used for retrieving a comma separated list of EDU Id's related to the EDUId past in.

CoreServices_SetEDUValue coreservices.qsc use for easily setting an edu value

Page 45: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

45

CHAPTER 5CONTACT VIEWING

There are three controls that show information about the contact. The Active Contact Viewer shows any active contacts related to the customer of the current contact (such as Emails in the system). The EDU Viewer shows information from the current contact's EDU. And finally, the Contact History Browser shows all of the previous contacts made by the customer of the current contact.

Active Contact ViewerThe Active Contact Viewer is a control that lets you look at any arbitrary set of existing EDUs using a given set of criteria, and it is represented by an icon that resides on the GUI. When criteria for EDU is given and found, the icon changes allowing you to click and bring up a window containing an EDU Viewer displaying all EDUs matching the criteria you specified.

The Active Contact Viewer has been integrated with Avaya Agent’s Contact History Browser in order to display the active contacts related to the currently selected customer. Avaya IC stores the EDU criteria for each contact in the Tag property of the Tabs in the ContactHistoryBrowser. When a tab is selected in the Contact History Browser, the criteria is pulled from that Tab and applied to the Active Contact Viewer.

IC Scripts That Work With the Control

The following out-of-the-box IC Scripts affect the behavior of the Active Contact Viewer:

IC Script File Location Description

ACViewer_Initialize chbrowser.qsc Used for initializing the Active Contact Viewer.

ACViewer_RefreshContact chbrowser.qsc Used for refreshing the Active Contact Viewer based on a selected EDU.

CHBrowser_AddContact chbrowser.qsc Run when a Contact is added to the Contact History Browser. Additionally used to store criteria for the contact for using on the Active Contact Viewer.

Page 46: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 5 Contact Viewing

46 Avaya Agent Integrator’s Guide

CDL Settings

To use the Active Contact Viewer, you need to set the following CDL parameters:

EDU ViewerFor all incoming or outgoing contacts such as a telephone call or an email message, Avaya IC creates an EDU. The EDU consists of a sequence of name/value pairs called couples that contain information relating to the contact.

A set of couples is called a sequence of couples. For example, in an environment with telephony integration, each telephone call arriving at or originating on the PBX triggers the creation of a permanent call-detail record stored in the EDU.

For example, a telephony-specific EDU may contain:� The time the call arrived at the PBX.� VRU information entered by the caller.� Transfers between agents.� The time the call concluded.� The customer service actions performed by the agents.

CHBrowser_GetActiveContactCriteria chbrowser.qsc Used to retrieve criteria for Active Contact Viewer from the Contact History Browser's Tab Strip Control.

CHBrowser_RemoveContact chbrowser.qsc Run when a Contact is removed from the Contact History Browser. Additionally used to clear the Active Contact Viewer.

CHBrowser_SetActiveContactCriteria chbrowser.qsc Used to store criteria for Active Contact Viewer in the Contact History Browser's Tab Strip Control.

CHBrowserTabStrip_Click chbrowser.qsc Event handler for Tab Strip integrated with Contact History Browser. This IC Script calls ACViewer_RefreshContact.

QSection Name

Attribute(s) Description

ACViewer TabLabelEDUField Specifies which EDU field to use for the label of the Tabs of the EDU Viewer in the Active Contact Viewer.

ACViewer EDUFindScope Specifies the scope to use for finding related EDU’s. This matches the possible values for EDU Monitoring.

IC Script File Location Description

Page 47: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

EDU Viewer

Issue 1.0 June 2002 47

In addition to uniquely identifying each contact, the EDU collects information about activity that is performed on behalf of the contact and updates that information as the contact traverses the contact center.

The EDU Viewer is an ActiveX control that displays the information contained in the EDU. When a contact is routed to an agent’s desktop, the EDU Viewer looks at the stylesheet name/value couple in the EDU and retrieves the name of the associated Extensible Style Language (XSL) stylesheet template. If it finds that stylesheet in the database, it uses it to display the information in the EDU. Otherwise, it uses the default stylesheet.

If additional contacts come in while the agent is still viewing the first one, Avaya Agent creates a tab for each contact so the agent can preview it before he or she actually accepts communication with that contact.

As the system integrator, you can use the default stylesheet for all calls, emails, and chats that will be displayed in the EDU Viewer, or you can create a unique XSL stylesheet for each type. If you want to have different stylesheets, then you also need to make sure your EDU contains the name/value couple where name is "stylesheet" and value is a string that uniquely identifies that stylesheet.

If you have Routing Engine, you can add the stylesheet name/value couple to the EDU as part of the call flow. Otherwise, you can add the pair by invoking the VDU.Set method on the VDU server. For details on using Routing Engine, refer to Avaya Workflow Designer Guide. For details on the VDU.Set method, refer to Electronic Data Unit Server Programmer’s Guide.

You may also want to write IC Scripts that are run when various events are triggered in the EDU Viewer. For an in-depth discussion of how to write IC Scripts, as well as a list of the general methods that are available, refer to IC Scripts Language Reference. For a list of the methods that are specific to the EDU Viewer, refer to Avaya Agent Control API Reference. For information on creating, editing, and debugging IC Scripts, as well as information on how to save your IC Scripts to the database, refer to IC Database Designer Application Reference.

This chapter discusses the basics of the EDU Viewer, and how to create your style sheets and save them to the database. For information about adding the EDU Viewer to your Avaya Agent framework, see Chapter 2, “Customizing Avaya Agent”.

Page 48: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 5 Contact Viewing

48 Avaya Agent Integrator’s Guide

In this diagram, XSL stylesheets have been set using the AddTemplate API. Core receives knowledge of a new contact through an EDU. The IC Script then tells the EDU Viewer to monitor that EDU. The EDU Viewer then creates an HTML page to display in the IE browser based on the XSL stylesheet.

The EDU Viewer GUI

Here is a sample of what the EDU Viewer control might look like:

If another contact comes into the agent's EDU viewer, then it creates a new tab showing that contact's information. Avaya Agent uses the ContactLabel property in the EDUFields section of the CDL to retrieve EDU couple that contains the tab label. Using this value in the EDU, the IC Script calls SetTabLabel for that EDU.

The XSL Stylesheet

The style sheet controls how the information is displayed in the EDU Viewer.

Page 49: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

EDU Viewer

Issue 1.0 June 2002 49

<?xml version="1.0"?><xsl:template match="/">

<HTML><HEAD>

<TITLE>EDU Viewer</TITLE></HEAD><BODY STYLE="border: 0px; margin: 0px; font-family: arial; font-style: bold;font-size:

10pt"><xsl:for-each select="vdu">

<TABLE BORDER="1" CELLSPACING="1" CELLPADDING="1" STYLE="border:0px; margin: 0px; font-family: arial; font-style: bold;font-size: 8pt">

<xsl:apply-templates/></TABLE>

</xsl:for-each></BODY>

</HTML></xsl:template><xsl:template match="Field">

<TR><xsl:apply-templates/>

</TR></xsl:template><xsl:template match="vdu/Field">

<xsl:if test="Name[. ='account' $or$ . ='account_value' $or$ . = 'ani' $or$ . = 'caller' $or$ . = 'createtime' $or$ . = 'cust_name' $or$ . = 'dest' $or$ . = 'question'$or$ . = 'dnis' $or$ . = 'ext' $or$ . = 'orig' $or$ . = 'purpose' $or$ . =

'transfercount'$or$ . = 'sender'$or$ . = 'recipient' $or$ . = 'subject' $or$ . = 'routingcount'$or$ . = 'hasattachments'

]"><TR>

<xsl:apply-templates/></TR>

</xsl:if></xsl:template><xsl:template match="vdu/Field/Container/Field">

<xsl:if test="Name[. = 'sender' $or$ . = 'recipient' $or$ . = 'subject' $or$ . = 'routingcount']">

<TR><xsl:apply-templates/>

</TR></xsl:if>

</xsl:template><xsl:template match="Container">

<xsl:apply-templates/></xsl:template><xsl:template match="Name">

<TH ALIGN="left"><xsl:choose>

<xsl:when test="../Name[. = 'account']">Account</xsl:when><xsl:when test="../Name[. = 'account_value']">Cust Val</xsl:when><xsl:when test="../Name[. = 'ani']">ANI</xsl:when><xsl:when test="../Name[. = 'caller']">Caller</xsl:when><xsl:when test="../Name[. = 'createtime']">Created</xsl:when>

Page 50: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 5 Contact Viewing

50 Avaya Agent Integrator’s Guide

<xsl:when test="../Name[. = 'cust_name']">Customer</xsl:when><xsl:when test="../Name[. = 'dest']">Dest</xsl:when><xsl:when test="../Name[. = 'dnis']">DNIS</xsl:when><xsl:when test="../Name[. = 'ext']">Ext</xsl:when><xsl:when test="../Name[. = 'orig']">Origin</xsl:when><xsl:when test="../Name[. = 'purpose']">Purpose</xsl:when><xsl:when test="../Name[. = 'transfercount']">Xfer Count</xsl:when><xsl:when test="../Name[. = 'sender']">From</xsl:when><xsl:when test="../Name[. = 'recipient']">To</xsl:when><xsl:when test="../Name[. = 'subject']">Subject</xsl:when><xsl:when test="../Name[. = 'question']">Question</xsl:when><xsl:when test="../Name[. = 'routingcount']">ForwardCount</xsl:when><xsl:when test="../Name[. = 'hasattachments']">HasAttachments</xsl:when><xsl:otherwise>

<xsl:value-of/></xsl:otherwise>

</xsl:choose></TH>

</xsl:template><xsl:template match="Seq">

<TH><xsl:value-of/>

</TH></xsl:template><xsl:template match="Value">

<TD><xsl:value-of/>

</TD></xsl:template>

</xsl:stylesheet>

XML Script Generation

For all contacts, Avaya Agent creates an EDU that has a unique ID and consists of a series of name/value fields. It is converted into the following XML structure:

<vdu vdu_id="3769579c000000000a64038e22bd0002"><Field>

<Name>name_1</Name><Value>value_1</Value>

</Field><Field>

<Name>name_2</Name><Value>value_2</Value>

</Field>...<Field>

<Name>name_N</Name><Value>value_N</Value>

</Field></vdu>

Page 51: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

EDU Viewer

Issue 1.0 June 2002 51

EDU Containers

In addition to ordinary couples (name/value pairs), EDUs may contain hierarchical data structures organized into containers through field naming conventions. Containers are special EDU couples that reflect a grouping of values under a common name, and they make a tree-like data structure within the EDU. For example, these couples are containers:

agent.1 dev6agent.2 dev5

This information reflects the agents that handled the EDU contact.

Container fields are merged into a single XML structure:

<Field><Name>agent</Name><IndexedContainer count="2" min="1" max="2">

<Field><Seq>1</Seq><Value>dev6</Value>

</Field><Field>

<Seq>2</Seq><Value>dev5</Value></Field>

</IndexedContainer></Field>

For more information on EDUs and their contents, refer to Electronic Data Unit Server Programmer’s Guide or the Core Services Programmer’s Guide.

EDU Lifecycle

There are three stages in the lifecycle of an EDU: � Creation.� Activity.� Termination.

EDU Creation

Every contact must have a corresponding EDU. For example, in the case of a voice contact, whenever an inbound call arrives at a telephone on the PBX system or an agent dials out, Telephony creates an EDU.

EDU Activity

The EDU is a real-time storage device that collects strings of text from multiple sources and stores them as couples. Couples are paired data. During its life, the EDU's job is to collect the information entered by the contact, agent or automated software, and to notify interested clients of changes to the EDU. Typically, clients want to examine, modify, or add EDU data.

Page 52: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 5 Contact Viewing

52 Avaya Agent Integrator’s Guide

EDU Termination

When an agent’s conversation ends, this does not necessarily mean that the EDU associated with the call is terminated. The agent may still need to perform wrapup activities that involve the EDU. If the call is transferred to another agent, the call and its associated EDU continue to assist. In fact, it is possible to have multiple agents accessing a single EDU.

After an agent is finished with the EDU, the agent's interest in the EDU should be terminated. When an EDU has no more interested clients, it is usually archived to back-end databases before finally being purged from Telephony.

IC Scripts That Work With the Control

The following out-of-the-box IC Scripts affect the behavior of the EDU viewer:

CDL Settings

This component does not have any CDL settings.

Contact History BrowserThe Contact History Browser control shows the previous contacts made by the currently selected customer. It consists of the Contact History Browser control, which is an instance of the MS Tabstrip control, and the Contact History Filter control. All three of these controls are tied together by several IC Scripts to give the user the ability to pick which customer’s contact history they want to see and how to filter that history.

The Contact History Browser displays the previous contacts made by the currently selected customer. Contact history for the customer is retrieved from CI Repository.

The Contact History Browser displays a table with the following columns:� Time - the date and time that a particular contact was made.� Type - the type of media that was used to make the contact (phone, email, or other).� Subject - the subject of the previous email.

IC Script File Location Description

EDUViewer_AddContact eduviewer.qsc Used to add a contact to the EDU Viewer.

EDUViewer_Initialize eduviewer.qsc Used to initialize the EDU Viewer.

EDUViewer_LoadSpecsFromDB eduviewer.qsc Used to load XSL specs into the EDU Viewer from the DB.

EDUViewer_Reload eduviewer.qsc Used to reload templates in the EDU Viewer.

EDUViewer_RemoveContact eduviewer.qsc Used to remove a contact from the EDU Viewer.

EDUViewer_Reset eduviewer.qsc Used to reset the EDU Viewer.

EDUViewer_ShowContact eduviewer.qsc Used to show a contact in the EDU Viewer.

Page 53: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Contact History Browser

Issue 1.0 June 2002 53

The Contact History Browser retrieves contact information from CI Repository using the DCO Application Programming Interface (API).

The Contact History Browser also caches information about contacts as they are added. In order to figure out which contact’s history is being viewed, tabs are present using the MS TabStrip Control.

MS TabStrip Control

The MS TabStrip control is a standard Microsoft control installed with Avaya Agent. An instance of this control is used to determine which contact is being viewed in the Contact History Browser.

Contact History Filter Control

At times, the contact history that is retrieved for a particular contact is overwhelming. This information can be filtered to make it more useful to the agent. The Contact History Filter control is the filter or sorting mechanism of the Contact History Browser.

The Contact History Filter control enables agents to narrow down their search of any contacts based on the following search criteria:� Media Type - filters the emails by the media type that was used to make the previous contact.

The media type can be “phone” or “email”.� Date - displays customers contacts that occurred between two dates that are specified by the

agent.� LastNContacts - filters contacts based on the last number or contacts made by the customer

whose contact history you are viewing.

Example

The three filters can be used in any combination. For example, to quickly find an email sent on July 4th:

1 Select the Media Type check box and select the email option.

2 Select the Time check box and select the Start Date and the End Date to be the July 4.

The Contact History Browser displays a list of the emails received on the specified date.

Configuring Supporting Servers and Databases

The Contact History Browser retrieves information about previous contacts made by the customer currently selected from CI Repository. For CI Repository to store data about previous contacts, the CI Repository database and supporting servers must be configured.

If Avaya Interaction Center was properly installed, then the supporting servers and databases will already be available. Your Avaya IC system should include:� The CI Repository database.� The CallCenterQ database.

Page 54: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 5 Contact Viewing

54 Avaya Agent Integrator’s Guide

� The Report Wizard application. � Seed data for the databases. This data includes default mapping rules for the Contact Engine

Report Server that describe how EDU data (data about a contact) should be written to the database after an EDU has been “retired.”

� The Report Server.

If any of these elements are missing, refer to IC Installation and Configuration Guide for details about how they can be installed and configured.

Creating Non-standard Contact History Fields

If you want to retain a history of contacts, and you are not using the mediainteractions table in CallCenterQ or CI Repository for the Contact History Browser, you must use Database Designer to create fields for the contact history. You will need at minimum the following four fields:� requestid - Stores the contact ID for historic email � taskid -Stores the contact ID for historic chat transcript� type -Stores the contact type� createtime -Stores the time the contact record was created

Create them with the history option enabled. If you do not create these fields or if you do not name them as above, you will need to modify the following IC Scripts:� CHFilter_Initialize� CHFilter_OnFilterSet� CHFilter_OnFilterReset� Email_ShowHistoricEmailMessage� Web_ShowHistoricTranscript

Implement a Routing Engine Flow

You need to implement the logic in a Routing Engine Flow that performs a lookup in the CI Repository database customer table, gets the customer record pkey, and sets the customer id field in the EDU. This gives the contact record the correct foreign key value in the database.

For detailed instructions on implementing a Routing Engine Flow, refer to Avaya Workflow Designer Guide.

Page 55: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Contact History Browser

Issue 1.0 June 2002 55

IC Scripts That Work With the Control

The following out-of-the-box IC Scripts affect the behavior of the Contact History Browser:

CDL Settings

This component does not have any CDL settings.

IC Script File Location Description

CHBrowser_AddContact chbrowser.qsc Used to adding a contact to the Contact History Browser.

CHBrowser_GetActiveContactCriteria chbrowser.qsc Used to retrieve criteria for Active Contact Viewer from the Contact History Browser's Tab Strip Control.

CHBrowser_Initialize chbrowser.qsc Used to initialize the Contact History Browser.

CHBrowser_OnContactSelected chbrowser.qsc Event handler linked to the Contact History Browser control invoked when a row is Selected. Used to show extended information about the contact.

CHBrowser_RemoveContact chbrowser.qsc Used to remove a contact from the Contact History Browser.

CHBrowser_SetActiveContactCriteria chbrowser.qsc Used to store criteria for Active Contact Viewer in the Contact History Browser's Tab Strip Control.

CHBrowser_ShowContact chbrowser.qsc Used for showing a contact in the Contact History Browser.

CHBrowserTabStrip_Click chbrowser.qsc Event handler linked to the Tab Strip control in the Contact History Browser component. Used for showing the correct Contact History in the Browser.

CHFilter_Initialize chbrowser.qsc Used to initialize the Contact History Filter Control.

CHFilter_OnFilterReset chbrowser.qsc Event handler linked to the Contact History Filter used to reset filter criteria on the Contact History Browser.

CHFilter_OnFilterSet chbrowser.qsc Event handler linked to the Contact History Filter used to set filter criteria on the Contact History Browser.

Page 56: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 5 Contact Viewing

56 Avaya Agent Integrator’s Guide

Page 57: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

57

CHAPTER 6MEDIA CHANNELS

This chapter describes the three media channels in which Avaya Agent can accept contacts: voice, email, and chat.

The Voice ChannelThe Avaya Softphone controls provide access to the Telephony system. This section defines some telephony terms used and describes some telephony call management concepts. This information is general in nature; see your telephone switch documentation to determine which points apply to your system.

What is Softphone?

The Avaya Softphone is comprised of a set of software components that allow agents to perform telephone operations without touching a physical phone set. The Softphone enables these agents to perform standard telephony functions such as making calls, answering calls, handling conference calls, and transferring calls.

The Softphone consists of the following components:� The VTel Automation Server.� The PhoneEngine control.� The GUI controls.

Voice Channel Terms and Concepts

This section defines some of the terms that are used in this section and describes a few concepts involved in telephony call management.

Phones, Calls, Switches

The terms call, call type, phone line appearance, and switch, as used in this chapter, are defined as follows:� A call is an active connection between two or more parties that allows transmission of speech.

Page 58: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 6 Media Channels

58 Avaya Agent Integrator’s Guide

� The call type distinguishes between direct calls, which are calls placed to a specific equipment phone number, and Automatic Call Distribution (ACD) calls, which are calls placed to a phone number that is controlled by an ACD system.

� A phone relates to a phone number that can accept and/or make calls, and has at least one line appearance available. This chapter discusses simple phones and ACD phones.� Simple phones can accept direct calls.� ACD phones can accept both direct and ACD calls.

� A line appearance is the number of simultaneous calls that are possible on a phone. Available line appearances for a phone can be divided according to whether a call is inbound or outbound, internal or external, with mixed limits for different types of calls.

� A switch is a general term used to refer to a telephone switching system, such as a Private Branch Exchange (PBX) or an ACD system. The term ACD is often used in this chapter to refer to any switch or system, such as the Expert Agent Selection (EAS) on the Avaya Definity switch, capable of routing calls through a queue.

Call Routing and Queues

Calls can be routed in several ways:� Calls can be routed directly to a phone when the specific phone number assigned to the

physical phone set is called (a direct call).� Calls can use a logical phone number which is mapped to the physical phone by an external

resource (also considered a direct call).� Calls can be indirectly routed through a call queue (a queued call).

A queue is a means of routing calls to any one of a number of agents qualified to handle the call. Each queue is often oriented toward a specific product, service, or skill set. In some systems, each time agents log into the system, the skills associated with their ID are used to place them in the appropriate queue. In other systems, the agent must directly specify the queue. Depending on the phone switch used, an agent can be in several queues at the same time, or can be changed to other queues by a supervisor to meet changing needs during the day.

All ACD calls are handled through a queue. When an ACD call is transferred directly to another agent (not another queue), it generally becomes a direct call.

Phone States

Some telephone switches support a variety of states for ACD phones, such as Ready, Busy, and WrapUp. They can provide statistics on the time spent in each state. Other switches may not support these states, or the rules may vary.

Page 59: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

The Voice Channel

Issue 1.0 June 2002 59

The Softphone configuration file (refer to Vtel.ini file in the VTel Programmer’s Guide) accommodates and supports the variation among switches. The following is provided as a general discussion.

Note: The terms used to describe phone states vary among call centers. For example, Ready may be known as Available, Busy as Auxiliary Work or Idle, and WrapUp as After Call Work.

An ACD phone can be in one of three states:� Ready state makes the phone available to receive another call.� Busy state prevents the queue from sending a new ACD call, but will generally allow new

direct calls if additional inbound line appearances are available.� WrapUp is a state following a call when the call has ended (on hook, hangup) but the agent is

still processing information related to that call or customer.� When the call is in WrapUp state, it is usually implicitly busy and will not accept another

ACD call, but will accept direct calls if additional inbound line appearances are available.� For direct calls, it is possible to set some phone switches into WrapUp mode, but this is not

generally available.

While a direct call is active, you generally cannot make the phone Ready for another ACD call. Although Softphone may remain in the Ready state, the switch will prevent the queue from dispatching another call until the phone is idle.

Telephony Programming Overview

This section describes the Softphone components and some concepts associated with telephony programming. This section provides system level background information designed to help you better understand the Softphone.

VTel Automation Server

The VTel Automation Server provides the communications link between the PhoneEngine control and the Telephony Servers. Telephony requests and responses are transmitted from the VTel Automation Server to Softphone’s ActiveX controls.

See IC Installation Prerequisites Guide for supported telephone switches.

Note: Avaya Agent does not support another application using another Vtel OLE session for telephony function calls.

Page 60: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 6 Media Channels

60 Avaya Agent Integrator’s Guide

PhoneEngine Control

The PhoneEngine Control is an ActiveX control that gives you access to the telephony functionality that is provided by the VTel Automation Server. The PhoneEngine is a non-GUI control that resides between the GUI controls and the VTel Automation Server. For more information on GUI controls, see “The GUI Controls,” on page 60.

Note: To successfully communicate with Telephony Servers, the Phone Engine control requires that a current VTel Automation Server is running in the background. If your system is running an older version of VTel, the Avaya Agent installation process automatically upgrades it to this version.

The PhoneEngine Control supplies both Telephony and CoreServices information for the logged in agent. The PhoneEngine is actually a wrapper around the following ActiveX controls:� CoreServices control.� Telephony Services control.

The CoreServices control provides methods and is an event source. It contains information that pertains to Login/Logout, EDU data, and Directory Server information. It gets this information from the Directory Server and EDU Server on CTI.

The Telephony Services control provides information about the call, agent, and phone states from the Telephony Server. For details about the controls, refer to Avaya Agent Control API Reference.

The CoreServices and Telephony functionality and events are the most important controls to a client developer. The PhoneEngine control contains two methods that provide access to the CoreServices and Telephony controls:� GetCoreObject().� GetTelephonyObject().

Each of these methods returns an IDispatch pointer, which enables you to register your client as a listener of the events that are provided. Because these are ActiveX controls, their reference count is incremented as part of each of these calls. You must perform a release when you are finished with the control.

The GUI Controls

The Softphone contains the following GUI controls: � Telephony Button.� Call List.� Dial Directory.� Information Fields.� Wrap Up.� DTMF.

Page 61: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

The Voice Channel

Issue 1.0 June 2002 61

Telephony Button Control

The Softphone contains Telephony Buttons (phone buttons) to provide telephony functionality. These buttons are enabled and disabled based on the current phone state and call state of the physical phoneset and the agent state of the logged in user.

Note: For direct calls, the WrapUp button is disabled.

The Telephony Button control component contains the following phone buttons:

Call List Control

The Call List control displays a list of the calls that are currently assigned to the agent. For each line appearance, the Softphone displays the caller’s number, the call state, the time in call, and preset (if available).

Information Field Control

The Information Field control provides the ability to display the following Telephony status information:� Agent State.

Button Name Function

Ready If the phone was previously placed in the Busy or HangUp state, enables the Softphone to accept a call.

Busy Places the Softphone in a Busy state so that it is unable to receive a queue call. When it is pressed during an active call, it places the phone in a Busy state after the call (Preset).

Answer/HangUp Toggles between Answer and Hang Up based on the phone state.� The Answer button is active when the phone state is Ready and the phone is

ringing.

� The HangUp button disconnects the call.

Hold/Reconnect Places a call on hold. Click again to active the Reconnect button and take the call off hold.

WrapUp Places the Softphone in WrapUp state after the call is disconnected enabling you to enter specific information about the call.

Directory Displays the Dial Directory window from which you can make, transfer, or conference a call.

MakeCall Enables you to make an outbound call.

Forward Enables you to transfer the call to another agent or queue.

ConsultativeTransfer Allows agents to consult with each other prior to transferring the call. The agent has the ability to cancel the transfer.

Conference Allows multiple people (three or more) to interact in a conference call.

Page 62: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 6 Media Channels

62 Avaya Agent Integrator’s Guide

� Phone State.� Call State.

Control Initialization

The OnBeforeLogin event that is fired from Avaya Agent is designed to be used for control initialization. The system performs the following major Softphone related tasks in this IC Script:� Control Introduction.� EDU Viewer Initialization.

The Vtel.ini file is used to specify the switch type, etc. For more information about this file, refer to VTel Programmer’s Guide.

Registration

All of the GUI controls that are discussed in “PhoneEngine Control,” on page 60 must register with the PhoneEngine control in order to receive Telephony and/or CoreServices events. The GUI controls use the AdviseEventSinktoTelephony() method to be a listener of Telephony Services. They use AdviseEventSinktoCore() to be a listener of CoreServices.

Registering as a CoreServices and Telephony listener allows each listener to receive completion events for any requests made to the controls, as well as unsolicited events such as incoming call.

The Call Object

Call management is done using a Call object. This object represents a single incoming or outgoing call. It provides such telephony manipulation methods as call answering, transferring, and hang-up. Call also provides methods to retrieve call state information. The EDU data is retrieved or set through the call object.

A single PhoneEngine can contain multiple Call objects — mirroring a multi-line telephone. These objects make up a PhoneEngine's call collection. All of the call specific operations are part of the Telephony control. The Telephony control provides access methods to simulate a multiple-line phone. A line can be selected and operated on before switching to another line.

Page 63: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

The Voice Channel

Issue 1.0 June 2002 63

Call states are illustrated in the following Call States diagram:

Accessing the EDU

Each Call object provides access to the call's EDU object. EDU data is stored as a SeqCouple (sequence of couples) object. A couple is a name/value attribute and can be processed as aSeqCouple, an unordered collection of zero or more Couple objects. Data is stored in the EDU as name/value pairs. Both name and value are represented as strings. Using the EDU object, the value of an attribute stored in the EDU can be retrieved directly by specifying the name of the attribute using the QCall.GetVduValue (attribute,Value) method.

A client can retrieve account information that a customer may have entered at the VRU by using the QCall.getVduValue() method. This information is valuable if telephony capabilities are being integrated with other business applications.

Call Termination

A Call object will be created as a result of an agent receiving an incoming call or initiating an outgoing call. However, the Call object can persist, maintaining interest in the EDU, even after the actual call has been transferred or hung up. This permits the PhoneEngine client to provide wrapup information.

Page 64: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 6 Media Channels

64 Avaya Agent Integrator’s Guide

Event Handling

The CoreServices control emits Core events that contain a CoreChangeEvent object. The CoreChangeEvent has the following information:� RequestObj - created and returned to the caller as part of the original request.� VduObj - populated with EDU information or left empty if not associated with the call.� EventId - indicates the type of event.

The Telephony control emits Telephony events that contain a ChangeEvent. The Telephony ChangeEvent has the following information:� RequestObj - created and returned to the caller as part of the original request.� Call- the object that contains call operations and information.� EventId - indicates the type of event.

In order to receive events from the PhoneEngine, the client must register as a listener of Core and Telephony Events.

Note: Both the Core and Telephony controls contain a method to return the textual representation of the eventID. It is GetName(LONG Id, BSTR *Name), the description is returned in the name field.

Each Core and Telephony Event contains an EventID to identify the type of event that occurred or the information that has changed. This information can be accessed from the get_EventId(long) method that is part of the object that arrives with the event.

Phone State

Phone state is a representation of the PhoneEngine’s interaction with the switch. The details of this interaction depend on the switch and phone type. In the direct phone case, the state model is degenerate and reflects the status of the switch association.

GUI Controls

This section contains the system constants for the Information Fields and Telephony Buttons controls.

Voice Event Handling

In order to recognize that an agent is being assigned a call, the application must be able to process events emitted by the telephony component. While the telephony component will provide call-level events such as answer, hangup, hold, un-hold, etc., not all events need to be processed by the application. Applications usually process events in one of two ways: callback or polling. � In the callback approach, the application registers a method with the telephony component.

This method is called whenever a new event occurs. Event data is passed to the application using this method.

Page 65: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

The Voice Channel

Issue 1.0 June 2002 65

� In the polling approach, the telephony component does not notify the application. Instead, the application must periodically query the telephony component for any event.

The telephony component also has methods to retrieve agent, phone, and call state information as integer values.

DTMF Control (Definity switch only)

The DTMF (Dual-Tone Multi-Frequency) control enables the agent to type numbers, such as the customer’s account number, on a numeric key pad and send this information as if they had dialed the tones on their telephone.

To enable support for DTMF on the Softphone, set the attribute Visible to TRUE for the “tbDTMF” control in your CDL file:

<QControl Name="tbDTMF" ProgID="QSoftPhone.TelButtonCtrl.56" Left="3" Top="128" Width="94" Height="32" Visible="TRUE"/>

IC Scripts That Work With the Control

The following out-of-the-box IC Scripts affect the behavior of the Voice channel:

IC Script File Location Description

PhoneEngine_OnTelephonyStateChanged softphone.qsc Event handler for Telephony events being fired from the Phone Engine.

Shared_OnActivate shared.qsc Event handler hooked to the OnActivate event of the Call List.

Shared_OnSelect shared.qsc Event handler hooked to the OnSelect event of the Call List.

Softphone_ClickButton softphone.qsc Used for programmatically clicking a Telephony Button.

Softphone_CompleteContact softphone.qsc Used to Complete a Contact in the Softphone.

Softphone_Exit softphone.qsc Performs necessary steps to shut down the Softphone.

Softphone_GetAgentID softphone.qsc Returns the Agent logged into the Voice channel.

Softphone_GetTelephony softphone.qsc Used to obtain the Telephony Object from the Phone Engine.

Softphone_HangUpCall softphone.qsc Used for hanging up a call in the Softphone.

Softphone_HasActiveContacts softphone.qsc Used to inquire if there are any Active Contacts in the Softphone.

Softphone_Initialize softphone.qsc Used to Initialize any properties on the Softphone.

Softphone_Login softphone.qsc Used to log into Softphone.

Softphone_Logout softphone.qsc Used to log out of Softphone.

Page 66: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 6 Media Channels

66 Avaya Agent Integrator’s Guide

The Web Agent ClientIn Avaya IC, the Web Agent client is used for email and chat tasks. On the Avaya Agent pane, the ChatList control displays web tasks. The Task List control displays email tasks. There is a common control that works together in conjunction with the Web Agent Client and the Engines for Chat and Email. This control is the WACEngine control. It serves as the communication Hub between the WebAgentClient and Chat/Email Engines.

IC Scripts That Work With the Control

The following out-of-the-box IC Scripts affect the behavior of the WACEngine:

For details about the QSection tag, see “<QPropertyDictionary> ... </QPropertyDictionary>,” on page 22.

Softphone_ManualLogin softphone.qsc Used for setup of manual login to Softphone.

Softphone_PlaceCall softphone.qsc Used for placing a call in the Softphone.

Softphone_Refresh softphone.qsc Used for refreshing the Softphone.

Softphone_Reset softphone.qsc Used for resetting the Softphone.

Softphone_SuspendActiveContacts softphone.qsc Used to suspend any active contacts in the Softphone.

tbDirectory_Click softphone.qsc Event handler for when Dial Directory Telephony Button is clicked.

IC Script File Location Description

WACEngine_Initialize wac.qsc Used for initializing the WACEngine.

WACEngine_Login wac.qsc Used for logging into the WACEngine.

WACEngine_Exit wac.qsc Used for exiting the WACEngine.

WAC_SetClientView wac.qsc Use this for changing the view of the Web Agent Client.

WACEngine_ErrorOccurred wac.qsc Handles the ErrorOccurred event from the WACEngine. If any errors need to be trapped and displayed to the Agent, this is the place to do it.

WACEngine_ShellExecute wac.qsc Handles the ShellExecute event from the WACEngine.

WACEngine_LookupAddress wac.qsc Handles the LookupAddress event from the WACEngine.

WAC_SendAddressLookup wac.qsc Used for sending Address Lookup info to the WAC.

IC Script File Location Description

Page 67: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

The Chat Channel

Issue 1.0 June 2002 67

The Chat ChannelIn order to run Chat in Avaya Agent, the Web Agent Client must be installed on the Agent’s desktop, along with the WebEngine, ChatList, and the IC Scripts used to tie all the pieces together. (All components are installed with the Web Agent client.) The following table describes these components:

Web State Event Handling

The WebEngine emits the WebStateChanged event every time the state changes. This event includes an Event Object parameter, which can be interrogated to determine what type of event is occurring and what action should be taken. In the out-of-the-box Avaya Agent, the WebEngine_WebStateChanged is assigned to this event to perform the logic needed to add the contact into Avaya Agent.

IC Scripts That Work With the Control

The following out-of-the-box IC Scripts affect the behavior of the Chat channel:

Component Description

WebEngine ActiveX control that coordinates Web Agent Client, ChatList, and Avaya Agent. Is the Source for Logging in and out of Agent Client and receiving events from chats.

ChatList ActiveX control that the Agent uses to select which Chat he or she is working on.

IC Script File Location Description

Shared_OnActivate shared.qsc Handles OnActivate events from the Chat List.

Shared_OnSelect shared.qsc Handles OnSelect events from the Chat List.

Web_GetAgentID web.qsc Returns the Agent logged into the Chat channel.

Web_CompleteContact web.qsc Completes a Contact in the WebEngine.

Web_Exit web.qsc Performs necessary steps to shut down the WebEngine.

Web_HasActiveContacts web.qsc Inquires if there are any Active Contacts in the WebEngine.

Web_Initialize web.qsc Initializes any properties on the WebEngine.

Web_Login web.qsc Logs into WebEngine.

Web_Logout web.qsc Logs out of WebEngine

Web_ShowHistoricTranscript web.qsc Shows a transcript from the WebEngine.

Web_SuspendActiveContacts web.qsc Suspends any active contacts in the WebEngine.

WebEngine_WebStateChanged web.qsc Handles WebEngine events.

Web_Reset web.qsc Resets the Web Channel

Web_Transfer web.qsc Used for transferring a chat

Page 68: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 6 Media Channels

68 Avaya Agent Integrator’s Guide

The Email ChannelEmail Management is a software component that allows Customer Service Representatives (CSRs) to view and respond to email messages that come into the call center. It is controlled by the agent through the Web Agent client and the Task List control. Using Email Management, you can:� Receive email messages.� View all the email messages that are currently active.� View the details of each message.� Defer (pend) the email.� Transfer an email to another agent or task type.� Choose responses using the Web Agent client resources view.� View a list of messages that have been previously received.� View details of these historical messages.

Each Email Management component is an ActiveX control. Email Management is made up of the following controls:� Task List.� MailEngine.� Web Agent client.

For detailed information on the Email Management controls, refer to Avaya Agent Control API Reference.

WebEngine_ActivateCallback web.qsc Handles the ActivateCallback event from the WACEngine. Places a call to the number passed in.

WebEngine_LookupAgentForTransfer web.qsc Handles the LookupAgentForTransfer event by showing the UAD.

Web_HandleIVChatInitialize web.qsc Used for handling a WebStateChanged (evHandleIVChatInitialize).

IC Script File Location Description

Page 69: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

The Email Channel

Issue 1.0 June 2002 69

Email Management Channel Terms and Concepts

This section defines some of the terms used in this section and describes a few concepts involved in email management.

Required Components

To successfully integrate Email Management, the following third party components must be installed on the system’s server:� SMTP/POP3 server – A mail server that supports the POP3 incoming mail and SMTP outgoing

mail.

Email Management also requires the installation of the following Avaya IC server components:� IC Manager – Used to administer agents and view statistics of the WACD.� WACD Server - receives messages from the email addons and performs the necessary actions.

These actions include creating EDUs, setting EDU values, running Flows for out-of-the-box queuing, running Prompter Flows, and extracting data from Avaya data sources.

� IC WorkFlow Server - tells the WACD Server where to route the email request based on a customizable routing script.

� EDU Server - creates EDUs in response to the WACD Server and the client applications. It stores open EDUs, records EDU events, and provides services that enable clients to interact with an email request. The EDU Server provides information like the Status, Age, and Body of the message to the Active eMail Browser.

� Report Server - listens for VDU.end events and writes the information from the terminated EDU into the database. The Report Server writes the EDU data directly into a normalized data model. It captures only the information that you have designated to be used in your reporting requirements.

Term Definition

Transfer Transfers the email to another agent or task type.

Dismiss Dismiss the email. In Avaya Email terminology, this means to set the status of an email. Statuses are defined in the Avaya Email Manager.

Defer Defer (pend) is the email equivalent of putting a call on hold.

Reply Reply to an email.

History A message which was received in the past by the call center.

CSR Customer Service Representative. The end user of the Email Management client. May also be referred to as an agent.

WACD The central component of the integration. This server receives messages from the email addons and performs the necessary actions. These actions include creating EDUs, setting EDU values, running Workflows for queuing, running prompter Workflows, and extracting data from Avaya data sources.

Page 70: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 6 Media Channels

70 Avaya Agent Integrator’s Guide

� CI Repository - stores the historical contact information that is retrieved by the Contact History Browser. CI Repository archives terminated EDUs for long term storage that the reporting application can access to generate reports. For more information, see OA Reporting Tools Guide.

The Avaya Email Management Client

The Email Management client is comprised of a set of components which allow an agent to quickly view a summary of email contacts:� MailEngine control.� Task List control.� Web Agent client.

The agent may also use the Contact History Browser to view historical information about an email. The agent can use this browser view the contents of past emails and when they were sent.

MailEngine Control

The MailEngine is a non-GUI control that provides the communications link between other controls and the Avaya telephony Servers. It communicates with the Web Agent client and the Core Services OCX via COM. The Web Agent client is responsible for communicating with the WACD using XML. The CoreServices OCX gives the MailEngine access to the EDU Server.

The MailEngine provides two major services:� It handles events coming from the Web Agent client and fires off ActiveX events that can then

be handled by any component with an event sink.� It implements the new Task interface model so that it may be used by the Task List control.

Task List Control

The Task List is a GUI control that displays tasks. Although the Task List is designed to be media-independent, out-of-the-box the Task List only displays email tasks controlled by the MailEngine control. The Task List shows the state of the task, the origin, and the time in state. However, additional columns may be displayed also. For details, refer to Task List chapter of the Avaya Agent Control API Reference.

The Task List provides the following functionality:� Allows the agent to view all email tasks currently assigned and their state. The state shown for

email tasks is incoming (new), active, inactive (deferred), or wrapup.� Allows the agent to activate an email task in the Web Agent client. When activated, it becomes

visible in the client.� Allows the agent to view task-specific information in columns, a tooltip, or both.

The agent may choose to preview an email task or reply to it through the Web Agent client user interface. When an agent is replying to it, it is considered to be active.

Page 71: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

The Email Channel

Issue 1.0 June 2002 71

As the integrator, you can set the control object properties to display any columns of information you want, including, but not limited to, the ones shown below. (For more information on setting the properties, refer to Avaya Agent Control API Reference.) The columns may be specified in the CDL by setting the value for the Columns property in the TaskList section.

The following table shows the tables that are available out-of-the-box. Those items marked “Specific to Email tasks” are examples of properties of the Mail Task object that you could also choose to display.

For example, if you wanted to display the account balance for a task as a tooltip when the agent hovers the mouse cursor over the task, you would place the code in the initialization code of Avaya Agent, as in TaskList_Initialize.

Dim iQConsole As ApplicationDim iTaskList As Object

Set iQConsole = GetAppSet iTaskList = iQConsole.GetControlObject(“TaskList”)

iTaskList.SetFormat “{task_source_type} ({task_state}): Origin: '{origin}' Subject: '{subject}' Tracking Number: {[tracking_number]} Balance: {[acct_balance]}”

This sample code could be used to then set the account balance into the email Task object. When set, the property is displayed when the mouse is hovered over that task. The account balance could be retrieved from an EDU object, for example.

Dim iQConsole As ApplicationDim iTaskList As Object

Dim iProperties As Object

Set iQConsole = GetAppSet iTaskList = iQConsole.GetControlObject(“TaskList”)Set iProperties = iTaskList.Properties

Column Out-of-the-box Specific to Email tasks

Task icon Yes

State icon Yes

Origin Yes

Time in state Yes

Subject

Age

State

EDU ID

Task ID Yes

Tracking number Yes

Queue time Yes

Page 72: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 6 Media Channels

72 Avaya Agent Integrator’s Guide

iProperties.SetOneValue “acct_balance”, “$245.36”

In this state diagram, the Mail Task states are shown. The corresponding WACD states are shown in parentheses, if applicable.

IC Scripts for Email Management Contact Handling

Several IC Scripts are used by Avaya Agent for Email Management. The following can be found in the email.qsc file installed with the Avaya Agent design files:

IC Script File Location Description

Email_Initialize email.qsc Initializes the Avaya email components.

Email_CompleteContact email.qsc Completes a contact in the EmailEngine. Called from QConsole_CompleteContact, can be used for any finishing logic.

Email_Exit email.qsc Performs necessary steps to shut down the EmailEngine.

Email_HasActiveContacts email.qsc Inquires if there are any Active Contacts in the EmailEngine.

Email_Login email.qsc Logs into EmailEngine.

Email_Logout email.qsc Logs out of EmailEngine.

Email_ShowHistory email.qsc Shows historical information about an email from the EmailEngine.

Email_SuspendActiveContacts email.qsc Suspends any active contacts in the EmailEngine.

Email_Transfer email.qsc Used for transferring an email.

MailEngine_LookupAgentForTransfer email.qsc Handles the LookupAgentForTransfer Event from the MailEngine. Shows the UAD for the email.

MailEngine_RequestAlertInfo email.qsc Handles the RequestAlertInfo for the MailEngine. Used for sending the Alert settings back to the WAC.

Page 73: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

The Email Channel

Issue 1.0 June 2002 73

CDL Settings

To configure the Task List component, you need to modify the following CDL parameters:

For details about the QSection tag, see “<QPropertyDictionary> ... </QPropertyDictionary>,” on page 22.

TaskList_Initialize tasklist.qsc Initializes the Task List.

TaskList_Activate tasklist.qsc Handles the Task List’s Activate event.

TaskList_Incoming tasklist.qsc Handles the Task List’s Incoming event.

TaskList_Select tasklist.qsc Handles the Task List’s Select event.

TaskList_Terminate tasklist.qsc Handles the Task List’s Terminate event.

TaskList_Wrapup tasklist.qsc Handles the Task List’s Wrapup event.

TaskList_Reset tasklist.qsc Resets the Task List.

QSection Name Attribute(s) Description

TaskList Columns Specifies the columns displayed using the Columns property.

TaskList DisableContextMenu Disables the context menu using the DisableContextMenu property.

IC Script File Location Description

Page 74: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 6 Media Channels

74 Avaya Agent Integrator’s Guide

Page 75: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

75

CHAPTER 7PROMPTER CLIENT INTEGRATION

The Prompter client lets agents run workflow-driven scripts that assist them with handling contacts. These scripts are displayed in the Prompter client, which can either reside in a Avaya Agent frame (so agents can access both the script and the information in Avaya Agent’s other controls) or on a Group in the Business Application itself. (For information on inserting the Prompter client into a Business Application application, refer to IC Database Designer Application Reference. For information on writing Prompter scripts, refer to Avaya Workflow Designer Guide.)

This chapter describes starting a flow in a Prompter client instance, how flows should be constructed to function properly with a Business Application, any IC Scripts that allow Prompter to work, and the CDL settings for configuring the Prompter client.

Starting a Flow in a Prompter Client InstanceYou can launch a flow in a Prompter client instance using the out-of-the-box IC Script called QPrompter_StartFlow. The IC Script takes the following parameters:� iQPrompterClient — the instance of the Prompter client in which the flow should be launched

(required because there can be multiple instances in a Business Application).� sFlowsetName – the name of the Flowset containing flow to be launched.� sFlowName – the name of Flow to launch.� FlowParameters — the parameters to be sent to the flow in an array of name/value pairs

(name=value).� sLabel – The label that appears in the Prompter client Session Tree so that the agent knows

what this particular flow is designed to do.

The following portion of the IC Script’s code shows how a flow can be launched using the QPrompter_StartFlow IC Script:

Dim iApp As ApplicationDim iQPrompterClient As ObjectDim sFlowsetName As StringDim sFlowName As StringDim FlowParameters(1 To 3) As StringDim sLabel As String

Page 76: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 7 Prompter Client Integration

76 Avaya Agent Integrator’s Guide

Set iApp = GetAppSet iQPrompterClient = iApp.GetActiveXControl("QPrompterClient")

sFlowsetName = "SomeFlowsetName"sFlowName = "SomeFlowName"sLabel = "Nice Looking Label for Flow"

FlowParameters(1) = "name1=value1"FlowParameters(2) = "name2=value2"FlowParameters(3) = "name3=value3"

QPrompter_StartFlow iQPrompterClient, sFlowsetName, sFlowName, FlowParameters, sLabel

Flow Construction BasicsFlow construction is the most important part of the Prompter client integration. The flow to be run must:� present the scripting interface� determine which IC Script will be used to pass the data collected in the flow to the Business

Application.

To build a flow:

1 Create a flow that an agent can run to accomplish a certain task (for more information refer to Avaya Workflow Designer Guide).

2 Set the following symbol values, within the flow, which will be extracted by the QPrompterClient_FlowDelete IC Script:

� QScriptName – name of the IC Script to execute when the flow is done.� QScriptParam1, QScriptParam2, … QScriptParamN – these will become the parameters

passed to the specified IC Script.� QScriptParamCount – Number of QScriptParam's to pass to IC Script Name

The following is a short example of how the symbols set in the flow translate into an IC Script being run at flow completion. If specifying the following symbols within the flow:

QScriptName="QScriptToRun"QScriptParam1="value1"QScriptParam2="value2"QScriptParam3="value3"QScriptParamCount=3

Then you must have created an IC Script defined as:

Sub QScriptToRun(sParam1 As String, sParam2 As String, sParam3 As String)

Page 77: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

IC Scripts that Work with the Control

Issue 1.0 June 2002 77

IC Scripts that Work with the ControlThe following out-of-the-box IC Scripts affect the behavior of the Prompter client:

CDL SettingsThere are no CDL settings for this component.

IC Script File Location Description

QPrompter_Initialize qprompter.qsc Used to initialize the Prompter client.

QPrompter_StartFlow qprompter.qsc Used to start a flow in an instance of the Prompter client.

QPrompterClient_FlowComplete qprompter.qsc Event handler linked to the FlowComplete event of the Prompter client. Used to delete the Flow Session. When the Flow Session is deleted, the FlowDelete event is raised.

QPrompterClient_FlowDelete qprompter.qsc Event handler linked to FlowDelete event of the Prompter Client. Used to launch the IC Script set in the Symbol Dictionary of the flow.

QPrompter_CompleteWrapUp qprompter.qsc Used to verify if the agent is allowed to delete the Flow session (by checking the value—True or False—of the WrapupRequired attribute in the CDL settings).

QPrompter_StartWrapUp qprompter.qsc Used to initiate contact WrapUp using the Prompter client (for more information about WrapUp, see “Contact Wrapup,” on page 79).

QPrompter_Exit qprompter.qsc Use to perform any cleanup in the Prompter client.

CreateFlowCatalogFromTable qprompter.qsc Given a filled qw_flow table and filename will create a XML file in the format necessary for building the Flow Catalog on the Prompter client.

Page 78: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 7 Prompter Client Integration

78 Avaya Agent Integrator’s Guide

Page 79: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

79

CHAPTER 8CONTACT WRAPUP

This chapter describes the out of the box wrapup functionality included in Avaya Agent. There are two methods of performing wrapup integrated out of the box: wrapup through the WrapUp Dialog or WrapUp through Prompter. Both methods of wrapup are discussed in this chapter as well as the general outline of how wrapup should be handled in Avaya Agent.

WrapUp ProcessNo matter how you choose to do WrapUp in Avaya Agent, the main process is the same. The following diagram outlines this process:

WrapUp Dialog The Wrap Up Dialog may be used when an agent needs to complete a contact by indicating a wrapup reason, category, and outcome:� Reason – lets the agent to specify the purpose of a customer's initial reason for contacting that

agent, or the intent of the work performed (for example, Account Balance, Fund Transfers).

Page 80: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 8 Contact Wrapup

80 Avaya Agent Integrator’s Guide

� Category – lets the agent wrap up more efficiently by presenting only the categories associated with that reason (for example, Insurance: Auto, Home, Life).

� Outcome – specifies the result of the contact with the customer.

Multiple WrapUp Dialogs may be shown at a time. For example, there may be wrapup needed on both the chat and e-mail channels at the same time. This lets the designer invoke the Wrapup Dialog method ShowWrapup followed by WrapupContact while another wrapup operation is still in progress.

If a contact is transferred between agents, each agent may select a wrapup reason. Each of these wrapup reasons may be shown in a list that shows all the previous entries made by other agents.

WrapUp Process Using the WrapUp Dialog

As stated at the beginning of this chapter, whatever method is used to perform the WrapUp in Avaya Agent, the process remains the same. The following diagram shows how the WrapUp Dialog fits into this process:

IC Scripts That Work With the Control

The following out-of-the-box IC Scripts affect the behavior of the Wrapup Dialog control:

IC Script File Location Description

WrapUpDialog_Initialize shared.qsc Used for initializing the WrapUp Dialog.

WrapUpDialog_StartWrapUp shared.qsc Used to start a WrapUp for a contact in the WrapUp Dialog.

WrapUpDialog_WrapupEvent shared.qsc Event handler linked to the WrapUp Dialog. Used for processing actions taken on the WrapUp Dialog.

Page 81: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Prompter Client

Issue 1.0 June 2002 81

CDL Settings� <QSection Name="WrapUpDialog" � Required="FALSE" - Is a wrapup value required for a contact?� EnforceFormat="FALSE" - � CategoryCodeTable="" - The DS table that holds the different categories of reasons� ReasonCodeTable="" - The DS table that holds the reason codes� OutcomeCodeTable=""/> - The DS table that holds outcome codes

Prompter ClientThis section outlines how the Prompter client can be used to perform Contact WrapUp. As described in “Flow Construction Basics,” on page 76, the most important part of using the Prompter client is designing the proper flow. Two things must be accomplished in the flow that is to be used for Contact WrapUp; setting the correct EDU Values and IC Script variables to ensure that completion is accomplished.

Setting the correct EDU Values

The proper EDU value that need to be set by the flow so that WrapUp information is successfully transitioned into the CI Repository:

<media>.<n>.wrapup.<n>.code_key=<value>

where <media> can be one of the following:� voice� email� chat

and where <n> is the loginid of the agent performing the WrapUp.

The values used for these EDU entries correspond to name/value pairs in the Directory Services table. For example, "001" may correspond to “Banking” in the Directory Services table “CategoryCodes.” So voice.!someuser.wrapup.category would need to be set to “001” to indicate a category of “Banking.”

When setting wrapup data to the chat channel, the syntax would be as follows:

chat.!<chatid>.wrapup.categorychat.!<chatid>.wrapup.reasonchat.!<chatid>.wrapup.outcomechat.!<chatid>.wraptime

where <chatid> is the WebCenter chat ID.

To insure the capability to do this, the following are parameters that are passed to the flow being used for WrapUp:� eduid – Id for obtaining the EDU in the flow.� mediatype – String specifying the media type contact is in.

Page 82: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 8 Contact Wrapup

82 Avaya Agent Integrator’s Guide

� agentid – String specifying the id of the agent performing the WrapUp.� taskid (chat only) – String specifying the id of the task for the Chat.

Setting the Correct IC Script Variables

As described in “Starting a Flow in a Prompter Client Instance,” on page 75, there are several global variables that need to be set in a Prompter flow if an IC Script needs to be run. Because we need to remove the contact from Avaya Agent when WrapUp is complete, these parameters need to be set up to run QConsole_CompleteContact. The following are required settings in the Prompter flow to complete the contact in Avaya Agent properly:� QScriptName = "QConsole_CompleteContact"

� QScriptParam1 = eduid (from input parameters)� QScriptParam2 = mediatype (from input parameters)� QScriptParamCount = "2"

WrapUp Process using the Prompter Client

As stated at the beginning of this chapter, whatever method is used to perform the WrapUp in Avaya Agent, the process remains the same. The following diagram shows how the Prompter client fits into this process:

QPrompterClient_FlowDelete

Page 83: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Prompter Client

Issue 1.0 June 2002 83

IC Scripts That Make WrapUp Work Through Prompter Client

There are no CDL settings for this component.

CDL Settings� <QSection Name="QPrompter" � Server="" - The hostname of the webchannel server for running prompter flows� Port=""� WrapUpFlowset="" The port of this webchannel server� WrapUpFlow="" The flow name� WrapupRequired=""/> Should a wrapup be done for all contacts

Page 84: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 8 Contact Wrapup

84 Avaya Agent Integrator’s Guide

Page 85: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

85

CHAPTER 9OUTBOUND LIST PROCESSING

A list is a group of customers that you want to mark as being related in some way. When you set up a list, you can use the customers already defined in your CallCenterQ database, or import pre-defined customer lists into your database as individual customer records. (When you do, CallCenterQ automatically deletes duplicate records.)

Lists are often used to set up information for an outbound calling campaign. You create a list in any of the CallCenterQ applications, and then the list members get routed to the agents for processing by the Avaya Agent List Management component.

The component cycles through all the customers in the list and shows agents the name of the associated campaign, marketing event, and list name, as well as providing some customer information. You can also set up the list so that when a call is placed, Avaya Agent automatically opens the associated CallCenterQ focus and backfills the customer record so the agent has all the information they need without having to search the database.

Note: You must use one of the Avaya IC CallCenterQ applications to set up lists, but whichever application you chose, the process remains basically the same. For complete details, refer to CallCenterQ Administration Guide.

The component’s interface is an HTML page showing whatever information about the list and the customer you think is necessary, along with some softphone icons that let agents make calls.

The out-of-the-box page also includes a Results drop down list so agents can indicate if the call was successful or if the customer needs to be called back.

Setting Up Outbound Calling Lists In order to use the List Management component, several things must be done first:

1 The default List Management HTML page is called listmanagement.htm, and it is installed in the <IC_install_dir>\IC60\design\QConsole\listmanagement directory. You may want to edit this file based on your site’s business requirements.

2 Put the listmanagement.htm page on a web server that all your agents can access.

3 In the List Management focus, go to the Application Profile tab.

Page 86: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 9 Outbound List Processing

86 Avaya Agent Integrator’s Guide

4 Select the application profile that will be used by your agents and enter the URL of listmanagement.htm in the List Management URL field.

5 To test Avaya Agent, go to the Avaya IC application group and double click on Avaya Agent. Go to the List Management tab, and a blank form with all the proper field labels should appear.

Creating an Outbound Calling ListTo create a new list:

1 If you want to have the customer record backfill into a focus, go to the CallCenterQ List Management focus. On the List Target tab, specify the focus, browser, and relation set that will be used when the customer database is searched and the list is populated. (You will need to get the exact names from the developer who created them.) The tables listed in the relation set are the only ones the application will search when it populates the list.

2 On the List tab in the CallCenterQ List Management focus, click New and enter information about the list. Besides the Target described above, some of the things you can specify are:

� Script. This is the script that runs when the Agent clicks Next Call.� List Status: Inactive, Active, or Completed. Only active lists will be sent to Avaya Agent,

and when all customers on the list have been called and have either answered or exceeded the callback limit, Avaya Agent sets the list’s status to Completed.

� Priority: Low, Medium, High, or Critical. Whenever an agent requests the next call, Avaya Agent looks for the highest priority list and selects a call from that list. If all lists are of the same or lower priority than the current list, Avaya Agent gets the next call in the current list.

� Callback Limit: the maximum number of times to try calling the Customer for this list. If this limit is exceeded, Avaya Agent sets the status to “Unreachable” and does not try to call that person again.

� Next Call Delay: how long to wait until the Customer gets called again if the agent sets the Result to Busy, Answering Machine, or No Answer.

� Assigned Agents and Assigned Workgroups: the agents to whom these calls can be routed. You can specify either individual agents, entire workgroups, or both. They must have a status of Active before Avaya Agent will assign them a call.

� List Members: the customers who will be called. Make sure their status is set to Callable so they will be included in the list. After that, Avaya Agent sets their status and Next Contact information as appropriate.

Checking the Status of a ListTo check the status of all list members, go to the List tab in the CallCenterQ Campaign Management focus and click Show Status. The application displays a dialog box showing how many list members are in each of the six possible statuses.

Page 87: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

IC Scripts That Work With the Control

Issue 1.0 June 2002 87

IC Scripts That Work With the ControlThe following out-of-the-box IC Scripts affect the behavior of the List Management control:

IC Script File Location Description

LM_Next listmanagement.qsc Gets the next available List Member and puts it into Avaya Agent.

LM_PlaceCall listmanagement.qsc Called from the Place Call button. This function uses Telephony to call the List Member that is currently in the page, and create an event for this action.

LM_Done listmanagement.qsc Called from the Done Button in List Management. This Function takes the set Result and updates the ListMember Record.

LM_Cancel listmanagement.qsc Called from the Cancel Button in List Management. This Function clears what is in the List Management page.

Page 88: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 9 Outbound List Processing

88 Avaya Agent Integrator’s Guide

Page 89: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

89

CHAPTER 10ADDITIONAL CONTROLS

This chapter describes the Async control, which enables Avaya Agent to run more efficiently by performing time consuming automation tasks asynchronously.

OverviewThe Avaya Agent framework provides a persistent desktop presence that can host multiple ActiveX controls to be used independently or in conjunction with other applications such as CallCenterQ. It enables IC Scripts to be invoked when the ActiveX controls emit events. Within Avaya Agent, IC Scripts can invoke methods and manipulate properties on ActiveX controls including automation objects.

Avaya Agent IC Script processing used to be done synchronously in a single thread. In some instances, invoking methods on an automation server takes a significant amount of time to complete. If this invocation is done on Avaya Agent's IC Script execution thread, it blocks all new IC Script event dispatching until the request completes. This can produce an unacceptable condition rendering Avaya Agent unavailable until the method that is being called finishes. A prime example of this occurs when Avaya Agent attempts to do a screen pop. If the application doing the screen pop takes a significant amount of time to do data lookup, Avaya Agent can seemingly “freeze” during that period. Because this example is the most prevalent in Avaya Agent at this time, it is used to illustrate our solution to this problem.

To solve the problem we have created the Async control to perform these automation tasks asynchronously. Async is dropped into the Avaya Agent framework to offload the execution from Avaya Agent. It queues the tasks in a separate thread of execution enabling program flow to continue normally. Each task is performed in first-in, first-out order, one at a time, with each one waiting for the previous one to complete. When each of the operations completes, an event is fired to notify the application that is hosting the Async control. AsyncArgs, a supporting object, is used to pass parameters to method calls in the Async method call.

Page 90: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 10 Additional Controls

90 Avaya Agent Integrator’s Guide

AsyncAsync is a non-GUI ActiveX control that is present in the Avaya Agent design layout (CDL) file. It assigns to (registers with) the instance of Avaya Agent at startup. Method calls can be made on Async which in turn are called on the Business Application instance that is assigned to Async. As method calls are made on Async, they are queued and executed in the order they were called.

IC Scripts That Work With the Control

The following out-of-the-box IC Scripts affect the behavior of the Async control:

CDL Settings

This component does not have any configurable settings. For information on disabling the control, see “<QControl> ... </QControl>,” on page 29.

IC Script File Location Description

QConsole_InitializeComponents qconsole.qsc This is the IC Script in which Async is attached to the Application Object.

QConsole_ExitComponents qconsole.qsc This is the IC Script in which Async is detached from the Application Object.

QConsole_AsyncExecuteQScript qconsole Used to run an IC Script asynchronously by making an ExecuteScript method call against the Application using Async.

Page 91: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

91

CHAPTER 11SIEBEL 2000 INTEGRATION

OverviewAvaya offers an out-of-the-box integration solution for those customers wanting to use Siebel Call Center as their eCRM (customer relationship management) application. This chapter covers this solution in depth and describes how you can adapt it to specific customer needs. For full information on installation and configuration for Siebel integration, see “Configuration of Siebel Integration” in the IC Installation and Configuration Guide.

Through customization of the Avaya CDL file, you may integrate with other Siebel eBusiness Applications. For more information, see “CDL Settings,” on page 102.

Siebel integration consists of two major parts, as denoted by the stars in the diagram. These parts will be discussed separately here, but first a general overview of the integration.

Page 92: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 11 Siebel 2000 Integration

92 Avaya Agent Integrator’s Guide

The first part is the server-side integration. It involves integration between the Workflow Server and Siebel’s COM Data Server, specifically Avaya’s initial work of record lookup and creation in Siebel, before a contact is delivered to Avaya Agent. As we will see later, most customizations occur at this point of the integration.

The second part is the client-side integration. This portion includes the driving of the Siebel application by Avaya Agent. It also involves activities like startup/shutdown of the Siebel application and screen pop (displaying customer record for given contact). This integration would require customization only of the screen pop process.

Page 93: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Overview

Issue 1.0 June 2002 93

The following steps outline the general flow of the Siebel integration as well as highlighting the two major integration points:

1 Customer contacts the Call Center via some form of communication (phone, email, chat).

2 QWorkflow, previously set up to monitor incoming events on media channels, runs a workflow for the incoming contact. In this workflow, information is extracted from the EDU relevant to the associated media. Using the Siebel COM Data Server, the workflow looks up the contact (or creates an anonymous contact if necessary) and creates an activity record. A certain set of data, required in the client-side integration portion, is written to the EDU. This data includes items such as contact label, screen pop information, contact rowid and activity rowids.

3 The Avaya contact is delivered to Avaya Agent using whatever routing means implemented in the flow.

4 IC Scripts in Avaya Agent extract information from the EDU and generically ‘screen pops’ the contact data to the Siebel application. Any previous Avaya contacts for the Siebel contact are shown in the Contact History Browser. The Agent can double-click on these to show their related History and click in the Siebel application to display the linked activity.

5 The agent terminates the contact (hangs up the phone, responds to the email, wraps the chat).

6 EDU is retired by Avaya, and Report Server links Siebel activity/contact to Avaya contact in the CI Repository database.

Page 94: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 11 Siebel 2000 Integration

94 Avaya Agent Integrator’s Guide

Comparison of TermsThe following table describes important terms in the Avaya and Siebel systems, and explains how similar terms may be applied differently in the two systems.

ntegrating Siebel 2000 eBusiness ApplicationsTo use the Siebel 2000 eBusiness Applications within the Avaya Interaction Center, you must configure the EDU Server with the proper EDU key and you must configure the customer management flows for Siebel.

To integrate Siebel 2000 eBusiness Applications with Avaya IC, perform the steps in the following sections:� “Configuring the EDU Server for Siebel,” on page 94 � “Configuring Customer Management for Siebel,” on page 95

Configuring the EDU Server for Siebel

The EDU Server maintains all active EDUs. Avaya preconfigures the EDU Server with the key that the DUStore servers uses to look up EDUs. If your system includes an integration with Siebel 2000 eBusiness Applications, you need to add a key to look up EDUs.

To configure the EDU Server for Siebel eBusiness Applications:� Launch IC Manager from the Windows Start > Programs > Avaya Interaction Center 6.0 menu. � Double-click on EDU in the list of servers.

Term Source Definition/Description

Customer Avaya Person initiating the interaction into the Avaya eCRM system.

Contact Avaya One interaction with a Avaya Customer through some form of media (chat, email, voice)

Contact Siebel Same as a Avaya Customer.

Activity Siebel Similar to a Avaya Contact, but extended in Siebel to be any interaction/action performed for a Contact (or any other Object in Siebel).

QWorkflow Avaya Server that runs sets of step-by-step instructions (called flows) for doing work involved in processing Avaya Contacts on the server side. This could involve customer identification, record creation, and/or contact routing. For more information refer to Avaya Workflow Designer Guide.

Siebel COM Automation Server

Siebel One form of the Siebel COM Object Interfaces that allow external applications to programmatically control the Siebel application. For more information refer to Object Interfaces Reference Manual of the Siebel Bookshelf.

Siebel COM Data Server

Siebel Another form of the Siebel COM Object Interfaces that allows reading and writing of data in Siebel without displaying the user interface. For more information refer to Object Interfaces Reference Manual of the Siebel Bookshelf.

Page 95: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Comparison of Terms

Issue 1.0 June 2002 95

� Select the EDU tab. � Scroll down to the DU Field Lookup2(indexed) field and change it to Siebel.contact_key. � Click OK.

Configuring Customer Management for Siebel

In order for the proper workflows to be used for customer management, you must set the properties for the Siebel tenant.� Launch IC Manager from the Windows Start > Programs > Avaya Interaction Center 6.0 menu. � From the Services menu, select MultiTenant Administration.� Click on Tenant Administration.� Click on Customize Tenant. � On the Properties page, Click on the Flows folder. � Set the Current Value(s) in respect of flows where the name ends with "customer" by

substituting the letters "customer" with "contact".� Click the Update Data button.

Configuring IC Manager – IC Web Management Administration Integration

Interaction Center Web Management Administration is the set of web pages used to administer and manage Chat & Collaboration and Email. The following steps will enable you to access the Interaction Center Web Management Administration pages from Interaction Cente rManager’s Services menu.

To configure integration between Interaction CenterManager and Interaction CenterWeb Manager:

1 Launch eContact Manager from the Windows Start > Programs > Avaya Interaction Center 6.0 menu.

2 Select Groups from the Tools menu.

3 Select the Properties tab.

4 Highlight the IC node in the left-hand pane of the Group Manager screen.

5 Click on the System/Configuration section.

Page 96: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 11 Siebel 2000 Integration

96 Avaya Agent Integrator’s Guide

6 Double-click ChatLoginServer in the list of properties.

Enter the fully qualified domain name of the Interaction CenterWeb web server (Example: support.xyzcorp.com).

Click Ok.

7 Double-click ChatLoginServerWebsite in the list of properties. This name is defined when you run the IC Configure tool for the web.

Enter the name of the Interaction Center Web Management website web application (also called the context) that you defined when you configured JRun (Example: website) by running the IC Configure tool. The context must be on the server specified by the ChatLoginServer property.

Click Ok.

8 Click Ok on the Group Manager screen.

9 Exit from Interaction Center Manager and restart it.

Note: If the Interaction Center Web Management Administration pages are being served from a secure web server the following properties will also have to be modified:

ChatLoginServerPort: 80 or 443

ChatLoginServerProtocol: http or https

Server-Side Integration

Server-side integration is the heart of the Siebel integration. You would modify the server-side integration, at implementation, to enforce any business rules that you have established.

Page 97: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Server-Side Integration

Issue 1.0 June 2002 97

The server-side integration consists of flows running in Workflow Server accessing Siebel information through Siebel’s COM Data Server.

Note: The Workflow Server must run under a Microsoft NT/2000 user account. For more information, refer to IC Installation and Configuration Guide.

Avaya delivers the server-side functionality in two parts:� QWorkflow catalog named Siebel which contains a set of standard Siebel blocks � set of example flows using the Siebel blocks for associating with incoming contact events for

all current media channels

Note: You must build all six Siebel flow sets supplied at installation using Workflow Designer. In addition, you must set flows to run through IC Manager. For more information on setting flows, refer to IC Installation and Configuration Guide.

The following table outlines all Siebel blocks contained in the Siebel catalog.

Page 98: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 11 Siebel 2000 Integration

98 Avaya Agent Integrator’s Guide

Block Description Properties

Initialize Siebel Parameters

Sets some Global Variables needed by the Siebel flows. Used in a flow run in the Workflow Initial Startup. Settings used to initialize the Siebel COM Data Server.

� SiebelConfigFile – Location of the Siebel configuration file, used when performing a LoadObjects on the Siebel COM Data Server.

� SiebelUsername – Username to log into the Siebel COM Data Server.

� SiebelPassword – Password for the SiebelUsername used to log into the Siebel COM Data Server.

Initialize Siebel Data Server

Sets up the Siebel COM Data Server for use in the flow. Using Global Variables set with the Initialize Siebel Parameters block, a LoadObjects and Login are done on the Data Server.

On Exit

Performs the same functions as the standard On Exit block with an additional task of releasing the Siebel COM Data Server instance upon shutdown of the flow.

Execute Query

Executes query and returns a count of records found and a RowId (if exact match was found), when given Business Object, Business Component, and set of Query Field/Values.

� BusObject – Siebel Business Object to use for Query

� BusComp – Siebel Business Component to use for Query

� Field_xx – Business Component Field to Query on (there are 10 of these possible)

� Value_xx – Query value to place on the corresponding Field_xx setting.

� RowId – Primary Key if an exact match is found

� RecordCount – Number of records found

� ViewMode – How to set the mode of the View before performing the Query

Page 99: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Server-Side Integration

Issue 1.0 June 2002 99

Create Record

Creates a record in Siebel and return the RowId of the record created, given a Business Object, Business Component, and set of Field/Values.

� BusObject – Siebel Business Object to use for creating the record

� BusComp – Siebel Business Component to use for creating the record

� Field_xx – Business Component Field to set on the new record

� Value_xx –Value to place on the corresponding Field_xx setting in the new record.

� RowId – Primary Key of the record created

Get Record Values

Retrieves the record and places values from fields into corresponding fields specified in the properties. This block requires Business Object, Business Component, and RowId properties.

� BusObject – Siebel Business Object to use for creating the record

� BusComp – Siebel Business Component to use for creating the record

� Field_xx – Business Component Field to set on the new record

� Value_xx –Value to place on the corresponding Field_xx setting in the new record.

� RowId – Primary Key of the record created

Block Description Properties

Page 100: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 11 Siebel 2000 Integration

100 Avaya Agent Integrator’s Guide

Note: Most Siebel blocks also include a numeric property, “ErrCode”, which would contain any error code if an error occurred within the block. This property can be used for error handling in flows.

Create Anonymous Contact

This block creates an Anonymous Contact record in Siebel. The Anonymous Contact is created in the following way:

Properties for FirstName and LastName are set in the Contact record. Combination of FirstName and LastName are supposed to be unique in Siebel, so the first Anonymous Contact would be: “Unknown Contact”;Second: “Unknown Contact(2)”; Third: “Unknown Contact(3)”; etc…

� AnonymousFirstName – First Name to use for Contact being created.

� AnonymousLastName – Last Name to use for Contact being created.

� Field_xx – Optional additional Business Component Field to set on the Contact being created.

� Value_xx –Value to place on the corresponding Field_xx setting in the new Contact record.

� ContactRowId – Primary Key of the Contact record created

Get Contact Using Chat EDU

Allows direct retrieval of a Siebel Contact from a Chat EDU. Extracts the username from the EDU and gets the Contact RowId for the wc_auth record. Requires a Start Block that has created a DB Network containing the wc_auth table.

� ContactRowId – Primary Key of the Contact record retrieved.

� VduData – vduData for the flow containing the Chat Username.

Set Siebel EDU Fields

Sets all EDU fields required for client-side integration.

� ActivityKey – Primary Key of Activity record to be linked to Avaya Contact.

� ContactEmail – Email address of the Contact.

� ContactKey – Primary Key of Contact record to be linked to Avaya Contact.

� ContactName – Full Name of the Contact.

� AvayaContactLabel – Label to be used for the Avaya Contact while it is in Avaya Agent.

� ScreenPopBusObject – Business Object to perform Screen Pop with.

� ScreenPopBusComp – Business Component to perform Screen Pop with.

� ScreenPopField_x – Siebel Business Component Field to place QBE on when performing a Screen Pop in Avaya Agent).

� ScreenPopValue_x – Value to use in ScreenPopField_x for performing Screen Pop.

� ScreenPopView – View to perform Screen Pop in to.

Block Description Properties

Page 101: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Client-Side Integration

Issue 1.0 June 2002 101

We have seen the Siebel catalog. The Siebel integration package also includes a set of sample flows. The following table outlines these sample flows, with name, description, and point of association with Workflow:

Client-Side IntegrationIn the previous section we saw how flows in Workflow do work to determine for whom the Avaya contact is directed, create record(s) in Siebel, and set needed information in the EDU for processing. In this section we will see how this information is used to allow an agent using Avaya Agent to handle the Avaya contact and additionally view activities in Siebel.

The client-side integration with Siebel is done by using Siebel’s COM Automation Server Interface in Avaya Agent’s IC Scripts. IC Scripts are used to Startup and Shutdown the Siebel Dedicated Client, and to ‘screen pop’ information into Siebel.

All integration done using Avaya Agent uses certain CDL settings and a set of Siebel-specific IC Scripts.

Note: Certain vertical applications of Siebel 2000 require a patch from Siebel in order to work correctly with Avaya IC. This patch is not provided by Avaya and must be obtained from Siebel. If you experience Siebel error 4120, which is an OLE error, please contact Siebel technical support for a patch.

Name Description QWorkflow Association

wacd.qualifychat This flow is used to handle the qualifychat event for the wacd Server (Web ACD). In addition to the standard Contact Lookup/Activity Creation, is used for routing the Chat to different a queue or to an Agent.

Link to wacd.qualifychat event in Workflow Channel associations giving the criteria as media=chat.

wacd.qualifyemail This flow is used to handle the qualifyemail event for the wacd Server (Web ACD). In addition to the standard Contact Lookup/Activity Creation, is used for routing the Email to different a queue or to an Agent. The flow also handles routing of outbound emails to an agent or queue (for supervisor approval).

Link to wacd.qualifyemail event in Workflow Channel associations giving the criteria as media=email.

workflow.siebelinitialize This flow is run when the Workflow starts up and is used to set Siebel-specific GlobalVariables to be used in flows.

Set the flow into the Initial Startup setting on the Workflow Tab.

ts.incomingcall This flow is used to handle the IncomingCall event for the TS Server (Telephony Server).

Link to TS.IncomingCall event in Workflow Channel associations.

Page 102: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 11 Siebel 2000 Integration

102 Avaya Agent Integrator’s Guide

CDL Settings

QSection Name Attribute Description

SiebelActivity BusObject These settings are used to set how the IC Scripts in Avaya Agent can access Activities in Siebel.

BusComp

View

ContactIdField

RowIdField

SiebelContact BusObject These settings are used to set how the IC Scripts in Avaya Agent can access Contacts in Siebel.

BusComp

FullNameField

RowIdField

SiebelApp ConfigFile Name of the Siebel Configuration file to use when launching the Siebel Dedicated Client (this is equivalent to the /c parameter in the Siebel command line).

NOTE: You must set the proper default DataSource within the Siebel Configuration file. For more information, refer to IC Installation and Configuration Guide.

DataSource Name of the Data Source to use when launching the Siebel Dedicated Client (this is equivalent to the /d parameter in the Siebel command line).

ExeRegKey Registry key where the installed location of Siebel can be found. Used for determining where the Siebel executable is located.

ExeRegValue Value to extract for the ExeRegKey.

ExeSubDir Name of subdirectory where the ConfigFile and Executable would be found in a Siebel installation.

ExeFile Name of the executable for Siebel.

WindowName Caption of the Siebel Dedicated Client. This would need to be change for different Siebel applications or localization. This is used for finding the running Siebel and/or closing it down.

ConfigFilePath This is the full path to the Siebel ConfigFile. If set, overrides any value extracted from registry.

Page 103: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Siebel–Avaya Data Relationship

Issue 1.0 June 2002 103

IC Scripts Enabling Siebel Integration

Siebel–Avaya Data RelationshipThe following diagram outlines the relationship between Siebel and Avaya data for the Siebel integration:

ExeFilePath This is the full path to the Siebel Executable. If set, overrides any value extracted from registry.

SiebelEDUFields ActivityKey These are settings specifying which EDU fields are used to pass information from the Workflow Flow to Avaya Agent IC Scripts. These should not be changed unless the “Set Siebel EDU Fields” block is changed in all flows.

ContactKey

ScreenPopBusObject

ScreenPopBusComp

ScreenPopView

ScreenPopField

ScreenPopValue

IC Script File Location Description

SiebelApp_Login siebel.qsc Used to launch the Siebel Dedicated Client.

SiebelApp_ManualLogin siebel.qsc Used for setup of manual login to Siebel.

SiebelApp_Logout siebel.qsc Used to shutdown the Siebel Dedicated Client.

SiebelApp_Exit siebel.qsc Called during shutdown of Avaya Agent.

SiebelApp_GetApplication siebel.qsc IC Script API that gets the currently running Siebel Application Object.

SiebelApp_PerformScreenPopFromEDU siebel.qsc Generically runs a Screen Pop using the EDU.

SiebelApp_PerformScreenPop siebel.qsc Performs generic Screen Pop into Siebel using parameters.

SiebelApp_ShowActivity siebel.qsc Used to Pop an Activity into Siebel.

SiebelApp_CheckActivityContactLink siebel.qsc This is run from the QConsole_CompleteContact. It is used for re-linking the current Siebel Contact linked to the Activity linked in the EDU. This is done in case it is changed by the Agent.

QSection Name Attribute Description

Page 104: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 11 Siebel 2000 Integration

104 Avaya Agent Integrator’s Guide

Note the linking of data between Avaya and Siebel in the database. Note also that all of this linking is done on the Avaya side of the relationship. The data linking consists of three different parts:

I: Linking of Siebel Data to Contact History

Page 105: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Siebel–Avaya Data Relationship

Issue 1.0 June 2002 105

Siebel data is linked to Avaya into the contact table through the sbl_contact_key and sbl_activity_key. This allows the showing of Contact History in the Contact History Browser when the contact is arriving into Avaya Agent. It also allows the agent to display the activity in Siebel when a row is double-clicked in the contact History Browser.

II: Linking of Siebel Contact to Web Agent User Record

This linking is what allows authenticated Customers based on Siebel contacts to log into Web Agent and have the Avaya system link the correct Siebel contact key to the incoming EDU.

Page 106: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Chapter 11 Siebel 2000 Integration

106 Avaya Agent Integrator’s Guide

III: Showing Siebel Data in the Report Wizard

These are table structures, accessed via a secondary ‘siebelDataSource’ in the qrepository.adl. They allow the display of the Siebel contact and its associated addresses in Report Wizard. This allows the administrator to maintain the Web Agent User List.

Page 107: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

107

APPENDIX AIC SCRIPTS

This appendix describes the main IC Scripts that Avaya Agent uses.

Avaya Agent IC ScriptsThe following IC Scripts are located in qconsole.qsc:

IC Script Description

QConsole_AddContact Run from a media event that indicates a contact is coming into Avaya Agent. Runs appropriate logic to add Contact to Avaya Agent and set up anything in the EDU for that contact so that it may be processed in Avaya Agent.

QConsole_AsyncExecuteQScript Used to run an IC Script in Avaya Agent Asynchronously via the QAsync Control.

QConsole_CompleteContact Last IC Script run in the Contact Lifecycle, this IC Scripts runs any logic needed to “finish-up” with the contact in Avaya Agent. Responsible for Terminating the EDU as the very last step.

QConsole_ExitComponents Used when a Business Application is being shutdown, is responsible for running all of the “Exit” IC Scripts for each component.

QConsole_GetContactLabelFromEDU Can be used by any IC Script needing to retrieve the consistent label create for the contact in QConsole_AddContact.

QConsole_GetCoreServices Used to obtain the CoreServices Control from Avaya Agent.

QConsole_GetExistingRelatedEDU Given an edu, will find the related multimedia edu in icagent

QConsole_HangUpCall Can be called from any Component IC Script to generically hang up a call.

QConsole_InitializeComponents Called from the InitAppHook, this IC Script is responsible for calling all “Initialize” IC Scripts for each component.

Page 108: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Appendix A IC Scripts

108 Avaya Agent Integrator’s Guide

QConsole_KeyDown This IC Script is hooked to all KeyDown Hooks in Avaya Agent. Calls the appropriate IC Script depending on which key combination was pressed.

QConsole_LoginComponents Called from the InitAppHook, after QConsole_InitializeComponents, this IC Script is responsible for calling all “Login” IC Scripts for each component.

QConsole_MouseDown This IC Script is hooked to all MouseDown Hooks in Avaya Agent. Used to build Right Click Menu and call correct IC Script as a result of a selection from that menu.

QConsole_PerformScreenPopFromEDU Given an EDU Id will take appropriate measures to perform a Screen Pop for that EDU.

QConsole_PlaceCall Can be called from any Component IC Script to generically place a call.

QConsole_RemoveContact This IC Script is called from QConsole_CompleteContact (or any IC Script needing to physically remove the contact from any components in Avaya Agent).

QConsole_ScreenPop If there are multiple contacts in Avaya Agent, will pop a dialog of all Contacts in Avaya Agent. If only one contact and/or when user selects a contact, will perform a Screen Pop of that contact.

QConsole_ShowContact Run from a media event that indicates a contact is being selected into Avaya Agent. Runs appropriate logic (including other component IC Scripts) to synchronize all Contact Viewing Components and anything else related to that contact.

QConsole_ShowRetryLoginDialog Common IC Script used from any Login IC Script to show a consistent dialog for presenting an Agent with a choice to [Retry], [Skip], or [Exit].

QConsole_SuspendOtherContacts IC Script that drives the logic of suspending contacts on media channels other than the incoming one.

QConsole_UpdateUAD This is used to update the Unified Agent Diectory with the correct contact list.

QConsole_WrapContact Run from a media event that indicates a contact is done being processed in Avaya Agent. Runs WrapUp Logic described in Contact WrapUp Chapter.

IC Script Description

Page 109: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

109

APPENDIX BADDING EDU CHANGE EVENT HANDLING

The Phone Engine OCX that resides in Avaya Agent fires several different events. One of these events, OnCoreStateChanged, is fired every time a value in a monitored EDU changes. This event allows you to execute an IC Script whenever an EDU is updated.

To have an IC Script execute when an EDU changes:

1 Modify Softphone_Initialize to enable the EDU Change event.

2 Write an Event Handler IC Script.

3 Hook the Event Handler IC Script to the event.

4 Test the result.

This appendix describes how to perform all of the above steps and test the result using the examples given in each step.

Modify Softphone_InitializeOut-of-the-box, the IC Script that initializes the Softphone (Softphone_Initialize) does not listen for the EDU Change event. To make it do so, you need to insert one line into the SetupEvents subroutine in the Softphone_Initialize IC Script. In the following code sample, the line you need to add is in bold:

Sub SetupEvents(iQConsole As Application)Dim iPhoneEngine As ObjectDim bSuccess As Boolean

Set iPhoneEngine = iQConsole.GetControlObject("PhoneEngine")

bSuccess = iPhoneEngine.RemoveAllEventsToListenFor

If bSuccess ThenbSuccess = iPhoneEngine.AddEventToListenFor(evCallIncoming)bSuccess = iPhoneEngine.AddEventToListenFor(evCallRemoteRing)bSuccess = iPhoneEngine.AddEventToListenFor(evCallRemoteBusy)bSuccess = iPhoneEngine.AddEventToListenFor(evTelephonyLineChange)

Page 110: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Appendix B Adding EDU Change Event Handling

110 Avaya Agent Integrator’s Guide

bSuccess = iPhoneEngine.AddEventToListenFor(evCallDisconnected)bSuccess = iPhoneEngine.AddEventToListenFor(evEduChange)

End If

End Sub

Write an Event Handler IC ScriptNow that the OnCoreStateChange event will be fired from the Phone Engine for EDU changes, you must create an IC Script to handle this event. This event handler can be modeled from the PhoneEngine_OnTelephonyStateChanged IC Script.

The following is a simple example of an event handler that displays a message box that displays the value of the EDU field whose change triggered the EDU Change event:

'*****************************************************************************'Script: PhoneEngine_OnCoreStateChanged'Purpose: Run when receiving a Core State Change Event'Copyright: Copyright(c) 1997 - 2002 Avaya Inc,USA All rights Reserved'*****************************************************************************'---------------------------------------------------------------------------' Global Constants, Types, and Variables for this QScript'---------------------------------------------------------------------------' The following are PhoneEngine specific constants' DO NOT CHANGE!!!

' Core Event ID ConstantsConst evCoreStart = 188Const evCoreStop = 189Const evCoreNone = 192Const evCoreResponse = 193Const evCoreServerFailed = 195Const evCoreServerRestart = 196Const evCoreLogin = 197Const evCoreLogout = 198Const evEduChange = 199Const evEduCurrent = 200Const evEduTerminated = 201Const evDialDirectoryLoaded = 202Const evCoreSystemError = 203

'---------------------------------------------------------------------------' QScript API Declarations'---------------------------------------------------------------------------

'---------------------------------------------------------------------------' Internal Subs & Functions'---------------------------------------------------------------------------

'---------------------------------------------------------------------------' Main'---------------------------------------------------------------------------Sub PhoneEngine_OnCoreStateChanged(iCoreEvent As Object)Dim iApp As Application

Page 111: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Hook the Event Handler IC Script to the Event

Issue 1.0 June 2002 111

Dim iEDUObj As ObjectDim sValue As StringDim bResult As Boolean On Error GoTo ERROR_HANDLER '--------------------------------------------

Set iApp = GetApp

If iCoreEvent.EventID = evEDUChange TheniCoreEvent.GetVDUObject iEDUObj

bResult = iEDUObj.GetValueByName("my_edu_field", sValue)

If Len(sValue) > 0 Then iApp.UserMsg "my_edu_field = " & sValueEnd If

Exit Sub ERROR_HANDLER: iApp.UserMsg "PhoneEngine_OnCoreStateChanged error " & CStr(Err) & ": " & Error$, ebCritical + ebSystemModalEnd Sub

Hook the Event Handler IC Script to the EventIn this final step, insert a line in the CDL file, telling Avaya Agent to run your event handler when the OnCoreStateChanged event is raised. The following shows the change to the CDL in bold:

<QControl Name="PhoneEngine" ProgID="QSoftPhone.PhoneEngineCtrl.56" Visible="TRUE"><QScriptDictionary>

<QScript Event="OnTelephonyStateChanged" Name="PhoneEngine_OnTelephonyStateChanged"/><QScript Event="OnCoreStateChanged" Name="PhoneEngine_OnCoreStateChanged"/>

</QScriptDictionary></QControl>

Test the ResultYou can test the included examples using the DDE Direct option of IC Manager. The sample event handler is looking for an EDU where the field “my_edu_field” has a value. To perform the test:

1 Send a contact to Avaya Agent.

2 Obtain the EDU ID for that contact through the agent log.

3 Use the following command in IC Manager’s DDE Direct to set the value:

[VDU.SetOneValue("eduid","my_edu_field","some_value")]

Note: There should be no spaces in the above command.

If the process is working, a message box will pop up on the agent’s desktop showing the value of my_edu_field.

Page 112: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Appendix B Adding EDU Change Event Handling

112 Avaya Agent Integrator’s Guide

Page 113: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

113

APPENDIX CTROUBLESHOOTING

This appendix provides information about common errors and error messages that may occur when using and modifying Avaya Agent. Each error is accompanied by description, possible problem(s), and corresponding possible solution(s).

The errors covered in this document are:� Extra Vtel seeion popping up when logging onto IC Agent� Report Wizard agent installation failure� The modified eduviewer layout is not showing up in the EDU vindow in agent client.� Can not enter a non-US style phone number in CCQ apps� Can not log into components with an empty password� Database login failed. Please retry.� Error occurred at Line x, Column n while parsing CDL file� Avaya Agent Error 11017: Cannot find layout – xxxxxx …� Softphone Logout Failed: xx� The Avaya Agent configuration has changed Please re-log into all components� <name> Login Failed: <reason> Do you want to Retry?� Avaya Agent exits without restoring the desktop area it occupied� A visible control is in the CDL, but does not appear in Avaya Agent� “[email protected]” appears in the Origin field of the Email Task List� Avaya Agent hangs on startup� Get "Warning: Could not get EDU for incoming contact"� Get “Invalid Email Server” from Web Agent Client when starting Avaya Agent

The type of messages logged is controlled by the DebugLevel setting in Application Preferences, stored in the Avaya database. If DebugLevel is set to 1, 2, or 3, Avaya IC logs any errors that Avaya Agent encounters, along with all Login and Shutdown messages, to the application log file stored in <IC_install_dir>\IC60\logs. In addition, if the DebugLevel is set to 3, the messages from every IC Script that Avaya Agent runs are also logged. (For more information, see IC Administration Volume 2: Agents, Customers, & Queues.)

Extra Vtel seeion popping up when logging onto IC Agent

Set GuiType to none in the bin directory.

Page 114: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Appendix C Troubleshooting

114 Avaya Agent Integrator’s Guide

Report Wizard agent installation failure

WORKAROUND

BEFORE AGENT INSTALLATION

To correct this before agent installation, edit the agent.ini file in AgentInstaller\config. Change "APPX=Report Wizard" to "APPX=ReportWizard".

AFTER AGENT INSTALLATION

To correct this after agent installation, copy the reportwizard.adc file to the apps\report_wizard directory, and change the Report Wizard shortcut properties to use "-n reportwizard". The application directory name will still be "report_wizard". You can change it to "reportwizard" to make it consistent. If you do that, you also need to edit the "-d" parameter of the Report Wizard shortcut. (For example, change it from

"-d C:\AvayaAgent\IC60\apps\report_wizard"

to "-d C:\AvayaAgent\IC60\apps\reportwizard"

The -n parameter must match a valid application name in the ccq.qw_apps table.

If you chose (and you should) to use the "Avaya Agent Framework" (formerly known as QConsole), then the Report Wizard shortcut will attempt to use the QConsole layout. But no one (anymore) uses QConsole with Report Wizard. So edit the Report Wizard shortcut on the Agent's machine and remove the "-layout qconsole" from the properties.

The modified eduviewer layout is not showing up in the EDU vindow in agent client.

Solution: Deleted all the layouts from the database, and deleted the adl, adf, and cdl from the apps directory. Log back in.

Can not enter a non-US style phone number in CCQ apps

The data mask for phone number format is fixed at the time of installation, and cannot be modified within an application. You can remove or modify the masks using Database Designer by editing the object of the form in question.

Can not log into components with an empty password

Avaya Agent was designed so that if a user has synchronized all of their passwords all components contained within will be logged into from the main Avaya Agent Login Tab. To accomplish this, the following logic was built into the OOB IC Scripts for Avaya Agent.

For each component to log into, get the Login ID & Password from the corresponding tab in the Avaya Agent Login. If any Login ID and/or Password was left blank, then fill with the default from Avaya Agent Login.

Page 115: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Issue 1.0 June 2002 115

Therefore, if a User actually has a Login ID with an empty Password, they may not be able to log into that component because the default will be used from the Avaya Agent login. There are two ways this can be handled. The Developer can modify the IC Script logic to not apply defaults to Passwords OR always have a password for a Login ID.

Database login failed. Please retry.

This happens when Avaya Agent could not log into the database. Could be caused by:� This happens when an invalid Login ID/Password combination is used for Avaya Agent. Use

correct Login ID/Password.� The Data Server is down. Make sure the Data Server is started.� The Database is down. Make sure the Database is up.

� The IC Data Source was specified incorrectly

Error occurred at Line x, Column n while parsing CDL file

When pushing a Avaya Agent layout specification to the database, the specification is parsed to make sure it follows basic XML structure rules. If there is anything fundamentally wrong with the .cdl file, the above error will occur.

To resolve the problem, note the Line number, open your .cdl file and look for a fundamental syntax problem. This is usually caused by an unmatched starting and ending tag. For example:

<QControl Name="PhoneEngine" ProgID="QPHONEENGINE.QPhoneEngineCtrl.1"> <QScriptDictionary> <QScript Event="OnTelephonyStateChanged" Name="Softphone_OnTelephonyStateChanged"/></QControl>

The above example would cause a parsing error because the <QScriptDictionary> is missing a matching </QScriptDictionary> after it. The below example is how this error would be fixed:

<QControl Name="PhoneEngine" ProgID="QPHONEENGINE.QPhoneEngineCtrl.1"> <QScriptDictionary> <QScript Event="OnTelephonyStateChanged" Name="Softphone_OnTelephonyStateChanged"/> </QScriptDictionary></QControl>

Avaya Agent Error 11017: Cannot find layout – xxxxxx …

Avaya Agent uses the layout file (.cdl) to determine how it looks. It pulls this file from the database upon startup. There are two places in which the name for which specification to use is determined. First and foremost, there is a parameter in the command line for starting Avaya Agent (-layout). Second, when Avaya Agent starts up, it calls an IC Script Hook called AfterLoginHook (located in system.qsc). Inside this IC Script, a developer can change which specification name to be used by changing the value of a variable sLayoutName. When AfterLoginHook completes, Avaya Agent uses the end layout name and searches the database for the specification to pull onto the local machine. This being said, there are two reasons why you would get the above error message:

Page 116: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Appendix C Troubleshooting

116 Avaya Agent Integrator’s Guide

� The most basic is the developer forgot to push the layout specification to the database. Use Database Designer and push the specification using “Generate Windows Application…”/Avaya Agent Layout.

� The name in the specification pushed to the database does not match the one Avaya Agent was looking for. The name appearing in the error message should match the name setting in the CDL file:

<QConsole Name="avaya_agent_en" Version="6.0" Description="Default Avaya Agent Layout Spec in English">

In the above example, the name of the specification is “qconsole”, but let us assume that the error message shows that Avaya Agent was looking for “qconsolespec”. To fix this, either the name has to be changed, or the name Avaya Agent was given to look for must be changed.

Note: Before Avaya Agent searches the database, it translates the specification name to lower case. That means the name is case-insensitive.

Finally, Avaya Agent specifications are pushed to the database per application. For example if Avaya Agent is hooking up to a ccq_request design, make sure you did not push the layout specification to the ccq_contact application.

Softphone Logout Failed: xx

If an agent is using Avaya Agent containing Softphone, when Avaya Agent shuts down, it will attempt to log that agent out of the Softphone. If, for some reason, Avaya Agent can not log the agent out of the Softphone, they will be presented with the above message. xx will usually give you some indication of why Avaya Agent could not log out. The most common cause of this is the agent having a call in the Softphone when they try to logout.

The Avaya Agent configuration has changed Please re-log into all components

As mentioned above, Avaya Agent is built base on a layout specification. Not only is Avaya Agent’s layout determined by this specification, but so is the Login dialog that appears. Therefore, if a developer pushes a new layout specification to the database, the Login dialog could have possibly changed. Thus Avaya Agent recognizes this and will force the user to “…re-log into all components…”

<name> Login Failed: <reason>Do you want to Retry?

Most operations done in Avaya Agent are done via IC Scripts, including logging into the components and controls. Avaya Agent uses standard login messages so that you can modify them to fit your needs. The above error message is specific to the Softphone, but it can be applied to other components and controls as well.

When you encounter one of these error messages, there are two pieces of information that should tell you what failed and why:� <name> – Component/Control name whose login failed.

Page 117: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Issue 1.0 June 2002 117

� <reason> – Reason why login failed.

Avaya Agent exits without restoring the desktop area it occupied

Resize the system task bar to reclaim the desktop area.

A visible control is in the CDL, but does not appear in Avaya Agent� Make certain the control’s Visible property is set to “TRUE”.� Make certain the control is positioned so that it can be seen. On lower resolution video modes,

you may not see the whole control (for example, the Chat List control)

[email protected]” appears in the Origin field of the Email Task List� Check WACD function as described in the IC Installation and Configuration Guide.� Check that WACD hostname is set up properly, via WACD Administration

Avaya Agent hangs on startup� Make certain that you have rebooted after installing Avaya Agent.� Check that "EnhancedDialDirectory" and "FilterADUOLE" are set to "y" in the

<IC_install_dir>\IC60\bin\vtel.ini file.

Get "Warning: Could not get EDU for incoming contact"

For Email contacts:

1 Check that the WACD is working correctly.

� In IC Manager, verify that the WACD is running. � Check the WACD log file (in <IC_install_dir>\IC60\logs) to see if there are errors that

may indicate the cause of the problem.

2 Check that the WACD hostname is set up properly in the Email Script. This value is set in the WACD administration pages. For more information, refer to IC Installation and Configuration Guide.

3 Check if the EDU timed out.

� Using IC Manager's DDE Direct, invoke "[VDU.GetValues("eduid")]", where eduid is the EDU ID that may have timed out. This should return the EDU's contents if things are working properly.

� Check the agent's vagent_vtel.log file for a line "[VDU.GetValues("eduid")]" and see if it returns the EDU successfully.

If either check failed, the DUStore may be failing. Check that the DUStore is properly configured and running.

Page 118: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Appendix C Troubleshooting

118 Avaya Agent Integrator’s Guide

For Web Management chat:� Try changing the <IC_install_dir>\IC60\chatserver\website\public\escalate.jsp

ChatConnector timeout. For more information, refer to IC Installation and Configuration Guide.

For Web Management chat transfers:� Check that you have a DUStore server. Set up the DUStore in IC Manager as a server. If

DUStore is not set up properly and the EDU server is shut down, the EDU server will not be able to restore the EDU from the DUStore.

Get “Invalid Email Server” from Web Agent Client when starting Avaya Agent� Check that the Email Server is running. In IC Manager check to see that the Email Server is

Up.� Check that the WACD Email is configured properly. For more information refer to IC

Installation and Configuration Guide.

Page 119: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

119

AACD (Automatic Call Distribution) 58active contact viewer

CDL parameters for 43, 46IC Scripts for 45

active contact viewer control 45AfterLoginHook IC Script 33agent states 41, 65agent, setting availability 42agent’s login ID, using to set CDL layout 33answer 62arguments, command line 34automatic mode for QStatus control 42availability, setting 42Avaya Agent

command line arguments 34integration tasks 13login procedure 20overriding the command line layout 33overview 13

BBlender Client control 43

IC Scripts for 44

CCall 57Call List Control 61Call routing and queues 58call state 62, 65Call type 58callback 64calling lists 85

setting up 85status of 86

category, for wrapup 80CDL file 13

format of 19when downloaded 33

CDL parametersfor active contact viewer 43, 46for contact history browser 55for EDU Viewer 52for Email channel 73

for QAsync 90channels

chat 66Email 68states 42voice 57

chat channel 66IC Scripts for 67

Chat component 14command line arguments 34components

default layout 16list of 14

Contact History Browser 52contact history browser

CDL parameters for 55IC Scripts for 55

Contact History Filter 53contact viewing component 15contact wrapup 15contacts

completing 36displaying 46handling 41lifecycle 35selecting 36viewing previous 52

containers for an EDU 51Control Initialization 62controls

active contact viewer 45Blender Client 43Contact History Browser 52Contact History Filter 53Core 41IC Scripts for 30interaction between 14Prompter client 75QStatus 41specifying 29that work with Avaya Agent 13

Core control 41IC Scripts for 44

core servicesIC Scripts for 44

core services component 14

INDEX

Page 120: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

120 Avaya Agent Integrator’s Guide

Index

Core Services Control 60customer calling lists 85

setting up 85status of 86

Ddefault components 14desktop resizing 13direct phone 64DTMF Control 65

EEDU 43, 51

containers 51lifecycle 51values for wrapup 81

EDU Viewer 46CDL parameters for 52GUI 48IC Scripts for 52stylesheet 48

educational services 11Email

client 70Components 69

Email channel 68CDL parameters for 73IC Scripts for 72

Email component 14Event Handling 64events 64

raised by Avaya Agent 14exit hooks 32ExitAppHook IC Script 33

Ffiltering contact history 53flows

constructing 76starting 75

format of the CDL file 19frames

definition of 13specifying 25

frameworkdefinition of 13specifying IC Scripts 23

GgetVduValue 63

GUI Controls 60, 64

Hhangup 62hooks 32HTML page, used with List Management 85

IIC Repository and the Contact History Browser 52IC Repository, configuring 53IC Scripts

asynchronous processing 89for active contact viewer 45for chat channel 67for contact history browser 55for controls 30for core services 44for EDU Viewer 52for Email channel 72for panes 28for Prompter 77for QAsync 90for voice channel 65for WrapUp Dialog 80, 87overview 14specifying for the framework 23working with controls 14

Information Field Control 61InitAppHook IC Script 33initialization hooks 32integration tasks 13

Kkeyboard navigation 34

Llayouts

Avaya Agent properties 31controls 29downloading changes 33ending the sections 32frames 25framework IC Scripts 23global options 20login procedure 20panes 27setting based on agent ID 33specifying 19

lifecycle of a contact 35

Page 121: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

Issue 1.0 June 2002 121

Index

Line appearance 58line, phone 62listmanagement.htm 85lists 85

setting up 85status of 86

login procedure, specifying 20

Mmanual mode for QStatus control 42media channels

chat 66Email 68voice 57

media channels component 14media channels, integrating 36MS TabStrip control 53

Nname/value couples, displaying 46name/value pair 31, 43, 63

OOLE controls 13outbound calling lists 85

setting up 85status of 86

Outbound list processing 15outcome, for wrapup 80overview 13

Ppanes

controls in 29definition of 13IC Scripts for 28specifying 27

PBX 58phone 58phone line 62phone state 64–65Phone States 58

Busy 59Ready 59WrapUp 59

phone type 64PhoneEngine Control 60

Registration 62polling 64Preferences equivalent 22

PrompterIC Scripts for 77

Prompter client control 75, 81wrapup process 82

Prompter flowsconstructing 76starting 75

QQAsync

CDL parameters for 90IC Scripts for 90

QAsync control 89QComponent tag 21QComponentDictionary tag 21QConsole tag 20QConsole_AddContact IC Script 36QConsole_CompleteContact IC Script 36, 82QConsole_PerformScreenPopFromEDU IC Script 37QConsole_RemoveContact 36QConsole_ShowContact IC Script 36QConsole_WrapContact IC Script 36QControl tag 29QControlDictionary tag 29QEMailEngine Control 70QField tag 21QFrame tag 25QFrameDictionary tag 25QLogin tag 21QPane tag 27QPaneDictionary tag 27QPrompter_StartFlow IC Script 75QPrompterClient 15QPrompterClient_FlowComplete IC Script 76QPropertyDictionary tag 22QRouter flow, with Contact History Filter 54QRouter, using with EDU Viewer 47QScript tag 24QScriptDictionary tag 24QScriptFile tag 23QScriptFileDictionary tag 23QSection tag 22QStartMenu tag 26QStatus control 41

IC Scripts for 44modes 42states 41

QTab tag 27

Rreason, for wrapup 79resizing the desktop 13

Page 122: Avaya™ Interaction Center · 2002-08-20 · Avaya™ Interaction Center Release 6.0 Avaya Agent Integrator’s Guide DXX-1002-03 Issue 1.0 June 2002 2002, Avaya Inc.

122 Avaya Agent Integrator’s Guide

Index

Sscreen pops 37ScreenPop IC Script 37scripts, attaching to outbound calls 86SeqCouple 63sequence of couples 63Softphone 57softphone

concepts 57Softphone Components 57softphone. See also telephony.speed keys, list of 34standalone components 15state

agent 65call 62, 65phone 65

Switch 58switch 64system integrator tasks 13

Ttags, XML 19tasks for the system integrator 13TbCall 62Telephony

concepts 57telephony

programming overview 59Telephony Button Control 61Telephony Services Control 60Telephony state event 64

terminate 63transfer 62troubleshooting 113–117

Uunavailability, setting 42

VVDU 63voice channel 57

IC Scripts for 65Voice component 14VTel Automation Server 59

Wwrapup

IC Script for 36IC Scripts for WrapUp Dialog 80, 87when transferred between agents 80

WrapUp Dialog 79IC Scripts for 80, 87process 80

wrapup process 79with Prompter client 82with WrapUp Dialog 80

XXML file. See CDL file.XML tags 19XSL stylesheet 47

example 48


Recommended