Avaya™ Interaction Center or interfaces for reasons of: • Utilization (of capabilities special...
-
Upload
phungquynh -
Category
Documents
-
view
219 -
download
2
Transcript of Avaya™ Interaction Center or interfaces for reasons of: • Utilization (of capabilities special...
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
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]
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.
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.
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.
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
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.
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.
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")
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)
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.
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.
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.
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