Avaya™ Interaction Center or interfaces for reasons of: • Utilization (of capabilities special...

214
Avaya™ Interaction Center Release 6.0 Agent Control API Reference DXX-1003-03 Issue 1.0 June 2002

Transcript of Avaya™ Interaction Center or interfaces for reasons of: • Utilization (of capabilities special...

Avaya™ Interaction Center Release 6.0Agent Control API Reference

DXX-1003-03Issue 1.0

June 2002

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-1003-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” or other applicable documentation provided with your package to establish the terms of the limited warranty.

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

3

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

1 ACTIVE CONTACT VIEWER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Interactions With Other Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Active Contact Viewer Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Active Contact Viewer Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2 ASYNC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Async Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3 BLENDER CLIENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19ADU Values Used By the Blender Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

Blender Client Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

Blender Client Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Blender Client Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

ADU Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4 CALL LIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Call List Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Call List Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

5 CHAT LIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Task State Icon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Customer Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Wait Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Duration Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Chat List Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

Chat List Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

Chat List Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

CONTENTS

4 Agent Control API Reference

Contents

6 CONTACT HISTORY BROWSER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Contact History Browser Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

Contact History Browser Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

Interactions with Other Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

Contact History Browser Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

7 CORE SERVICES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43Interrelationships of Core Services-related Entities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

The Core Change Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Core Services Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

The CoreChangeEvent Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

CoreChangeEvent Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

CoreChangeEvent Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

The EDU Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

EDU Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

EDU Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

The Request Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

Request Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

The EduEntriesCollection Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

EduEntriesCollection Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

EduEntriesCollection Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

The EDuEntry Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

EDuEntry Object Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

The Couple Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

Couple Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

The SeqCouple Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

SeqCouple Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

The SeqSeqCouple Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

SeqSeqCouple Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

8 UNIFIED AGENT DIRECTORY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65Unified Agent Directory Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

Issue 1.0 June 2002 5

Contents

Unified Agent Directory Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

Unified Agent Directory Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

9 EDU VIEWER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77Background Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

Interactions with Other Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

EDU Viewer Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

10 MAIL ENGINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83Properties of the Mail Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

Methods Supported by the Mail Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

The Task Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

Properties of the Task Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

Functions and Methods of the Task Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

Mail Engine Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

11 PHONE ENGINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95Phone Engine Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

Phone Engine Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

12 PROMPTER CLIENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101Prompter Client Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

Prompter Client Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

Prompter Client Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

Method Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

13 STATUS CONTROL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109Interactions with Other Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

Status Control Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

Status Control Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

6 Agent Control API Reference

Contents

14 TASK LIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117Properties of the Task List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

Events Emitted by the Task List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

Functions Supported by the Task List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

The TaskChangeEvent Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

Properties of the TaskChangeEvent Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

Functions Supported by the TaskChangeEvent Object . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

Properties of the ErrorEvent Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

Functions of the ErrorEvent Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

The TaskLib Object Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

The Operations and Operation Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

The Properties and Property Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

Functions and Methods Supported by the Operations Object . . . . . . . . . . . . . . . . . . . . . . 130

Properties of the Operation Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

Functions Supported by the Operation Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

Properties of the Properties Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

Functions and Methods Supported by the Properties Object . . . . . . . . . . . . . . . . . . . . . . . 133

Properties of the Property Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

15 TELEBUTTON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137TeleButton Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

TeleButton Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

16 TELEPHONY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141Telephony Control Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

Telephony State Change Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

The Change Event Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

Change Event Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

Change Event Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

Telephony Control Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

The Call Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

Call Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

Issue 1.0 June 2002 7

Contents

Call Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

The Response Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

Response Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

17 WAC ENGINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165WACEngine (Web Agent Client Engine) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

WACEngine Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

WACEngine Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

WACEngine Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

18 WEB ENGINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175Interrelationships Between Web Engine Entities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

The WebStateChanged Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

Web Engine Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

Web Engine Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

The WebStateChanged Event Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

WebStateChanged Event Object Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

The Web Chat Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190

Web Chat object methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190

19 WRAP-UP DIALOG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195Interactions with Other Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

Wrap-up Dialog Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

Wrap-up Dialog Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200

Wrap-up dialog Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200

INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

8 Agent Control API Reference

Contents

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.

!

10 Agent Control API Reference

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.

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://www.avaya-learning.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]

12 Agent Control API Reference

13

CHAPTER 1ACTIVE CONTACT VIEWER

The following IC Agent Controls provide agents with information about customer contacts. � The Active Contact Viewer shows active contacts for the current customer.� The Contact History Browser shows prior contacts for the current customer.� The EDU Viewer shows the current contact's EDU information.

This chapter describes the Active Contact Viewer. For information about the Contact History Browser, see Chapter 6. For information about the EDU Viewer, see Chapter 9.

Interactions With Other ControlsThe Active Contact Viewer incorporates the EDU Viewer and interfaces with Core, which is part of the Phone Engine.

Active Contact Viewer Properties The Active Contact Viewer has the following properties, each of which is described in detail in this section.

Caption

PropertyTypeString

Description Sets or gets the caption of the Active Contact Viewer window, and determines which EDUs are displayed in the window.

Active Contact Viewer

EDU Viewer

Phone Engine

Core

Chapter 1 Active Contact Viewer

14 Agent Control API Reference

Syntax iActiveContactViewer.Caption

Example iActiveContactViewer.Caption = "Active Contacts for John Doe"

sCaption = iActiveContactViewer.Caption

Criteria

PropertyTypeString

Description Sets or gets the criteria currently set for the Active Contact Viewer. Uses the same syntax as for EDU monitoring (for information on formatting EDU monitoring criteria, refer to Event Monitoring chapter in the Electronic Data Unit Server Programmer’s Guide).

Syntax iActiveContactViewer.Criteria

Example iActiveContactViewer.Criteria = "sender=\""[email protected]\"""

sCriteria = iActiveContactViewer.Criteria

MaxContacts

PropertyType Integer

Description Sets or gets the maximum number of contacts to be displayed by the Active Contact Viewer.

Note: Monitoring EDUs can be resource-intensive. Therefore, it is typically better to set this value using the more general Criteria property.

Syntax iActiveContactViewer.MaxContacts

Example iActiveContactViewer.MaxContacts = 5

nMaxContacts = iActiveContactViewer.MaxContacts

TabLabelEDUField

PropertyTypeString

Description Gets or sets the EDU field, which becomes the label for tabs in the EDU Viewer (the EDU Viewer displays within the Active Contact Viewer window after EDUs have been retrieved). Use this property in conjunction with the TabLabelFormat property to achieve the wanted appearance of the EDU Viewer and Active Contact Viewer windows.

Syntax ActiveContactViewer.TabLabelEDUField

Example iActiveContactViewer.TabLabelEDUField = "createtime"

sTabLabelEDUField = iActiveContactViewer.TabLabelEDUField

TabLabelFormat

Issue 1.0 June 2002 15

TabLabelFormat

PropertyTypeString

Description Gets or sets the format to be applied to the labels of tabs in the EDU Viewer (within the Active Contact Viewer). Refer to Microsoft Visual Basic Reference for applicable format strings.

Syntax iActiveContactViewer.TabLabelFormat

Example iActiveContactViewer.TabLabelFormat = "m/d/yyyy h:mm AM/PM"

sTabLabelFormat = iActiveContactViewer.TabLabelFormat

Active Contact Viewer MethodsThe Active Contact Viewer control supports the following methods.

AddEDUTemplate

ReturnType Boolean

Description Adds a new EDU template to the EDU Viewer.

Syntax iActiveContactViewer.AddEDUTemplate(sName As String, sStyleSheet As String) As Boolean

sName represents the name of the template and sStyleSheet represents the entire contents of the .xsl file.

Example bResult = iActiveContactViewer.AddEDUTemplate("Spanish", sStyleSheet)

AdviseSinkToCore

ReturnType Not applicable

Description Introduces the Core Object to the Active Contact Viewer, so the Active Contact Viewer can have access to EDU objects.

Syntax iActiveContactViewer.AdviseSinkToCore (iCoreServices As Object)

iCoreServices: Reference to the CoreServices Object obtained from the Phone Engine

Example iActiveContactViewer.AdviseSinkToCore iCoreServices

Clear

ReturnType Not applicable

Description Clears all tabs currently displaying information in the EDU Viewer, and turns off monitoring for all EDUs currently being monitored by the Active Contact Viewer.

Chapter 1 Active Contact Viewer

16 Agent Control API Reference

Syntax iActiveContactViewer.Clear()

Example iActiveContactViewer.Clear

Refresh

ReturnType Not applicable

Description Uses the criteria (set using ActiveContactViewer.Criteria) to find and display EDUs in the EDUViewer.

Syntax iActiveContactViewer.Refresh()

Example iActiveContactViewer.Refresh

RemoveEDUTemplate

ReturnType Boolean

Description Removes an EDU template from the EDU Viewer.

Syntax iActiveContactViewer.RemoveEDUTemplate(sName As String) As Boolean

sName represents the name of the template to be removed.

Example bResult = iActiveContactViewer.RemoveEDUTemplate("Spanish")

17

CHAPTER 2ASYNC

The Async control can be used to execute a method, asynchronously, on an out-of-process automation server.

Async MethodsThe Async control supports the following methods.

Attach

Description This method attaches the Async control to an out-of-process automation server. When a subsequent InvokeMethodSimple is called on the control, an automation method on the server is called.

Syntax Attach(IDispatch* pDispatch)

pDispatch is the dispatch pointer to the out of process automation server.

Example iAsync.Attach iApplication

Detach

Description This method detaches an automation server that was previously attached to the Async control via the Attach method.

Syntax Detach()

Example iAsync.Detach

InvokeMethodSimple

Description Invokes a simple automation method on the server attached to this control via the Attach method. InvokeMethodSimple supports up to four string parameters.

Chapter 2 Async

18 Agent Control API Reference

Syntax InvokeMethodSimple(BSTR sMethod, BSTR sArg, BSTR sArrayArg1, BSTR sArrayArg2, BSTR sArrayArg3);

Example iAsync.InvokeMethodSimple "ExecuteScript", "RunScript"

Value Description

sMethod Name of the method to be invoked on the server.

sArg String value to be passed as an argument to the automation method. If empty, no arguments are passed to the method.

aArrayArg1 String value to be passed as an argument to the automation method. If empty, this argument is not passed to the server.

sArrayArg2 String value to be passed as an argument to the automation method. If empty, this argument is not passed to the server.

sArrayArg3 String value to be passed as an argument to the automation method. If empty, this argument is not passed to the server.

19

CHAPTER 3BLENDER CLIENT

The Blender Client is a non-GUI ActiveX control used by Routing Services to control media channel and agent states. The Blender Client listens to events from the various media engines to determine the current states of the media channels, and interacts with the media engines to respond to requests to change those states.

The Blender Client operates in two modes: either automatic or manual. In automatic mode, flows are run to effect state changes. The Blender Client uses the ADU values set by the flows to determine which channels are available to receive contacts and to establish the number of contacts that can be handled by each channel. In manual mode, this information is specified by the agent using the Status control.

The Blender Client also provides access to the ADU object. In other words, ADU values can be retrieved and set via the Blender Client.

ADU Values Used By the Blender ClientThe following ADU values are used by the Blender Client to manage channel availability in automatic mode. These values are set by the Blender Client working in conjunction with the Workflow Server.

Name Possible Values Meaning

state LoggedinLoggedoutAvailableAuxworkoutbound

The current Agent State.

transition InitauxworkInitoutboundInitinboundinitvoiceavailableinitvoicebusy

Indicates that a transition will occur. Flow will run. BlenderClient will set final state.

voice.currentload 0 – channel busy1+ - channel available

Chapter 3 Blender Client

20 Agent Control API Reference

The Blender Client relies on the contact count maintained by each media connector. If an agent attempts to enter an auxiliary work (AuxWork) state while servicing a contact, the Blender Client waits until the contact count value for all media channels goes to 0 before allowing the agent to enter the auxiliary work state.

Blender Client PropertiesThe Blender Client has the following properties.

ChannelThrottleTime

Description ChannelThrottleTime is the number of seconds that must elapse between making media channels available to receive contacts. This is needed because making all channels available at the same time can result in an application being launched for each channel simultaneously, slowing downing operations on the client machine considerably. ChannelThottleTime is only applicable on transitions into available agent state. The default value for this property is 10 seconds.

voice.load 0 – channel busy1+ - number of contacts can handle

voice.ceiling 0+ Max. contacts in Manual mode.

voice.contactcount Number of current contacts

chat.currentload 0 – channel busy1+ - channel available

chat.load 0 – channel busy1+ - number of contacts can handle

chat.ceiling 0+ Max. contacts in Manual mode.

chat.contactcount Number of current contacts

email.currentload 0 – channel busy1+ - channel available

email.load 0 – channel busy1+ - number of contacts can handle

email.ceiling 0+ Max. contacts in Manual mode.

email.contactcount Number of current contacts

Name Possible Values Meaning

CleanupThreshold

Issue 1.0 June 2002 21

For example, by setting the ChannelThrottleTime to five seconds, the Blender Client waits five seconds before making a channel available if another channel was just made available. Therefore, if an agent makes a request to leave auxiliary work mode and a telephony and web channel are both present, the telephony channel would become available as soon as the agent makes the request and the web channel would become available five seconds after the telephony channel became available.

Syntax Property ChannelThrottleTime As Long

CleanupThreshold

Description The cleanup threshold property corresponds to the number of call container values that are to be kept locally. The default value is 5.

For example, if the ADU contains values for ts.1.state, ts.2.state, ts.3.state, ts.4.state, and ts.5.state, when a new entry ts.6.state is added, the ts.1.state entry is purged from the local cache.

Syntax Property CleanupThreshold As Long

ServerFailureRetryLimit

Description The number of times the Blender Client tries to reassign to either the Blender Server or ADU Server if either one of them has failed. The default is 5 times.

Syntax Property ServerFailureRetryLimit As Long

ServerRetrytime

Description The number of milliseconds to wait before trying to reassign to either the Blender Server or ADU Server if either one of them has failed. The default value for this property is 5000 milliseconds.

Syntax Property ServerRetrytime As Long

Blender Client EventsThe Blender Client generates the following events.

ADUChange

Description The ADUChange event signals a change to one of the ADU values for the agent currently logged in. This event provides a pointer to the ADU object, which contains methods for gaining access to and setting data values.

Syntax Event ADUChange(IaduObject As Object)

IaduObject is a pointer to the ADU object.

Chapter 3 Blender Client

22 Agent Control API Reference

AgentStateEvent

Description The AgentStateEvent signals a change to the state of the agent currently logged in.

Syntax Event AgentStateEvent(lState As Long)

lState is the current agent state: � 1- AgentLoggedIn � 2- AgentLogeddOut � 3- AgentAvailable � 4- AgentOutBound � 5- AgentAuxWork � 6- AgentTransition � 7- AgentServerFailure � 8- AgentServerRestored � 9- AgentServerMaxRetries � 10- AgentInitializationComplete

ChannelStateEvent

Description The ChannelStateEvent signals a change to the state of the channel specified in the event. "State" will be "inittransition." Then the workflow looks at the "transition" filed to see what state to transition to (Ex. Initauxwork, initioutbound…)

Syntax Event AgentChannelEvent(lMedia As long, lState As Long)

Parameter Description

lMedia Media type (the channel identifier):� MediaEmail = 1� MediaTelephony = 2� MediaWeb = 3

Blender Client Methods

Issue 1.0 June 2002 23

Blender Client MethodsThe Blender Client supports the following methods. For descriptions of ADU methods that can be invoked via the Blender Client, see page 28.

AdviseToEmail

Description The Blender Client registers itself with the Mail Engine as an email event listener. The pointer to the Mail Engine control that is provided as an input parameter performs this registration and retrieves other email-related information.

Syntax AdviseToEmail(IemailEngine As Object) As Boolean

IemailEngine is a pointer to the Mail Engine control.

Returns True for a successful completion, otherwise False.

AdviseToTelephony

Description The Blender Client registers itself with the Telephony control as a telephony event listener. The Telephony control pointer can be retrieved from the Phone Engine control. The pointer to the Telephony control that is provided as an input parameter performs this registration and retrieves other telephony-related information.

Syntax AdviseToTelephony(ITelephony As Object) As Boolean

ITelephony is a pointer to the Telephony control.

lState Current agent state.� 1- AgentLoggedIn � 2- AgentLogeddOut � 3- AgentAvailable � 4- AgentOutBound � 5- AgentAuxWork � 6- AgentTransition

state LoggedinLoggedoutAvailableAuxworkoutbound

transition InitauxworkInitoutboundInitinboundinitvoiceavailableinitvoicebusy

Parameter Description

Chapter 3 Blender Client

24 Agent Control API Reference

Returns True for a successful completion, otherwise False.

AdviseToWeb

Description The Blender Client registers itself with the Web Engine as a web event listener. The pointer to the Web Engine control that is provided as an input parameter performs this registration and retrieves other web-related information.

Syntax AdviseToWeb(IwebEngine As Object) As Boolean

IwebEngine is a pointer to the Web Engine control.

Returns True for a successful completion, otherwise False.

GetAduObject

Description Retrieves the ADU object for the specified login ID. This login ID must be the same as the one specified via the Login method.

Syntax GetAduObject(sLoginID As String, IaduObject As Object) As Boolean

� sLoginID is the login ID for the ADU to be retrieved.� IaduObject is a pointer to the ADU object.

Returns True for a successful completion, otherwise False.

GetAgentState

Description Retrieves the agent’s current state.

Syntax GetAgentState(lState As Long) As Boolean

Returns True for a successful completion, otherwise False.

GetBlendingMode

Description Determines the current mode (manual or automatic) in which the Blender Client is operating.

Syntax GetBlendingMode(lBlendingMode As Long) As Boolean

Parameter Description

lState Current agent state. Possible values are:� AgentLoggedIn = 1� AgentLoggedOut = 2 � AgentAvailable = 3� AgentInitAuxWork = 4� AgentAuxWork = 5

GetChannelState

Issue 1.0 June 2002 25

lBlendingMode is the mode in which the Blender Client is currently running. Possible values are ModeAutomatic = 1, ModeManual = 2.

Returns True for a successful completion, otherwise False.

GetChannelState

Description Retrieves the current state of the specified media channel.

Syntax GetChannelState(lMedia As Long) As Boolean

lMedia is the media type. MediaEmail = 1, MediaTelephony = 2, and MediaWeb = 3.

Returns The channel state for the specified media type. ChannelLoggedIn = 1, ChannelLoggedOut = 2, ChannelAvailable = 3, ChannelBusy = 4, or ChannelWrapup = 5.

GetLoginId

Description Returns the identifier of the agent who is logged in.

Syntax GetLoginId(sLoginID As String) As Boolean

sLoginID is the login ID that was specified in the Login method call.

Returns True if the operation succeeds, otherwise False.

Initialize

Description The initialize method must be called before any type of blending can be performed at the client. This method performs basic initialization and initiates access to the CDK. The loginid is required to gain access to the loggedin agents ADU, the LoginPreset specifies what state the IC Console will be in after the Login completes. (Available or AuxWork).

Syntax Function Initialize(LoginID As String, LoginPreset As Long) As Boolean

LoginPreset is the state the agent enters immediately following login. Possible values are AgentAuxWork = 5 or AgentAvailable = 3.

Returns True if the method succeeded, otherwise False.

IsChannelPresent

Description Determines whether the specified media channel is currently configured. A media channel is considered to be configured if AdviseToEmail, AdviseToTelephony, or AdviseToWeb has been called.

Syntax IsChannelPresent(lMedia As Long) As Boolean

lMedia is the media type. MediaEmail = 1, MediaTelephony = 2, and MediaWeb = 3.

Chapter 3 Blender Client

26 Agent Control API Reference

Returns True if the specified media is present, otherwise False.

Shutdown

Description Logs out the specified agent from Avaya IC and terminates the agent’s ADU.

Syntax Shutdown()

Returns If the method fails, an error is raised.

SetAgentState

Description Toggles the agent state between AuxWork and Available. This method also changes all of the channel states so that they are in accord with the agent state. AuxWork implies that the channel states are Busy.

Syntax SetAgentState(lState As Long, sReason As String)As Boolean

� lState is the new agent state. AgentAuxWork = 5, AgentAvailable = 3.� sReason is the reason for moving to the AuxWork state. A digit, 0–9.

Returns True for a successful completion, otherwise False.

SetBlendingMode

Description Configures the Blender Client to operate in either automatic or manual mode. In automatic mode, the Blender Client looks at ADU values to determine how many contacts each channel can handle. In manual mode the ADU values are ignored and the values are set by the agent via the Status Control.

Syntax SetBlendingMode(lMode As Long) As Boolean

lMode is the mode in which to run. ModeAutomatic = 1, ModeManual = 2.

Returns True for a successful completion, otherwise False.

SetChannelState

Description Sets the state of the specified media channel.

Syntax SetChannelState(lMedia As Long, lState As Long) As Boolean

� lMedia is the media type. MediaEmail = 1, MediaTelephony = 2, and MediaWeb = 3.� lState is the new channel state. ChannelLoggedIn = 1, ChannelLoggedOut = 2,

ChannelAvailable = 3, ChannelBusy = 4, or ChannelWrapup = 5.

Returns True for a successful completion, otherwise False.

SetLoad

Issue 1.0 June 2002 27

SetLoad

Description Establishes the maximum number of contacts the specified channel can handle in manual mode. This method can be called in automatic mode. However, the values might be replaced if a flow runs after that point.

Note: The maximum number of contacts for the Web channel is specified on the server. If the SetLoad method specifies a value that is larger than the one specified on the server, the server value is the controlling value (even if the Status Control displays the value specified in the SetLoad method).

Syntax SetLoad(lMedia As Long, lLoad As Long) As Boolean

� lMedia is the media type for which to set the load. MediaEmail = 1, MediaTelephony = 2, and MediaWeb = 3.

� lLoad is the maximum number of contacts that can be handled for the media.

Returns True if the operation succeeds, otherwise False.

SetLoginPreset

Description Provides the ability to specify a state for the agent to enter immediately following login.

Syntax SetLoginPreset(lPreset As Long) As Boolean

lPreset is the state the agent enters immediately following login. Possible values are AgentAuxWork = 5 or AgentAvailable = 3.

Returns True for a successful completion, otherwise False.

WrapupBegin

Description Puts the agent into a wrap-up state, preventing the agent from becoming available on the same channel even if the Blender Client is operating in automatic mode and a flow is triggered that would otherwise make the agent available. All ADU value changes that apply to channel blending are ignored until WrapupComplete is called.

Syntax WrapupBegin(lMedia As Long)

lMedia is the media type (the channel on which wrap-up is performed). Valid types are MediaEmail = 1, MediaTelephony = 2, and MediaWeb = 3.

Returns True for a successful completion, otherwise False.

Chapter 3 Blender Client

28 Agent Control API Reference

WrapupComplete

Description This method signals the end of wrap-up processing. The Blender Client applies all ADU values that were received after the WrapupBegin call was made. The ADU values are those that apply to channel blending.

Syntax WrapupComplete(lMedia As Long)

lMedia is the media type (the channel on which to complete wrap-up). Valid types are MediaEmail = 1, MediaTelephony = 2, and MediaWeb = 3.

Returns True for a successful completion, otherwise False.

ADU Object MethodsThe following methods are supported by the ADU object and can be invoked via the Blender Client.

GetAduId

Description Retrieves the ADU identifier corresponding to this object.

Syntax GetAduId(sAduID As String) As Boolean

sAduID is the ADU identifier.

Returns True for a successful completion, otherwise False.

GetLoginId

Description Retrieves the agent login ID associated with this ADU object.

Syntax GetLoginId(sLoginID As String) As Boolean

sLoginID is the agent login identifier.

Returns True for a successful completion, otherwise False.

GetOneValue

Description Retrieves an ADU value for the specified media type.

SetOneValue

Issue 1.0 June 2002 29

Syntax GetOneValue(lMedia As Long, sName As String, sValue As String) As Boolean

Returns True for a successful completion, otherwise False.

Examples GetOneValue(MediaTelephony, "State", "") retrieves the ADU value for voice.state.

GetOneValue(-1, State,"") retrieves the State value from the ADU.

A parameter of –1(MediaNone) retrieves a entry from the ADU that is not part of the voice, email or chat containers. This allows you to specify the media type in order to get one of its container. The actual entries in the ADU are voice.load or chat.load or email.load. Therefore, to retrieve the voice.load you would specify GetOneValue(MediaTelephony, "load", "")

If there is a value that is not part of the specified containers, such as state or adu_id, we would specify GetOneValue(-1, "adu_id", "") as it is not part of one of our 3 containers we care about.

You can also retrieve a container that we do not know about by specifying the full identifier such as GetOneValue(-1, "ts.state", "") to get the state from the ts container.

SetOneValue

Description Sets the ADU value for the specified media type. For example, SetOneValue(MediaTelephony, "State", "available") sets the ADU value for telephony.state to "available", while SetOneValue(-1, State,"auxwork") sets the value for State to "auxwork".

Syntax SetOneValue(lMedia As Long, sName As String, sValue As String) As Boolean

� lMedia is the media channel associated with this change. A value of –1 does not associate name.value with any channel. MediaNone = –1, MediaEmail = 1, MediaTelephony = 2, MediaWeb = 3.

� sName is the name of the ADU value to be changed.� sValue is the value associated with the name.

Returns True for a successful completion, otherwise False.

Parameter Description

lMedia The media type (the channel associated with this change). A value of –1 does not associate name.value with any channel.

� MediaNone = –1� MediaEmail = 1� MediaTelephony = 2� MediaWeb = 3

sName The name of the ADU value.

sValue The value to retrieve.

Chapter 3 Blender Client

30 Agent Control API Reference

31

CHAPTER 4CALL LIST

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

Call List EventsThe Call List control generates the following events.

OnActivate

Description The OnActivate event is generated when a call is connected.

Syntax Event OnActivate(sEduID As String, lMediaType As Long)

OnSelect

Description OnSelect is generated each time an agent clicks on a call in the Call List.

Parameter Description

sEduID The EDU identifier for the call being activated.

lMediaType The media channel identifier:� MediaEmail = 1� MediaTelephony = 2� MediaWeb = 3

Chapter 4 Call List

32 Agent Control API Reference

Syntax Event OnSelect(sEduID As String, lMediaType As Long)

Call List MethodsThe Call List control supports the following method.

AdviseEventSinkToTelephony

Description The Call List control registers itself with the Phone Engine as a telephony event listener. The pointer to the Telephony Control that is provided as an input parameter performs this registration and retrieves other telephony-related information.

Syntax AdviseEventSinkToTelephony(Itelephony As Object)

Itelephony is a pointer to the Telephony control.

Returns If the method fails, an error is raised.

Parameter Description

sEduID The EDU identifier for the call being activated.

lMediaType The media channel identifier:� MediaEmail = 1� MediaTelephony = 2� MediaWeb = 3

33

CHAPTER 5CHAT LIST

The Chat List control is an ActiveX control that displays all chats arriving at the agent desktop. Each item in the list corresponds to an individual chat session and includes a task state icon or status icon, contact name, wait timer, and duration timer.

Task State Icon

A red task state icon or status icon indicates the contact has been waiting for a significant amount of time. � A yellow icon indicates the contact just sent some text to the agent. � A green icon means the agent is expecting a response from the contact (the agent just sent text

or pushed a URL). � An exclamation point (or comparable image) indicates the contact has been idle for a

significant amount of time.� A telephone icon means that a phone call (callback or VoIP) is associated with the chat.

Customer Name

Customers provide their names when they log on to the web site.

Wait Timer

The wait timer displays the amount of time a contact has been waiting since the agent last responded or, if the agent has not yet responded for the first time, the amount of time since the contact initiated the chat session.

Duration Timer

The duration timer displays the length of time a task has been assigned to an agent. This timer runs continuously until the task is wrapped up and terminated.

Chapter 5 Chat List

34 Agent Control API Reference

Chat List Events The Chat List control generates the following events.

OnActivate

Description This event is emitted when an agent activates a task by double-clicking the Chat List control.

Syntax OnActivate(EDUID As String, lMediaType As Long)

EDUID is the EDU identifier of the chat.

lMediaType is the media type (Email = 1, Telephony = 2, Web = 3).

OnSelect

Description This event is emitted when an agent selects a task within the Chat List control.

Syntax OnSelect(EDUID As String, lMediaType As Long)

EDUID is the EDU identifier of the chat.

lMediaType is the media type (Email = 1, Telephony = 2, Web = 3).

Chat List MethodsThis is the interface of the Chat List object. The WebEngine maintains an array of such objects.

AdviseToWeb

Description Call this method to receive events from the WebEngine. The WebEngine does not maintain an array of Chat List objects. The WebEngine maintains only a list of chat objects.

Syntax AdviseToWeb(pSource As Object) As Long

pSource is the WebEngine object.

Parameter Description

eEduID The EDU identifier of the chat.

lMediaType The media type:� Email = 1� Telephony = 2� Web = 3

UnadviseToWeb

Issue 1.0 June 2002 35

UnadviseToWeb

Description Call this method to disconnect from the WebEngine.

Syntax UnadviseToWeb(pSource As Object) As Long

pSource is the WebEngine object.

Chat List Properties

DebugLevel

Description Sets the logging level.

Syntax DebugLevel as Long

This is set in IC Script code based on an agent’s debug level database property setting.

GuestPrefix

Description The string that is prepended to guest names.

Syntax GuestPrefix as String

Default: "– " (dash and space).

For example, set NameFormat=1 and GuestPrefix="Guest: " and a guest customer name displays as "Guest: mary" in the Chat List.

Refer to “IsCustomer,”API of the Web Engine Web Chat object.

NameFormat

Description Whether to display the name of the chat customer in long format (like previous releases of Avaya IC) or in short format.

Syntax NameFormat as Long

Can be one of two values: nfLongFormat (0) or nfShortFormat (1– default).

For NameFormat=1, the name "customer^joesmith" would be displayed as "joesmith" and for "guest_mary_1124", "– mary" is displayed.

In short format, the Chat List gets the name from the Web Engine “GetAllChats,” API.

In long format, the Chat List gets the name from the Web Engine “GetName,” API.

See “GuestPrefix,” property and Web Engine “GetName,” and “GetAllChats,” APIs.

Chapter 5 Chat List

36 Agent Control API Reference

ShowSubject

Description If true (default), shows the subject in an edit field below the list of chats (next to a question mark bubble).

Syntax ShowSubject as Boolean

37

CHAPTER 6CONTACT HISTORY BROWSER

The Contact History Browser is an ActiveX control that connects to a database browser via IC Scripts. Its purpose is to display all historical contact information for a specified customer.

The Contact History Browser supports multiple windows, one for each customer whose contact history is being viewed. Each window can be shown, hidden, and refreshed independently by calling the appropriate method.

Contact History Browser PropertiesThe Contact History Browser has the following properties.

NetworkName

Description Enables the user to specify the name of the network to be used by the Contact History Browser.

Syntax BSTR NetworkName

NetworkType

Description Enables the user to specify a DCO network type to create a DCO network instance. This name should already exist in the .adl file used by Avaya Agent. For example, a valid value for this property might be f_contactexplorer.

Syntax BSTR NetworkType

BrowserName

Description Enables the user to specify the name of the DCO browser to use to query the database.

Syntax BSTR BrowserName

Chapter 6 Contact History Browser

38 Agent Control API Reference

KeyColumn

Description Identifies one of the columns in the Browser as a primary key. The identified column would then not be displayed in the Contact History.

Note: If the name of the key column was "pkey", that column would automatically be hidden. In that case, KeyColumn need not have a value assigned to it.

Syntax BSTR KeyColumn

Example DEFINE BROWSER simplecontactbrowser FOR TABLE contact TYPE STATIC

TABLERULE ...

{

contact."vduid" "browserID" LABEL "ID" DESCENDING;

customer."fullname" "fullName" LABEL "Full Name" DESCENDING;

}

Notice that the key column in this browser is not called "pkey" but "vduid". This is useful for instances where certain information in the contact history, for example the EDUID, should be hidden from agents. The KeyColumn property allows you to specify which column is the KeyColumn, and that it should not be visible.

Contact History Browser EventsThe Contact History Browser generates the following events.

OnContactSelected

Description Generated when a selection is made in the Contact History Browser.

Syntax OnContactSelected(BSTR sRequestID!)

sRequestID is the request ID of the currently selected contact in the Contact History Browser.

Interactions with Other ControlsThe Contact History Browser interacts with the Contact History Filter.

Contact History Browser MethodsThe Contact History Browser supports the following methods.

Add

Issue 1.0 June 2002 39

Add

Description Adds a contact history window for a specific customer.

Syntax Add(BSTR sKey)

sKey uniquely identifies this contact history window. In most cases, this is an EDUID.

Refresh

Description Updates the control’s user interface by fetching data from the database and adding it to the contact history window.

Syntax Refresh(BSTR sKey)

sKey uniquely identifies this contact history window. In most cases, this is an EDUID.

Remove

Description Removes the contact history window identified by sKey.

Syntax Remove(BSTR sKey)

sKey uniquely identifies this contact history window. In most cases, this is an EDUID.

Show

Description Shows the contact history window identified by sKey.

Syntax Show(BSTR sKey)

sKey uniquely identifies this contact history window. In most cases, this is an EDUID.

RefreshCurrent

Description Fetches new data from the database for the contact history currently being shown.

Syntax RefreshCurrent ()

RefreshAll

Description Fetches new data from the database for all contact histories currently being shown.

Syntax RefreshAll()

Chapter 6 Contact History Browser

40 Agent Control API Reference

Clear

Description Clears the contents of the Contact History Browser.

Syntax Clear()

RemoveConstraint

Description Removes a specific constraint from the set of current constraints. The next database query is not constrained by that constraint.

Syntax SetConstraint(BSTR sTableFieldStr, BSTR sTableFieldVal,BSTR sKey)

� sTableFieldStr is the field in the table on which the constraint should be set. This needs to be in the format <tablename>.<fieldname> (for example, "customer.lastname").

� sTableFieldVal is the value to which the search should be restricted.� sKey uniquely identifies a specific contact history.

RemoveConstraintGlobal

Description Globally removes a constraint from the list of current constraints. The next query to the database is not constrained by the specified constraint.

Syntax SetConstraint(BSTR sTableFieldStr, BSTR sTableFieldVal, BSTR sKey)

� sTableFieldStr is the field in the table on which the constraint should be set. This needs to be in the format <tablename>.<fieldname> (for example, "customer.lastname").

� sTableFieldVal is the value to which the search should be restricted.

RemoveConstraints

Description Removes all constraints for a specific contact history. Subsequent queries are then unconstrained.

Syntax RemoveConstraints(BSTR sKey)

sKey uniquely identifies this contact history. In most cases, this is an EDUID.

SetConstraint

Description Sets a specific query constraint for the contact history specified by sKey. If SetConstraint is called three times with three different constraints, those calls are cumulative and result in three constraints being applied to the query. The constraints are applied when a Refresh method is called with the same sKey.

SetConstraintGlobal

Issue 1.0 June 2002 41

Syntax SetConstraint(BSTR sTableFieldStr, BSTR sTableFieldVal, BSTR sKey)

� sTableFieldStr is the field in the table on which the constraint is to be set. This needs to be in the format <tablename>.<fieldname> (for example, "customer.lastname").

� sTableFieldVal is the value to which the search is restricted.� sKey uniquely identifies the contact history.

SetConstraintGlobal

Description Specifies a constraint based on the query that is composed. SetConstraintGlobal sets a single constraint for all the contacts for which a window is present in the Contact History Browser.

If SetConstraintGlobal is called three times with three different constraints, the calls are cumulative and result in three constraints being applied to the query. The constraints are applied when a Refresh method is called for any contact history in the browser.

Syntax SetConstraintGlobal(BSTR sTableFieldStr, BSTR sTableFieldVal)

� sTableFieldStr is the field in the table on which the constraint is set. This needs to be in the format <tablename>.<fieldname> (for example, "customer.lastname").

� sTableFieldVal is the value to which the search is restricted.

SetMaxRecords

Description Specifies the maximum number of historical contacts to be shown in the Contact History Browser. This is a global property and applies to all the contact histories in browser.

Syntax SetMaxRecords(long lRecords)

lRecords is the maximum numbers of records that can be shown in the browser at one time.

Chapter 6 Contact History Browser

42 Agent Control API Reference

43

CHAPTER 7CORE SERVICES

The Core Services enable agents to log in to and out from the Avaya IC environment and to retrieve information about EDUs of interest. A Core Services login is a requirement for access to all Avaya IC media channels.

A reference to the Core Services object can be retrieved from the Phone Engine control.

Interrelationships of Core Services-related EntitiesThe Core Services object emits one event known as the Core Change event, which is described on page 43.

The Core Change event itself contains an object, known as the Core Change Event object. This object has a set of properties and supports a set of methods, which are described on page 53 and page 54, respectively.

The Core Services object depends on two supporting objects, the EDU object and the Request object. These objects are described on page 54 and page 57, respectively.

The Core Change Event This section describes the Core Change event, technically known as OnCoreStateChange.

OnCoreStateChange

Description The OnCoreStateChange event provides information about an agent’s login status (to the Avaya IC environment) and information about an EDU content change or termination.

A Core Change Event object is sent as part of the OnCoreStateChange event. This object provides access to the event ID (which indicates the purpose of the event), the EDU object (if the event is related to an EDU change), and the Request object (if the event is a response to an asynchronous request).

The Core Change Event object is discussed on page 53. Event IDs supplied by this object are presented on page 53.

Chapter 7 Core Services

44 Agent Control API Reference

Syntax Event OnCoreStateChange(CoreChangeEvent As Object)

Core Services MethodsThe following methods are used with the softphone’s Core Services control. Agents using the voice and web media channels must log in to Core Services, prior to logging into the Telephony Services and WebChat, to enable the Blender Server to perform its functions. Email users who are using the EDU Viewer must also log in to Core Services before logging in to Email.

CreateEDU

Description Creates an EDU.

Syntax CreateEdu(EduObject As Object, EduID As String, RequestObj As Object) As Boolean

Returns True for success....False for failure.

GetDBRecordsFromATable

Description This method will make the necessary Directory Server request call to retrieve the specified data. The invoker of this call will handle batching.

Syntax GetDBRecordsFromATable(tablename As String , searchCondition As Object, batchkey As String, batchsize As String , ByRef RequestObj As Object, ByRef result As Object)

� tablename is the name of a table to retrieve records from (i.e. "tenant" or "workgroup")� searchCondition is a "SeqCouple" which is created using Core Services� batchkey is used for batching (position of next record to get, "0" being the start)� batchsize is the number of records to return at one time (i.e. 50)� RequestObj is the returned handle to the request object that contains any error information� Result is the returned SeqSeqCouple response object from the Directory Server

ExamplePrivate m_iCoreServices As CoreServices ‘ Must have already received this object from the

‘ Phone Engine and logged in with itDim iSearchCondition As SeqCouple

Dim BatchKey As String

Dim BatchSize As String

Dim RequestObj As Object

Dim result As SeqSeqCouple

Dim iSeqSeqCoupleResult As SeqSeqCouple

Dim nSeqCouples As Long

Dim SeqSeqCoupleResultString As String

Dim iSeqCoupleResult As SeqCouple

BatchKey = "0" ' First batch always starts at 0BatchSize = "50"

GetEDUsByCriteria

Issue 1.0 June 2002 45

Set iSearchCondition = CreateObject("AvayaCore.SeqCouple")iSearchCondition.AddCoupleByNameValue "deletedflag", "=0"iSearchCondition.AddCoupleByNameValue "addressableflag", "=1"

' Make the request to the Directory Serverm_iCoreServices.GetDBRecordsFromATable "site", iSearchCondition, BatchKey, BatchSize,

RequestObj, result

nSeqCouples = result.GetSeqCoupleCount ' Count the number of SeqCouples returned

MsgBox result.ToString ' Convert the entire response to a string

Set iSeqCoupleResult = result.GetSeqCouple(0) ' Extract the first SeqCouple in ‘the SeqSeqCouple

MsgBox iSeqCoupleResult.ToString ' Convert a SeqCouple to a string

Set iSearchCondition = Nothing ' Release memorySet iSeqCoupleResult = Nothing ' Release memory

GetEDUsByCriteria

Description Retrieves all the EDUIDs that match the specified criteria. The criteria can be in the form "loginid=joe" or "agentID=agent.*". Refer to Electronic Data Unit Server Programmer’s Guide for more detailed information about criteria. A collection of EDUs is returned by this method.

Syntax GetEDUsByCriteria(sCriteria As String) As Object

sCriteria is the criteria that must be matched to retrieve the EDUs (required).

Returns The following HRESULT values are returned:

S_OK indicates success.

E_FAIL indicates an error occurred.

A collection of EDU objects is returned on successful completion. On an error condition, an exception is thrown.

GetEDUsByCriteriaWithScope

Description This method retrieves all the EduIds that match the criteria and scope specified.

Criteria can be of the form "loginid=joe" or "agentID = agent.*" and so on..

Refer to Electronic Data Unit Server Programmer’s Guide for more info on Criteria. The scope identifies where the EDU Server looks for the EDUs.

Syntax GetEDUsByCriteriaWithScope(sCriteria As String, scope As String) As Object

Parameters: BSTR criteria(input) is the criteria that must match for which to get the EDU's.

Chapter 7 Core Services

46 Agent Control API Reference

BSTR scope(input) is the scope for the search at the VDU Server. This scope matches the available options from the Electronic Data Unit Server Programmer’s Guide for the VDU.Find method.

IDispatch **EduCollection is the Collection of EduEntry Objects.

Return: S_OK Success

E_FAIL Error Occurred

GetLoggedInAgent

Description Retrieves the name of the agent who is currently logged in.

Syntax GetLoggedInAgent(sAgent As String);

SAgent is the name of the agent who is currently logged in.

GetLoggedInAgentRecord

Description Retrieve the agent record object of the logged in Agent.

Syntax GetLoggedInAgentRecord (reread_flag As Boolean, ByRef iAgentRecord As

AgentRecord, ByRef IRequestObject As Object)

reread_flag determines whether or not to reload the cached IAgentRecord from the DS, if previously read.

iAgentRecord is the IAgentRecord of the logged in agent.

RequestObj is the handle to the request object that contains any error information

Returns True indicates success.

False indicates an error occurred.

Scope Action

"0" VDU_NO_OS Check the local VDU Server only.

"1" VDU_ASK_OS Check the local Vdu Server and local Object store only.

"2" VDU_NET_NO_OS Check the WAN VDU Servers but no Object stores.

"3" VDU_NET_ASK_OS Check WAN VDU Servers and their Object stores.

GetVduObject

Issue 1.0 June 2002 47

GetVduObject

Description Retrieves the object for the specified EDUID. The EDU object contains all EDU values and the methods to retrieve and set them. The EDU data contained in the object is present as a result of recieving a VDU.Watch Event, VDU.Change Event or a call to GetVduObjectEx which retrieves the most current data from the EDU Server. This will return VduObjects local to the client. It will not go to the VDU Server if the object is not local. .

Syntax GetVduObject(sVduID As String, IvduObject As Object)

sVduID is the EDUID (required).

Returns On successful completion, an EDU object is returned. Otherwise, an exception is thrown.

GetVDUObjectEx

Description Retrieves the object for the specified EDUID. The EDU object contains all EDU values and the methods to retrieve and set them. The most current EDU data is always retrieved from the EDU server by this method. If this method is used, the last consumer of the VDU Object must ensure that TerminateEdu() is called so that the EDU Server takes the client machine of the watch list for the EDUID.

Syntax GetVduObjectEx(sVDUID As String, IvduObject As Object)

Returns On successful completion, an EDU object is returned. Otherwise, an exception is thrown.

GetViewRecordWithProj

Description This method will make the necessary Directory Server request call to retrieve the specified data. The invoker of this call will handle batching.

Syntax GetViewRecordWithProj(viewName As String, searchCondition As Object, proj As String, batchkey As String, batchsize As String , ByRef RequestObj As Object, ByRef result As Object)

� viewName is the name of a view to retrieve records from (i.e. "r_ds_per_vtel")� searchCondition is a "SeqCouple" which is created using Core Services� proj is a projection list� batchkey is used for batching (position of next record to get, "0" being the start)� batchsize is the number of records to return at one time (i.e. 50)� RequestObj is the returned handle to the request object that contains any error information� Result is the returned SeqSeqCouple response object from the Directory Server

Example Private m_iCoreServices As CoreServices ‘ Must have already received this object from the Phone Engine and logged in with it

Dim iSearchCondition As SeqCouple

Dim BatchKey As String

Dim BatchSize As String

Chapter 7 Core Services

48 Agent Control API Reference

Dim RequestObj As Object

Dim result As SeqSeqCouple

Dim iSeqSeqCoupleResult As SeqSeqCouple

Dim nSeqCouples As Long

Dim SeqSeqCoupleResultString As String

Dim iSeqCoupleResult As SeqCouple

Dim Proj As String

BatchKey = "0"' First batch always starts at 0

BatchSize = "50"

Proj = "{2,3}

Set iSearchCondition = CreateObject("AvayaCore.SeqCouple")

iSearchCondition.AddCoupleByNameValue "loginid", "=Admin"

' Make the request to the Directory Server

m_iCoreServices.GetViewRecord "r_ds_employee", iSearchCondition, BatchKey, BatchSize, RequestObj, result

nSeqCouples = result.GetSeqCoupleCount ' Count the number of SeqCouples returned

MsgBox result.ToString' Convert the entire response to a string

Set iSeqCoupleResult = result.GetSeqCouple(0) ' Extract the first SeqCouple in the SeqSeqCouple

MsgBox iSeqCoupleResult.ToString' Convert a SeqCouple to a string

Set iSearchCondition = Nothing' Release memory

Set iSeqCoupleResult = Nothing' Release memory

GetViewRecord

Description This method will make the necessary Directory Server request call to retrieve the specified data. The invoker of this call will handle batching.

Syntax GetViewRecord(viewName As String, searchCondition As Object, batchkey As String, batchsize As String, ByRef RequestObj As Object, ByRef result As Object)

� viewName is the name of a view to retrieve records from (i.e. "r_ds_per_vtel")� searchCondition is a "SeqCouple" which is created using Core Services� batchkey is used for batching (position of next record to get, "0" being the start)� batchsize is the number of records to return at one time (i.e. 50)� RequestObj is the returned handle to the request object that contains any error information� Result is the returned SeqSeqCouple response object from the Directory Server

IsAgentLoggedIn

Issue 1.0 June 2002 49

Example Private m_iCoreServices As CoreServices ‘ Must have already received this object from the Phone Engine and logged in with it

Dim iSearchCondition As SeqCouple

Dim BatchKey As String

Dim BatchSize As String

Dim RequestObj As Object

Dim result As SeqSeqCouple

Dim iSeqSeqCoupleResult As SeqSeqCouple

Dim nSeqCouples As Long

Dim SeqSeqCoupleResultString As String

Dim iSeqCoupleResult As SeqCouple

BatchKey = "0"' First batch always starts at 0

BatchSize = "50"

Set iSearchCondition = CreateObject("AvayaCore.SeqCouple")

iSearchCondition.AddCoupleByNameValue "loginid", "=Admin"

' Make the request to the Directory Server

m_iCoreServices.GetViewRecord "r_ds_employee", iSearchCondition, BatchKey, BatchSize, RequestObj, result

nSeqCouples = result.GetSeqCoupleCount ' Count the number of SeqCouples returned

MsgBox result.ToString' Convert the entire response to a string

Set iSeqCoupleResult = result.GetSeqCouple(0) ' Extract the first SeqCouple in the SeqSeqCouple

MsgBox iSeqCoupleResult.ToString' Convert a SeqCouple to a string

Set iSearchCondition = Nothing' Release memory

Set iSeqCoupleResult = Nothing' Release memory

IsAgentLoggedIn

Description Checks to see if the agent is logged into Core Services. Telephony and Web users must log in to Core Services prior to logging into the Telephony Services and WebChat to enable the Blender Server to perform its functions. Email users who are using the EDU Viewer must also log in to Core Services before logging in to Email.

This method contains the output parameter [out, retval]. It returns different values for Visual C++ and Visual Basic.

Syntax IsAgentLoggedIn() As Boolean

Chapter 7 Core Services

50 Agent Control API Reference

Returns True indicates agent is logged in.

False indicates agent is logged out.

Login

Description Issues a Avaya IC login request asynchronously. This method returns an error for an invalid login, or if another login is currently in progress. A successful return of this method does not indicate that the Login was successful. It indicates only that the login request has been sent to the server. The Request object contains error information, if any.

Syntax Login(sLoginID As String, sPassword As String, IrequestObj As Object)

� sLoginID is the agent’s Telephony login ID.� sPassword is the agent’s Telephony password, if one was assigned.� IRequestObj is the pointer to the Request object.

Returns An exception is thrown if this method fails.

LoginSynch

Description Issues a Avaya IC login request synchronously. This method returns an error for an invalid login, or if another login is currently in progress.

Syntax LoginSynch(sLoginID As String, sPassword As String, IrequestObj As Object) As Boolean

� sLoginID is the agent’s Avaya IC Core login ID.� sPassword is the agent’s Avaya IC Core password, if one was assigned.� IRequestObj is the pointer to the Request object.

Returns True indicates success.

False indicates that an error occurred.

Logout

Description Issues a Avaya IC logout request asynchronously. The request fails if work is in progress (for example, a phone call is active, an EDU is in a wrap-up state, or an application is locking related resources).

The Request object is used to track the request and is part of the CoreStateChange event that indicates completion of the request. The Request object also contains error information.

Syntax Logout(IrequestObj As Object) As Boolean

IRequestObj is the pointer to the Request object.

Returns True indicates success.

LogoutSynch

Issue 1.0 June 2002 51

False indicates an error occurred.

LogoutSynch

Description Issues a Avaya IC logout request synchronously. The request fails if work is in progress (for example, a phone call is active, an EDU is in a wrap-up state, or an application is locking related resources). The Request object contains information about failures.

This method contains the output parameter [out, retval]. It returns different values for Visual C++ and Visual Basic.

Syntax LogoutSynch(IrequestObj As Object) As Boolean

IRequestObj is the pointer to the Request object.

Returns True indicates success.

False indicates an error occurred.

MakeRequestSynch

Description Synchronously posts a request to an IC Corba server

Syntax MakeRequestSynch (sReqString As String, sOutputString As String, sDescription As

String, sErrorCode As String)

� sReqString is the Request string of form: "[VTEL.MakeCall("","4004",)]"� sOutputString contains the response of the request.� sDescription is the error description.� sErrorCode is the error code from Telephony.

Returns True indicates success.

False indicates an error occurred.

RestartServer

Description The RestartServer method allows users of IC Console to reassign to the VDU and TS servers once a server failure has occured. This will be signalled by a evCoreServerFailed event.

If a connection cannot be restored a evCoreServerMaxRetries event will be fired by Core Services.

Syntax Function RestartServer(NumbRetries As Long, WaitTime As Long RequestObj As

Object) As Boolean

� NumbRetries - The number of times to try to reestablish the connection to the VDU and TS Servers.

� WaitTime - The number of Seconds to wait between retries. � RequestObj - cut and past from another Core method

Chapter 7 Core Services

52 Agent Control API Reference

TerminateEdu

Description Terminates an EDU that was created, or for which values were set, during the current session.

Syntax TerminateEdu(sEduID As String, IrequestObj as Object) As Boolean

� sEduID is the identifier of the EDU to be terminated.� IRequestObj is the pointer to the handle of the asynchronous Request object.

Returns True indicates success.

False indicates an error occurred.

WorkFlowRun

Description This method will make the necessary WorkFlow server request call to run a specified flow. The flow must complete before this method returns to the caller.

Syntax WorkFlowRun(servername As String, flowname As String, indata As Object, IDispatch As Object, response As String, ByRef RequestObj As Object)

� servername is the name of the WorkFlow server to call to run the flow. If this is not specified, the default will be "QWorkFlow"

� flowname is the name of the work flow to be run� indata is the event to be passed to the flow� outdata is an event to be received from the flow� response is the response from the flow� RequestObj is the handle to the request object that contains any error information

Example Private m_iCoreServices As CoreServices ‘ Must have already received this object from the Phone Engine and logged in with it

Dim indata As SeqCouple

Dim outdata As SeqCouple

Dim response As String

Dim RequestObj As Object

Set indata = CreateObject("AvayaCore.SeqCouple")

indata.AddCoupleByNameValue "IndataName", "IndataValue"

Set outdata = CreateObject("AvayaCore.SeqCouple")

outdata.AddCoupleByNameValue "OutdataName", "OutdataValue"

' Make the request to the Directory Server

m_iCoreServices.WorkFlowRun "QWorkFlow", "MyFlow", indata, outdata, response, RequestObj

The CoreChangeEvent Object

Issue 1.0 June 2002 53

MsgBox response ' Convert a SeqCouple to a string

Set indata = Nothing ' Release memory

Set outdata = Nothing ' Release memory

The CoreChangeEvent ObjectA CoreChangeEvent object is sent as part of the OnCoreStateChange event. This object provides access to the event ID (which indicates the purpose of the event), the EDU object (if the event is related to an EDU change), and the Request object (if the event is a response to an asynchronous request).

CoreChangeEvent Object PropertiesThe CoreChangeEvent object has the following properties.

EventID

Description The CoreStateChange event identifier.

Syntax Property EventID As Long

EventID can be any of the following.

Event ID Value Description

evCoreADUServerFailed 204 The Core ADU Services server is down.

evCoreADUServerRestart 205 The Core ADU Services server has been restarted.

EvCoreLogin 197 The Core Services login status.

EvCoreLogout 198 The Core Services logout status.

EvCoreNone 192 The agent, phone, or call state has changed.

EvCoreResponse 193 A response to a prior asynchronous request.

EvCoreServerFailed 195 The Core Services server is down.

EvCoreServerMaxRetries 206 Unable to restore Connection to TS or VDU Server

EvCoreServerRestart 196 The Core Services server has been restarted.

EvCoreStart 188 The Core Services operations are available.

EvCoreStop 189 The Core Services operations are not available.

EvCoreSystemError 203 A system error has occurred.

EvDialDirectoryLoaded 202 The information for the Dial Directory is available.

Chapter 7 Core Services

54 Agent Control API Reference

CoreChangeEvent Object MethodsThe following methods are supported by the CoreChangeEvent object.

GetRequestObject

Description The GetRequestObject method returns the handle to a Request object for an outstanding asynchronous request. It can also be populated to report error conditions or other information.

Syntax GetRequestObject(IrequestObject As Object)

IrequestObject is the handle to the Request object.

GetVduObject

Description This method provides access to the EDU object associated with a specific evEduChange, evEduCurrent, or evEduTerminated event. A handle to the EDU object is returned.

Syntax GetVduObject(IvduObject As Object)

IvduObject is the handle to the EDU object.

The EDU ObjectThe EDU object (also referred to as the VDU object) contains all the data used to set or get information relating to a contact, and the methods used to gain access to this data.

EDU Object PropertiesThe EDU object has the following properties.

VduID

Description The EDU identifier.

Syntax Property VduID As String

EvEduChange 201 The EDU information has changed.

EvEduCurrent 200 This EDU is from the active call.

EvEduTerminated 199 The call is terminated.

Event ID Value Description

ExternalVdu

Issue 1.0 June 2002 55

ExternalVdu

Description Indicates whether an EDU is for a telephony contact or a Web/Email contact.

Syntax Property ExternalVdu As Boolean

VduID As String is the identifier of the EDU.

ExternalVdu is a True/False value that indicates whether the EDU is for a telephony contact (True) or a Web/Email contact (False).

EDU Object MethodsThe following methods are supported by the EDU object.

GetValueByName

Description This method retrieves the value for the specified name. If a value is found, the method returns True. If a value is not found, or an error occurs, False is returned. The retrieval applies only to data that is local to this object. The data comes from EDU change events. Therefore, when retrieving a specific value, timing issues must be considered. The best approach is to check for values from an EDU change event emitted from Core Services.

Syntax GetValueByName(sName As String, sValue As String) As Boolean

� sName is the name for which to retrieve a value.� sValue is the value to return.

Returns True indicates a successful retrieval.

False indicates the name was not found or an error occurred.

GetSeqCouples

Description This method retrieves a SeqCouples object that contains all of the name/value pairs for the current EDU.

Syntax GetSeqCouples(IseqCouples As Object) As Boolean

Returns True indicates successful retrieval.

False indicates an error occurred.

Chapter 7 Core Services

56 Agent Control API Reference

SetNameValue

Description This method provides the ability to set a name/value pair within the EDU object. This pair is then sent to the EDU server and is stored locally, in the object. Calling this method is equivalent to calling SetNameValueEx with the bCache parameter set to True.

See also SetNameValueEx

Syntax SetNameValue(sName As String, sValue As String) As Boolean

� sName is the name portion of the name/value pair.� sValue is the value portion of the name/value pair.

Returns True indicates successful completion.

False indicates an error occurred.

SetNameValueEx

Description This method provides the ability to set a name/value pair within the EDU object. This pair is then sent to the EDU server and is optionally stored locally, in the object.

When setting EDU values with containers or special tokens (refer to Electronic Data Unit Server Programmer’s Guide), it is recommended that you set the bCache parameter to False. After setting the EDU value, Core Services receives an EDU change event and update its cache with the proper EDU name/value (without the tokens).

For example, if you need to set an EDU with the name "voice.!.wrapup.+.category", set bCache to false. As an example, the EDU server may interpret this as "voice.2.wrapup.4.category" as the name, then fire EDU change events or watch events, or both. Core Services receives the EDU change and update its cache with "voice.2.wrapup.4.category" as the name.

Syntax SetNameValueEx(sName As String, sValue As String, bCache As Boolean) As Boolean

� sName is the name portion of the name/value pair.� sValue is the value portion of the name/value pair.� bCache is True to add the couple to the internal cache, False otherwise.

Returns True indicates successful completion.

False indicates an error occurred.

SetValues

Description Sets multiple values on an EDU at the same time. If you are setting a lot of EDU fields at the same time this is an efficient way to do so.

Syntax SetValues(SeqCouple As Object) As Boolean

Returns True for success...False for failure.

The Request Object

Issue 1.0 June 2002 57

The Request ObjectThe Request object returns error information for requests. In addition, it is a mechanism to track outstanding asynchronous requests. It is typically used as a parameter within the Core Services method.

The ResponseHandle property is populated when the request is originally made, and an event is emitted when the request is completed at the server. This event contains a handle to the Request object. The ResponseHandle property can be examined to make sure that the response does, in fact, correspond to the request.

Request Object PropertiesThe Request object has the following properties.

DetailString

Description The DetailString property contains any error messages returned from servers servicing the request. For asynchronous calls, the property is be populated when an error response is received from the server.

Syntax Property DetailString As String

ResponseHandle

Description The ResponseHandle contains a unique long integer that is used to track outstanding asynchronous requests. This value is populated when a request is made and the method returns. When the request is completed at the server, a CoreStateChange event with an EventID of evCoreResponse is fired to all listeners. This event contains a handle to the requestObject. The responseHandle can be checked to see if it matches the outstanding request that is awaiting completion.

Syntax Property ResponseHandle As Long

Status

Description The Status field contains a True/False value, which indicates whether the request associated with the Request object has succeeded.

Syntax Property status As Long

vduID

Description The vduID property contains the contact identifier for the request.

Syntax Property vduID As String

Chapter 7 Core Services

58 Agent Control API Reference

The EduEntriesCollection ObjectThe EduEntriesCollection object is returned by the GetEDUsByCriteria and GetEDUsByCriteriaWithScope methods in Core Services.

EduEntriesCollection Object PropertiesThe EduEntriesCollection object has the following property:

Count

Description The number of entries contained in this eduid collection. This collection is 0 based so when iterating through using the getEduEntry always go from 0 to Count –1.

Syntax Property Count As Long

EduEntriesCollection Object Methods

getEduEntry

Description: This method returns an EduEntry object that resides at the specified index. This eduEntry object contains the eduid. The property count can be used along with this method to iterate all the eduids returned by the methods GetEDUsByCriteria or GetEDUsByCriteriaWithScope. The elements are stored as a 0 based collection so the iteration should go from 0 to Count –1.

Syntax: getEduEntry(Index As Long) As Object

The EDuEntry ObjectThe EduEntry object is returned b the getEduEntry method contained in the EduEntries object. The EduEntry Object contains a property called the EduID.

EDuEntry Object PropertyThe EDuEntry Object consists of the following property:

EduID

Description: The EDU Identifier.

Syntax Property EduID As String

The Couple Object

Issue 1.0 June 2002 59

The Couple ObjectThe Couple object contains a name/value pair.

Couple Object MethodsThe Couple Object consists of the following methods:

GetNameValue

Description Gets the name and value of this couple.

Syntax GetNameValue(ByRef sName As String, ByRef sValue As String)

� sName is the couple’s name.� sValue is the couple’s value.

Returns n/a

SetNameValue

Description Sets the name and value of this couple. This is primarily used internally by Core Services. Use the EDU Object’s SetNameValue method or SetNameValueEx method to make EDU changes

Syntax SetNameValue(sName As String, sValue As String)

� sName is the couple’s name.� sValue is the couple’s value.

Returns n/a

The SeqCouple ObjectThe sequence of couples (SeqCouple) of an EDU can be retrieved by the EDU Object’s GetSeqCouples method. Assuming you have a valid EDU object "iEduObject," this code may be used to iterate over the couples in the SeqCouple (the "NewEnum" property is used to perform the For-Each operation.).

iEduObject.GetSeqCouples iSeqCouple

For Each iCouple In iSeqCouple

iCouple.GetNameValue name, value

MsgBox "{" & name & "," & value & "}"

Next

Chapter 7 Core Services

60 Agent Control API Reference

Note that changes to the Core Services SeqCouple object may not necessarily make changes to the underlying EDU, and as such, only read operations are recommended. Core Services maintains a cache of EDU objects for use primarily by Avaya Agent controls and Core Services itself. Use the EDU Object’s SetNameValue method or SetNameValueEx method to make EDU changes.

SeqCouple Object MethodsThe SeqCouple Object consists of the following methods:

AddCouple

Description Adds a couple to the list of couples.

Syntax AddCouple(iCouple as Object)

iCouple is the couple object to add.

Returns n/a

AddCoupleByNameValue

Description Adds a couple using strings to input the name and value.

Syntax AddCoupleByNameValue(sName As String, sValue As String)

Returns N/A

ContainsContainer

Description Determines if a container exists in the SeqCouple.

Syntax ContainsContainer(criteria As String) As Boolean

Returns True if found...False if not found.

GetCoupleByName

Description Gets a couple object based on the name. For example, if an EDU contained the couple {"name","john"} you would use "name" as the sName parameter to return the appropriate couple.

Syntax GetCoupleByName(sName As String) As Object

sName is the name of the couple

Returns The couple object, or failure if couple object not found.

GetCoupleCount

Issue 1.0 June 2002 61

GetCoupleCount

Description Returns number of Couples in a SeqCouple.

Syntax GetCoupleCount() As Long

Returns Long representing number of couples in the SeqCouple object.

RemoveAllCouples

Description Removes all couples from the sequence of couples.

Syntax RemoveAllCouples()

Returns n/a

RemoveCoupleByName

Description Removes a couple based on its name.

Syntax RemoveCoupleByName (sName As String)

sName is the name of the couple to remove.

Returns n/a

RemoveCouplesThatMatch

Description Removes a couple based on its name. If any part of the "name" portion of the couple matches "sCriteria," it is removed from the sequence of couples.

Syntax RemoveCouplesThatMatch (sCriteria As String)

sCriteria is the criteria to use for removal.

Returns n/a

NewEnum

Description Allows a Visual Basic or IC Script client to iterate over each of the couples in the sequence of couples using the For-Each construct.

Syntax n/a

Returns n/a

Chapter 7 Core Services

62 Agent Control API Reference

The SeqSeqCouple ObjectThe sequence of sequence of couples (SeqSeqCouple) object can be used in a variety of ways. For example, certain APIs expect as input a SeqSeqCouple object. Directory Server data is typically returned as a SeqSeqCouple string, which can then be parsed and accessed.

SeqSeqCouple Object MethodsThe SeqSeqCouple Object consists of the following methods:

ToString

Description Converts the entire SeqSeqCouple object into a String object for convenience.

Syntax ToString(ByRef SeqSeqCoupleString as String)

SeqSeqCoupleString is the converted string.

Parse

Description Takes a string representation of a SeqSeqCouple and converts it into the SeqSeqCouple object.

Syntax Parse(SeqSeqCoupleString as String)

SeqSeqCoupleString is the string to be converted into the SeqSeqCouple object.

RemoveAll

Description Removes all the SeqCouples inside of a SeqSeqCouple object.

Syntax RemoveAll()

RemoveSeqCoupleAt

Description Removes a particular SeqCouple inside of a SeqSeqCouple object.

Syntax RemoveSeqCoupleAt(index As Long)

index is the position in the SeqSeqCouple to remove the SeqCouple object from.

AddSeqCouple

Description Adds a SeqCouple object into a SeqSeqCouple object.

Syntax AddSeqCouple (newSeqCouple As SeqCouple)

GetSeqCouple

Issue 1.0 June 2002 63

newSeqCouple is a SeqCouple object to be added into the SeqSeqCouple object.

GetSeqCouple

Description Returns a particular SeqCouple object given the index into the SeqSeqCouple object.

Syntax GetSeqCouple (index As Long, ByRef RetrievedSeqCouple As SeqCouple)

index is the position in the SeqSeqCouple to return the SeqCouple object from.

RetrievedSeqCouple is the returned SeqCouple object.

GetSeqCoupleCount

Description Returns the count of SeqCouples in the SeqSeqCouple object.

Syntax GetSeqCoupleCount (ByRef count As Long)

count is the number of SeqCouples in the SeqSeqCouple object.

Chapter 7 Core Services

64 Agent Control API Reference

65

CHAPTER 8UNIFIED AGENT DIRECTORY

The Unified Agent Directory control provides a directory listing of agents in the organization and a way to interact with them through a graphical user interface. Interactions are done through media operations such as initiating a phone call or transfering an e-mail. The Unified Agent Directory also provides agent filtering, agent searching, contact list support, and an e-mail mode to specify recipients in the organization.

Any number of contact lists can be added to the UAD as tabs. The contact list tab contains the following items in a list control:

1 Icons representing the media types the agents are enabled for.

2 The contact's login ID

3 The contact's display name

4 The contact's e-mail address.

Unified Agent Directory PropertiesThe Unified Agent Directory has the following properties.

SkillsSupport

Description Enables skills in the UAD Find Dialog

Syntax Property SkillsSupport As Boolean

Example iUAD.SkillsSupport = True

UADStringFormat

Description String format of how agents are shown in the UAD.

Chapter 8 Unified Agent Directory

66 Agent Control API Reference

The UAD string formats are:� "STANDARD"-> loginname (Display Name)� "ASCII" -> loginname (Full Name)� "LOGINID" -> loginname

Syntax Property UADStringFormat As String

Example iUAD.UADStringFormat = "STANDARD" or

iUAD.UADStringFormat = "ASCII" or

iUAD.UADStringFormat = "LOGINID"

WorkFlowServerName

Description Name of the workflow server to run flows from.

Syntax Property WorkFlowServerName As String

Example iUAD.WorkFlowServerName = "QWorkFlow"

DisableChatTransferToWorkgroup

Description Determines if a chat task can be transfered to a workgroup (disables "Transfer" button in UAD if not)

Syntax Property DisableChatTransferToWorkgroup As Boolean

Example iUAD.DisableChatTransferToWorkgroup = True

BatchSize

Description Batch size used to retrieve records from the DS

Syntax Property BatchSize As String

Example iUAD.BatchSize = "200"

DebugLevel

Description Controls level of debugging in the UAD

Syntax Property DebugLevel As Long

Example iUAD.DebugLevel = 3

TaskListEnabled

Description Determines if UAD Dialog's task list combo box is enabled or disabled

AgentSearchTimerFetchInterval

Issue 1.0 June 2002 67

Syntax Property TaskListEnabled As Boolean

Example iUAD.TaskListEnabled = True

AgentSearchTimerFetchInterval

Description Time interval to call fetch flow in a timer (in milliseconds)

Syntax Property AgentSearchTimerFetchInterval As Long

Example iUAD. AgentSearchTimerFetchInterval = 1000

DisableAgentSearch

Description Determines if UAD agent search menu option is available

Syntax Property DisableAgentSearch As Boolean

Example iUAD.DisableAgentSearch = True

ButtonStyle

Description Determines the button style of the UAD Dialog.

The button styles in the UAD are: bsUADStandardButtons and bsUADOKCancelButtons

Syntax Property ButtonStyle As Long

Example iUAD.ButtonStyle = bsUADStandardButtons

or

iUAD.ButtonStyle = bsUADOKCancelButtons

ShowAgentState

Description Shows icon state in UAD Directory tree.

Syntax Property ShowAgentState As Boolean

Example iUAD.ShowAgentState = True

Chapter 8 Unified Agent Directory

68 Agent Control API Reference

Unified Agent Directory EventsThe following events are genereated by the Unified Agent Directory control.

UADStateChange

Description This event is generated when the user performs actions on the Unified Agent Directory.

Syntax UADStateChange (UADEventObject as Object)

UADEventObject is an object that is populated by the Unified Agent Directory

UADStateChange object contains the following fields� long EventId - A UADEventTypeConstants enumeration type which determines the button

click:� evUADInitiate - Initiate button was clicked� evUADBlindTransfer - Blind Transfer button was clicked� evUADConsTransfer - Cons Transfer button was clicked� evUADConference - Conference button was clicked� evUADDismiss - Dismiss button was clicked� evUADOK - Ok button was clicked� evUADCancel - Cancel button was clicked� evUADTaskSelected - A task in the UAD dialog was selected by the user

� String Key - A unique key (typically the EDUID of a contact) that is to be acted upon� String Destination - The text description of this contact� String TransferComment - The Transfer Comment used in the task� long DestinationType - A UADDestinationTypeConstants enumeration type which can be:

� dtUADAgent, dtUADQueue, dtUADWorkgroup, dtUADServiceClass, or dtUADVirtualQueue

Example Sub UADStateChange (ByVal UADChangeEvent As Object)

ShowEmailLookupResponse

Description This event is generated when the user clicks the "Ok" button when the Unified Agent Directory is in E-mail mode.

Syntax ShowEmailLookupResponse(sLookupKey As String, sTo As String, sCC As String, sBCC As String)

� sLookupKey is a unique key used for processing� sTo is a concatenated list of contacts who will be the recipients of the e-mail� sCC is a concatenated list of contacts who the e-mail will be carbon copied to� sBCC is a concatenated list of contacts who the e-mail will be blind carbon copied to

DisableFiltering

Issue 1.0 June 2002 69

Example Sub ShowEmailLookupResponse(ByVal sLookupKey As String, ByVal sTo As String, ByVal sCC As String, ByVal sBCC As String)

DisableFiltering

Description Determines if filtering is to be applied in the UAD. If filtering is disabled, all agents are shown in an expanded workgroup.

Syntax Property DisableFiltering As Boolean

Example iUAD.DisableFiltering = True

Unified Agent Directory MethodsThe Unified Agent Directory control supports the following methods.

AdviseToCore

Description Registers the UAD with the Phone Engine as a core event listener

Syntax AdviseToCore(pCoreObj As Object) As Long

pCoreObj is a pointer to the core object

Example Private m_iCoreServices As CoreServices

Dim lResult As Long

lResult = iUAD.AdviseToCore(m_iCoreServices)

Show

Description Displays the Unified Agent Directory dialog to the user.

Syntax Show()

Example iUAD.Show()

EnableButton

Description Enables or disables a button in the UAD

Chapter 8 Unified Agent Directory

70 Agent Control API Reference

Syntax EnableButton(button_number As Integer, enabled As Boolean)

� button_number is a button number (0-4) in the Unified Agent Directory dialog. UADButtonConstants are:� bcUADInitiate� bcUADBlindTransfer� bcUADConsTransfer� bcUADConference� bcUADOK� bcUADDismiss� bcUADCancel

and can be used in combinations.

� enabled is used to indicate if a button is enabled or disabled.

Example iUAD.EnableButton bcUADInitiate, False

ReloadData

Description Equivalent to selecting the refresh menu option to reload cached data.

Syntax ReloadData()

Example

iUAD.ReloadData()

SetDestinationField

Description Sets the text of the "To:" edit field in the UAD, used for setting the destination number to dial a call or prepopulating the IC agent name or queue name for e-mail and chat tasks. This is not used for email addresses.

Syntax SetDestinationField(text As String)

text is the string to be populated in the edit field inside of the Unified Agent Directory

Example iUAD.SetDestinationField "example text"

SetButtonText

Description Sets the text of a button in the UAD

Syntax SetButtonText(button_number As Integer, button_caption As String)

� button_number is a button in the Unified Agent Directory (0-4)� button_caption is the new caption of the button

Example iUAD.SetButtonText 2, "Button Text"

SetTitle

Issue 1.0 June 2002 71

SetTitle

Description Sets the title of the UAD dialog

Syntax SetTitle(title As String)

title is the new caption of the Unified Agent Directory dialog

Example iUAD.SetTitle "New Title"

SetSitePkey

Description Sets the active site in the Unified Agent Directory

Syntax SetSitePkey(site_pkey As String) As Boolean

site_pkey is the pkey of the site to be set in the Unified Agent Directory

Example Dim bStatus As Boolean

bBStatus = iUAD.SetSitePkey("100001")

SetContactLabel

Description Sets the label of the active contact in the UAD

Syntax SetContactLabel(contact_label As String)

contact_label is the label to be modified in the Unified Agent Directory of the current contact

Example iUAD.SetContactLabel "New contact label"

AddTask

Description Adds a task to the UAD combo box along with information about that task. A UAD task object is created and stored by the UAD until the RemoveTask() function is called.

Syntax AddTask(sKey As String, nMediaType As Integer, sLabel As String, sDescription As String, nDisabledButtons As Integer, pdispTransferDataSeqCouple As Object) As Boolean

� sKey is a unique key (typically the EDUID of a contact) for the task to be added.� nMediaType is the media type of this contact (1 - voice, 2 - chat, 4 - e-mail) or any combination

thereof (using a bit mask to determine this)� sLabel is the text description of this contact which is used for the combo box control� sDescription is the text description of this contact� nDisabledButtons is the sum of button IDs used to determine which UAD buttons are disabled.

Left to right button IDs are: 1, 2, 4, 8, 16� pdispTransferDataSeqCouple is an ISeqSeqCouple COM object containing special data used

for transfer flow.

Chapter 8 Unified Agent Directory

72 Agent Control API Reference

Example Dim sKey As String

Dim status As Boolean

Dim data As Object

Set data = CreateObject("AvayaCore.SeqCouple")

data.AddCoupleByNameValue "contact.1.media", "voice"

data.AddCoupleByNameValue "contact.1.eduid", "1"

data.AddCoupleByNameValue "contact.1.data", ""

data.AddCoupleByNameValue "contact.2.media", "chat"

data.AddCoupleByNameValue "contact.2.eduid", "2"

data.AddCoupleByNameValue "contact.2.data", ""

status = iUAD.AddTask("KEY", 2, "LABEL", "DESCRIPTION", 20, data)

RemoveTask

Description Removes a previously added UAD task from the UAD combo box and collection map.

Syntax RemoveTask(sKey As String) As Boolean

sKey is a unique key (typically the EDUID of a contact) for the task to be removed which was added by the AddTask method.

Example Dim status As Boolean

status = iUAD.RemoveTask ("KEY")

SetLanguage

Description Sets the local language used for the GUI

Note: Special caution should be taken when using this method because it is for the sole purpose of swapping out resource.dll (unload it), and all QUI functionalities could be disabled thereafter.

Syntax SetLanguage(pszLangCode As String) As Boolean

pszLangCode is the language as a string

Example Dim status As Boolean

status = iUAD.SetLanguage("English")

Dismiss

Issue 1.0 June 2002 73

Dismiss

Description Hides the UAD dialog and any subdialogs. Does NOT fire a Dismiss event.

Syntax Dismiss()

Example iUAD.Dismiss()

SetActiveTaskKey

Description Sets the currently active task and optionally selects it in the GUI.

Syntax SetActiveTaskKey(sKey As String, Select As Boolean) As Boolean

lpszNewValue is the currently active task to set.

Select forces the GUI to select the task, causing an update of the UAD

Example Dim status As Boolean

status = iUAD.SetActiveTaskKey("KEY", True)

GetActiveTaskKey

Description Returns the active task's key

Syntax GetActiveTaskKey(ByRef sKey As String)

sKey is the active task's key

Example iUAD.GetActiveTaskKey sKey

ShowEmailLookup

Description Displays the Unified Agent Directory to the user in E-mail mode.

Syntax ShowEmailLookup(sLookupKey As String, sTo As String, sCC As String, sBCC As String)

� sLookupKey is a key that is used to pass back when firing an event� sTo is a list of e-mail addresses that prepopulates the "To:" list� sCC is a list of e-mail addresses that prepopulates the "CC:" list� sBCC is a list of e-mail addresses that prepopulates the "BCC:" list� nFilterType is an enumeration that filters the list of agents in E-mail mode� nDefaultSelectionField is the default selection field when double clicking on an agent� bDisableToField - Enables/Disables the "To" selection box

Example None.

Chapter 8 Unified Agent Directory

74 Agent Control API Reference

AddContactList

Description Adds a contact list to the UAD. The contact list is a workgroup that is pinned to the UAD dialog as a tab. The tab contains the following columns: "Login ID", "Displayable Name", and "E-mail Address". An icon next to the Login ID represents media type(s) the agent is enabled for.

Syntax AddContactList(sTitle As String, nSourceType As Integer, sSourceName As String, pdispSearchCriteriaSeqCouple As Object)

sTitle is the title of the tab in the UAD Dialog for this contact list

nSourceType is the enumerated data type to retrieve data from. Only "stDSWorkgroup" is supported in this product release.

sSourceName is the workgroup name

pdispSearchCriteriaSeqCouple is a ISeqCouple object which contains search criteria when performing a search to narrow the results

Example Dim data As Object

Set data = CreateObject("AvayaCore.SeqCouple")

data.AddCoupleByNameValue "criteria", "value"

UAD.AddContactList "My Contact List", stDSWorkgroup, "Administrator", data

Set data = Nothing' Clear out last object

Set data = CreateObject("AvayaCore.SeqCouple")

data.AddCoupleByNameValue "criteria", "value"

UAD.AddContactList "My 2nd Contact List", stDSWorkgroup, "Default", data

SetDefaultSkillProficiencyLabel

Description Sets the default skill proficiency label used in the pull-down combo box of the skills tab of the Find dialog.

Syntax SetDefaultSkillProficiencyLabel(sLabel As String)

sLabel is the default skill proficiency label used in the pull-down combo box

Example iUAD.SetDefaultSkillProficiencyLabel "OK"

SetDefaultSkillProficiencyRange

Description Sets the default skill proficiency range used in the pull-down combo box of the skills tab of the Find dialog.

Syntax SetDefaultSkillProficiencyRange(sRange As String)

RemoveSkillProficiencyLabel

Issue 1.0 June 2002 75

sRange is the default skill proficiency range used in the pull-down combo box

Example iUAD.SetDefaultSkillProficiencyRange "="

RemoveSkillProficiencyLabel

Description Removes a skill proficiency label from the pull-down combo box used in the Find Dialog of the UAD.

Syntax RemoveSkillProficiencyLabel(sLabel As String)

sLabel is the previously added text field to be removed from the skill proficiency pull-down combo box.

Example iUAD.RemoveSkillProficiencyLabel "OK"

AddSkillProficiencyLabel

Description Adds a skill proficiency label to a pull-down combo box used in the Find Dialog of the UAD.

Syntax AddSkillProficiencyLabel(sLabel As String, nMin As Integer, nMax As Integer)

� sLabel is a new text field to be added to the skill proficiency pull-down combo box� nMin is the minimum of the range� nMax is the maximum of the range

Example UAD.AddSkillProficiencyLabel "OK", 3, 5

Chapter 8 Unified Agent Directory

76 Agent Control API Reference

77

CHAPTER 9EDU VIEWER

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

Background InformationFor each incoming or outgoing contact, such as a telephone call or an email message, Avaya IC creates an EDU (electronic Data Unit). The EDU consists of a sequence of name/value pairs (a sequence of couples) that contain information about the contact.

In an environment with telephony integration, for example, each telephone call arriving or originating at the PBX triggers the creation of a permanent call detail record stored in the EDU.

Such a telephony-specific EDU would contain the following information:� the time the call arrived at the PBX� VRU information entered by the caller� information about transfers between agents� the time the call concluded� customer service actions performed by the agents

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

Note: Throughout this chapter, the terms template and style sheet are used interchangeably.

Chapter 9 EDU Viewer

78 Agent Control API Reference

Interactions with Other ControlsThe following diagram section illustrates the EDU Viewer in relation to other Avaya IC controls.

1 The EDU Viewer receives a request (typically from a IC Script) to monitor a specific EDU.

2 Core is then instructed to send all change events for that EDU to the EDU Viewer.

3 When the EDU Viewer receives a change event from Core, the EDU Viewer generates an XML file.

4 A transformation is done on the XML file using the Internet Explorer XMLDOM parser, based on an XSL style sheet.

5 The result of the transformation is an HTML file, which is then displayed in the EDU Viewer window.

EDU Viewer MethodsThe EDU Viewer supports the following methods.

AddTemplate

Description Caches a template within the EDU Viewer, with StyleName as the key. When a monitor request is made, the "eduviewerstyle" attribute is looked up in the EDU. If its value matches a style name, that style sheet is used to render the EDU.

All templates are stored in a temporary file cache, which does not persist across EDU Viewer instantiations. Creating a template with the same style name as an existing template overwrites the original version. New templates are not applied to currently monitored EDUs.

Returns BOOL value of TRUE if successful.

Core

EDU Viewer

EDUevents

IEXMLDOM

parser

HTMLdisplayed inEDU window

XSL suppliedby user

XMLgeneratedfrom EDU

1

2

3

45

AdviseSinkToCore

Issue 1.0 June 2002 79

Syntax AddTemplate(sStyleName, sStyleSheet)

AdviseSinkToCore

Description Introduces the eDU Viewer to the Core object, which initializes the eDU Viewer.

Syntax AdviseSinkToCore(ICoreServices_ptr*)

Monitor

Description Enables the monitoring of an EDU in the eDU Viewer. A new tab housing the EDU information displays. Each tab houses a browser that displays the XML generated from the EDU sequence of couples. The style sheet used to render the EDU depends on the value of the "eduviewerstyle" attribute. If no attribute is found, or if the value is invalid, the default style sheet is used to render the EDU.

Returns BOOL value of TRUE if successful.

Syntax Monitor(sEduID, bSelect)

RemoveTemplate

Description Removes the template from the XML templates collection. Currently active EDUs are not affected.

Value Description

sStyleName Required. String that specifies the name of the eDU Viewer style sheet. If this name matches the eDU Viewer style sheet/name pair, Avaya Agent uses this style sheet to render the EDU.

sStyleSheet Required. String that specifies the name of the eDU Viewer style sheet.

Value Description

IDispatch* Required. ICoreServices pointer.

Value Description

sEduID Required. String giving the name of the eDU Viewer.

bSelect Required. Boolean that specifies whether to make this the currently active tab.

Chapter 9 EDU Viewer

80 Agent Control API Reference

Syntax RemovesTemplate(sStyleName)

SetLabelAttribute

Description Overrides the value for the default tab label associated with a style sheet’s StyleName, and instead uses the value contained in the LabelAttribute of the EDU. If a LabelAttribute has not been defined or cannot be found in the EDU, the default behavior is to use the "ani" attribute value.

Returns BOOL value of TRUE if successful. FALSE indicates that no template with this name has been cached.

Syntax SetLabelAttribute(sEDUStyleAttribute)

SetStyleSheetAttribute

Description Overrides the mechanism for associating style sheets (templates) with the EDU attribute "eduviewerstyle". Instead of looking for the style sheet by name in the "eduviewerstyle" attribute, the viewer looks in the attribute specified in this function.

Returns BOOL value of TRUE if successful.

Syntax SetStyleSheetAttribute(sEDUStyleAttribute)

SetTabLabel

Description Dynamically sets the tab label for a monitored EDU.

Returns BOOL value of TRUE if successful. FALSE indicates the EDU is not currently being monitored.

Syntax SetTabLabel(sLabel, sEduID)

Value Description

sStyleName Required. String that specifies the name of the eDU Viewer style sheet to be removed.

Value Description

sEDUStyleAttribute Required. String that specifies the style attribute to set.

Value Description

sEDUStyleAttribute Required. String that specifies the style attribute to set.

Value Description

sLabel Required. String that specifies the tab label you want to set.

sEduID Required. String that specifies the EDUID of the EDU whose tab label you want to set.

SetTemplate

Issue 1.0 June 2002 81

SetTemplate

Description Renders the current EDU again, this time using the specified style sheet.

Returns BOOL value of TRUE if successful. FALSE indicates no template with this name has been cached, or the specified EDUID is not being monitored.

Syntax SetTemplate(sStyleName, sEduID)

Show

Description Makes the tab containing the specified EDU the active tab.

Returns BOOL value TRUE if successful, FALSE if eDU Viewer is not currently monitoring this EDU.

Syntax Show(sEduID)

UnMonitor

Description Stops monitoring the specified EDU, and removes its tab from the display.

Returns BOOL value of TRUE if successful, FALSE if the specified EDU is not currently being monitored.

Syntax UnMonitor(sEduID)

Value Description

sStyleName Required. String that specifies the name of the style you want to use to re-render the EDU.

sEduID Required. String that specifies the name of the EDU you want to re-render.

Value Description

sEduID Required. ID of the EDU whose tab is to be made the active tab.

Value Description

sEduID Required. ID of the EDU whose monitoring is to be stopped.

Chapter 9 EDU Viewer

82 Agent Control API Reference

83

CHAPTER 10MAIL ENGINE

The Mail Engine acts as an intermediary between the Web Agent and Avaya Agent, the Task List control, and the Blender Client control to perform the following functions:� Log agents in to and out from the Web Agent Client� Activate email tasks in the Web Agent Client� Control the email channel load � Control the email channel state� Display historical information about email tasks

The Mail Engine uses the Task Object Library (TaskLib) to communicate with the Task List control. To do this, the engine implements some methods of the ITask interface. For information on the Task List Control, including the Task Object Library (TaskLib), see Chapter 14.

Note: Mail Engine consists of Web Agent and Web Agent Email.

Properties of the Mail Engine The Mail Engine has the following properties.

Item object property

Description Retrieves an email task, via its index, from the list of mail engine tasks.

Syntax Property Item(index) as Object

Index is the index of the email task.

Example Set iMailTask = iMailEngine.Item(3)

MailCount object property

Description Retrieves the number of email tasks currently being processed by the mail engine.

Syntax Property MailCount As Long

Example count = iMailEngine.MailCount

Chapter 10 Mail Engine

84 Agent Control API Reference

Server

Description The hostname of the machine running the Paging Server. Typically this value would be retrieved from a property administered using ICManager. See ICManager documentation for more details. Note that the value of the Server property must be set before the MailEngines’ LoginAgent method is called.

Syntax Server As String

Example iMailEngine.Server = "abc.xyz.com"

Port

Description The port on which the Paging Server would be listening for requests. Typically this value would be retrieved from a property administered using ICManager. See ICManager documentation for more details. Note that the value of the Port property must be set before the MailEngines’ LoginAgent method is called.

Syntax Port As Long

Example iMailEngine.Port = 4200

Methods Supported by the Mail Engine The following methods are supported by the Mail Engine.

AdviseToCore object function

Description Introduces the Core object to the mail engine control.

Syntax Function AdviseToCore( iCore as Object ) As Boolean

iCore is the Core object reference.

Example retval = iMailEngine.AdviseToCore( iCore )

AdviseToWACEngine

Description Specifies which WACEngine this MailEngine should communicate with.

Syntax AdviseToWACEngine(pWACEngine As Object)

pWACEngine – A valid WACEngine Object

Example iMailEngine.AdviseToWACEngine iWACEngine

GetChannelLoad object function

Issue 1.0 June 2002 85

GetChannelLoad object function

Description Retrieves the current email channel load. Load can be either 0 or 1.

Syntax Function GetChannelLoad() As Long

Example load = iMailEngine.GetChannelLoad

GetChannelState object function

Description Retrieves the current email channel state.� ChannelLoggedIn (1) � ChannelLoggedOut (2)� ChannelAvailable (3)� ChannelBusy (4)

Syntax Function GetChannelState As ChannelStateConstants

Example channelstate = iMailEngine.GetChannelState

InitEngine object function

Description Initializes the mail engine. This function must be invoked prior to making any other mail engine method calls.

Syntax Function InitEngine() As Boolean

Example retval = iMailEngine.InitEngine

IsAgentLoggedIn object function

Description Determines whether an agent was logged in to the Web Agent Client via the Login method.

Syntax Function IsAgentLoggedIn() As Boolean

Example retval = iMailEngine.IsAgentLoggedIn

LoginAgent

Description Log in the agent for the email media.

Syntax LoginAgent(bstrLogin As String, bstrPassWd As String)

bstrLogin – The login name of the agent

bstrPassWd – The password of the agent

Example iMailEngine.LoginAgent "agent1", "pass1"

Chapter 10 Mail Engine

86 Agent Control API Reference

Logout object function

Description Logs an agent out from the Web Agent Client.

Syntax Function Logout() As Boolean

Example retval = iMailEngine.Logout

SetChannelState object method

Description Sets the email channel state to either available or busy. When available, new email messages can be processed by the channel. When busy, new email messages are queued until the channel is made available again.

Syntax Sub SetChannelState( state as ChannelStateConstants )

State can either be ChannelBusy (4) or ChannelAvailable (3).

Example iMailEngine.SetChannelState 3

SetChannelLoad object method

Description Sets the capacity of the email channel, which determines how many new emails can be received at one time.

Syntax Sub SetChannelLoad( load as Long )

Load can be either 0 or 1.

Example iMailEngine.SetChannelLoad 1

ShowHistory object function

Description Shows the tracking history of the specified email.

Syntax Function ShowHistory( trackingnumber as String ) as Boolean

trackingnumber is the tracking number.

Example iMailEngine.ShowHistory "QAP2000070700000004"

The Task Object

Issue 1.0 June 2002 87

The Task ObjectAny object that supports the ITask interface can implement methods on ITask. The Mail Engine implements several of the methods and properties of ITask. These properties, functions, and methods are described in the following sections.

Properties of the Task ObjectThe Task object has the following properties.

Age object property

Description Returns the total time the email has been in the system, specifically the (current time - edu create time).

Syntax Property Age As Long

Example age = iTask.Age

EduId object property

Description Returns the EDU ID associated with the current email task.

Syntax Property EduId As String

Example MsgBox iTask.EduId

EduObject object property

Description Retrieves the EDU object associated with the current email task.

Syntax Property EduObject As Object

Example Set eduobject = iTask.EduObject

Header

Description This is the header type selected for outgoing email in the Web Agent Client. This can be one of the following values,

� SME� NOR� REQ� FWD� SUP� OUT

Chapter 10 Mail Engine

88 Agent Control API Reference

Syntax Header As String

Example iTask.Header = "SME"

Operations object property

Description Retrieves the Operations object associated with the current email task. The Operations object can then be used to determine which operations are available and enabled in the current task state.

Syntax Property Operations As Object

Example Set ops = iTask.Operations

If ops.IsOperationEnabled( opComplete )

iTask.Complete

End If

Origin object property

Description This is the EDU's "sender" field, or if not available, it is taken from the WebAgent's TaskReceived event.

Syntax Property Origin As String

Example MsgBox iTask.Origin

Properties object property

Description Retrieves the Properties object associated with the current email task. The Properties object can be used as a scratch pad. For the Mail Engine, the following values are set internally:� taskid� tracking_number� wait_start_time� transferred_to_us � adjusted_createtimet

Syntax Property Properties As Object

Example Set props = iTask.Properties

For Each prop In props

MsgBox prop.ToString

Next

Subject object property

Description Returns the subject of the current email message.

TaskSourceType object property

Issue 1.0 June 2002 89

Syntax Property Subject as String

Example MsgBox iTask.Subject

TaskSourceType object property

Description Returns tsMailEngine (1).

Note: For the current release, only email tasks are available via this property.

Syntax Property TaskSourceType As TaskSourceType

Example Tasktype = iTask.TaskSourceType

If tasktype = 1 Then

MsgBox "It's a mail task"

End If

TaskState object property

Description Returns the state of the current task. An email task can be in any of the following states:

State Value Description

tsIncoming 502 The task has just been received by the Agent Client

tsDeactivated 505 The task is currently deactivated (hidden) in the Agent Client

tsActivated 506 The task is currently active in the Agent Client

tsWrapup 507 The task is currently in the Wrapup state

tsTerminated 508 The task has been completed and is about to be destroyed

tsSelected 509 The task is currently selected in the Task List

tsClosed 510 The task is in the closed state

tsOpening 511 The task is in the opening state

tsOpen 512 The task is in the open state

tsClosing 513 The task is in the closing state

tsCompleting 514 The task is in the completing state

tsCompleted 515 The task is in the completed state

tsTransferring 516 The task is in the transferring state

tsTransferred 517 The task is in the transferred state

tsAbandoned 518 The task is in the abandoned state

Chapter 10 Mail Engine

90 Agent Control API Reference

Syntax Property TaskState As TaskState

Example ts = iTask.TaskState

TimeInState object property

Description Indicates the length of time (in seconds) the current task has been in its current state.

Syntax Property TimeInState As Long

Example MsgBox "Task has been in this state for " & CStr(iTask.TimeInState) & " seconds"

Functions and Methods of the Task ObjectThe Task object supports the following functions and methods.

Activate object method

Description Activates an email task in the Web Agent Client by showing the task.

Syntax Sub Activate()

Example iTask.Activate

Complete object method

Description Completes an email task in the Web Agent Client. In order to complete an email task, it must first be in the wrap-up state.

Syntax Sub Complete()

Example iTask.Complete

Defer object function

Description Defer the email

Syntax Defer()

Example iTask.Defer

tsCanceling 519 The task is in the canceling state

tsDeferred 520 The task is in the deferred state

tsSent 521 The task is in the sent state

State Value Description

Dismiss object function

Issue 1.0 June 2002 91

Dismiss object function

Description Dismiss the email with a some status id. The status id may be user defined.

Syntax Dismiss(lStatusID As Long)

lStatusID – A user defined status id

Example iTask. Dismiss 121

Deactivate object method

Description Deactivates an email task by hiding it in the Web Agent Client.

Syntax Sub Deactivate()

Example iTask.Deactivate

Execute object method

Description Executes the specified operation. The mail engine supports a dynamic operation for displaying the history of an email task. The operation ID for this is dynHistory (100).

Syntax Sub Execute(TaskOperation op)

Example iTask.Execute dynHistory

GetString object function

Description Retrieves the string for the specified ID. This can be used to return the string associated with the task state, for example.

Syntax Function GetString( id as Long ) as String

Example ' Display the string for the wrapup task state (507)

MsgBox iTask.GetString( 507 )

IsEqual object function

Description Indicates whether the current task object is the same as another task object.

Syntax Function IsEqual( iTask as Object ) as Boolean

Example retval = iTask.IsEqual( iWebTask )

Chapter 10 Mail Engine

92 Agent Control API Reference

SetAlertInfoResponse object function

Description Called to set email headers when an email is being sent to an SME or to a customer requesting additional information.

Syntax SetAlertInfoResponse(bstrType As String, lSetAlert As Long, lAlertDuration As Long, lSendToAnyAgent As Long)

bstrType – The extended email types. The defined types are,

"SME" – The email is being sent to an SME

"REQ" – The email is being sent to a customer for additional information

lSetAlert – This specifies whether an alert should be set for this email or not. The defined values are� 0 – SET_ALERT� 1 – NO_ALERT

lAlertDuration – The time after which the alert should be triggered as seconds.

lSendToAnyAgent – This specifies whether the alert should come to this agent or to any agent. The defined values are� 0 – SEND_TO_ANY_AGENT� 1 – SEND_TO_THIS_AGENT

Example iTask. SetAlertInfoResponse "REQ", 0, 60000, 1

ToString object function

Description Returns the task object as a human-readable string.

Syntax Function ToString() As String

Example MsgBox iTask.ToString

TransferTask object function

Description Transfers the email to the specified recipient

Syntax TransferTask(sRecipient As String, sComment As String, lTarget As Long, sIsMultimedia As String)

sRecipient – The recipient to whom this chat is to be transferred. The recipient can either be an agent, a workgroup or a service class.

sComment – Transfer comment so receiving agent understands the context of the transfer.

Mail Engine Events

Issue 1.0 June 2002 93

lTarget – The target entity. This could be one of the following,� 0 – WORK_GROUP� 1 – AGENT� 2 – SERVICE_CLASS

sIsMultimedia – Can be "true" or "false"

Example iTask.TransferTask "agent1", "Customer is looking for a loan expert", 1,

"false"

Mail Engine Events

TaskStatusChanged

Description This event is fired whenever the status of a task changes.

Syntax TaskStatusChanged(sEDUID As String, lStatus As Long)

sEDUID – The EDUID associated with the task

lStatus – The new status of the task

Valid Status constants are,� 40 - Reply from a customer� 41 - Reply to forwarded email � 42 - Reply to new outbound message� 43 - Reply from SME� 44 - Reply to request for additional information� 45 - Email needs quality assurance� 46 - Rejected during quality assurance � 47 - Approved during quality assurance� 49 - System generated alert or email� 50 - Reply to auto acknowledge� 51 - Reply to auto response

LookupAgentForTransfer

Description Requests that an agent be looked up to whom the specified task can be transferred.

Syntax LookupAgentForTransfer(sEDUID As String)

sEDUID – The EDUID associated with the task

Chapter 10 Mail Engine

94 Agent Control API Reference

RequestAlertInfo

Description This event is sent by the Web Agent to retrieve extended email workflow parameters when setting alerts (See Extended Email workflow documentation for more information)

Syntax RequestAlertInfo(bstrEDUID As String , bstrType As String)

bstrEDUID – The EDUID associated with the task

bstrType – The extended email type. This can be one of the following,� "SME" – Email is being sent to an SME� "REQ" – Email is being sent to a customer for additional information

95

CHAPTER 11PHONE ENGINE

The Phone Engine control provides access to telephony functionality. The Phone Engine is a non-GUI control that resides between the GUI controls and the VTel Automation Server.

The Phone Engine is a wrapper around the Core Services control and the Telephony control. Therefore, it supplies both Telephony and Core Services information for agents who are logged in.

Phone Engine EventsThe Phone Engine issues the following events.

Event ID Description Value

evCallConferenced The new party has joined the call after a ConferenceComplete.

172

evCallConferencedCanceled The conference call has been cancelled. 302

evCallConnected The call was connected. 173

evCallDisconnected The call was disconnected. 174

evCallDiverted The call was routed. 175

evCallFailed An unspecified failure for an outgoing call occurred.

176

evCallHeld The call has been placed on hold. 177

evCallIncoming There is an incoming call. 178

evCallNone No detail available. 171

evCallPreset A Preset has been set for the call. 303

evCallQueued A queued event was received from the Telephony Server.

179

evCallRemoteBusy The call could not be made because the destination was busy.

181

evCallRemoteConnected The remote party has been connected. 182

(Sheet 1 of 2)

Chapter 11 Phone Engine

96 Agent Control API Reference

evCallRemoteDisconnected The remote party has been disconnected. 183

evCallRemoteRing The remote phone is ringing. 184

evCallRetrieved The call has been retrieved. 180

evCallTransferCanceled The transfer of the call has been cancelled. 301

evCallTransferred The call has been transferred. 185

evCoreGeneral The agent, phone, or call state has changed. 192

evCoreLogin The Core Services login status. 197

evCoreLogout The Core Services logout status. 198

evCoreResponse A response to a prior asynchronous request. 193

evCoreServerFailed The Core Services server is down. 195

EvCoreServerMaxRetries 206

evCoreServerRestart The Core Services server has been restarted. 196

evCoreStart The Core Services operations are available. 188

evCoreStop The Core Services operations are not available.

189

evDialDirectoryLoaded The information for the Dial Directory is available.

202

evTelephonyGeneral The agent, phone, or call state might have changed.

192

evTelephonyLineChange The state of one of the calls has changed. 194

evTelephonyResetPhones The phone has been reset. 300

evTelephonyResponse A response to a prior asynchronous request. 193

evTelephonyServerFailed The Telephony Server is down. 195

evTelephonyStart The Telephony Service operations are available.

188

evTelephonyStop The Telephony Service operations are not available.

189

evVduChange The EDU information has changed. 199

evVduCurrent This EDU is from the active call. 200

evVduTerminated The call is terminated. 201

Event ID Description Value

(Sheet 2 of 2)

Phone Engine Methods

Issue 1.0 June 2002 97

Phone Engine MethodsThe Phone Engine supports the following methods.

AddEduNameToListenFor

Description The method allows a client of the Phone Engine to only receive Core change events for the EDU events that contain one of the EDU attribute names that was added to the filter via this method. This method only prevents listeners of the Phone Engine.ocx from receiving these events. Other controls that listen directly to Core Services still receive the events.

Syntax AddEduNameToListenFor(AttributeName As String)

AttributeName is the EDU AtrributeName for which you want to receive Core Events.

Returns If successful, the function returns a value of True

AddEventToListenFor

Description Provides a filtering mechanism for events sent from the Phone Engine control. The Phone Engine sends only those events it has been instructed to send.

Syntax AddEventToListenFor(lEventID As Long)

lEventID is the event to be sent. For a list of event IDs, see page 95.

Returns If successful, the function returns a value of True.

GetCoreObject

Description Retrieves a pointer to the Core Services control.

Syntax GetCoreObject() As Object

Returns This method returns a pointer to the Core Services control.

GetTelephonyObject

Description Retrieves a pointer to the Telephony control.

Syntax GetTelephonyObject() As Object

Returns Returns a pointer to the Telephony control.

Chapter 11 Phone Engine

98 Agent Control API Reference

ListenToAllEduEvents

Description The method allows a listener of the Phone Engine Core Events to receive all EDU change events for all EDU values that change. No filtering occurs. The default is for a client to receive all events.

Syntax ListenToAllEduEvents() As Boolean

Returns If successful, the function returns a value of True

ListenToAllEvents

Description This method can be called after an AddEventToListenFor method or a RemoveEventToListenFor method has been called. It reinitializes the control so that all events are sent.

Syntax ListenToAllEvents() As Boolean

Returns If successful, the function returns a value of True.

RemoveAllEduNamesToListenFor

Description The method allows a client of the Phone Engine Core Events to remove all attribute names from the EDU event filter. When this method is called no EDU events are received by the client until either AddEduNameToListenFor() or ListenToAllEduEvents() is called.

Syntax RemoveAllEduNamesToListenFor() As Boolean

Returns If successful, the function returns a value of True

RemoveAllEventsToListenFor

Description Instructs the Phone Engine control to withhold all events. If you want to specify a small subset of events to listen for, call the RemoveAllEventsToListenFor method once, and call the AddEventToListenFor method once for each event for which you want to listen.

Syntax RemoveAllEventsToListenFor () As Boolean

Returns If successful, the function returns a value of True.

RemoveEduNameToListenfor

Description The method allows a client of the Phone Engine to remove an EDU attribute name from the filter that was added via the AddEduNameToListenFor() method. If the name specified is the last one in the filter it does not automatically turn on filtering for all events.

RemoveEventToListenFor

Issue 1.0 June 2002 99

Syntax RemoveEduNameToListenfor(AttributeName as String) As Boolean

Returns If successful, the function returns a value of True

RemoveEventToListenFor

Description Provides a filtering mechanism for the events to be fired from the Phone Engine Control. The Phone Engine fires only those events that it has been told to.

Syntax RemoveEventToListenFor(lEventID As Long)

lEventID is the event to be withheld. For a list of event IDs, see page 95.

Returns If successful, the function returns a value of True.

WrapUpComplete

Description The Call Object WrapupComplete method call must be made at the end of every telephony call. It will result in a TS.WrapupComplete call being made which signals the TS to decrement the voice.contactcount for the agent logged in.

If wrapup is being used then this method should be called after wrapup is complete. If no wrapup is intended then it should be called when a evCallDisconnected event is received by the client.

Syntax Sub WrapUpcomplete(responseObj As Object)

Parameter Description

AttributeName The Attribute Name associated to check for in current Core event.

Chapter 11 Phone Engine

100 Agent Control API Reference

101

CHAPTER 12PROMPTER CLIENT

The Prompter Client control facilitates the management of multiple, simultaneous Prompter sessions. It enables flows to be run from a flow catalog, and it supplies methods to gain access to data for those flows.

The Prompter Client control requires the Avaya Tree control, the Soft Tree control, and the Internet Explorer browser. Each of these controls must be registered prior to using the Prompter client control.

Prompter Client PropertiesThe Prompter Client control has the following properties.

Port

Description Specifies the WebChannel server port number. Type is string.

Syntax Port As String

Example iQPrompterCtrl.Port = "5050" 'This is the default WebChannel server port

Server

Description Specifies the name or the IP address of the WebChannel server. Type is string.

Syntax Server As String

Example iQPrompterCtrl.Server = "40.2.10.33"

iQPrompterCtrl.Server = "saturn"

Prompter Client EventsThe following events are generated by the Prompter Client control.

Chapter 12 Prompter Client

102 Agent Control API Reference

FlowAbandoned

Description This event is generated when a flow times out.

Syntax FlowAbandoned (sSessionId As String)

sSessionId is the session ID.

Example Sub FlowAbandoned (sSessionId As String)

FlowComplete

Description This event is generated when a flow completes.

Syntax FlowComplete (sSessionId As String)

sSessionId is the session ID.

Example Sub FlowComplete (sSessionId As String)

FlowDelete

Description This event is raised before deleting a flow session. The event handler can cancel the delete operation by setting the cancel parameter to True.

Syntax FlowDelete (sSessionId As String, ByRef bCancel As Boolean)

� sSessionId is the session ID.� bCancel indicates whether the flow can be deleted. Set True to cancel the delete operation or

False to allow the flow session to be deleted. The default value is False.

Example Sub FlowAbandoned (sSessionId As String, ByRef bCancel As Boolean)

FlowEvent

This is a generic event that provides miscellaneous data.

Syntax FlowEvent (sSessionId As String, sParameter As String)

� sSessionId is the session ID.� sParameter is a data parameter.

Example Sub FlowEvent (sSessionId As String, sParameter As String)

FlowPageLoaded

Description This event is generated whenever a flow page is loaded.

Syntax FlowPageLoaded (sSessionId As String)

FlowQuestionSelected

Issue 1.0 June 2002 103

sSessionId is the session ID.

Example Sub FlowPageLoaded (sSessionId As String)

FlowQuestionSelected

Description Raised when a user selects a question in the flow history.

Syntax FlowQuestionSelected (sSessionId As String, sQuestionId As String, sAnswers As

String)

� sSessionId is the session ID.� sQuestionId is the ID for a question specified in the flow.� sAnswers is the answer for the selected question.

Example Sub FlowQuestionSelected (sSessionId As String, sQuestionId As String, sAnswers As String)

FlowSelected

Description Raised when the user indicates the intention to run a flow.

Syntax FlowSelected (sSessionId As String, String sFlowSet String, String sFlowName, String sFlowId, ByRef sSessionLabel As String, ByRef bCancel As Boolean)

� sSessionId is the session ID.� sFlowSet is the flow set name.� sFlowName is the flow name.� sFlowId is the flow ID.� sSessionLabel is the label for the session created to run the flow. The user can change this

value.� bCancel indicates whether the selected flow can be run. Set True to cancel the run operation or

False to allow the flow to be run. The default value is False.

Example Sub FlowSelected (sSessionId As String, String sFlowSet String, String sFlowName, String sFlowId, ByRef sSessionLabel As String, ByRef bCancelAs Boolean)

Prompter Client MethodsThe Prompter Client control supports the following methods.

ActivateSession

Description Makes the specified session browser visible in the control. ReturnType is none.

Syntax ActivateSession (sSessionId As String)

sSessionId is the session ID.

Chapter 12 Prompter Client

104 Agent Control API Reference

Example iQPrompterCtrl.ActivateSession ("session_224")

BuildQPrompterFromURL

Description Populates the flow catalog with flows specified in the input URL file. A session hierarchy is also initialized. If an input URL is not specified, only the sessions are displayed in the flow catalog. ReturnType is none.

Syntax BuildQPrompterFromURL (Optional sURL As String)

sURL is the name of the file that specifies the flows to be run.

Example iQPrompterCtrl.BuildQPrompterFromURL ’Only sessions are displayed

iQPrompterCtrl.BuildQPrompterFromURL ("c:/qprompterclient/defects..xml")

CreateSession

Description Initializes a Prompter session with the specified session identifier. The return value is the session's identifier. If an identifier is not specified, the control generates and assigns a unique session ID. If a label is not specified, the session ID is used as the session label. ReturnType is string.

Syntax CreateSession (optional sLabel As Variant, optional sSessionId As Variant)

� sLabel is the session label, which identifies the session in the session tree.� sSessionId is the session identifier.

Example Dim sID As String

sID = iQPrompterCtrl.CreateSession ()

' returns internally generated id

sID = iQPrompterCtrl.CreateSession ("defects")

' returns internally generated id

sID = iQPrompterCtrl.CreateSession ("calls", "session_324")

' returns session_324 as the ID

DeleteSession

Description Deletes the session with the specified session ID. ReturnType is none.

Syntax DeleteSession (sSessionId As String)

sSessionId is the session ID to be deleted.

Example iQPrompterCtrl.DeleteSession("session_224")

GetActiveSessionId

Issue 1.0 June 2002 105

GetActiveSessionId

Description Gets the ID of the active session. ReturnType is none.

Syntax GetActiveSessionId()

sSessionId is the session ID.

Example Dim sId As String

sId = IQPrompterCtrl.GetActiveSessionId

GetAnswer

Description Gets the answer for a given question from the flow history. ReturnType is string.

Syntax GetAnswer (sSessionId As String, sQuestionId As String)

� sSessionId is the session ID.� sQuestionId is the ID for a question specified in the flow.

Example Dim sAnswer As String

sAnswer = iQPrompterCtrl.GetAnswer ("session_224", "Block1_1")

GetSymbol

Description Gets the value of the specified global symbol in the flow. Returns FALSE if the symbol is not found, otherwise TRUE. ReturnType is Boolean.

Syntax GetSymbol (sSessionId As String, sName As String, ByRef sValue As String)

� sSessionId is the session ID.� sName is the symbol name whose value is to be retrieved.� sValue is the return value for the symbol.

Example Dim bStatus As Boolean

Dim sValue As String

bStatus = iQPrompterCtrl.GetSymbol ("session_224", "defectype", sValue)

MaximizeFlowCatalog

Description Maximizes the flow catalog by moving the splitter to its original position. ReturnType is none.

Syntax MaximizeFlowCatalog

Example IQPrompterCtrl.MaximizeFlowCatalog

Chapter 12 Prompter Client

106 Agent Control API Reference

MinimizeFlowCatalog

Description Minimizes the flow catalog by moving the splitter to left edge of the control. The flow catalog is hidden at this point. ReturnType is none.

Syntax MinimizeFlowCatalog

Example IQPrompterCtrl.MinimizeFlowCatalog

RefreshFlowCatalog

Description Refreshes the flow catalog with flows specified in the input URL file. A session hierarchy is also initialized. If an input URL is not specified, only the sessions are displayed in the flow catalog. ReturnType is none.

Syntax RefreshFlowCatalog (Optional sURL As String)

sURL is the name of the file that specifies the flows to be refreshed.

Example iQPrompterCtrl.RefreshFlowCatalog 'Only sessions are displayed

iQPrompterCtrl.RefreshFlowCatalog ("c:/qprompterclient/calls..xml")

ResetSessionParameters

Syntax Sub ResetSessionParameters sSessionID As String

Description This method resets the parameters that are to be sent to the prompter flow.

Example iPrompterClient.ResetSessionParameters sSessionID

SetFlowParameter

Description Sets name/parameter information for a flow with the specified session ID. Make this call multiple times to set more than one name/parameter value for a given session ID. ReturnType is none.

Syntax SetFlowParameter (sSessionId As String, sName As String, sValue As String)

� sSessionId is the session ID.� sName is a parameter name.� sValue is a parameter value.

Example iQPrompterCtrl.SetFlowParameter ("session_224", "defectid", "4852")

iQPrompterCtrl.SetFlowParameter ("session_224", "defectstatus", "fixed")

ShowHistory

Issue 1.0 June 2002 107

ShowHistory

Description Makes the history page for the session visible. If no ID is specified, the history page for the active flow is made visible. ReturnType is none.

Syntax ShowHistory (optional sSessionId As String)

sSessionId is the session ID for the history page to be shown.

Example IQPrompterCtrl.ShowHistory ("session_224")

StartFlow

Description Starts a flow for the specified session using the flow set and flow name information. ReturnType is none.

Syntax StartFlow (sSessionId As String, sFlowsetName As String, sFlowName As String)

� sSessionId is the session ID.� sFlowsetName is the flow set name.� sFlowName is the flow name.

Example iQPrompterCtrl.StartFlow ("session_224", "customer", "defects")

Method Usage ExampleThe methods described above might be used as follows.

Dim sID As String

'-----Set server, port informationiQPrompterCtrl.Server = "20.2.5.40"iQPrompterCtrl.Port = "3456"

'-----Create Prompter sessionsID = iQPrompterCtrl.CreateSession("defects", "session_2024")

'-----Set flow parameter informationiQPrompterCtrl. SetFlowParameter ("session_224", "defectstatus", "open")

'-----Start Prompter flowiQPrompterCtrl. StartFlow ("session_224", "customer", "defects")

Chapter 12 Prompter Client

108 Agent Control API Reference

109

CHAPTER 13STATUS CONTROL

The Status control is used to change the status of multimedia channels and show a visual indication of that status in Avaya Agent. It interacts with the non-visual Blender Client control, which performs the majority of the processing, and Core Services.

By default, the user can change channel state automatically or manually using the Status control. The designer can deny users from changing channel states manually. This can be performed by setting the "privileges" field in the ADU to "false."

You can customize the labels displayed under the buttons of the Status control, or the tooltips for those buttons, by using the SetFormat method. You can navigate the Status control using the arrow keys, and activate buttons by pressing the space bar or Enter (when the control has the keyboard input focus). The right-click context menu can be displayed by pressing F8.

Interactions with Other Controls When a user acts upon the Status control, the control invokes an appropriate method on the Blender Client. For example, if the user clicks the agent icon on the Status control, the control invokes the SetAgentState method on the Blender Client to change the agent state. The Blender Client then processes the request and sends a notification (event) to the Status control when the operation is complete.

The Status control can receive three types of events from the Blender Client: agent state events, channel state events, and ADU change events. The Status control responds to each type of event by changing its visual display. For example, if the Status control receives an agent state event that indicates that the agent is now in an aux-work state, a yellow X is displayed on the agent icon.

Chapter 13 Status Control

110 Agent Control API Reference

The Status control uses Core Services to retrieve Directory Services table information for aux-work and logout reason codes.

Status Control Properties

The Status control uses Core Services to request Aux Work and Logout Reason Code information from the Directory Server.

AuxGroup

Description The name of the Auxilary Group as specified on the Codes tab in IC Manager.

Syntax iStatus.AuxGroup = "AuxGroupName"

Tenant

Description The name of the Tenant for which the Auxilary Group exists for as specified on the Codes tab in IC Manager.

Syntax iStatus.Tenant = "TenantName"

AuxReasonRequired

Description Indicates that in order to transition to other work ("aux-work"), the agent must select a reason from a reason code box. Only applicable if ShowAuxReasonCode is set to True (default).

Syntax iStatus.AuxReasonRequired = Required

� iStatus is the Status control object pointer.� Required is a boolean to indicate that a selection is required.

Example iStatus.AuxReasonRequired = True

BlenderClient

CoreServices

BlenderMethods

BlenderEvents

CoreMethods

StatusControl

Cache

LogoutReasons

Aux-workReasons

BlendingMode

Issue 1.0 June 2002 111

BlendingMode

Description Sets the blending mode (automatic or manual). This can be set to either ModeAutomatic (or 1) or ModeManual ( or 2).

Note: The blending mode can also be set via the Options dialog invoked from the Status control’s right-click context menu.

Syntax iStatus.BlendingMode = newMode

� iStatus is the Status control object pointer.� newMode is ModeAutomatic (or 1) or ModeManual (or 2).

Example iStatus.BlendingMode = ModeAutomatic

or

iStatus.BlendingMode = 1

Ceiling

Description The ceiling is the maximum value the user can set for a specific channel. For example, if the ceiling for the Web channel is 5, the load for the Web channel cannot be adjusted above 5.

Syntax iStatus.Ceiling(Channel) = NewVal

� iStatus is the Status control object pointer.� Channel is the media channel on which to set the ceiling.� NewVal is the new ceiling amount for that channel.

Example iStatus.Ceiling(MediaEmail) = 3

or

iStatus.Ceiling(1) = 3

ContextMenuKey

Description This property allows the designer to use an alternate keystroke for the context menu. If this property is not set, the default is to use F8 (value 119) to display the context menu. You may use, but are not limited to, the following values:

Key Value

F1 through F12 112 through 123

PgUp 33

PgDn 34

End 35

Chapter 13 Status Control

112 Agent Control API Reference

Syntax iStatus.ContextMenuKey = Val

� iStatus is the Status control object pointer.� Val is the virtual key code.

Example iStatus.ContextMenuKey = vkF12

or

iStatus.ContextMenuKey = 123

DisplayName

Description By default, the status control displays the "loginid" value from the ADU in the text window below the buttons. You can use a pseudo-ADU value, "displayname," (via the SetFormat method) instead of "loginid" to display this text. Refer to SetFormat command for an example.

Syntax iStatus.DisplayName = Text

� iStatus is the Status control object pointer.� Text is the string you want to display as the login ID.

LogoutReasonRequired

Description Indicates that in order to log out, the agent must select a reason from the reason code box. Only applicable if ShowLogoutReasonCode is set to True (default).

Syntax iStatus.LogoutReasonRequired = bRequired

� iStatus is the Status control object pointer.� Required is a Boolean value that indicates a selection is required.

Example iStatus.LogoutReasonRequired = True

ShowAuxReasonCode

Description Controls whether to display the aux-work reason code box before transitioning to aux-work. Default is False.

Syntax iStatus.ShowReasonCode = bShow

� iStatus is the Status control object pointer.� bShow is a Boolean value that specifies whether to show the aux-work reason code box.

Home 36

Insert 45

Delete 46

Key Value

ShowConfirm

Issue 1.0 June 2002 113

Example iStatus.ShowReasonCode = True

ShowConfirm

Description Determines whether a confirmation dialog box is displayed before changing a channel or agent state. Default is False.

Syntax iStatus.ShowConfirm = bShow

� iStatus is the Status control object pointer.� bShow is a Boolean value that specifies whether to display a confirmation dialog before

changing state.

Example iStatus.ShowConfirm = True

ShowLogoutReasonCode

Description Determines whether a logout reason code box is displayed when logging out. Default is False.

Syntax iStatus.ShowLogoutReasonCode = bShow

� iStatus is the Status control object pointer.� bShow is a Boolean value that determines whether the logout reason code box is displayed.

Example iStatus.ShowLogoutReasonCode = True

ShowTime

Description Controls whether to show the time in the status control display. Use True to show the time (default) or False to hide it.

Syntax iStatus.ShowTime = bShow

� iStatus is the Status control object pointer.� bShow is a Boolean value that determines whether the time is shown or hidden.

Example iStatus.ShowTime = True

TimeFormat

Description Controls whether to show the time in 24-hour format or 12-hour format (default).

tfTwelve (0) represents 12-hour format.

tfTwentyFour (1) represents 24-hour format.

Syntax iStatus.TimeFormat = Format

� iStatus is the Status control object pointer.� Format is the format to use.

Chapter 13 Status Control

114 Agent Control API Reference

Example iStatus.TimeFormat = tfTwelve

or

iStatus.TimeFormat = 0

Status Control MethodsThe Status control supports the following methods.

AdviseToBlender

Description Gives the Status control the Blender Client object pointer. This function must be invoked for proper operation of the Status control.

Syntax iStatus.AdviseToBlender( iBlender )

� iStatus is the Status control object pointer.� iBlender is the BlenderClient object pointer.

Example iStatus.AdviseToBlender( iBlender )

AdviseToCore

Description Gives the status control the Core object pointer. This function must be invoked for proper operation of the Status control.

Syntax iStatus.AdviseToCore( iCore )

� iStatus is the Status control object pointer.� iCore is the Core object pointer.

Example iStatus.AdviseToCore( iCore )

EnableChannel

Description Enables the specified media channel. Invoke this before calling Initialize. You may call Initialize again after invoking EnableChannel to re-initialize the displayed channel buttons.

Syntax iStatus.EnableChannel( Channel, Enable )

� iStatus is the Status control object pointer.� Channel is the media channel to enable/disable. � Enable is a Boolean value. Use True to enable the channel, or False to disable it.

Example iStatus.EnableChannel( MediaEmail, True )

or

iStatus.EnableChannel( 1, True )

Initialize

Issue 1.0 June 2002 115

Initialize

Description Call this method to initialize the buttons in the status control, after invoking EnableChannel.

Syntax iStatus.Initialize()

iStatus is the Status control object pointer.

Example iStatus.Initialize()

Logout

Description Call this method to display the logout reason code box. This is typically invoked when Avaya Agent is shutting down to give the agent an opportunity to select the reason for logout.

ShowLogoutReasonCode must be set to True and the LogoutReasonTable must be set to a valid DS table in order to use this method. Optionally, the LogoutReasonRequired can be set to True to require the agent to make a selection.

Returns True if successful.

Syntax iStatus.Logout()

iStatus is the Status control object pointer.

Example retval = iStatus.Logout()

RefreshTables

Description The first time a reason code dialog box is displayed, the Status control automatically fills an internal cache with Directory Services table data. Subsequent displays of the reason code box use the data in the cache. Call this method to have the Status control reload its internal cache of DS data the next time a reason code dialog is displayed. This affects both the aux-work and logout table caches.

Returns True if successful.

Syntax iStatus.RefreshTables()

iStatus is the Status control object pointer.

Example retval = iStatus.RefreshTables()

Chapter 13 Status Control

116 Agent Control API Reference

SetFormat

Description Sets the format of displayed text in the Status control, including ADU values. The Field parameter can have any of the following values:

Syntax iStatus.SetFormat( Field, Format, UseToolTip )

� iStatus is the Status control object pointer.� Field is the text field to change.� UseToolTip is reserved for future use. Use the value "1".

Example iStatus.SetFormat( qfiText, {displayname} has {voice.load} voice,

{email.load} email, and {chat.load} web, 1 )

or

iStatus.SetFormat( 4, {displayname} has {voice.load} voice,

{email.load} email, and {chat.load} web, 1 )

Value Description

qfiAgent (0) The tooltip text for the agent icon.

qfiEmail (1) The tooltip text for the email icon.

qfiVoice (2) The tooltip text for the voice icon.

qfiWebl (3) The tooltip text for the web icon.

qfiText (4) The text below the buttons.

117

CHAPTER 14TASK LIST

The Task List control is an ActiveX control that displays email tasks processed by the engine for eContact Email, known as the eContact Email Engine.

For the current release, the "out of the box" Task List control supports only eContact Email tasks. Therefore, separate controls for voice and chat tasks are still required.

Even though the Task List control for the current release supports only eContact Email tasks "out of the box," the underlying architecture of the Task List is capable of supporting multiple task types. Taking advantage of this capability, however, requires special development effort on the part of the integrator.

Each item in the Task List corresponds to an individual email task. For each task, the following generic information can be displayed. (Data is presented in columns in the Task List GUI.)� Age� EDU ID� Origin� State� State icon� Subject� Task icon� Time in state

In addition, the following data, which is specific to eContact Email tasks, can be displayed:� Queue time� Task ID� Tracking number

The integrator can have a column display customized task-specific data. The integrator is not limited to the data types listed above.

In addition to displaying task-specific data in columns, the integrator can also display task-specific data in the tooltip text that displays when the user hovers the mouse over a task. For more information, see “SetFormat object function,” on page 125.

The Initialize method controls which generic or task-specific information is presented.

Chapter 14 Task List

118 Agent Control API Reference

The user can reposition and resize the columns in the Task List. When the user exits Avaya Agent, the Task List saves these column positions in the Windows registry. If the Initialize method is subsequently invoked with new settings for column sequence or position, the new settings replace the previously saved user settings.

Properties of the Task ListThe Task List control has the following properties.

DisableContextMenu object property

Description When set to True, disables the context menu that would otherwise be available for each task displayed in the Task List. The default is False (context menus enabled).

Syntax Property DisableContextMenu as Boolean

Example iTaskList.DisableContextMenu = True

Tasks object property

Description Retrieves the collection of task objects known about by the Task List control.

Syntax Property Tasks as Object

Example Dim iTask as Object

For Each iTask in iTaskList.Tasks

MsgBox iTask.ToString

Next

Events Emitted by the Task List

Issue 1.0 June 2002 119

Events Emitted by the Task ListAs changes to tasks occur, the Task List emits the following events.� Abandoned� Activate� Activity� Canceling� Change� Closed� Closing� Completing� Completed� Deactivate� Deferred� Error� Incoming� Opening� Open� Select� Sent� Terminate� Transfering� Transferred� Wrapup

Note: The Change event encompasses all events except for the Error event.

Abandoned

Description Emitted when the selected task is abandoned

Syntax Abandoned( iTaskChangeEvent as Object )

iTaskChangeEvent is the TaskChangeEvent object.

Activate event

Description Emitted when a task is activated.

Syntax Event Activate( iTaskChangeEvent as Object )

iTaskChangeEvent is the TaskChangeEvent object.

Chapter 14 Task List

120 Agent Control API Reference

Activity event

Description Emitted when the task has undergone some activity.

Syntax Event Activity( iTaskChangeEvent as Object )

iTaskChangeEvent is the TaskChangeEvent object.

Canceling event

Description Emitted when the selected task is about to be cancelled

Syntax Canceling( iTaskChangeEvent as Object )

iTaskChangeEvent is the TaskChangeEvent object.

Change event

Description An all-encompassing event for anything that can happen to a task. Note that it is typically best to have event listeners listen for the more specific events emitted from the Task List control, such as Activate or Select.

Syntax Event Change( iTaskChangeEvent as Object )

iTaskChangeEvent is the TaskChangeEvent object.

Closed event

Description Emitted when the user closes the selected task in the task list

Syntax Closed( iTaskChangeEvent as Object )

iTaskChangeEvent is the TaskChangeEvent object.

Closing event

Description Emitted when the selected task is closing

Syntax Closing( iTaskChangeEvent as Object )

iTaskChangeEvent is the TaskChangeEvent object.

Completing event

Description Emitted when the selected task is about to be completed

Syntax Completing( iTaskChangeEvent as Object )

Completed event

Issue 1.0 June 2002 121

iTaskChangeEvent is the TaskChangeEvent object.

Completed event

Description Emitted when the selected task is completed

Syntax Completed( iTaskChangeEvent as Object )

iTaskChangeEvent is the TaskChangeEvent object.

Deactivate event

Description Emitted when a task is deactivated (deferred).

Syntax Event Deactivate( iTaskChangeEvent As Object )

iTaskChangeEvent is the TaskChangeEvent object.

Deferred event

Description Emitted when the selected task is cancelled/deferred

Syntax Deferred( iTaskChangeEvent as Object )

iTaskChangeEvent is the TaskChangeEvent object.

Error event

Description Emitted when an error occurs.

For related information, see “Properties of the ErrorEvent Object,” on page 128.

Syntax Event Error( iErrorEvent as Object )

iErrorEvent is an error event object.

Incoming event

Description Emitted when a new task has arrived at the Task List.

Syntax Event Incoming( iTaskChangeEvent as Object )

iTaskChangeEvent is the TaskChangeEvent object.

Chapter 14 Task List

122 Agent Control API Reference

Opening event

Description Emitted when the selected task is opening.

Syntax Opening( iTaskChangeEvent as Object )

iTaskChangeEvent is the TaskChangeEvent object.

Open event

Description Emitted when the selected task is open

Syntax Open ( iTaskChangeEvent as Object )

iTaskChangeEvent is the TaskChangeEvent object.

Select event

Description Emitted when the user selects a new task in the Task List.

Syntax Event Select( iTaskChangeEvent as Object )

iTaskChangeEvent is the TaskChangeEvent object.

Sent event

Description Emitted when the selected task is sent

Syntax Sent( iTaskChangeEvent as Object )

iTaskChangeEvent is the TaskChangeEvent object.

Terminate event

Description Emitted when a task is terminated.

Syntax Event Terminate( iTaskChangeEvent as Object )

iTaskChangeEvent is the TaskChangeEvent object.

Transfering event

Description Emitted when the selected task is about to be transferred

Syntax Transferring( iTaskChangeEvent as Object )

iTaskChangeEvent is the TaskChangeEvent object.

Transferred event

Issue 1.0 June 2002 123

Transferred event

Description Emitted when the selected task is transferred

Syntax Transferred( iTaskChangeEvent as Object )

iTaskChangeEvent is the TaskChangeEvent object.

Wrapup event

Description Emitted when a task transitions to the wrapup state.

Syntax Event Wrapup( iTaskChangeEvent as Object )

iTaskChangeEvent is the TaskChangeEvent object.

Functions Supported by the Task ListThe Task List supports the following functions.

ActivateTask object function

Description Activates a task in the Task List, as if the user double-clicked on that item.

Syntax Function ActivateTask( iTask as Object ) as Boolean

iTask is a task object.

Example retval = iTaskList.ActivateTask( iTask )

AddEventSource object function

Description Introduces the Task List to a new task source object, such as the mail engine.

Syntax Function AddEventSource( iEventSource as Object ) as Boolean

iEventSource is a task source, which is an object that supports ITaskSource and has ITask objects.

Example retval = iTaskList.AddEventSource( iMailEngine )

GetTaskByEduId object function

Description Returns a specific task based on its EDU ID.

Syntax Function GetTaskByEduId( eduid as String ) as Object

eduid is the EDU ID associated with the task.

Chapter 14 Task List

124 Agent Control API Reference

Example iTask = iTaskList.GetTaskByEduId( eduid )

Initialize object function

Description Initializes the Task List control by inserting the specified columns.

Syntax Function iTaskList.Initialize( columns as String ) as Boolean

� iTaskList is the Task List control.� columns is the list of columns in the following format:

{ <colid >, <colwidth>, '<colheading>', '<taskprop>' }

� colid is the column indicator. A numeric indicator specifies which task property is to be displayed.

� colwidth is the width of the column in pixels.� colheading is the heading of the column.� taskprop is the task property name to be displayed in the column. colid must be 0 in order to

display this property.

Example retval = iTaskList.Initialize( "{5,22,'Media',''},{2,22,'State',''},…")

colid can be any of the following values:

For mail engine tasks, taskprop can be any of the following values:� taskid� tracking_number� wait_start_time

ID Description

1 Displays the subject task object property.

2 Displays the task state as an icon and a string.

3 Displays the task state as an icon only.

4 Displays the total time in the current state (formatted as mm:ss).

5 Displays the task icon.

6 Displays the origin task object property (in other words, the originating email address).

7 Displays the age task object property.

8 Display EDU ID task object property.

9 Displays an icon in the column heading and the state as an icon and a string.

10 Displays an icon in the column heading and the state as an icon only.

11 Displays an icon in the column heading and the task as an icon.

SelectTask object function

Issue 1.0 June 2002 125

SelectTask object function

Description Selects a specific task in the Task List, as if the user single-clicked on that item.

Syntax Function SelectTask( iTask ) as Boolean

iTask is a task object.

Example retval = iTaskList.SelectTask( iTask )

SetFormat object function

Description Establishes the format of the tool tip text displayed when the user moves the mouse cursor over a task. If a string matches any of the following items, that string replaces the task-specific data.� {eduid}� {origin}� {task_source_type}� {task_state}� {time_in_state}� {subject}

In addition, it is possible to display a task's specific properties as a mouse-over tooltip. Any data specified in the task’s Properties object can be displayed. For the eContact Email Engine, the following fields can be used. Note that the property name is surrounded by both curly braces and square braces.� {[taskid]}� {[tracking_number]}� {[wait_start_time]}

Syntax Function SetFormat( format as String ) as Boolean

Example In this example, the integrator created a custom task property ("acct_balance") to display account balance data in the tooltip.

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

Based on this example, the tooltip text is formatted as follows:

Mail Task (Inactive): Origin: '[email protected]' Subject: 'Please help' Tracking Number: QAP2000062700000027 Balance: $253.16

The TaskChangeEvent ObjectThe following sections describe the API for the TaskChangeEvent object, which is a parameter in various Task List control events.

Chapter 14 Task List

126 Agent Control API Reference

Properties of the TaskChangeEvent ObjectThe TaskChangeEvent object has the following properties.

EventId object property

Description The event ID of the event.

Syntax Property EventId as EventType

Example retval = tce.EventId

Event IDs are as follows:� evEduChange(0x1)� evTaskChange(0x2)� evChannelChange(0x4)� evTaskPropertyChange(0x8)� evTaskActivated(0x10)� evTaskDeactivated(0x20)� evTaskActivity(0x40)� evTaskIncoming(0x80)� evTaskSelected(0x100)� evTaskWrapup(0x200)� evTaskTerminate(0x400)� evTaskClosed(0x800)� evTaskOpening(0x1000)� evTaskOpen(0x2000)� evTaskClosing(0x4000)� evTaskCompleting(0x8000)� evTaskCompleted(0x10000)� evTaskTransferring(0x20000)� evTaskTransferred(0x40000)� evTaskAbandoned(0x80000)� evTaskCanceling(0x100000)� evTaskDeferred(0x200000)� evTaskSent(0x400000)

Task object property

Description The task object associated with an event.

Syntax Property Task as Object

Example Set iTask = tce.Task

Functions Supported by the TaskChangeEvent Object

Issue 1.0 June 2002 127

Functions Supported by the TaskChangeEvent ObjectThe TaskChangeEvent object supports the following functions.

IsEduChange object function

Description Indicates whether a task’s EDU has changed since the task’s EDU status was last evaluated.

Syntax Function IsEduChange () as Boolean

Example retval = tce.IsEduChange()

IsTaskActivated object function

Description Indicates whether the specified task is currently active. A task can be made active by a user or via a method call.

Syntax Function IsTaskActivated () as Boolean

Example retval = tce.IsTaskActivated ()

IsTaskActivity object function

Description Indicates whether the specified task has experienced some activity (for example, when a customer sends text to an agent, or vice versa, during a web chat).

Syntax Function IsTaskActivity () as Boolean

Example retval = tce.IsTaskActivity ()

IsTaskIncoming object function

Description Indicates whether a task is new to the Task List.

Syntax Function IsTaskIncoming () as Boolean

Example retval = tce.IsTaskIncoming ()

IsTaskPropertyChange object function

Description Indicates whether any of the task's properties has changed since they were last evaluated.

Syntax Function IsTaskPropertyChange () as Boolean

Example retval = tce.IsTaskPropertyChange ()

Chapter 14 Task List

128 Agent Control API Reference

IsTaskSelected object function

Description Indicates whether a specific task is currently selected.

Syntax Function IsTaskSelected() as Boolean

Example If tce.IsTaskSelected() Then

MsgBox "Task is selected"

Else

MsgBox "Some other event happened to task"

End If

IsTaskWrapup object function

Description Indicates whether a task is currently in the wrapup state.

Syntax Function IsTaskWrapup () as Boolean

Example retval = tce.IsTaskWrapup ()

ToString object function

Description Converts an event to a human-readable string.

Syntax Function ToString() as String

Example MsgBox tce.ToString()

Properties of the ErrorEvent ObjectThe Task List control receives informational, warning, and error messages (events) emitted by Task objects. The Task List control then displays these messages in a notification window and passes them on to Task List event listeners, such as Avaya Agent.

The ErrorEvent object has the following properties.

ErrorId object property

Description The ID of the error.

Syntax Property ErrorId as Long

Example MsgBox CStr(iErrorEvent.ErrorId)

ErrorSeverity object property

Issue 1.0 June 2002 129

ErrorSeverity object property

Description Indicates the severity of an error. The severity can be any of the following values:� (1) errInfo� (2) errWarning� (3) errFatal

Syntax Property ErrorSeverity as Long

Example If iErrorEvent.ErrorSeverity = errFatal Then

MsgBox "Got a fatal error in " & iErrorEvent.ErrorSource

End If

ErrorSource object property

Description The source of the error, expressed as a string. For the current release, this can be the Web Agent Client or the eContact Email Engine.

Syntax Property ErrorSource as String

Example MsgBox iErrorEvent.ErrorSource

ErrorString object property

Description The actual error, expressed as a string.

Syntax Property ErrorString as String

Example MsgBox iErrorEvent.ErrorString

Functions of the ErrorEvent ObjectThe ErrorEvent object supports the following function.

GetString object function

Description Converts an error event ID (such as a severity ID) to a human-readable string.

Syntax Function GetString( id As ErrorSeverity ) as String

Example MsgBox "Error was " & iErrorEvent.GetString( iErrorEvent.ErrorSeverity )

Chapter 14 Task List

130 Agent Control API Reference

The TaskLib Object LibraryThe TaskLib object library contains objects that are used by task objects such as the eContact Email Engine and the Task List control. The object library provides the task object developer with components that are shared among all task libraries.

The Operations and Operation Objects

The Operations object is a collection of Operation objects. Operation objects can be used by an integrator to determine which operations a task supports. The Task List control can display either generic or dynamic operations from its right-click context menu. Generic operations are those that can be invoked on any task object. Dynamic operations are task-specific.

The Operations object collection enables the integrator to determine whether a certain operation is enabled for a particular task, retrieve the textual representation of the operation, and execute the operation.

The Properties and Property Objects

The Properties object is a collection of Property objects. Properties can be thought of as local data that persists only as long as the task exists in the Task List. When Avaya Agent is shut down, the property's value is lost.

An integrator can store task-specific data in the Properties object so that the data is then propagated to each of the task's properties.

Properties can be displayed in the Task List control's columns. Either string or numerical data can be stored as name/value pairs. This makes it possible for a task object to display, for example, a bank account balance in a column of the Task List.

Functions and Methods Supported by the Operations Object

The Operations object supports the following functions and methods.

Add object method

Description Adds a new Operation object to the collection.

Note: The integrator typically would not need to add a new Operation object to the Operations object collection.

Syntax Sub Add (iOperation as Object)

iOperation is an Operation object.

IsOperationEnabled object function

Issue 1.0 June 2002 131

Example ops.Add iOperation

IsOperationEnabled object function

Description Determines whether a specific operation is enabled.

Syntax Function IsOperationEnabled (op as TaskOperation) as Boolean

op is the ID of an operation.

Example retval = ops.IsOperationEnabled (1)

RemoveAll object method

Description Removes all operations from the collection.

Caution: This method is intended for use only in special circumstances such as testing and debugging. Evaluate its use with extreme care.

Syntax Sub RemoveAll()

Example ops.RemoveAll

ToString object function

Description Converts the list of operations to a human-readable string.

Syntax Function ToString() as String

Example MsgBox ops.ToString()

Properties of the Operation ObjectThe Operation object has the following properties.

Enabled object property

Description Indicates whether the operation is enabled (True) or disabled (False).

Syntax Property Enabled as Boolean

Example op.Enabled = True

!

Chapter 14 Task List

132 Agent Control API Reference

OperationString object property

Description Used to set the string associated with an operation. This is required for dynamic operations but optional for generic ones.

Syntax Property OperationString as String

Example op.OperationString = "Connect"

TaskOperation object property

Description Indicates the ID of the operation.

Syntax Property TaskOperation as TaskOperation

Example op.TaskOperation = opConnect

Functions Supported by the Operation ObjectThe Operation object supports the following function.

ToString object function

Description Converts an operation to a human-readable string.

Syntax Function ToString() as String

Example MsgBox op.ToString()

Properties of the Properties ObjectThe Properties object has the following properties.

Count object property

Description Retrieves the total number of properties for an object.

Syntax Property Count as Long

Example Dim mycount as Integer

mycount = props.Count

Item object property

Description Retrieves a Property object based on its index.

Functions and Methods Supported by the Properties Object

Issue 1.0 June 2002 133

Syntax Property Item (index) as Object

index is the index of the item in the list of properties.

Example For i = 1 to props.Count

MsgBox props.Item(i).ToString

Next

Functions and Methods Supported by the Properties Object

The Properties object supports the following functions and methods.

GetOneValue object function

Description Gets a string value from the Properties object.

Syntax Function GetOneValue( name as String, value as String ) as Boolean

� name is the name portion of the name/value pair.� value is the value portion of the name/value pair.

Example props.GetOneValue ("my name", value)

MsgBox "Value is " & value

GetOneValueLong object function

Description Gets a numerical value from the Properties object.

Syntax Function GetOneValueLong( name as String, value as Long ) as Boolean

� name is the name portion of the name/value pair.� value is the value portion of the name/value pair, expressed as a non-zero number (or as 0 if the

value cannot be converted to a non-zero number).

Example props.GetOneValue ("my name", num)

RemoveAll object method

Description Used to remove all the Property objects in the collection. Before using this method, make sure a task object is not using any of the property objects.

Syntax Sub RemoveAll()

Example props.RemoveAll()

Chapter 14 Task List

134 Agent Control API Reference

SetOneValue object function

Description Sets a string value in the Properties object.

Syntax Function SetOneValue( name as String, value as String ) as Boolean

� name is the name portion of the name/value pair.� value is the value portion of the name/value pair.

Example props.SetOneValue ("my name", "my value")

SetOneValueLong object function

Description Sets a numerical value in the Properties object.

Syntax Function SetOneValue( name as String, value as Long ) as Boolean

� name is the name portion of the name/value pair.� value is the value portion of the name/value pair, expressed as a non-zero number (or as 0 if the

value cannot be converted to a non-zero number).

Example props.SetOneValue ("my name", 123)

ToString object function

Description Converts the properties collection to a human-readable string.

Syntax Function ToString() as String

Example MsgBox props.ToString()

Properties of the Property ObjectThe Properties object has the following properties.

Name object property

Description The name associated with the property, as a string.

Syntax Property Name as String

Example MsgBox prop.Name

Value object property

Description The value associated with the property, as a string.

Syntax Property Value as String

ValueLong object property

Issue 1.0 June 2002 135

Example MsgBox prop.Value

ValueLong object property

Description The value associated with the property, as a Long data type.

Syntax Property Value as Long

Example MsgBox CStr(prop.Value)

Chapter 14 Task List

136 Agent Control API Reference

137

CHAPTER 15TELEBUTTON

The TeleButton control provides the ability to perform telephony operations, such as answering an incoming call, placing a call on hold, reconnecting a call, or hanging up a call.

The control allows the integrator to specify a button type via the Id property. The control also has properties that allow you to change the look of the button or the text that displays in it.

The button is enabled or disabled based on the current call state, the state of the physical phone set, and the state of the agent who is logged in to the phone set.

TeleButton PropertiesThe TeleButton control has the following properties.

Id

Description Button type.

Syntax Property Id As Long

The following table identifies the values that the TeleButton Id accepts.

Button Type Value Description

TbAnswer 0 The Answer telephony button.

TbBusy 1 The Busy telephony button.

TbHangup 2 The Hangup telephony button.

TbReady 3 The Ready telephony button.

TbWrapup 4 The Wrap-up telephony button.

TbHold 5 The Hold telephony button.

TbReconnect 6 The Reconnect telephony button.

TbMakeCall 7 The Make Call telephony button.

TbForward 8 The Forward telephony button.

Chapter 15 TeleButton

138 Agent Control API Reference

LayoutStyle

Description Governs the appearance of the button.

Syntax Property LayoutStyle As Long

The following table identifies the layout style constants for the button.

Text

Description The text you want to place on the button.

Syntax Property Text As String

TeleButton MethodsThe TeleButton control supports the following methods.

AdviseEventSinkToTelephony

Description Registers the Telephony control as a telephony state change event listener. The pointer to the Telephony control that is provided as an input parameter performs this registration and retrieves other telephony-related information.

Syntax AdviseEventSinkToTelephony(ItelephonyObject as Object) As Long

TbConsXfer 9 The Consultative Transfer telephony button.

TbConference 10 The Conference telephony button.

TbDirectory 11 The Dial Directory telephony button.

TbDtmf 12 The DTMF telephony button.

TbDefinityAux 13 The Definity Reason Codes telephony button.

Button Type Description

TbImageLeftToText = 0 Places the icon to the left of the text on the Telephony button.

TbImageRightToText = 1 Places the icon to the right of the text on the Telephony button.

TbImageAboveText = 2 Places the icon above the text on the Telephony button.

TbImageBelowText = 3 Places the icon below the text on the Telephony button.

TbImageOnly = 4 Places the an icon only on the Telephony button.

TbImageTextOnly = 5 Places text only on the Telephony button.

Button Type Value Description

EnableCTI

Issue 1.0 June 2002 139

ItelephonyObject is a pointer to the Telephony control.

Returns If the method fails, an error is raised.

EnableCTI

Description This method enables the button to stop listening for telephony state change events. These change events determine whether the button is enabled or disabled. Passing a True value to this method disables listening and the button to be enabled always (if wanted).

Syntax EnableCTI(lValue As Boolean) As Long

lValue, if True, instructs the button to stop listening for telephony events.

Returns If the method fails, an error is raised.

UnadviseEventSinkToTelephony

Description Un-registers the TeleButton as a telephony state change listener.

Syntax UnadviseEventSinkToTelephony() As Long

Returns If the method fails, an error is raised.

Chapter 15 TeleButton

140 Agent Control API Reference

141

CHAPTER 16TELEPHONY

The Telephony control provides the phone-related capabilities required by the Avaya Agent softphone. Because of the Telephony control, agents can control their telesets and receive unsolicited events that indicate changes to the phone or call state. Examples of operations made possible by the Telephony control include setting the phone as Busy or Ready, or making a new call.

When a call has been assigned to an agent, a Call object is created by the Telephony control. This object enables all call-related operations, such as answering a call, placing a call on hold, or changing a call-related setting.

Telephony Control PropertiesThe Telephony control has the following property.

lAfterCallState

Description The lAfterCallState property forces the agent to enter the same state after every call. The possible values for this property are VoicePhoneStateNull, VoicePhoneStateReady, and VoicePhoneStateBusy.

Syntax Property lAfterCallState As Long

1AfterCallState is the state the agent is to enter after every call.

Telephony State Change Event The Telephony object emits a Telephony State Change event, technically known as OnTelephonyStateChange.

Chapter 16 Telephony

142 Agent Control API Reference

OnTelephonyStateChange

Description The OnTelephonyStateChange event provides phone and call related information. A Change Event object is sent as part of the Telephony State Change event. This object provides access to the event ID (which indicates the purpose of the event), the Call object (if the event is related to a call change), and a Response object (if the event is a response to an asynchronous request).

Syntax OnTelephonyStateChange(ChangeEvent As Object)

ChangeEvent contains the event ID and a reference to the Call object, if applicable. For a list of event IDs refer to description of the EventID property on page 142. For a list of call states, refer to description of the GetCallState method on page 146.

The Change Event ObjectA Change Event object is part of each telephony state change event. The Change Event object contains an event identifier and methods to retrieve the corresponding Response object and Call object (if applicable).

Change Event Object PropertiesThe Change Event object has the following properties.

EventID

Description The core state change event identifier.

Syntax Property EventID As Long

The following table lists and describes the telephony event IDs.

Telephony Event ID Description

evCallConferenced 172 A new party joined the call after a "conference complete."

evCallConferencedCanceled 302 The conference call has been cancelled.

evCallConnected 173 The call was connected.

evCallDisconnected 174 The call was disconnected.

evCallDiverted 175 The call was routed.

evCallFailed 176 An unspecified failure for an outgoing call occurred.

evCallHeld 177 The call has been placed on hold.

evCallIncoming 178 There is an incoming call.

evCallNone 171 No detail available.

Change Event Object Methods

Issue 1.0 June 2002 143

Change Event Object Methods

GetCallObject

Description This method provides access to the Call object associated with the evCall**** events. A handle to the Call object is returned.

Syntax GetCallObject(ICallObject As Object)

ICallObject is a handle to the Call object.

evCallPreset 303 A preset has been set for the call.

evCallQueued 179 A queued event was received from the Telephony Server.

evCallRemoteBusy 181 The call could not be made because the destination was busy.

evCallRemoteConnected 182 The remote party has been connected.

evCallRemoteDisconnected 183 The remote party has been disconnected.

evCallRemoteRing 184 The remote phone is ringing.

evCallRetrieved 180 The call has been retrieved.

evCallTransferCanceled 301 The transfer of the call has been cancelled.

evCallTransferred 185 The call has been transferred.

evTelephonyGeneral 192 The agent, phone, or call state may have changed.

evTelephonyLineChange 194 The state of one of the calls has changed.

evTelephonyResetPhones 300 The phone has been reset.

evTelephonyResponse 193 A response to a prior asynchronous request was issued.

evTelephonyServerFailed 195 The Telephony Server is down.

evTelephonyStart 188 Telephony services are available.

evTelephonyStop 189 Telephony services are not available.

evTelephonySystemError 203 A system error has occurred.

CallRefId Call Reference ID

Telephony Event ID Description

Chapter 16 Telephony

144 Agent Control API Reference

GetRequestObject

Description The GetRequestObject method returns a handle to the Response object for an outstanding asynchronous request. The Response object is populated for error conditions or informational purposes.

Syntax GetRequestObject(IresponseObject As Object)

IresponseObject is a handle to the Response object.

IsAgentChange

Description Returns a value of True if the change event was generated by a change in the agent’s state.

Syntax IsAgentChange(lChange As Long)

lChange is set to True if the Change Event resulted from an agent state change.

IsCallChange

Description Returns a value of True if the change event resulted from a change in the call state.

Syntax IsCallChange(lChange As Long)

lChange is set to True if the change event resulted from a call state change.

IsPhoneChange

Description Returns a value of True if the change event resulted from a change in the phone state.

Syntax IsPhoneChange(lChange As Long)

lChange is set to True if the change event resulted from a phone state change.

IsVduChange

Description Returns a value of True if the change event resulted from a change in one or more EDU values.

Syntax IsVduChange(lChange As Long)

lChange is set to True if the change event resulted from an EDU value change.

Telephony Control Methods

Issue 1.0 June 2002 145

Telephony Control MethodsThe Telephony control supports the following methods.

Busy

Description Sets the phone state to Busy. If the phone is currently involved in an active ACD call, the function either presets the phone to the Busy state or hangs up the call and places the phone into the Busy state. This is an asynchronous request.

Syntax Busy(IresponseObj As Object)

IresponseObj is a pointer to the Response object.

Returns If the method fails, an error is raised and the Response object contains error information.

GetAgentState

Description Retrieves the current state of the specified agent.

Syntax GetAgentState(lAgentState As Long)

Returns If the method fails, an error is raised.

GetCall

Description Retrieves the Call object specified by the EDU identifier.

Syntax GetCall(sVduID As Long, IcallObject As Object)

� sVduID is the EDU identifier for the call to retrieve.� IcallObject is a pointer to the Call object for the specified EDU identifier.

Returns If the method fails, an error is raised.

GetCallByLineID

Description Retrieves the Call object that matches the specified line identifier.

Syntax GetCallByLineID(lLine As Long, IresponseObj As Object)

� lLine is a line identifier.� IresponseObj is a pointer to the Response object.

Returns If the method fails, an error is raised and the Response object contains error information.

Chapter 16 Telephony

146 Agent Control API Reference

GetCallCount

Description Retrieves the current number of active calls. A call is considered active if its EDU has not been terminated.

Syntax GetCallCount(lCallCount As Long)

lCallcount is the number of active calls.

Returns If the method fails, an error is raised.

GetCallState

Description Retrieves the state of the call for the specified EDUID.

Syntax GetCallState(sVduID As String, lState As Long)

� sVduID is the EDUID of the call (required).� lState is the identifier for the current call state (required).

Call State identifiers are as follows.

GetCurrentCall

Description Retrieves the Call object for the current call. The Call object contains all data about the call and specifies which operations can be performed on it.

Syntax GetCurrentCall(IcallObject As Object)

IcallObject is a pointer to the current Call object.

Returns If the method fails, an error is raised.

CallState ID Description

VoiceCallStateIdle 161 The call is in an Idle state.

VoiceCallStateNull 162 No detail available.

VoiceCallStateInitiated 163 The call is being initiated.

VoiceCallStateQueued 164 The call is waiting in a queue.

VoiceCallStateConnected 165 The call is in the Connected state.

VoiceCallStateHold 166 The call is in the Hold state.

VoiceCallStateFailed 167 The call is in the Failed state.

VoiceCallStateAlerting 168 The call is in the Alerting state.

VoiceCallStateTerminated 169 The call is in the Terminated state.

VoiceCallStateWrapUp 170 The call is in the WrapUp state.

GetCurrentCallInfo

Issue 1.0 June 2002 147

GetCurrentCallInfo

Description Retrieves information for the current call, including the phone line identifier and the EDUID.

Syntax GetCurrentCallInfo(lLineID as Long, sVduID As String)

� lLineID is the line identifier.� sVduID is the EDU identifier.

Returns If the method fails, an error is raised.

GetCurrentLine

Description Retrieves the line ID for the current call.

Syntax GetCurrentLine(lLine As Long)

LLine is the line identifier.

Returns If the method fails, an error is raised.

GetLine

Description Retrieves the phone line number for the specified EDU.

Syntax GetLine( sVduID As String , Line As Long)

� sVduID is the EDU identifier for the current call.� Line is the phone line associated with this call.

Returns If the method fails, an error is raised.

GetPhoneState

Description Returns the current phone state.

Syntax GetPhoneState(lPhoneState As Long)

lPhoneState is the current phone state. Phone states and identifiers are as follows.

PhoneState ID Description

VoicePhoneStateNotReady 151 The phone is in a Not Ready state.

VoicePhoneStateBusy 152 The phone is in the Busy state.

VoicePhoneStateReady 153 The phone is in the Ready state.

Chapter 16 Telephony

148 Agent Control API Reference

Returns If the method fails, an error is raised.

GetPreset

Description Retrieves the phone state that is entered when the call identified by the EDUID is disconnected. Possible values are Busy, Ready, Wrapup.

Syntax GetPreset(sVduID As String, lPreset As Long)

� SVduID is the EDU identifier.� LPreset is the current preset value.

Returns If the method fails, an error is raised.

IsAgentLoggedIn

Description Returns a True value if the agent is currently logged in to telephony services.

Syntax IsAgentLoggedIn() As Boolean

Returns True if the agent is logged into telephony services, otherwise False.

IsDirectCall

Description Determines whether the call identified by the EDUID is a direct call. The lDirect parameter is set to True for a direct call or False for a queued call.

Syntax IsDirectCall(sVduID As String, lDirect As Long)

Returns If the method fails, an error is raised.

Login

Description Performs a login to the Telephony system, creating an assignment to the agent's telephone set. This method returns an error for an invalid login, or if another login is currently in progress. The agent, station, and queue parameters might not be needed, depending on the configuration and type of login. This method is asynchronous.

Note: This method only performs the Telephony login. The Core Services login method must be invoked first.

VoicePhoneStateWrapUp 154 The phone is in the WrapUp state.

VoicePhoneStateNull 155 No detail available.

VoicePhoneStateInCall 156 The phone is in the InCall state.

PhoneState ID Description

LoginSynch

Issue 1.0 June 2002 149

Syntax Login(sLoginID As String, sPassword As String, sAgentID As String, sAgentPassword As String, sStationID As String, sQueue As String, IresponseObj As Object) As Boolean

� sLoginID is the Telephony login ID.� sPassword is the Telephony password, if one was assigned.� sAgentID is the phone login ID.� sAgentPassword is the phone password.� sStationID is the station or equipment number for this phone set.� sQueue is the queue for assignment.� IresponseObj is a pointer to the Response object.

Returns True indicates a successful completion. This does not necessarily indicate that the request has completed at the server, only that the request has been sent to the server.

False indicates an error occurred.

LoginSynch

Description Performs a synchronous login to the Telephony system, creating an assignment to the agent's telephone set. This method returns an error for an invalid login, or if another login is currently in progress. The Agent, station, and queue parameters may not be needed, depending on the configuration and the type of login wanted. On a failure, the responseObject contains all of the error information.

Note: This method only performs the Telephony login. The Core Services Login method must be invoked first.

Syntax LoginSynch(sLoginID As String, sPassword As String, sAgentID As String, sAgentPassword As String, sStationID As String, sQueue As String, IresponseObj As Object) As Boolean

� sLoginID is the Telephony login ID.� sPassword is the Telephony password, if one was assigned.� sAgentID is the phone login ID.� sAgentPassword is the phone password.� sStationID is the station or equipment number for this phone set.� sQueue is the queue for assignment.� IresponseObj is a pointer to the Response object.

Returns True indicates a successful completion.

False indicates an error occurred.

Logout

Description Performs an asynchronous logout from Telephony. This operation deassigns and logs the agent out of both the Telephony server and the EDU server.

Chapter 16 Telephony

150 Agent Control API Reference

Syntax Logout(IresponseObj As Object) As Boolean

IresponseObj is a pointer to the Response object.

Returns True if the request was successfully initiated, otherwise False.

LogoutSynch

Description Performs a synchronous logout from Telephony. This operation deassigns and logs the agent out of both the Telephony server and EDU server. Any error information is provided in the Response object.

Syntax LogoutSynch(IresponseObj As Object) As Boolean

IresponseObj is a pointer to the Response object.

Returns True if the logout completed successfully, False if an error occurred.

MakeCall

Description Place a call to the phone number or agent ID specified by the destination. This is an asynchronous request. The Response object contains a response handle to track the request, or error information if the call cannot be placed.

Syntax MakeCall(sDestination As String, IresponseObj As Object)

� sDestination is the party to whom the call is placed.� IresponseObj is a pointer to the Response object.

Returns If the method fails, an error is raised and the Response objects contains the error information.

MakeCallSynch

Description Place a call to the phone number or agent ID specified by the destination. This is a synchronous request. The Response object contains a response handle to track the request, or error information if the call cannot be placed.

Syntax MakeCallSynch(sDestination As String, IresponseObj As Object)

Parameters in destination,

out eduID

out IresponseObj

Returns If the method fails, an error is raised and the Response objects contains the error information.

MakeCallSetEdu

Description Place a call with the EDU specified.

Ready

Issue 1.0 June 2002 151

Syntax MakeCallSetEdu(sDestination As String, IresponseObj As Object)

Parameters in eduID

in destination,

out IresponseObj

Returns If the method fails, an error is raised and the Response objects contains the error information.

Ready

Description Sets the phone state to Ready. If the phone is currently invoked in an active ACD call, this function either presets the phone to the Ready state or hangs up the call and places the phone in the Ready state. This is an asynchronous request.

Syntax Ready (IresponseObj As Object)

IresponseObj is a pointer to the Response object.

Returns If the method fails, an error is raised and the Response object contains error information.

ResetPhones

Description Useful if the softphone is out of synchronization with the teleset. The method clears all current telephony activity, terminating all calls and EDUs. This is an asynchronous request.

Caution: All business with active calls should be completed before this method is used.

Syntax ResetPhones(IresponseObj As Object)

IresponseObj is a pointer to the Response object.

Returns If the method fails, an error is raised and the Response object contains error information.

SendDefinityAux

Description Places the agent into the Busy (auxiliary work) state and sends a reason code to the Definity switch. This is an asynchronous request.

Syntax SendDefinityAux(sReasonCodeode As String, IresponseObj As Object)

� sReasonCode is the single-digit (0–9) reason code.� IresponseObj is a pointer to the Response object.

Returns If the method fails, an error is raised and the Response object contains error information.

!

Chapter 16 Telephony

152 Agent Control API Reference

SetAgentState

Description Sets the agent state to the passed value. Depending on the value that is passed, either the Ready(), Busy(), or Wrapup() method is invoked. This is an asynchronous request.

Syntax SetAgentState(lAgentState As Long, IresponseObj As Object)

� lAgentState is the new agent state.� IresponseObj is a pointer to the Response object.

Returns If the method fails, an error is raised and the Response object contains error information.

SetCurrentLine

Description Make the specified line the current call. If there is already a call connected, that call is first placed on hold and the new line is connected.

Syntax SetCurrentLine(lLine As Long, IresponseObj As Object)

� lLine is the line identifier.� IresponseObj is a pointer to the Response object.

Returns If the method fails, an error is raised and the Response object contains error information.

SetCurrentLineByID

Description Makes the line specified by the EDU identifier the current line. If there is already a current call, that call is placed on hold.

Syntax SetCurrentLineByID(sVduID As String, IresponseObj As Object)

� sVduID is the EDU identifier corresponding to the line to make current.� IresponseObj is a pointer to the Response object.

Returns If the method fails, an error is raised and the Response object contains error information.

SetPreset

Identifies the phone state that is entered when the call identified by the EDUID is disconnected. Possible values are Busy, Ready, Wrapup.

Syntax SetPreset(sVduID As String, lPreset As Long)

Returns If the method fails, an error is raised.

The Call Object

Issue 1.0 June 2002 153

The Call ObjectThe Call object contains all the methods necessary to perform typical phone operations on a call. The Call object can be retrieved via a telephony control method if the EDU identifier is known or can be retrieved from a telephony change event.

Call Object MethodsThe Call object supports the following methods.

Answer

Description Issues an asynchronous answer request for an incoming call. This is required if the switch is not set to auto-answer.

A successful return from this method does not indicate the operation completed successfully, only that the request was successfully sent. The completion of operation is identified by a telephony state change event with an event ID of evTelephonyResponse. The response handle, which is part of the Response object, is populated when the request is made.

To determine whether the telephony state change event is the correct response for the outstanding request, compare the response handle with the Response object returned when the request was made and the Response object that is part of the event.

Syntax Answer(IresponseObj As Object)

IresponseObj is a pointer to the Response object.

Returns If the method fails, an error is raised. The IResponseObj contains error information.

BlindTransfer

Description Issues an asynchronous blind transfer request for this call. The destination parameter identifies the party to whom the transfer is made.

A successful return from this method does not indicate the operation completed successfully, only that the request was successfully sent. The completion of operation is identified by a telephony state change event with an event ID of evTelephonyResponse. The response handle, which is part of the Response object, is populated when the request is made.

To determine whether the telephony state change event is the correct response for the outstanding request, compare the response handle with the Response object returned when the request was made and the Response object that is part of the event.

Syntax BlindTransfer(sDestination as String, IresponseObj As Object)

Chapter 16 Telephony

154 Agent Control API Reference

sDestination is a dialable number, user ID, or ACD queue of the phone to which the call is to be transferred.

IresponseObj is a pointer to the Response object.

Returns If the method fails, an error is raised. The Response object contains error information.

Conference

Description Issues an asynchronous conference request for this call. The destination identifies the party to include in the conference. All previous conversations are placed on hold and a call is made to the new party.

In order to complete the request, this method invocation must be followed by a ConferenceComplete or ConferenceCancel method invocation.

A successful return from this method does not indicate the operation completed successfully, only that the request was successfully sent. The completion of operation is identified by a telephony state change event with an event ID of evTelephonyResponse. The response handle, which is part of the Response object, is populated when the request is made.

To determine whether the telephony state change event is the correct response for the outstanding request, compare the response handle with the Response object returned when the request was made and the Response object that is part of the event.

Syntax Conference(sDestination as String, IresponseObj As Object)

� sDestination is the dialable number or user ID to be included in the conference.� IresponseObj is a pointer to the Response object.

Returns If the method fails, an error is raised. The Response object contains error information.

ConferenceCancel

Description After the Conference method has been invoked, this method terminates the call made to the additional party. The previous conversations are taken off hold. This is an asynchronous request.

A successful return from this method does not indicate the operation completed successfully, only that the request was successfully sent. The completion of operation is identified by a telephony state change event with an event ID of evTelephonyResponse. The response handle, which is part of the Response object, is populated when the request is made.

To determine whether the telephony state change event is the correct response for the outstanding request, compare the response handle with the Response object returned when the request was made and the Response object that is part of the event.

Syntax ConferenceCancel(IresponseObj As Object)

IresponseObj is a pointer to the Response object.

ConferenceComplete

Issue 1.0 June 2002 155

Returns If the method fails, an error is raised. The Response object contains error information.

ConferenceComplete

Description After the Conference method has been invoked, this method retains the conversation with the additional party while taking the previous conversations off hold so that all connected parties can speak together. This is an asynchronous request.

A successful return from this method does not indicate the operation completed successfully, only that the request was successfully sent. The completion of operation is identified by a telephony state change event with an event ID of evTelephonyResponse. The response handle, which is part of the Response object, is populated when the request is made.

To determine whether the telephony state change event is the correct response for the outstanding request, compare the response handle with the Response object returned when the request was made and the Response object that is part of the event.

Syntax ConferenceComplete(IresponseObj As Object)

IresponseObj is a pointer to the Response object.

Returns If the method fails, an error is raised. The Response object contains error information.

Drop

Description Drops a party from the call. This is an asynchronous request. If only two parties are in the call, the call is ended and both parties are disconnected. Attempting to drop a party that is no longer present returns an error. Attempting to drop yourself returns an error. This method depends on the telephone switch and the type of phone assigned. Refer to the IDL chapter of your Telephony Services manual to determine availability.

A successful return from this method does not indicate the operation completed successfully, only that the request was successfully sent. The completion of operation is identified by a telephony state change event with an event ID of evTelephonyResponse. The response handle, which is part of the Response object, is populated when the request is made.

To determine whether the telephony state change event is the correct response for the outstanding request, compare the response handle with the Response object returned when the request was made and the Response object that is part of the event.

Syntax Drop(sDestination As String, IresponseObj As Object)

� sDestination is a dialable number, user ID, or ACD queue of the phone from which the call is to be dropped.

� IresponseObj is a pointer to the Response object.

Returns If the method fails, an error is raised. The Response object contains error information.

Chapter 16 Telephony

156 Agent Control API Reference

GetAutoTerminate

Description Retrieves the auto-terminate variable, which indicates whether the Phone Engine automatically terminates a call’s EDU when that call is disconnected.

Syntax GetAutoTerminate(lValue As Long)

lValue indicates whether auto-terminate is enabled. True if enabled, False if disabled.

Returns If the method fails, an error is raised.

GetLine

Description Retrieves the line identifier for the current call.

Syntax GetLine(lLineID As Long)

LLineID is the returned line identifier.

Returns The method returns the line identifier. If the method fails, an error is raised.

GetPreset

Description Retrieves the state to which this call moves when it is disconnected. Possible values are as follows:

preset_none 307preset_ready 308preset_busy 309preset_wrapup 310

Syntax SetPreset(lPreset As Long)

lPreset is the current preset for this call.

Returns Returns the current preset for the call. If the method fails, an error is raised.

GetTimeCallArrived

Description Retrieves the time the call arrived at the agent’s desktop.

Syntax GetTimeCallArrived(lArrivaltime As Long)

lArrivalTime is the number of seconds that have elapsed since midnight (00:00:00), January 1, 1970, coordinated universal time, according to the system clock.

Returns If the method fails, an error is raised.

GetTimeCallConnected

Issue 1.0 June 2002 157

GetTimeCallConnected

Description Retrieves the time the call was connected.

Syntax GetTimeCallconnected(lConnectedTime As Long)

lConnectedTime is the number of seconds that have elapsed since midnight (00:00:00), January 1, 1970, coordinated universal time, according to the system clock.

Returns If the method fails, an error is raised.

GetVduId

Description Retrieves the EDU identifier for this call.

Syntax GetVduId(sVduID As String)

sVduID is the EDU identifier for this call.

GetVduObject

Description Retrieves a handle to the EDU object associated with this call.

Syntax GetVduObject(IvduObject As Object)

IvduObject is a pointer to the EDU object associated with this call.

Returns Returns a handle to the EDU object. If the method fails, an error is raised.

Returns If the method fails, an error is raised.

GetVduValue

Description Searches the EDU values associated with this call and retrieves the value for the specified attribute.

Syntax GetVduValue(sAttribute As String, sValue As String)

� sAttribute is the attribute whose value is to be retrieved.� sValue is the value associated with the specified attribute.

Returns Returns the value associated with the specified EDU attribute. If the method fails, an error is raised.

Chapter 16 Telephony

158 Agent Control API Reference

Hangup

Description Places the phone on-hook, disconnecting the call. The state of the EDU depends on the current configuration and any preset actions. Race conditions can occur if the agent also releases the call through the user interface or the caller hangs up at about the same time. An error condition indicating an invalid EDUID should generally be considered a normal return. If the call has been hung up but the EDU is still available, this is harmless and no error is returned, as it correctly reflects the state at that time. Should you need to know when the call is hung up, look for the Disconnect event. If a ConferenceInit or TransferInit is in progress and Hangup is invoked, the conference or consultative transfer is canceled and the conversations that were placed on hold remain on hold.

A successful return from this method does not indicate the operation completed successfully, only that the request was successfully sent. The completion of operation is identified by a telephony state change event with an event ID of evTelephonyResponse. The response handle, which is part of the Response object, is populated when the request is made.

To determine whether the telephony state change event is the correct response for the outstanding request, compare the response handle with the Response object returned when the request was made and the Response object that is part of the event.

Syntax Hangup(IresponseObj As Object)

IresponseObj is a pointer to the Response object.

Returns If the method fails, an error is raised. The Response object contains error information.

Hold

Description Issues an asynchronous hold request for this call. Places the call on hold.

A successful return from this method does not indicate the operation completed successfully, only that the request was successfully sent. The completion of operation is identified by a telephony state change event with an event ID of evTelephonyResponse. The response handle, which is part of the Response object, is populated when the request is made.

To determine whether the telephony state change event is the correct response for the outstanding request, compare the response handle with the Response object returned when the request was made and the Response object that is part of the event.

Syntax Hold(IresponseObj As Object)

IresponseObj is a pointer to the Response object.

Returns If the method fails, an error is raised. The Response object contains error information.

HoldReconnect

Issue 1.0 June 2002 159

HoldReconnect

Description Issues the HoldReconnect request asynchronously. Removes the hold state for a current call and makes it active.

A successful return from this method does not indicate the operation completed successfully, only that the request was successfully sent. The completion of operation is identified by a telephony state change event with an event ID of evTelephonyResponse. The response handle, which is part of the Response object, is populated when the request is made.

To determine whether the telephony state change event is the correct response for the outstanding request, compare the response handle with the Response object returned when the request was made and the Response object that is part of the event.

Syntax HoldReconnect(IresponseObj As Object)

IresponseObj is a pointer to the Response object.

Returns If the method fails, an error is raised. The Response object contains error information.

IsDirectCall

Description Determines whether the call is a direct call (not an ACD call).

Syntax IsDirectCall(lDirect as Long)

lDirect is set to True for a direct call, otherwise False.

Returns If the call is a direct call, the lDirect parameter is set to True, otherwise, it is set to False. If the method fails, an error is raised.

SendDtmfTones

Description Sends the specified DTMF tones to the Definity switch.

Syntax SendDtmfTones(sTones as String, IresponseObj As Object)

sTones is the series of characters sent to the Definity switch as if they are tones entered through a telephone. Valid characters are digits 0–9, *, #

Returns If the method fails, an error is raised. The Response object contains error information.

SetAutoTerminate

Description Controls whether the Phone Engine automatically terminates an EDU when its call is disconnected. By default, the EDU is terminated. In a situation such as wrap-up, this method can be invoked to instruct the phone engine not to terminate the EDU automatically.

Syntax SetAutoTerminate(lValue As Long)

Chapter 16 Telephony

160 Agent Control API Reference

lValue indicates whether the EDU is terminated when its call is disconnected. True indicates the EDU is terminated, False indicates the EDU is not terminated. Note that the EDU must be terminated after all wrap-up processing is finished.

Returns If the method fails, an error is raised.

SetPreset

Description Identifies the phone state to be entered when this call is disconnected. Possible values are Busy, Ready, Wrapup.

Syntax SetPreset(lPreset As Long)

LPreset is the new preset state.

Returns If the method fails, an error is raised.

SetVduValue

Description Issues an asynchronous request to set the specified EDU name/value pair for this call.

A successful return from this method does not indicate the operation completed successfully, only that the request was successfully sent. The completion of operation is identified by a telephony state change event with an event ID of evTelephonyResponse. The response handle, which is part of the Response object, is populated when the request is made.

To determine whether the telephony state change event is the correct response for the outstanding request, compare the response handle with the Response object returned when the request was made and the Response object that is part of the event.

Syntax SetVduValue (sAttribute As String, sValue As String, IresponseObj As Object)

� sAttribute is the name/value pair for which a value is to be set.� sValue is the new value.� IresponseObj is a pointer to the Response object.

Returns If the method fails, an error is raised. The Response object contains error information.

SwapHeld

Description During a Conference or Transfer, this method swaps which party is on hold. It swaps between the existing call and the destination.

Syntax SwapHeld(responseObj As Object)

Transfer

Issue 1.0 June 2002 161

Transfer

Description Issues an asynchronous consultative transfer request for this call. The destination identifies the party to whom to transfer the call. All previous conversations are placed on hold and a call is made to the new party, using the same EDU as the previous party.

A TransferComplete or TransferCancel must follow this method invocation in order to complete the request.

A successful return from this method does not indicate the operation completed successfully, only that the request was successfully sent. The completion of operation is identified by a telephony state change event with an event ID of evTelephonyResponse. The response handle, which is part of the Response object, is populated when the request is made.

To determine whether the telephony state change event is the correct response for the outstanding request, compare the response handle with the Response object returned when the request was made and the Response object that is part of the event.

Syntax Transfer(sDestination as String, IresponseObj As Object)

� sDestination is a dialable number, user ID, or ACD queue of the phone to which the call is to be transferred.

� IresponseObj is a pointer to the Response object.

Returns If the method fails, an error is raised. The Response object contains error information.

TransferCancel

Description Issues an asynchronous TransferCancel request for this call. Following a Transfer method invocation, this ends the consultative transfer and takes the original conversation off hold.

A successful return from this method does not indicate the operation completed successfully, only that the request was successfully sent. The completion of operation is identified by a telephony state change event with an event ID of evTelephonyResponse. The response handle, which is part of the Response object, is populated when the request is made.

To determine whether the telephony state change event is the correct response for the outstanding request, compare the response handle with the Response object returned when the request was made and the Response object that is part of the event.

Syntax TransferCancel(IresponseObj As Object)

IresponseObj is a pointer to the Response object.

Returns If the method fails, an error is raised. The Response object contains error information.

Chapter 16 Telephony

162 Agent Control API Reference

TransferComplete

Description Issues an asynchronous TransferComplete request for this call. Following a Transfer method invocation, this ends a consultative transfer by connecting the additional party to the original conversation and disconnecting the initiating agent from the call.

A successful return from this method does not indicate the operation completed successfully, only that the request was successfully sent. The completion of operation is identified by a telephony state change event with an event ID of evTelephonyResponse. The response handle, which is part of the Response object, is populated when the request is made.

To determine whether the telephony state change event is the correct response for the outstanding request, compare the response handle with the Response object returned when the request was made and the Response object that is part of the event.

Syntax TransferComplete(IresponseObj As Object)

IresponseObj is a pointer to the Response object.

Returns If the method fails, an error is raised. The Response object contains error information.

Wrapup

Description Issues an asynchronous wrap-up request for this call. When this method is invoked for an ACD call, either a wrap-up preset is established or the call is hung up and the phone enters a wrap-up state.

A successful return from this method does not indicate the operation completed successfully, only that the request was successfully sent. The completion of operation is identified by a telephony state change event with an event ID of evTelephonyResponse. The response handle, which is part of the Response object, is populated when the request is made.

To determine whether the telephony state change event is the correct response for the outstanding request, compare the response handle with the Response object returned when the request was made and the Response object that is part of the event.

Syntax Wrapup(IresponseObj As Object)

IresponseObj is a pointer to the Response object.

Returns If the method fails, an error is raised. The Response object contains error information.

WrapUpComplete

Description This needs to be called on a call when wrapup is complete...just before terminating the EDU for a Call.

Syntax WrapUpComplete(responseObj As Object)

Call Object Properties

Issue 1.0 June 2002 163

Returns N/A

Call Object Properties

CallRefId

Description Holds the call id for the current call. Note that this may change after a conference is completed.

Syntax Property CallRefId As String

IsOutboundCall

Description Can be used to determine if a call is an outbound call or inbound call. IsOutboundCall would be 1 if is an outbound call...0 if not.

Syntax Property IsOutboundCall As Long

SecondaryCallRefId

Description Holds the call id the a secondary call being made during a Transfer or Conference.

Syntax Property SecondaryCallRefId As String

The Response ObjectThe Response object is returns error information about failed telephony requests, and tracks outstanding asynchronous requests. The ResponseHandle property is populated when a request is originally made, and an event is emitted when the request is completed at the server. This event contains a handle for the Response object. This handle can be examined to make sure that the response is appropriate for the request that was made.

Response Object PropertiesThe Response object has the following properties.

DetailString

Description The DetailString contains any error messages returned from the servers servicing the request. For asynchronous requests, this property is populated when an error response is received from the server.

Syntax Property DetailString As String

Chapter 16 Telephony

164 Agent Control API Reference

ResponseHandle

Description The ResponseHandle contains a unique long integer used to track outstanding asynchronous requests. This property is populated when a request is made and the method returns a value. When the request is completed at the server, a Core State Change event with an event ID of evCoreResponse is sent to all listeners. This event contains a handle to the Response object. This handle can be examined to see if it matches the outstanding request awaiting completion.

Syntax Property ResponseHandle As Long

Status

Description The status field contains a True or False value, indicating whether the request associated with this Response object has succeeded.

Syntax Property status As Long

vduID

Description The vduID property contains the Electronic Data Unit (EDU) for this request.

Syntax Property vduID As String

165

CHAPTER 17WAC ENGINE

WACEngine forms the bridge between the Avaya Agent and the Web Agent Client. The WACEngine typically would have 3 clients on the Avaya Agent console, they are the Web Engine, Mail Engine and the Avaya Agent itself (scripting). The WACEngine has methods like LaunchClient which launches the Web Agent Client and many other methods which affect non-task related functions. The WACEngine can also propagate events from the Web Agent Client to the Avaya Agent. WACEngine also has many hidden methods and events which can only be invoked or handled by either the Web Engine or the Mail Engine.

WACEngine (Web Agent Client Engine)

WACEngine Properties

DebugLevel

Description Sets the logging level.

Syntax DebugLevel as Long

This is set in IC Script code based on an agent’s debug level database property setting.

Example iWACEngine.DebugLevel = 3

JavaVMParameters

Description This could be a list of parameters that you may want to pass to the java virtual machine.

Syntax JavaVMParameters As String

This is set in IC Script code based on the JavaVMParameters value provided in the CDL file in the WACEngine section

Example theWACEngine.JavaVMParameters = "-Xms20m -Xmx192m -

Dsun.java2d.noddraw=true"

Chapter 17 WAC Engine

166 Agent Control API Reference

WACEngine Methods

launchClient

Description Call this method to launch the Web Agent Client. Generally this is done by the IC Script code.

Syntax Sub launchClient(traceLevel As String, homeDir As String, appMode As String, locale As Sring)

traceLevel – Normally retrieved from the database as a property this is what specified the logging or tracing level for Web Agent Client.

homeDir – Also retrieved from a database property

appMode – Web Agent Client has many operation modes. Among them are� "s" - stand alone mode� "d" - dependent mode

When invoking from Avaya Agent this parameter should always be set to "d"

locale – Locale under which the Web Agent will operate. This is a string of the form lang_COUNTRY, such as "en_US", "ja_JP", etc.

Example iWACEngine.launchClient 10,"c:\avaya\ic60","d", "en_US"

performClientAction

Description Causes the Web Agent to perform a client specific action.

Syntax Function performClientAction(action As Long)

action - the action to be performed. Currently defined actions are:

SHUTDOWN_CLIENT (0)– shuts down the web agent client

Example Dim lRet As Long

lRet = iWACEngine.performClientAction(0) 'Shuts down the Web Agent Client

setClientLocale

Description Sets the locale for the specified client

Syntax Function setClientLocale(locale As String)

locale - Locale under which the Web Agent will operate. This is a string of the form lang_COUNTRY, such as "en_US", "ja_JP", etc.

Example Dim bRet As Boolean

bRet = iWACEngine.setClientLocale("ja_JP")

setClientLookAndFeel

Issue 1.0 June 2002 167

setClientLookAndFeel

Description Sets the Look and Feel of the Web Agent Client

Syntax Function setClientLookAndFeel(lookandfeel As String

lookandfeel – Look and feel specified for the client. It can have the following values� "windows" (the default)� "java"� "motif"

Example Dim bRet As Boolean

bRet = iWACEngine.setClientLookAndFeel("motif") 'sets look and feel to motif

setClientMode

Description Sets the mode under which the Web Agent will be invoked. This mode is also specified when launching the Web Agent (see launchClient method call) and as such may never be called by Avaya Agent. Note that this call must be made before the loginAgent method is called.

Syntax Function setClientMode(clientMode As String)

clientMode - This can be,� "avaya"� "siebel"

Example Dim bRet As Boolean

bRet = iWACEngine.setClientMode("avaya")

loginAgent

Description Called to initiate agent login in the Web Agent. Because agents primarily log in via Avaya Agent, all pertinent information has to be passed from Avaya Agent to the Web Agent so it can initiate the login process to the specified server.

Syntax Sub loginAgent(servertype As String, username As String, password As String, servername As String, port As Long)

servertype – The media server to login into. Media servers defined are:� "email" – Email media server (QMC) � "acd" – ACD via the Paging server.� "pager" – Paging server

Chapter 17 WAC Engine

168 Agent Control API Reference

The first login has to be into the ACD. If the agent is configured to handle email, he automatically logs in to the email server as well. If for some reason the login to the email server is not successful or connectivity breaks at a later point, the agent can re-initiate login by specifying "email" as the mediaType. In case of "email", all other parameters are ignored, as the Web Agent knows of them from the ‘configure’ message that came from the ACD after ACD login.� username – Login name of the agent.� password – agent password� servername - Server where the Paging server is running (NOT ACD)� port - Port on which the Paging server is listening for incoming connections (4200 by default).

Example Dim nRet As Integer

nRet = iWACEngine.loginAgent("email","Admin","admin","wac_server",4200)

performAgentAction

Description Causes the Web Agent to perform an agent specific action.

Syntax Function performAgentAction(action As Long)

action – the action to be performed. Currently defined actions are:� ACD_LOGOUT (0) – logs the agent out of the ACD/Pager� EMAIL_LOGOUT (1) – logs the agent out of IMC (sets him to offline)� VIEW_HOMEPAGE (2) – Brings up the agent’s homepage.� VIEW_FAQPAGE (3) – Brings up the FAQ page (WRU page)

Example Dim nRet As Integer

nRet = iWACEngine.performAgentAction(1) 'log agent out of IMC

setAgentAvailability

Description Called when the end point availability is changed in Avaya Agent. This triggers an action in the Web Agent which then sends an ‘available’ message to the ACD, specifying the media type and end point value.

Syntax Function setAgentAvailability(mediatype As Long, availability As Long)

mediatype – The media for which the endpoint has to be manipulated. Currently defined values are:� CHAT (0)� EMAIL (1)

availability - The number of contacts of <mediatype> that this agent can handle

Example iWACEngine.setAgentAvailability(0,2) 'Agent can handle two chat contacts

sendAddressLookup

Issue 1.0 June 2002 169

sendAddressLookup

Description Sent to the Web Agent as a response to ‘lookupAddress’ for looking up agent email addresses. This is called only when the context of lookup was ‘address’

Syntax Function sendAddressLookup(lookupkey As String, to As String, cc As String, bcc As String)

lookupKey – This key is essentially the taskId for an existing email task that’s currently in composition mode for which a lookup was generated, or a unique key generated by the Web Agent for non-task associated lookups (used to determine who originated the lookup so the response can be acted upon appropriately)

to – semi-colon separated email addresses that need to be set in the to: field.

cc – semi-colon separated email addresses that need to be set in the cc: field.

bcc – semi-colon separated email addresses that need to be set in the bcc: field.

Example Dim nRet As Integer

nRet = iWACEngine.sendAdressLookup("key_145", "[email protected]","","")

showHistory

Description Instructs the Web Agent to bring up the history dialog for the email specified by the tracking number. Note that this is a generic lookup, and not necessarily associated with an existing task.

Syntax Function showHistory(trackingnumber As String)

trackingnumber – tracking number for email whose history needs to be viewed.

Example Dim nRet As Integer

nRet = iWACEngine.showHistory("tn_1020101029")

getServiceThreshold

Description Gets the service threshold

Syntax Function getServiceThreshold(timer As Long)

timer – the timer which is to be retrieved.

Timers defined for the system are:� CUSTOMER_IDLE_TIMER (0)� AGENT_INACTIVE_TIMER (1)

Example Dim nRet As Integer

nRet = iWACEngine.getServiceThreshold(0)

Chapter 17 WAC Engine

170 Agent Control API Reference

setServiceThreshold

Description Sets the service threshold.

Syntax Function setServiceThreshold(timer As Long, timeoutseconds As Long)

timer – the timer which is to be set. Timers defined are:� CUSTOMER_IDLE_TIMER (0)� AGENT_INACTIVE_TIMER (1)

timeoutSeconds – seconds after which the timeout is triggered.

WACEngine Events

ClientLocaleChanged

Description Sent to convey to Avaya Agent that the locale has been changed. This can be called when dynamic locale changes are possible, as in dynamic MUI applications. We do not support MUI in 6.0, but this call is implemented nevertheless.

Syntax Sub ClientLocaleChanged(locale As String)

locale – Locale selected at runtime in the Web Agent. This is a string of the form lang_COUNTRY, such as "en_US", "ja_JP", etc.

ClientLookAndFeelChanged

Description

Sent when the look and feel is changed during runtime. The default is "windows", but the look and feel can be changed dynamically. This is useful when the controlling application is a java application as well, and may need to conform to the Web Agent’s specified look and feel. In 6.0, the controlling application is Avaya Agent, and is therefore never interested in this event.

Syntax Sub ClientLookAndFeelChanged(lookandfeel As String)

lnf – Look and feel specified. It can have the following values� "windows" (the default)� "java"� "motif"

ErrorOccurred

Description A generic error event that is sent when an error occurs in the Web Agent. This could be a task error, agent error, server error, etc.

AgentStateChanged

Issue 1.0 June 2002 171

Syntax Sub ErrorOccurred(errorid As Long, description As String)

errorid – uniquely identifies the error.

description – short description of the error.

AgentStateChanged

Description Event triggered when the agent state changes, such as when the agent logs in or logs out of the ACD. An agent can also log out of the Web Agent if he logs into the ACD from another client machine.

Syntax Sub AgentStateChanged(mediaserver As String, state As Long)

mediaserver - Media server to which a logon request was made. Servers defined are:� "email"� "acd"� "pager" (not really a media server)

state – The state. States defined are:� LOGGED_IN - (0)� LOGGING_IN – (1) (valid for "acd" only – set when logged into the Paging server, but not the

ACD) � LOGGED_OUT – (2)� LOGGING_OUT – (3) (Valid for "acd" only)� IDLE – (4) (Valid for "acd" only) � AVAILABLE – (5) (Valid for "acd" only)� DISCONNECT – (6) (Valid for "pager" only)� RECONNECTING – (7) (Valid for "pager" only)� UNEXPECTED_DISCONNECTED – (8) (Valid for "pager" only)

ServiceThresholdResponse

Description As a response to the getServiceThreshold.

Syntax Sub ServiceThresholdResponse(timer As Long, timeoutvalue As Long)

timer – the timer which is to be set. Timers defined are:� CUSTOMER_IDLE_TIMER - (0)� AGENT_INACTIVE_TIMER - (1)

timeoutvalue – seconds after which the timeout is triggered.

LookupAddress

Description Sent by the Web Agent when the agent wants to look up email addresses while composing emails

Chapter 17 WAC Engine

172 Agent Control API Reference

Syntax Sub LookupAddress(lookupkey As String, filter As String)

lookupKey – This key is essentially the taskId for an existing email task that’s currently in composition mode for which a lookup is requested, or a unique key generated by the Web Agent for non-task associated lookups requests (used to determine who originated the lookup so this response can be acted upon appropriately).

filter – filter which enables the UAD to pre-populate the UAD. Filters defined are:� "SME"

If no filters are defined, then it should be an empty string (ìî).

ShellExecute

Description Sent by the Web Agent when an application has to be invoked. This could be when viewing attachments or url resources, etc. where other viewer apps need to be invoked. This allows us to take advantage of the inherent windows system API hooks that COM has, allowing the Web Agent to remain platform independent.

Syntax Sub ShellExecute(viewtype As String, viewstring As String)

viewType – Types defined are:� url� attachment

@viewString – url or path to attachment file stored temporarily on local disk

Example iWACEngine.ShellExecute "url", "http://www.avaya.com"

PerformConsoleAction

Description This method allows the webagent and other clients to make calls into the WAC engine. The 'action' parameter describe the specific action that needs to be performed.

Syntax sub performConsoleAction(sAction As String, sParameter As String)

Parameters action - The action that needs to be performed.

Possible values :� "display_edu"� "remove_edu"� "display_url"� "shellexecute"

parameter - The parameter required for the action to execute.� For "display_edu" - EDU Id of the chat taks that is being monitored by the supervisor.� For "remove_edu" - EDU Id of the chat taks that is being monitored by the supervisor.

PerformConsoleAction

Issue 1.0 June 2002 173

� For "display_url" - URL string that needs to be displayed in the browser� For "shellexecute" - The file path to the attachment that should be launched in its associated

application.

Chapter 17 WAC Engine

174 Agent Control API Reference

175

CHAPTER 18WEB ENGINE

The Web Engine is a dual-interface, service-providing, COM component of Avaya Agent that communicates with the Web Agent Client, Chat List, Avaya Agent, and Blender Client control.

Interrelationships Between Web Engine EntitiesThe Web Engine has two properties, described on page 176. In addition, the Web Engine supports numerous methods, described on page 177.

The Web Engine emits one event known as the WebStateChanged event, described on page 175.

The WebStateChanged event itself contains an object, known as the WebStateChanged event object. This object supports a set of methods, described on page 187.

The WebStateChanged EventThis section describes the WebStateChanged event.

ActivateCallback

Description This event is fired when the Agent chooses to make/activate the callback from the Web Agent Client.

Syntax ActivateCallback(sEDUID As String , sPhoneNumber As String)

sEDUID – The EDUID associated with the task

sPhoneNumber – The phone number which will need to be dialed to make the callback

ErrorOccurred

Description A generic error event sent by the Web Agent Client whenever any type of error occurs in the Web Agent Client

Syntax ErrorOccurred(lErrorID As Long, sDescription As String)

Chapter 18 Web Engine

176 Agent Control API Reference

lErrorID – The ErrorID

sDescription – A description of the error

LookupAgentForTransfer

Description Requests that an agent be looked up to whom the specified task can be transferred.

Syntax LookupAgentForTransfer(sEDUID As String)

sEDUID – The EDUID associated with the task

TaskStatusChanged

Description This event is fired whenever the status of a task changes.

Syntax TaskStatusChanged(sEDUID As String, lStatus As Long)

sEDUID – The EDUID associated with the task

lStatus – The new status of the task

Valid Status constants are,� 0 – TRANSFERRED� 1 – HIGH_PRIORITY� 2 – SUPERVISOR_VISIBLE

WebStateChanged

Description Event generated by the Web Engine object when either a chat state or the web channel state changes.

A WebStateChanged event object is sent as part of the WebStateChanged event.

The WebStateChanged event object is discussed on page 187. Event IDs supplied by this object are presented on page 188.

Syntax WebStateChanged(Event as Object)

Example Private Sub WebEngine_WebStateChanged(ByVal pEvent As Object)

MsgBox "WebStateChanged"

End Sub

Web Engine PropertiesThe Web Engine has the following properties.

Port

Issue 1.0 June 2002 177

Port

Description The port on which the Paging Server would be listening for requests. Typically this value would be retrieved from a property administered using ICManager. See ICManager documentation for more details. Note that the value of the Port property must be set before the WebEngines’ LoginAgent method is called.

Syntax Port As Long

Example iWebEngine.Port = 4200

Server

Description The hostname of the machine running the Paging Server. Typically this value would be retrieved from a property administered using ICManager. See ICManager documentation for more details. Note that the value of the Server property must be set before the WebEngines’ LoginAgent method is called.

Syntax Server As String

Example iWebEngine.Server = "abc.xyz.com"

Web Engine MethodsThe Web Engine supports the following methods.

Note: The Login method in the Web engine interface has been removed. When migrating implementers will have to make sure that they now call the LoginAgent method instead of the Login method.

AddEventToListenFor

Description The Web Engine generates all events by default. Specific events can be added or removed via the methods RemoveEventToListenFor and AddEventToListenFor.

Syntax AddEventToListenFor(Event as long)

Example WebEngine.AddEventToListenFor EvLoginSuccess

AdviseToCore

Description Advise to the Core object to receive events.

Parameter Description

Event The event for which to listen.

Chapter 18 Web Engine

178 Agent Control API Reference

Syntax AdviseToCore(DispCore as object)

Example WebEngine.AdviseToCore objCore

AdviseToWACEngine

Description Specifies which WACEngine this WebEngine should communicate with.

Syntax AdviseToWACEngine(pWACEngine As Object)

pWACEngine – A valid WACEngine Object

Example iWebEngine.AdviseToWACEngine iWACEngine

DisplayURL

Description Command the Web Agent Client to display a URL.

Syntax DisplayURL(type As Long, parm1 As String, parm2 As String,

parm3 As String)

Example WebEngine.DisplayURL 0, chatID

GetAllChats

Description Gets all chat sessions, both assigned and unassigned. Not yet implemented.

Syntax GetAllChats(chats As Variant)

Example Dim chats As Variant

WebEngine.GetAllChats chats

Parameter Description

DispCore Core object pointer.

Parameter Description

type Code indicating the type of URL.

[in] parm1 If type is 0 this parameter is the chat ID.

[in] parm2, parm3 Not currently implemented.

Parameter Description

[out] chats Contains a variant pointing to a safe array of chat objects.

GetChannelCeiling

Issue 1.0 June 2002 179

GetChannelCeiling

Description Gets the maximum number of tasks the web channel can handle at a given time.

Syntax GetChannelCeiling() As Long

Example Dim ceiling As Long

Ceiling = WebEngine.GetChannelCeiling

GetChannelLoad

Description Gets the current number of tasks being handled by the web channel.

Syntax GetChannelLoad() as Long

Example Dim channelLoad As Long

channelLoad = WebEngine.GetChannelLoad

GetChannelPreset

Description Gets the preset state (ready or busy) a web channel changes to when a chat is terminated on that channel. Not yet implemented.

Syntax GetChannelPreset() as Long

GetChannelState

Description Gets the current state of the web channel.

Parameter Description

[out] Ceiling Task ceiling.

Parameter Description

[out] Load Task load.

Parameter Description

[out] state Preset channel state.

Chapter 18 Web Engine

180 Agent Control API Reference

Syntax GetChannelState() as Long

Example Dim channelState As Long

channelState = WebEngine.GetChannelState

GetChat

Description Retrieves the line number for the specified chat object.

Syntax GetChat(LineNum as Long)

Example Dim objChat As Object

Set objChat = webEngine.GetChat 0

GetChatByEdu

Description Gets a chat using the associated EDUID.

Syntax GetChatByEdu(EduID as String) as Object

Example Dim objChat As Object

Set objChat = webEngine.GetChatByEdu eduID

GetChatCount

Description Gets the total number of chats in progress.

Parameter Description

[out] state Channel state, as follows:ChannelLoggedIn = 1ChannelLoggedOut = 2ChannelAvailable = 3ChannelBusy = 4ChannelWrapup = 5

Parameter Description

[in] LineNum Line Number.

[out] Chat Corresponding chat object.

Parameter Description

[in] EduID EDUID.

[out] Chat Corresponding chat object.

GetChatState

Issue 1.0 June 2002 181

Syntax GetChatCount() as Long

Example Dim chatCount As Long

ChatCount = webEngine.GetChatCount

GetChatState

Description Obtains a state code for a specified chat (identified by line number).

Syntax GetChatState(LineNum As Long) As Long

Example Dim chatState As Long

ChatState = webEngine.GetChatState 0

GetCurrentChat

Description Gets the currently selected chat.

Syntax GetCurrentChat() as Object

Example Dim objChat As Object

Set objChat = webEngine.GetCurrentChat

GetCurrentChatID

Description Retrieves the line number for the currently active chat.

Parameter Description

[out] Count Total number of chats in progress.

Parameter Description

[in] LineNum Line number.

[out] ChatState Chat state, as follows:chatStateActivechatStateSilentchatStateTerminatedchatStateTransferchatStateWrapUp

Parameter Description

[out] Chat Pointer to the active chat.

Chapter 18 Web Engine

182 Agent Control API Reference

Syntax GetCurrentChatID() as Long

Example Dim chatID As Long

ChatID = webEngine.GetCurrentChatID

GetCurrentChatInfo

Description Gets the line number and EDUID for the currently active chat.

Syntax GetCurrentChatInfo (LineNum as Long, EduID As String)

Example Dim lineNum As Long

Dim eduID As String

WebEngine.GetCurrentChatInfo lineNum, eduID

GetLine

Description Gets the line number for a specific chat, based on the chat’s associated EDUID.

Syntax GetLine(EduId as String) as Long

Example Dim lineNum As Long

LineNum = webEngine.GetLine eduID

GetThreshold

Description Returns the period (in seconds) after which chats changes to the specified urgency category. Urgency categories are reflected in the chat icon (green, yellow, red, or an exclamation point).

Parameter Description

[out] LineNum Line number of current chat.

Parameter Description

[out] LineNum Line number of the current chat.

[out] EduId EDU ID of the current chat.

Parameter Description

[in] EduId EDUID of the chat.

[out] LineNum The corresponding line number.

IsAgentLoggedIn

Issue 1.0 June 2002 183

Syntax GetThreshold(Code as long) as long

Example Dim threshold As Long

threshold = webEngine.GetThreshold code

IsAgentLoggedIn

Description Returns True if agent is logged in, otherwise, returns False.

Syntax IsAgentLoggedIn() as Boolean

LoginAgent

Description Logs in the agent for the web media.

Syntax LoginAgent(bstrLogin As String, bstrPassWd As String)

bstrLogin – The login name of the agent

bstrPassWd – The password of the agent

Example iWebEngine.LoginAgent "agent1", "pass1"

Logout

Description Log out from and terminate the Web Agent Client.

Syntax Logout() as boolean

Example HRESULT Logout(VARIANT_BOOL *res)

Dim bRes As Boolean

BRes = WebEngine.Logout

PerformAgentAction

Description Specifies which WACEngine this WebEngine should communicate with.

Syntax PerformAgentAction(lAction As Long)

lAction – the Action to be performed

Example iWebEngine. PerformAgentAction 0 ‘logs the Agent out of the ACD/Pager

Parameter Description

[in] Code Urgency code.

[out] Threshold Time period, in seconds.

Chapter 18 Web Engine

184 Agent Control API Reference

RemoveAllEventsToListenFor

Description Remove all events from the list of events that are generated by Web Engine.

Syntax RemoveAllEventsToListenFor() as Boolean

Example Dim bRes As Boolean

BRes = WebEngine.RemoveAllEventsToListenFor

RemoveEventToListenFor

Description The Web Engine generates all events by default. Specific events can be added or removed via the methods RemoveEventToListenFor() and AddEventToListenFor().

Syntax RemoveEventToListenFor(Event as Long)

Example WebEngine.RemoveEventToListenFor EvLoginSuccess

SetChannelLoad

Description Set the maximum number of tasks we can receive on the web channel.

Syntax SetChannelLoad(ChannelLoad as Long)

Example HRESULT SetChannelLoad(long ChannelLoad)

WebEngine.SetChannelLoad 2

SetChannelState

Description Sets the channel state.

Syntax SetChannelState(Status as Long)

Example webEngine.SetChannelState ChannelAvailable

SetChatState

Description Attempts to change the current state of the chat specified by chat ID.

Parameter Description

[in] ChannelLoad Number of chats agent is willing to accept.

Parameter Description

[in] Status Channel state.

SetChatStateByEdu

Issue 1.0 June 2002 185

Syntax SetChatState(LineNum as Long, State as enumChatState)

Example webEngine.SetChatState line, chatStateTerminated

SetChatStateByEdu

Description Attempts to change the current state of the chat specified by EDUID.

Syntax SetChatStateByEdu(EduID as String, State as enumChatState)

Example webEngine.SetChatStateByEdu EDUID, chatStateTerminated

SetClientView

Description Sets the Web Agent Client window to be either minimized or restored.

Syntax SetClientView(Action as enumClientView)

Example webEngine.SetClientView vwRestore

SetCurrentChat

Description Selects a chat using its line number. The Web Agent Client comes to the foreground and shows the corresponding task as selected.

Parameter Description

[in] LineNum Line Number

[in] State chat state: chatStateActivechatStateSilentchatStateTerminatedchatStateTransferchatStateWrapUp

Parameter Description

[in] EduID EDUID.

[in] State Chat state.

Parameter Description

Action Action to be performed, either minimize (vwMinimize) or restore (vwRestore).

Chapter 18 Web Engine

186 Agent Control API Reference

Syntax SetCurrentChat(LineNum as Long)

Example WebEngine.SetCurrentChat 0

SetCurrentChatByEDU

Description Selects a chat using its associated EDUID. The Web Agent Client comes to the foreground and shows the corresponding task as selected.

Syntax SetCurrentChatByEDU(EDUID as String)

Example HRESULT SetCurrentChatByEDU(BSTR EduID)

WebEngine.SetCurrentChatByEDU EDUID

SetThreshold

Description Sets the urgency level for the current chat. Urgency level is reflected in the chat icon: green, yellow, red, or an exclamation point.

Syntax SetThreshold(Code as long, Time as Long)

Example HRESULT SetThreshold(long Code, long Time)

SetThreshold custWaiting, 300

Parameter Description

[in] LineNum Line number.

Parameter Description

[in] EduID EDUID.

Urgency Code Icon Color/Type

custWaiting = 0 Red.

custSpoke = 1 Yellow.

WaitingOnCust = 2 Green.

CustIdleforAWhile = 3 Exclamation point.

Parameter Description

[in] Code Urgency code.

[in] Time Sets the period in seconds at which chats transition to the specified urgency.

ShowTranscript

Issue 1.0 June 2002 187

ShowTranscript

Description Called to bring up the transcript of a task, which may not necessarily be the one selected in the chat list. This brings up the agent home page with the necessary parameters that allow retrieval of historic transcript data for the task.

Syntax ShowTranscript(sTaskID As String)

sTaskID – the task whose transcript should be displayed

Example iWebEngine. ShowTranscript "abc123"

The WebStateChanged Event ObjectWhen either the channel state or chat state changes, Web Engine generates an ActiveX event, which passes an event object to the client.

WebStateChanged Event Object Methods The interface to the WebStateChanged event object is as follows.

GetChatObject

Description For a chat change event, this function returns the chat object associated with the event.

Syntax GetChatObject() as Object

Example Dim chatObj as Object

Set chatObj = webEvent.GetChatObject

GetEventID

Description Returns the event code.

Syntax GetEventID() as Long

Parameter Description

[out] Chat If IsChatChange() returns True, Chat points to the associated chat, otherwise, Null.

Parameter Description

[out] Event Code Event code.

Chapter 18 Web Engine

188 Agent Control API Reference

The following events are generated by the WebStateChanged event object. The specific event code can be retrieved by calling the GetEventId function of the WebStateChanged event object.

Example Dim eventID as Long

eventID = webEvent.GetEventID

Event ID Description

EvAgentAction Generated when agent "says" something.

EvChannelAvailable Generated when channel state becomes available.

EvChannelBusy Generated when channel state becomes busy.

EvChatActivated Generated when chat is activated.

EvChatDisconnected Generated when chat is disconnected.

EvChatIncoming Generated when a new chat arrives.

EvChatWrapUp Generated when a chat is wrapped up.

EvCustomerAction Generated when customer "says" something.

EvCustomerAlert Generated when the customer has been waiting for the agent to respond to the customer’s last comment for a period longer than the established service level.

EvCustomerIdle Generated when the customer has not responded to the agent for a prolonged amount of time.

EvLoggedoutByServer Generated when agent logout is initiated by the server.

EvLoginFailed Generated when login fails.

EvLoginSuccess Generated when login succeeds.

EvLogoutSuccess Generated when logout succeeds.

EvCallbackAddCallStatus=20 This event is fired when a notification is received from the Web Agent Client that a callback request was initiated by the agent.

EvCallbackClearCallStatus=21 This event is fired when a notification is received from the Web Agent Client that a callback request was cleared/cancelled by the agent.

EvIVChatInitialize=22 This event is fired when a notification is received from the Web Agent Client that Voice Chat is initializing.

EvIVChatAddStatus=23 This event is fired when a notification is received from the Web Agent Client that Voice Chat has been .requested.

EvIVChatClearStatus=24 This event is fired when a notification is received from the Web Agent Client that Voice Chat has been cleared/cancelled.

GetWebEngine

Issue 1.0 June 2002 189

GetWebEngine

Description Returns the Web engine object.

Syntax GetWebEngine() as objectbnbn

Example Dim webEngine as Object

Set webEngine = webEvent.GetWebEngine

IsChannelChange

Description Returns a value of True for a channel state change event.

Syntax IsChannelChange as Boolean

Example Dim bChannelChange As Boolean

bChannelChange = webEvent.IsChannelChange

IsChatChange

Description Returns True if there is a change in the chat object state.

Syntax IsChatChange() as boolean

Example Dim bChatChange As Boolean

bChatChange = webEvent.IsChatChange

ToString

Description Returns the string representation of the event.

Syntax ToString() as string

Example Dim str As String

Parameter Description

[out] res Returns True if there is a change in the web channel state.

Parameter Description

[out] res Returns True if there is a change in the chat object state.

Parameter [out] str

Description String representation of the event.

Chapter 18 Web Engine

190 Agent Control API Reference

Str = webEvent.ToString

The Web Chat ObjectThe Web Chat object is the encapsulation of a web contact. There can be zero or more Web Chat objects active in the Web Engine at one time. The WebStateChanged event object has a method, GetChatObject, for example, which is used to retrieve this chat object.

Web Chat object methods

Activate

Description Activate the chat

Syntax Activate()

Example iWebChat.Activate

ActivateIVChat

Description Activates the associated voice chat

Syntax ActivateIVChat()

Example iWebChat. ActivateIVChat

CancelIVChat

Description Cancels the associated voice chat

Syntax CancelIVChat()

Example iWebChat. CancelIVChat

DeActivate

Description DeActivate the chat

Syntax DeActivate()

Example iWebChat.DeActivate

EndIVChat

Syntax Sub EndIVChat

GetACName

Issue 1.0 June 2002 191

Description Sends a message to the Web Agent that an associated phone call was terminated

Example iChat.EndIVChat

GetACName

Description This is the same as the "sender" field of the EDU object, or empty if no EDU object is available.

Syntax GetACName As String

GetDuration

Description Returns the amount of time, in seconds, the chat has been in the chat list

Syntax GetDuration As Long

GetEduId

Description Returns the EDU ID of chat

Syntax GetEduId as String

GetEduObject

Description Returns Core Services EDU object. See “The EDU Object,” section in the Core Services chapter of this manual.

Syntax GetEduObject as Object

GetLine

Description Gets the line number for a specific chat, based on the chat’s associated EDUID.

Syntax GetLine(EduId as String) as Long

Example Dim lineNum As Long

LineNum = webEngine.GetLine eduID

Parameter Description

[in] EduId EDUID of the chat.

[out] LineNum The corresponding line number.

Chapter 18 Web Engine

192 Agent Control API Reference

GetName

Description Returns the name of the customer from the Agent Client.

Syntax GetName as String

GetSubject

Description Returns the subject of the chat (the question the user asked)

Syntax GetSubject as String

GetTaskId

Description Returns the WACD task ID

Syntax GetTaskId as String

GetTimeChatArrived

Description Returns the time_t value of the time the chat arrived. This is equal to the number of seconds elapsed since midnight (00:00:00), January 1, 1970.

Syntax GetTimeChatArrived as Long

GetTimeChatWaiting

Description Returns the amount of time, in seconds, the customer has been waiting for a response from the agent

Syntax GetTimeChatWaiting as Long

IsCustomer

Description Returns whether the web chat is from a customer (true) or a guest (false). This is determined by the name value from the "GetName" method. If GetName has "guest_" at the beginning of the name, the web chat is with a guest. See also the Chat List API "GuestPrefix"

Syntax IsCustomer as Boolean

IsEqual

Description Returns True if the specified chat object is equal to this one, False otherwise

Syntax IsEqual( iObject as Object) as Boolean

ShowTranscript

Issue 1.0 June 2002 193

ShowTranscript

Description Shows the transcript of the chat

Syntax ShowTranscript()

Example iWebChat.ShowTranscript

TransferTask

Description Transfers the chat to the specified recipient

Syntax TransferTask(sRecipient As String, sComment As String, lTarget As Long, sIsMultimedia As String)

sRecipient – The recipient to whom this chat is to be transferred. The recipient can either be an agent or a service class.

sComment – Transfer comment so receiving agent understands the context of the transfer.

lTarget – The target entity. This could be one of the following,� 0 – WORK_GROUP� 1 – AGENT� 2 – SERVICE_CLASS

sIsMultimedia – Can be "true" or "false" (May not make a difference in 6.0)

Example iWebChat.TransferTask "agent1", "Customer is looking for an expert", 1, "false"

ToString

Description Returns the string representation of the web chat.

Syntax ToString() as string

Example Dim str As StringStr = chat.ToString

Wrap

Description Wrap the chat

Syntax Wrap()

Example iWebChat.Wrap

Parameter [out] str

Description String representation of the event.

Chapter 18 Web Engine

194 Agent Control API Reference

195

CHAPTER 19WRAP-UP DIALOG

The Wrap-up dialog is used by an agent when the agent completes a contact and needs to indicate reasons for wrap-up work. The following information can be specified using the Wrap-up dialog:� The reason for the initial contact or the type of work performed (for example, get account

balance, perform a fund transfer)� A contact category that corresponds to the reason (for example, Insurance: Home, Auto, Life)� outcome (result) of contact

Multiple Wrap-up dialogs can be displayed at one time. For example, there might be wrap-up needed on both the chat and e-mail channel simultaneously. This allows the application designer to invoke the methods ShowWrapup and WrapupContact while another wrap-up operation is in progress.

If a contact is transferred between agents, each agent may select a different wrap-up reason. This information can then be displayed in a list of entries made by each agent who previously handled the contact.

Interactions with Other Controls The Wrap-up dialog is displayed via the WrapupContact and ShowWrapup methods, which are generally invoked by IC Scripts. When the user makes a reason selection and closes the Wrap-up dialog, an event is sent to all wrap-up event listeners (for example, a IC Script). At this point, the IC Script can, for example, terminate the current client’s interest in the EDU associated with the contact.

To set EDU wrap-up data, the Wrap-up dialog gets an EDU object from Core Services. It then invokes methods on that EDU object to set the wrap-up reason (and category and outcome, if applicable) and wrap-up time.

The Wrap-up dialog also listens for EDU change events sent from Core Services. When such an event is sent, the Wrap-up dialog can populate its list of previous agent entries. This allows the user to see what other agents specified as wrap-up reasons for the contact.

Chapter 19 Wrap-up Dialog

196 Agent Control API Reference

The Wrap-up dialog uses Core Services to retrieve Directory Services table information for reasons, categories, and outcomes.

Wrap-up Dialog PropertiesThe Wrap-up dialog has the following properties.

AutoTerminate

Description Specifies that when wrap-up is complete for this contact, the current client’s interest in the EDU is terminated. The default is False. This property is supported in both client and server applications.

Syntax wrapupobj.AutoTerminate = "bTerminate"

� wrapupobj is the Wrap-up control object (required).� bTerminate is a Boolean value that specifies whether to terminate the client’s interest in the

EDU when wrap-up is complete. True terminates the client’s interest in the EDU, False does not.

Example bAutoTerminate = wrapupobj.AutoTerminate

or

wrapupobj.AutoTerminate = bAutoTerminate

CategoryGroup

Description The name of the Category Group as specified on the Codes tab in IC Manager.

Syntax wrapupobj.CategoryGroup = "CategoryGroupName"

Example sCategoryGroupName = wrapupobj.CategoryGroup

or

wrapupobj.CategoryGroup = "CategoryGroupName"

Wrap-upDialog

CoreServices

Wrap-upEvent

Listener(IC Script)

CoreMethods

Wrap-upEvent

CoreEvents

EDUObject

CategoryLabel

Issue 1.0 June 2002 197

CategoryLabel

Description Specifies the label, as a string, to assign to the category pull-down combination box. This property is supported in both client and server applications.

Syntax wrapupobj.CategoryLabel = "CategoryLabel"

� wrapupobj is the Wrap-up control object (required).� sLabel is a string that specifies the label to be used for the category code box.

Example sLabel = wrapupobj.CategoryLabel

or

wrapupobj.CategoryLabel = "Category"

CodeLimit

Description Specifies, as an integer, the maximum number of reason codes an agent can enter. This property is supported in both client and server applications.

Syntax wrapupobj.CodeLimit = "nCode"

� wrapupobj is the Wrap-up control object (required).� nCode is an integer representing the maximum number of reason codes the agent can enter.

Example nCode = wrapupobj.CodeLimit

or

defreasonobj.CodeLimit = 10

EnableWrapup

Description Enables the Wrap-up dialog if set to True. This property is supported in both client and server applications.

Syntax wrapupobj.EnableWrapup = bEnable

� wrapupobj is the Wrap-up control object (required).� bEnable is a Boolean value. Set to True to enable the Wrap-up dialog.

Example bEnable = wrapupobj.EnableWrapup

or

wrapupobj.EnableWrapup = True

Chapter 19 Wrap-up Dialog

198 Agent Control API Reference

OutcomeLabel

Description Specifies the label, as a string, to assign to the outcome code list box. This property is supported in both client and server applications.

Syntax wrapupobj.OutcomeLabel = "sLabel"

� wrapupobj is the Wrap-up control object (required).� sLabel is a string specifying the label to be used for the outcome code list box.

Example sLabel = wrapupobj.OutcomeLabel

or

wrapupobj.OutcomeLabel = "Outcome"

Privacy

Description Prevents the agent from viewing entries made by previous agents if set to "True." This property is supported in both client and server applications.

Syntax wrapupobj.Privacy = "bEnable"

� wrapupobj is the Wrap-up control object (required).� bEnable is a Boolean value. If set to "True," the agent is prevented from displaying entries

made by previous agents.

Example bEnable = wrapupobj.Privacy

or

wrapupobj.Privacy = True

ReasonLabel

Description Specifies the label, as a string, to assign to the reason code list box. This property is supported in both client and server applications.

Syntax wrapupobj.ReasonLabel = "sLabel"

� wrapupobj is the Wrap-up control object (required).� sLabel is a string specifying the label to be used for the reason code list box.

Example sLabel = wrapupobj.ReasonLabel

or

wrapupobj.ReasonLabel = "Reason"

Required

Issue 1.0 June 2002 199

Required

Description Specifies whether the user is required to select a reason before completing a wrap-up. This property is supported in both client and server applications.

Syntax wrapupobj.Required = "bRequired"

� wrapupobj is the Wrap-up control object (required).� bRequired is a Boolean value. If set to "True," the agent must select a reason. If set to "False,"

the agent is not required to do so.

Example bRequired = wrapupobj.Required

or

wrapupobj.Required = True

SelectionLabel

Description Specifies the label, as a string, to assign to the selection code list box. This property is supported in both client and server applications.

Syntax wrapupobj.SelectionLabel = "Label"

� wrapupobj is the Wrap-up control object (required).� Label is a string specifying the label to be used for the selection code list box.

Example sLabel = wrapupobj.SelectionLabel

or

wrapupobj. SelectionLabel = "Selection"

Tenant

Description The name of the Tenant for which the Category Group exists for as specified on the Codes tab in IC Manager.

Syntax wrapupobj.Tenant = "TenantName"

Example sTenantName = wrapupobj.Tenant

or

wrapupobj.Tenant = "TenantName"

Chapter 19 Wrap-up Dialog

200 Agent Control API Reference

Wrap-up Dialog EventsThe Wrap-up dialog generates the following event.

WrapupEvent

Description Generated when the wrap-up dialog is closed. If the user clicks OK in the wrap-up dialog, the event is 1 (weComplete). If the user clicks Cancel, the event is 0 (weCancel).

Note: Both Tenant and CategoryGroup must be set before calling the wrapup dialog, otherwise no data for any of the tables can be loaded.

Syntax WrapupDialog_WrapupEvent (EDUID, Event)

� EDUID is the EDUID associated with the wrap-up task.� Event indicates wrap-up complete (0) or wrap-up cancelled (1)

Wrap-up dialog MethodsThe following methods can be used with the Wrap-up dialog.

Note: Prog Id = QWrapup.WrapupCtrl.55

AdviseToCore

Description Registers the Wrap-up control as a Core events listener. A pointer to the Core Services control, which is provided as an input parameter, is used to perform this registration and to retrieve other Core-related information.

Syntax retval = wrapupobj.AdviseToCore(iCore)

iCore is an object reference to an ICore object (required).

Returns The following values are returned.

ReloadTableData

Description Performs a refresh operation by forcing the Wrap-up control to reload its DS table information.

Syntax retval = wrapupobj.ReloadTableData(ErrorMsg)

ErrorMsg is an output parameter for any error messages that are returned.

Value Description

True Indicates success.

False Indicates an error occurred.

ShowWrapup

Issue 1.0 June 2002 201

Returns The following values are returned.

ShowWrapup

Description Displays the Wrap-up dialog. It is appropriate to invoke this method after invoking the WrapupContact method.

Syntax retval = wrapupobj.ShowWrapup(EDUID)

EDUID is the EDUID representing the contact to be wrapped up.

Returns The following values are returned.

WrapupContact

Description This method assigns an EDU to the Wrap-up dialog so that wrap-up can be performed on this contact. If the wrap-up tables have not been previously loaded, they are loaded and cached at this time.

Telephony wrap-up is typically initiated when the agent enters a wrap-up state that has been preset, or when wrap-up is enforced with the disconnection of the call.

For email and web contacts, wrap-up typically begins when the agent is finished with the contact (in other words,, the agent has closed the email or finished the chat).

Syntax retval = wrapupobj.WrapupContact(media, label, EDUID, terminate, chatid)

� media is the media channel on which the wrap-up is to be performed. Possible values are 1 (email), 2 (voice), or 3 (chat).

� label is the window title for the wrap-up dialog.� EDUID is the EDUID associated with the contact.� terminate tells the control whether to terminate the EDU after wrapping up the contact. This

method is typically set to "False" if, for example, wrap-up is to be performed while the agent is currently in call.

� chatid indicates the chat ID. This is required only for a chat channel.

Value Description

True Indicates success.

False Indicates an error occurred.

Value Description

True Indicates success.

False Indicates an error occurred.

Chapter 19 Wrap-up Dialog

202 Agent Control API Reference

Returns The following values are returned.

Value Description

True Indicates success.

False Indicates an error occurred.

203

AAbandoned 119Activate 119, 190Activate event 119Activate method 90Activate object method 90ActivateCallback 175ActivateIVChat 190ActivateSession 103ActivateSession method 103ActivateTask function 123ActivateTask object function 123Active Contact Viewer 13

interactions with other controls 13methods 15properties 13

Activity 119Activity event 120Add 39Add method 39, 130Add object method 130AddContactList 74AddCouple 60AddCoupleByNameValue 60AddEduNameToListenFor 97AddEDUTemplate 15AddEDUTemplate method 15AddEventSource function 123AddEventSource object function 123AddEventToListenFor 97, 177AddEventToListenFor method 97, 177AddSeqCouple 62AddSkillProficiencyLabel 75AddTask 71AddTemplate 78AddTemplate method 78ADU Object Methods 28ADU object, methods 28ADU Values Used By the Blender Client 19ADUChange 21ADUChange event 21AdviseEventSinkToTelephony 32, 138AdviseEventSinkToTelephony method 32, 138AdviseSinkToCore 15, 79AdviseSinkToCore method 15, 79AdviseToBlender 114AdviseToBlender method 114

AdviseToCore 69, 114, 177, 200AdviseToCore function 84AdviseToCore method 114, 177, 200AdviseToCore object function 84AdviseToEmail 23AdviseToEmail method 23AdviseToTelephony 23AdviseToTelephony method 23AdviseToWACEngine 84, 178AdviseToWeb 24, 34AdviseToWeb method 24, 34Age object property 87Age property 87AgentSearchTimerFetchInterval 67AgentStateChanged 171AgentStateEvent 22AgentStateEvent event 22Answer 153Answer method 153AsyncExec 17AsyncExec method 17Attach 17Attach method 17AutoTerminate 196AutoTerminate property 196AuxGroup 110AuxReasonRequired 110AuxReasonRequired property 110AuxReasonTable 111AuxReasonTable property 111

BBackground Information 77BatchSize 66Blender Client 19

ADU values used by 19events 21methods 23properties 20

Blender Client Events 21Blender Client Methods 23Blender Client Properties 20BlendingMode 111BlendingMode property 111BlindTransfer 153BlindTransfer method 153BrowserName 37BrowserName property 37

INDEX

204 Agent Control API Reference

Index

BuildQPrompterFromURL 104BuildQPrompterFromURL method 104Busy 145Busy method 145ButtonStyle 67

CCall List 31

events 31methods 32

Call List Events 31Call List Methods 32Call Object 153Call object 153

methods 153Call Object Methods 153CallRefId 143, 163Canceling 119Canceling event 120CancelIVChat 190Caption 13Caption property 13CategoryGroup 196CategoryLabel 196–197CategoryLabel property 196Ceiling 111Ceiling property 111Change 119Change event 120Change Event Object 142Change Event object 142

properties 142Change Event Object Methods 143Change Event Object Properties 142ChannelStateEvent 22ChannelStateEvent event 22ChannelThrottleTime 20ChannelThrottleTime property 20Chat List 33

events 34methods 34

Chat List Events 34Chat List Methods 34Chat List Properties 35chat.ceiling 20chat.contactcount 20chat.currentload 20chat.load 20CleanupThreshold 21CleanupThreshold property 21Clear 15, 40Clear method 15, 40ClientLocaleChanged 170

ClientLookAndFeelChanged 170Closed 119Closed event 120Closing 119Closing event 120CodeLimit 197CodeLimit property 197Complete method 90Complete object method 90Completed 119Completed event 121Completing 119Completing event 120Conference 154Conference method 154ConferenceCancel 154ConferenceCancel method 154ConferenceComplete 155ConferenceComplete method 155ConfigFilePath object property 83ConfigFilePath property 83Contact History Browser 37

events 38interactions with other controls 38methods 38properties 37

Contact History Browser Events 38Contact History Browser Methods 38Contact History Browser Properties 37ContainsContainer 60ContextMenuKey 111ContextMenuKey property 111Core Change Event 43Core Change event 43Core Services 43

interrelationships of Core Services-related entities 43methods 44

Core Services Methods 44CoreChangeEvent Object 53CoreChangeEvent object 53

methods 54properties 53

CoreChangeEvent Object Methods 54CoreChangeEvent Object Properties 53Count 58Count object property 132Count property 132Couple Object Methods 59CreateEDU 44CreateSession 104CreateSession method 104Criteria 14Criteria property 14Customer Name 33

Issue 1.0 June 2002 205

Index

DDeActivate 190Deactivate 119Deactivate event 121Deactivate method 91Deactivate object method 91DebugLevel 35, 66, 165Defer object function 90Deferred 119Deferred event 121DeleteSession 104DeleteSession method 104Detach 17Detach method 17DetailString 57, 163DetailString property 57, 163DisableAgentSearch 67DisableChatTransferToWorkgroup 66DisableContextMenu object property 118DisableContextMenu property 118DisableFiltering 69Dismiss 73Dismiss object function 91DisplayName 112DisplayName property 112DisplayURL 178DisplayURL method 178Drop 155Dropmethod 155Duration Timer 33

EEDU Object 54EDU object 54

methods 55properties 54

EDU Object Methods 55EDU Object Properties 54EDU Viewer 77

interactions with other controls 78methods 78

educational services 11EduEntriesCollection Object 58EduEntriesCollection Object Methods 58EduEntriesCollection Object Properties 58EduEntry Object 58–59EduEntry Object Property 58–60EduID 58–61EduId object property 87EduId property 87EduObject object property 87EduObject property 87

email.ceiling 20email.contactcount 20email.currentload 20email.load 20EnableButton 69EnableChannel 114EnableChannel method 114EnableCTI 139EnableCTI method 139Enabled object property 131Enabled property 131EnableWrapup 197EnableWrapup property 197EndIVChat 190EnforceFormat 198EnforceFormat property 198engine for Email 83Error 119Error event 121ErrorEvent object 128

functions 129properties 128

ErrorId object property 128ErrorId property 128ErrorOccurred 170, 175ErrorSeverity object property 129ErrorSeverity property 129ErrorSource object property 129ErrorSource property 129ErrorString object property 129ErrorString property 129EvAgentAction 188EvCallbackAddCallStatus=20 188EvCallbackClearCallStatus=21 188evCallConferenced 95, 142evCallConferencedCanceled 95, 142evCallConnected 95, 142evCallDisconnected 95, 142evCallDiverted 95, 142evCallFailed 95, 142evCallHeld 95, 142evCallIncoming 95, 142evCallNone 95, 142evCallPreset 95, 143evCallQueued 95, 143evCallRemoteBusy 95, 143evCallRemoteConnected 95, 143evCallRemoteDisconnected 96, 143evCallRemoteRing 96, 143evCallRetrieved 96, 143evCallTransferCanceled 96, 143evCallTransferred 96, 143EvChannelAvailable 188EvChannelBusy 188evChannelChange(0x4) 126

206 Agent Control API Reference

Index

EvChatActivated 188EvChatDisconnected 188EvChatIncoming 188EvChatWrapUp 188evCoreADUServerFailed 53evCoreADUServerRestart 53evCoreGeneral 96EvCoreLogin 53evCoreLogin 96EvCoreLogout 53evCoreLogout 96EvCoreNone 53EvCoreResponse 53evCoreResponse 96EvCoreServerFailed 53evCoreServerFailed 96EvCoreServerMaxRetries 53, 96EvCoreServerRestart 53evCoreServerRestart 96EvCoreStart 53evCoreStart 96EvCoreStop 53evCoreStop 96EvCoreSystemError 53EvCustomerAction 188EvCustomerAlert 188EvCustomerIdle 188EvDialDirectoryLoaded 53evDialDirectoryLoaded 96EvEduChange 54evEduChange(0x1) 126EvEduCurrent 54EvEduTerminated 54EventID 53, 142EventId object property 126EventID property 53, 142EventId property 126Events Emitted by the Task List 119EvIVChatAddStatus=23 188EvIVChatClearStatus=24 188EvIVChatInitialize=22 188EvLoggedoutByServer 188EvLoginFailed 188EvLoginSuccess 188EvLogoutSuccess 188evTaskAbandoned(0x80000) 126evTaskActivated(0x10) 126evTaskActivity(0x40) 126evTaskCanceling(0x100000) 126evTaskChange(0x2) 126evTaskClosed(0x800) 126evTaskClosing(0x4000) 126evTaskCompleted(0x10000) 126evTaskCompleting(0x8000) 126evTaskDeactivated(0x20) 126

evTaskDeferred(0x200000) 126evTaskIncoming(0x80) 126evTaskOpen(0x2000) 126evTaskOpening(0x1000) 126evTaskPropertyChange(0x8) 126evTaskSelected(0x100) 126evTaskSent(0x400000) 126evTaskTerminate(0x400) 126evTaskTransferred(0x40000) 126evTaskTransferring(0x20000) 126evTaskWrapup(0x200) 126evTelephonyGeneral 96, 143evTelephonyLineChange 96, 143evTelephonyResetPhones 96, 143evTelephonyResponse 96, 143evTelephonyServerFailed 96, 143evTelephonyStart 96, 143evTelephonyStop 96, 143evTelephonySystemError 143evVduChange 96evVduCurrent 96evVduTerminated 96Execute method 91Execute object method 91ExternalVdu 55ExternalVdu properties 55

FFlowAbandoned 102FlowAbandoned event 102FlowComplete 102FlowComplete event 102FlowDelete 102FlowDelete event 102FlowEvent 102FlowEvent event 102FlowPageLoaded 102FlowPageLoaded event 102FlowQuestionSelected 103FlowQuestionSelected event 103FlowSelected 103FlowSelected event 103Functions and Methods of the Task Object 90Functions and Methods Supported by the Operations Object 130Functions and Methods Supported by the Properties Object 133Functions of the ErrorEvent Object 129Functions Supported by the Operation Object 132Functions Supported by the Task List 123Functions Supported by the TaskChangeEvent Object 127

GGetACName 178, 191GetActiveSessionId 105

Issue 1.0 June 2002 207

Index

GetActiveSessionId method 105GetActiveTaskKey 73GetAduId 28GetAduId method 28GetAduObject 24GetAduObject method 24GetAgentState 24, 145GetAgentState method 24, 145GetAllChats 178GetAllChats method 178GetAnswer 105GetAnswer method 105GetAutoTerminate 156GetAutoTerminate method 156GetBlendingMode 24GetBlendingMode method 24GetCall 145GetCall method 145GetCallByLineID 145GetCallByLineID method 145GetCallCount 146GetCallCount method 146GetCallObject 143GetCallObject property 143GetCallState 146GetCallState method 146GetChannelCeiling 179GetChannelCeiling method 179GetChannelLoad 179GetChannelLoad function 85GetChannelLoad method 179GetChannelLoad object function 85GetChannelPreset 179GetChannelPreset method 179GetChannelState 25, 179GetChannelState function 85GetChannelState method 25, 179GetChannelState object function 85GetChat 180GetChat method 180GetChatByEdu 180GetChatByEdu method 180GetChatCount 180GetChatCount method 180GetChatObject 187GetChatObject method 187GetChatState 181GetChatState method 181GetCoreObject 97GetCoreObject method 97GetCoupleByName 60GetCoupleCount 61GetCurrentCall 146GetCurrentCall method 146GetCurrentCallInfo 147

GetCurrentCallInfo method 147GetCurrentChat 181GetCurrentChat method 181GetCurrentChatID 181GetCurrentChatID method 181GetCurrentChatInfo 182GetCurrentChatInfo method 182GetCurrentLine 147GetCurrentLine method 147GetDBRecordsFromATable 44GetDuration 191GetEduEntry 58getEduEntry 58GetEduId 191GetEduObject 191GetEDUsByCriteria 45GetEDUsByCriteria method 45GetEDUsByCriteriaWithScope 45GetEventID 187GetEventID method 187GetLine 147, 156, 182, 191GetLine method 147, 156, 191GetLoggedInAgent 46GetLoggedInAgent method 46GetLoggedInAgentRecord 46GetLoginId 25, 28GetLoginId method 25, 28GetName 192GetNameValue 59GetOneValue 28GetOneValue function 133GetOneValue method 28GetOneValue object function 133GetOneValueLong function 133GetOneValueLong object function 133GetPhoneState 147GetPhoneState method 147GetPreset 148, 156GetPreset method 148, 156GetRequestObject 54, 144GetRequestObject method 54GetRequestObject property 144GetSeqCouple 63GetSeqCoupleCount 63GetSeqCouples 55GetSeqCouples method 55getServiceThreshold 169GetString function 91, 129GetString object function 91, 129GetSubject 192GetSymbol 105GetSymbol method 105GetTaskByEduId function 123GetTaskByEduId object function 123GetTaskId 192

208 Agent Control API Reference

Index

GetTelephonyObject 97GetTelephonyObject method 97GetThreshold 182GetThreshold method 182GetTimeCallArrived 156GetTimeCallArrived method 156GetTimeCallConnected 157GetTimeCallConnected method 157GetTimeChatArrived 192GetTimeChatWaiting 192GetValueByName 55GetValueByName method 55GetVduId 157GetVduId method 157GetVduObject 47, 54, 157GetVduObject method 47, 54, 157GetVDUObjectEx 47GetVduValue 157GetVduValue method 157GetViewRecord 48GetViewRecordWithProj 47GetWebEngine 189GetWebEngine method 189GuestPrefix 35

HHangup 158Hangup method 158Header 87Hold 158Hold method 158HoldReconnect 159HoldReconnect method 159

IId 137Id property 137Incoming 119Incoming event 121InitEngine function 85InitEngine object function 85Initialize 115Initialize function 124Initialize method 115Initialize object function 124Interactions with Other Controls

Contact History Browser 38EDU Viewer 13, 78Status Control 109Wrapup 195

Interrelationships Between Web Engine Entities 175Interrelationships of Core Services-related Entities 43

InvokeMethodSimple 17InvokeMethodSimple method 17IsAgentChange 144IsAgentChange property 144IsAgentLoggedIn 49, 148, 183IsAgentLoggedIn function 85IsAgentLoggedIn method 49, 148, 183IsAgentLoggedIn object function 85IsCallChange 144IsCallChange property 144IsChannelChange 189IsChannelChange method 189IsChannelPresent 25IsChannelPresent method 25IsChatChange 189IsChatChange method 189IsClientRunning 183IsClientRunning method 183IsCustomer 192IsDirectCall 148, 159IsDirectCall method 148, 159IsEduChange function 127IsEduChange object function 127IsEqual 192IsEqual function 91IsEqual object function 91IsOperationEnabled function 131IsOperationEnabled object function 131IsOutboundCall 163IsPhoneChange 144IsPhoneChange property 144IsTaskActivated function 127IsTaskActivated object function 127IsTaskActivity function 127IsTaskActivity object function 127IsTaskIncoming function 127IsTaskIncoming object function 127IsTaskPropertyChange function 127IsTaskPropertyChange object function 127IsTaskSelected function 128IsTaskSelected object function 128IsTaskWrapup function 128IsTaskWrapup object function 128IsVduChange 144IsVduChange property 144Item object property 83, 132Item property 83, 132

JJavaVMParameters 165

KKeyColumn 38

Issue 1.0 June 2002 209

Index

LlAfterCallState 141lAfterCallState property 141launchClient 166LayoutStyle 138LayoutStyle property 138ListenToAllEduEvents 98ListenToAllEvents 98ListenToAllEvents method 98Login 26, 50, 148Login function 86Login method 26, 50, 148Login object function 86LoginACD 50LoginACD method 50LoginAgent 85, 183loginAgent 167LoginSynch 50, 149LoginSynch method 50, 149Logout 50, 115, 149, 183Logout function 86Logout method 50, 115, 149, 183Logout object function 86LogoutReasonRequired 112LogoutReasonRequired property 112LogoutSynch 51, 150LogoutSynch method 51, 150LookupAddress 171LookupAgentForTransfer 93, 176

MMail Engine 83Mail Engine Events 93MailCount object property 83MailCount property 83MakeCall 150MakeCall method 150MakeCallSetEdu 150MakeCallSynch 150MakeRequestSynch 51MaxContacts 14MaxContacts property 14MaximizeFlowCatalog 105MaximizeFlowCatalog method 105Method Usage Example 107Methods Supported by the Mail Engine 84MinimizeFlowCatalog 106MinimizeFlowCatalog method 106Monitor 79Monitor method 79

NName object property 134Name property 134NameFormat 35NetworkName 37NetworkName property 37NetworkType 37NetworkType property 37NewEnum 61

OOnActivate 31, 34OnActivate event 34OnActivate method 31OnContactSelected 38OnContactSelected event 38OnCoreStateChange 43OnCoreStateChange event 43OnSelect 31, 34OnSelect event 31, 34OnTelephonyStateChange 142OnTelephonyStateChange event 142Open 119Open event 122Opening 119Opening event 122Operation object

functions 132properties 131

Operation objects 130Operations and Operation Objects 130Operations object 130

functions and methods 130Operations object property 88Operations property 88OperationString object property 132OperationString property 132Origin object property 88Origin property 88OutcomeCodeTable 198OutcomeCodeTable property 198OutcomeLabel 198OutcomeLabel property 198

PParse 62PerformAgentAction 183performAgentAction 168performClientAction 166PerformConsoleAction 172Phone Engine 95

events 95

210 Agent Control API Reference

Index

methods 97Phone Engine Events 95Phone Engine Methods 97Port 84, 101, 177Port property 101Privacy 198Privacy property 198Prompter Client Events 101Prompter Client Methods 103Prompter Client Properties 101Properties and Property Objects 130Properties object 130

functions and methods 133properties 132, 134

Properties object property 88Properties of the eContact Web Mail Engine 83Properties of the ErrorEvent Object 128Properties of the Mail Engine 83Properties of the Operation Object 131Properties of the Properties Object 132Properties of the Property Object 134Properties of the Task List 118Properties of the Task Object 87Properties of the TaskChangeEvent Object 126Properties property 88Property objects 130

QQAsyncExec control 17

QAsyncExec class methods 17QAsyncExec Events 17QAsyncExec Methods

QAsyncExec Class 17QPrompter Client 101

events 101method usage example 107methods 103properties 101

QTaskLib Object Library 130QTaskLib object library 130

RReady 151Ready method 151ReasonLabel 198ReasonLabel property 198Refresh 16, 39Refresh method 16, 39RefreshAll 39RefreshAll method 39RefreshCurrent 39RefreshCurrent method 39RefreshFlowCatalog 106

RefreshFlowCatalog method 106RefreshTables 115RefreshTables method 115ReloadData 70ReloadTableData 200ReloadTableData method 200Remove 39Remove method 39RemoveAll 62RemoveAll method 131, 133RemoveAll object method 131, 133RemoveAllCouples 61RemoveAllEduNamesToListenFor 98RemoveAllEventsToListenFor 98, 184RemoveAllEventsToListenFor method 98, 184RemoveConstraint 40RemoveConstraint method 40RemoveConstraintGlobal 40RemoveConstraintGlobal method 40RemoveConstraints 40RemoveConstraints method 40RemoveCoupleByName 61RemoveCouplesThatMatch 61RemoveEduNameToListenfor 98RemoveEDUTemplate 16RemoveEDUTemplate method 16RemoveEventToListenFor 98–99, 184RemoveEventToListenFor method 98, 184RemoveSeqCoupleAt 62RemoveSkillProficiencyLabel 75RemoveTask 72RemoveTemplate 79RemoveTemplate method 79Request Object 57Request object 57

properties 57Request Object Properties 57RequestAlertInfo 94Required 199Required property 199ResetPhones 151ResetPhones method 151Response Object 163Response object 163

properties 163Response Object Properties 163ResponseHandle 57, 164ResponseHandle property 57, 164RestartServer 51

SSecondaryCallRefId 163Select 119Select event 122

Issue 1.0 June 2002 211

Index

SelectionLabel 199SelectionLabel property 199SelectTask function 125SelectTask object function 125sendAddressLookup 169SendDefinityAux 151SendDefinityAux method 151SendDtmfTones 159SendDtmfTones method 159Sent 119Sent event 122SeqCouple Object Methods 60SeqSeqCouple Object Methods 62Server 84, 101, 177Server property 101ServerFailureRetryLimit 21ServerFailureRetryLimit property 21ServerRetrytime 21ServerRetrytime property 21ServiceThresholdResponse 171SetActiveTaskKey 73setAgentAvailability 168SetAgentState 26, 152SetAgentState method 26, 152SetAlertInfoResponse object function 92SetAutoTerminate 159SetAutoTerminate method 159SetBlendingMode 26SetBlendingMode method 26SetButtonText 70SetChannelLoad 184SetChannelLoad method 86, 184SetChannelLoad object method 86SetChannelState 26, 184SetChannelState method 26, 86, 184SetChannelState object method 86SetChatState 184SetChatState method 184SetChatStateByEdu 185SetChatStateByEdu method 185setClientLocale 166setClientLookAndFeel 167setClientMode 167SetClientView 185SetClientView method 86, 185SetClientView object method 86SetConstraint 40SetConstraint method 40SetConstraintGlobal 41SetConstraintGlobal method 41SetContactLabel 71SetCurrentChat 185SetCurrentChat method 185SetCurrentChatByEDU 186SetCurrentChatByEDU method 186

SetCurrentLine 152SetCurrentLine method 152SetCurrentLineByID 152SetCurrentLineByID method 152SetDefaultSkillProficiencyLabel 74SetDefaultSkillProficiencyRange 74SetDestinationField 70SetFlowParameter 106SetFlowParameter method 106SetFormat 116SetFormat function 125SetFormat method 116SetFormat object function 125SetLabelAttribute 80SetLabelAttribute method 80SetLanguage 72SetLoad 27SetLoad method 27SetLoginPreset 27SetLoginPreset method 27SetMaxRecords 41SetMaxRecords method 41SetNameValue 56, 59SetNameValue method 56SetNameValueEx 56SetOneValue 29SetOneValue function 134SetOneValue method 29SetOneValue object function 134SetOneValueLong function 134SetOneValueLong object function 134SetPreset 152, 160SetPreset method 152, 160setServiceThreshold 170SetSitePkey 71SetStyleSheetAttribute 80SetStyleSheetAttribute method 80SetTabLabel 80SetTabLabel method 80SetTemplate 81SetTemplate method 81SetThreshold 186SetThreshold method 186SetTitle 71SetValues 56SetVduValue 160SetVduValue method 160ShellExecute 172Show 39, 69, 81Show method 39, 81ShowAgentState 67ShowAuxReasonCode 112ShowAuxReasonCode property 112ShowConfirm 113ShowConfirm property 113

212 Agent Control API Reference

Index

ShowEmailLookup 73ShowEmailLookupResponse 68ShowHistory 107showHistory 169ShowHistory function 86ShowHistory method 107ShowHistory object function 86ShowLogoutReasonCode 113ShowLogoutReasonCode property 113ShowSubject 36ShowTime 113ShowTime property 113ShowTranscript 187, 193ShowWrapup 201ShowWrapup method 201ShutdownClient 187ShutdownClient method 187SkillsSupport 65StartFlow 107StartFlow method 107state 19Status 57, 164Status control 109

interactions with other controls 109methods 114properties 110

Status Control Methods 114Status Control Properties 110Status property 57, 164Subject object property 88Subject property 88SwapHeld 160

TTabLabelEDUField 14TabLabelEDUField property 14TabLabelFormat 15TabLabelFormat property 15Task List control 117

events 119functions 123properties 118

Task Object 87Task object 87

functions and methods 90properties 87

Task object property 126Task State Icon 33TaskChangeEvent Object 125TaskChangeEvent object 125

functions 127properties 126

TaskListEnabled 66

TaskOperation object property 132TaskOperation property 132Tasks object property 118Tasks property 118TaskSourceType object property 89TaskSourceType property 89TaskState object property 89TaskState property 89TaskStatusChanged 93, 176TbAnswer 137TbBusy 137TbConference 138TbConsXfer 138TbDefinityAux 138TbDirectory 138TbDtmf 138TbForward 137TbHangup 137TbHold 137TbMakeCall 137TbReady 137TbReconnect 137TbWrapup 137TeleButton control 137

methods 138properties 137

TeleButton Methods 138TeleButton Properties 137Telephony control 141

methods 145properties 141

Telephony Control Methods 145Telephony Control Properties 141Telephony State Change Event 141Telephony State Change event 141Tenant 110, 199Terminate 119Terminate event 122TerminateEdu 52TerminateEdu method 52Text 138Text property 138The Core Change Event 43The CoreChangeEvent Object 53The Couple Object 59The EDU Object 54The EduEntriesCollection Object 58The EDuEntry Object 58The Request Object 57The SeqCouple Object 59The SeqSeqCouple Object 62The Task Object 87TimeFormat 113TimeFormat property 113TimeInState object property 90

Issue 1.0 June 2002 213

Index

TimeInState property 90ToString 62, 189, 193ToString function 92, 128, 131–132, 134ToString method 193ToString object function 92, 128, 131–132, 134Transfer 161Transfer method 161TransferCancel 161TransferCancel method 161TransferComplete 162TransferComplete method 162Transfering 119Transfering event 122Transferred 119Transferred event 123TransferTask 193TransferTask object function 92transition 19tsAbandoned 89tsActivated 89tsCanceling 90tsClosed 89tsClosing 89tsCompleted 89tsCompleting 89tsDeactivated 89tsDeferred 90tsIncoming 89tsOpen 89tsOpening 89tsSelected 89tsSent 90tsTerminated 89tsTransferred 89tsTransferring 89tsWrapup 89

UUADStateChange 68UADStringFormat 65UnadviseEventSinkToTelephony 139UnadviseEventSinkToTelephony method 139UnadviseToWeb 35UnadviseToWeb method 35Unified Agent Directory

methods 69Unified Agent Directory Events 68Unified Agent Directory Methods 69Unified Agent Directory Properties 65UnMonitor 81UnMonitor method 81

VValue object property 134Value property 134ValueLong object property 135ValueLong property 135VduID 54, 57, 164vduID 57, 164VduID property 54, 57, 164voice.ceiling 20voice.contactcount 20voice.currentload 19voice.load 20VoiceCallStateAlerting 146VoiceCallStateConnected 146VoiceCallStateFailed 146VoiceCallStateHold 146VoiceCallStateIdle 146VoiceCallStateInitiated 146VoiceCallStateNull 146VoiceCallStateQueued 146VoiceCallStateTerminated 146VoiceCallStateWrapUp 146VoicePhoneStateBusy 147VoicePhoneStateInCall 148VoicePhoneStateNotReady 147VoicePhoneStateNull 148VoicePhoneStateReady 147VoicePhoneStateWrapUp 148

WWACEngine (Web Agent Client Engine) 165WACEngine Events 170WACEngine Methods 166WACEngine Properties 165Wait Timer 33Web Chat Object 190Web Chat object methods 190Web Engine control 175

methods 177properties 176

Web Engine Methods 177Web Engine Properties 176WebStateChanged 176WebStateChanged Event 165, 175WebStateChanged event 175–176WebStateChanged Event Object 187WebStateChanged event object 187

methods 187WebStateChanged Event Object Methods 187WorkFlowRun 52WorkFlowServerName 66Wrap 193Wrapup 119, 162

214 Agent Control API Reference

Index

Wrap-up dialog 195events 200interactions with other controls 195methods 200properties 196

Wrap-up Dialog Events 200Wrap-up dialog Methods 200Wrap-up Dialog Properties 196Wrapup event 123

Wrapup method 162WrapupBegin 27WrapupBegin method 27WrapUpComplete 162WrapupComplete 28WrapupComplete method 28WrapupContact 201WrapupContact method 201WrapupEvent 200WrapupEvent event 200