While reasonable efforts were made to ensure that the information in this
document was complete and accurate at the time of printing, Avaya Inc.
can assume no liability for any errors. Changes and corrections to the
information in this document may be incorporated in future releases.
Preventing toll fraud
"Toll fraud" is the unauthorized use of your telecommunications system
by an unauthorized party (for example, anyone who is not a corporate
employee, agent, subcontractor, or person 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 telecommunications services.
Avaya fraud intervention
If you suspect that you are being victimized by toll fraud and you need
technical assistance or support, call Technical Service Center Toll Fraud
Intervention Hotline at +1-800-643-2353 for the United States and
Canada. For additional support telephone numbers, see the Avaya Web
site:
http://www.avaya.com
Select Support, then select Escalation Lists. This Web site includes
telephone numbers for escalation within the United States. For escalation
telephone numbers outside the United States, select Global Escalation
List.
Providing telecommunications security
Telecommunications security (of voice, data, and video communications)
is the prevention of any type of intrusion to (that is, either unauthorized or
malicious 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,
subcontractor, or person 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) equipment or interfaces for reasons of:
•Use (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 intrusion should occur, it could result in a variety of losses to your
company (including, but not limited to, human and data privacy,
intellectual property, material assets, financial resources, labor costs, and
legal costs).
Your responsibility for your company's telecommunications
security
The final responsibility for securing both this system and its networked
equipment rests with you, an Avaya customer's system administrator,
your telecommunications 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
•Your Avaya-provided software applications, as well as their
underlying hardware/software platforms and interfaces
•Any other equipment networked to your Avaya products.
Warra nty
Avaya Inc. provides a limited warranty on this product. Refer to your
sales agreement to establish the terms of the limited warranty. In
addition, Avaya’s standard warranty language, as well as information
regarding support for this product, while under warranty, is available
through the following Web site:
http://www.avaya.com/support
Link disclaimer
Avaya Inc. is not responsible for the contents or reliability of any linked
Web sites and does not necessarily endorse the products, services, or
information described or offered within them. We cannot guarantee that
these links will work all of the time and we have no control over the
availability of the linked pages.
Trademarks
®
All trademarks identified by the
trademarks, respectively, of Avaya Inc. All other trademarks are the
property of their respective owners.
Avaya, CONVERSANT, CustomerQ, DEFINITY, DefinityOne,
MultiVantage, Nabnasset, Quintus, and WebQ are registered trademarks
or trademarks of Avaya Inc. in the United States or other countries or
both.
or ™ are registered trademarks or
Ordering information: Avaya Publications Center
Voi ce:+1-207-866-6701
200 Ward Hill Avenue
Haverhill, MA 01835 USA
Attention: Avaya Account Manager
Order:Document No. 585-248-220, Issue 2.1
August 2003
Avaya support
Avaya 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 in the United States. For additional support
telephone numbers, see the Avaya Web site:
http://www.avaya.com
Select Support, then select Escalation Lists. This Web site includes
telephone numbers for escalation within the United States. For escalation
telephone numbers outside the United States, select Global Escalation
List.
Avaya Training
Avaya provides training for Avaya Operational Analyst. For more
information, contact Avaya University at:
Web site: http://www.avaya-learning.com/logon_form.asp
E-mail address: avaya.u.helpdesk@accenture.com
US telephone: 1-800-288-5327
Outside US telephone: +1-303-406-6089
Comments
To comment on this document, send e-mail to crminfodev@avaya.com
Acknowledgment
This document was written by the CRM Information Development group.
commandThis font signifies commands, information that you enter into the
computer, or information contained in a file on your computer.
commandvariableThis font indicates variables in a command string.
italicsThis font is used to add emphasis to important words and for
references to other chapter names and manual titles.
Blue underlined text in online documents indicates a hypertext
link
jump to related information.
To view the related material, click the blue underlined text.
Notes, Tips, and Cautions
Note:
Note:A note calls attention to important information.
!
!
Important:
Important:
Important:An important note calls attention to a situation that has the potential to cause
serious inconvenience or other similar repercussions.
Tip:
Tip:A tip offers additional how-to advice.
!
CAUTION:
CAUTION:A caution points out actions that may lead to data loss or other serious
problems.
Issue 2.1 August 20039
Before You Begin
Contacting Technical Support
If 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.
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. and Canada: 1-888-TECH-SPT (1-888-832-4778)
- Direct line for international and domestic calls: 1-512-425-2201
- Direct line for faxes: 1-512-997-4330
● Sending email with your question or problem to crmsupport@avaya.com. You may
be asked to email one or more files to Technical Support for analysis of your
application and its environment.
Note:
Note:If you have difficulty reaching Avaya Technical Support through the above
URL or email address, please go to http://www.avaya.com
information.
Product Documentation
Most 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
for further
The Readme file is a PDF 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
10 VTel Programmer Guide
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. Avaya may also deliver an Addendum to the Readme,
which will be posted on the Avaya Technical Support Website. The Readme Addendum will
contain similar information uncovered after the manufacture of the product CD-ROM.
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
Printed Documentation
You can purchase printed copies of these manuals separately. For details, see Ordering
information: Avaya Publications Center 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
.
Issue 2.1 August 200311
Before You Begin
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 Services
Avaya 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/logon_form.asp
● Over the telephone at 800-288-5327 (within the U.S.) +001 303-406-6089 (outside of
the U.S.)
● Through email at Avaya.U.Helpdesk@accenture.com
12 VTel Programmer Guide
What is VTel?
Chapter 1:Definition of terms and concepts
This section defines some of the terms used in this manual and describes concepts
involved in telephony call management. This information is general in nature; refer to your
telephone switch documentation to determine which items apply to your system.
This section includes the following topics:
● What is VTel? on page 13
● Phones, calls, and switches on page 14
● Agent IDs and Telephony Login IDs on page 15
● Call routing and queues on page 16
● Phone states on page 17
● Phone states after hang up on page 18
What is VTel?
VTel (Virtual Telephone) is a client application that provides a means of performing
standard telephony functions such as answering calls, handling conference calls, and
transferring calls. VTel is part of Avaya Computer Telephony for IC. VTel consists of:
● the basic VTel engine. The VTel engine has an API of methods that can be used by
developers creating their own user interface for call management, or to access VTel or
Telephony Server resources directly. This manual contains a description of the VTel
engine methods and events.
● the VTel graphical user interface (GUI). The VTel GUI is described in VTel User's Guide.
● the VTel OLE automation server. The VTel OLE automation server is described in VTel
Automation Server Programmer's Guide.
● the VTel utility programs, including VTelX, Simulator and Event Simulator. The utility
programs are described in VTel Utility Programs Guide
.
Issue 2.1 August 200313
Definition of terms and concepts
Phones, calls, and switches
The terms call, call type, phone, line appearance, and switch, as used in this manual, are
defined in the following table.
TermDefinition
CallAn active connection between two or more parties that
allows transmission of speech
Call typeOne of two different types of calls:
● direct calls, which are calls placed to a specific
equipment phone number
● ACD calls, which are calls placed to a phone number
controlled by an Automatic Call Distribution (ACD)
system.
PhoneA phone number that can accept or make calls and has
at least one line appearance available. There are two
types of phones discussed in this manual:
● simple phones, which can only accept direct calls
● ACD phones, which can accept both direct calls and
ACD calls.
Line appearanceThe number of simultaneous calls possible on a phone.
Available line appearances for a phone can be inbound
or outbound, internal or external, and can have mixed
limits for different call types.
SwitchA telephone switching system, such as a Private Branch
Exchange (PBX) or an ACD system.The term ACD is
often used in this manual to refer to any switch or
system, such as the Expert Agent Selection (EAS) on
the Avaya DEFINITY switch, capable of routing calls
through a queue.
14 VTel Programmer Guide
Agent IDs and Telephony Login IDs
Call center agents can identify themselves to the system in two ways: with an Agent ID or
with a Telephony Login ID.
The Agent ID
An Agent ID is used with ACD phones. Agents log into the phone system using Agent IDs
and assign IDs to the phoneset currently used by the agent. The switch automatically
routes calls for that Agent ID to that phone set.
The login procedure varies for each system. For example, using the Aspect switch, agents
must physically log into the phoneset. From Avaya Computer Telephony for IC, agents can
then be called through their Telephony IDs, Agent IDs, or the queue. With the DEFINITY
switch, agents can log in physically or through Avaya Computer Telephony for IC. Agents
then be called through Telephony IDs, Agent IDs, the queue, or the equipment number of
the phone set.
Agent IDs and Telephony Login IDs
The Telephony Login ID
In the Telephony system, agents log in using a Telephony Login ID. For a simple phone,
Avaya Computer Telephony for IC maps this Login ID to the physical phoneset. There is
no switch involvement with the login of a simple phone. For an ACD phone, Avaya
Computer Telephony for IC maps this Login ID to an Agent ID.
With some phone systems, IC Manager can be used to establish default assignments in
the Directory Server, so that only the Telephony Login ID (and password) is needed.
These assignments can be overridden during a VTel Login.
Issue 2.1 August 200315
Definition of terms and concepts
Call routing and queues
Calls can be routed:
● directly to a phone when the specific phone number assigned to the physical phone set
is called (a direct call).
● using a logical phone number which is mapped to the physical one by an external
resource (also considered a direct call).
● indirectly through a call queue (a queued call).
A queue is a means of routing calls to any one of a number of agents qualified to handle
the call. Each queue is often oriented toward a specific product, service, or particular skill
set. In some systems, each time agents log into the system, the skills associated with each
Agent ID are used to place the agents in a queue. In other systems, agents must directly
specify the queue. Depending on the telephone switch used, agents can be in several
queues at once, or can be changed to other queues by a supervisor to meet changing
needs during the day.
All ACD calls are handled through a queue. When an ACD call is transferred directly to
another agent (not another queue), it generally becomes a direct call.
16 VTel Programmer Guide
Phone states
Some telephone switches support a variety of states for ACD phones, inclluding Ready,
Busy, and WrapUp, and can provide statistics on the time spent in each state. Other
switches cannot support these states, or the rules may vary.
Phone states
The VTel configuration file (see Configuring VTel
on page 33) accommodates and supports
the variation among switches. Each installation will require its own description of possible
phone states and transitions between them.
Note:
Note:The terms used to describe phone states vary from call center to call center.
For example, Ready may be known as Available, Busy as Auxiliary Work or
Idle, and WrapUp as After Call Work.
An ACD phone can be in one of three states:
● the Ready state, which makes the phone available to receive another call
● the Busy state, which prevents the queue from sending a new ACD call, but will
generally allow new direct calls if additional inbound line appearances are available
● the WrapUp state, which follows completion of a call (on hook, hangup) and where the
agent is still processing information related to that call or customer
When the phone is in WrapUp state, it is usually implicitly busy and will not accept another
ACD call, but will accept direct calls if additional inbound line appearances are available.
For direct calls, it is possible to set some phone switches into WrapUp mode, but this is not
generally available.
While a direct call is active, you generally cannot make the phone Ready for another ACD
call. Although VTel may remain in the Ready state, the switch will prevent the queue from
dispatching another call until the phone is idle.
Issue 2.1 August 200317
Definition of terms and concepts
Phone states after hang up
VTel allows agents to override the predetermined default state to which an ACD phone will
be set after a call is hung up. There are two styles of changing this default phone state:
preset style and immediate style.
The PresetState variable in the VTel configuration file (vtel.ini) determines whether
the phone state can be changed in the preset style (PresetState=true) or in the
immediate style (PresetState=false).
Preset style
Upon receipt of a call, the default preset state is indicated as part of the VTel GUI's
description of the line appearance. This state will occur by default after hang up.
To override this default, the agent clicks the Ready, WrapUp, or Busy button during the
course of the call. After this selection, the call continues uninterrupted. However, when the
customer hangs up, or the agent clicks the Hang up button, the phone goes to the state
selected during the course of the call.
Immediate style
Upon receipt of a call, no default hangup state is indicated as part of the VTel GUI's
description of the line appearance.
To override the after-hangup default state, the agent clicks the Ready, WrapUp, or Busy
button when the agent wishes to hang up. VTel issues a Hangup and the phone goes
immediately to the selected state. The disadvantage of this style is that if the customer
hangs up first (or if the agent clicks the Hang up button), the agent can only go to the
default state.
!
!
Important:
Important:
Important:For switches that allow presets, the telephone switch should be set for
WrapUp after Hangup (or Busy, if WrapUp is not available on the switch).
This allows VTel to determine the subsequent phone state.
If the telephone switch were set for a Ready state after a hangup sequence (AutoReady),
VTel would not be able to override this without allowing a small window of time during
which another call can be sent from the phone queue to the agent. Further, in such a case
it may not be possible to return from the Ready state to the WrapUp state in the phone
switch.
18 VTel Programmer Guide
By using the VTel configuration file to control the preset option, it can easily be changed at
any time and the option selected can vary for each agent.
Note:
Note:The configuration file is read when the VTel Login window opens. If a
parameter is changed, the agent must exit and reenter VTel before the new
configuration becomes effective.
Auto-In and Manual-In modes
The DEFINITY switch allows an agent's profile to be set to either Auto-In mode or ManualIn mode (on disconnecting from a call, the agent must manually make the phone
available). In Auto-In mode, the agent’s phone is automatically made available (that is, put
in the Ready state) to take the next ACD call on disconnectiong from a call. In Manual-in
mode, the agent must manually make the phone available.
Agents can override their profile settings for their current sessions by using the physical
phoneset. The VTel softphone does not allow overriding in this manner.
Phone states after hang up
If an agent is configured for Auto-In, VTel cannot control the agent's availability.
If an agent is configured for Manual-In (either because the agent’s profile is set to ManualIn, or because the agent altered the setting for the current session), VTel can control the
agent's availability. This control from VTel provides more flexibility than that provided by the
switch's Auto-In mode.
To be in Manual-In mode, the Auto-Available Split (AAS) field in both the Hunt Group and
the Agent LoginID (EAS only) should be set to N. To enable Auto-In mode, the AutoIn and PhonePresetAcd file options in the vtel.ini file must be set to Y.
!
CAUTION:
CAUTION:In order to avoid conflicts, all clients within the Avaya Interaction Center
environment must share the same settings.
When Auto-In is enabled, VTel issues preset states (TS.ReadyAuto(), TS.Busy(), or TS.Wrapup()) to the Telephony Server immediately, instead of after a call is completed.
When calls are completed, no requests are made to the Telephony Server.
Note:
Note:VTel will not send requests to the Telephony Server if the agent is in an
active call and Auto-In is not enabled.
Issue 2.1 August 200319
Definition of terms and concepts
20 VTel Programmer Guide
Chapter 2:Communicating with other
applications
This section describes the communication path between VTel and other applications. This
section contains the following topics:
● Using DDE on page 22
● Starting VTel from other applications on page 24
● The asynchronous nature of the system on page 25
● Race conditions on page 26
● Requests and errors on page 27
● Using the Ping() method to test the connection on page 28
● Multiple concurrent telephone calls on page 29
● Socket usage on page 30
Issue 2.1 August 200321
Communicating with other applications
Using DDE
Three types of messages are sent between VTel and applications:
● requests., which perform an action or get information
● responses, which are always sent to the requester
● events, which are sent to all applications connected to VTel whenever there is a
significant change within VTel.
Your application is also required to process and respond to certain VTel requests.
This bi-directional communication is accomplished through use of Dynamic Data
Exchange (DDE). The communication techniques, syntax, and command set are designed
to be extensible to other communication methods.
DDE requests and event messages
When using DDE, requests to VTel are made by sending DDE Execute commands, as in
the Visual Basic LinkExecute method, and responses and event messages are sent
from VTel using DDE. An external application may send a DDE Execute command to VTel
requesting that VTel perform a specific function. VTel will respond by sending back another
DDE Execute command. To function in both directions, both the external application and
VTel must function as both DDE servers and DDE clients.
To support this bi-directional communication, the first message from an application must
always be an Assign() request, which establishes the return link to the other application
for sending all responses and events.
Note:Before most work can be performed, there must also be a Login request.
This section discusses some programming language-specific issues.
DDE in C
C uses the Microsoft DDEML library of functions, which is documented with the Microsoft
SDK library. This is preferred over the older Microsoft DDE library.
DDE in C++
Note:
While C++ uses the Microsoft DDEML library for basic operations, several class libraries
are available to ease the development effort.
22 VTel Programmer Guide
DDE in Visual Basic
The necessary commands, such as the LinkExecute method, are built into the Visual
Basic Language.
Because of the design of Microsoft Visual Basic, a program may not send a DDE
command while simultaneously processing another DDE command. This limitation can
generally be avoided by using a timer-driven queue to send the responses to DDE
commands. for additional information on the asynchronous nature of the system and its
affect on application design. please see The asynchronous nature of the system
page 25.
Using DDE
on
Issue 2.1 August 200323
Communicating with other applications
Starting VTel from other applications
VTel is designed to be started from other applications under Microsoft Windows, Windows
95, Microsoft NT, or OS/2. For example, the following could be used for a Visual Basic
application:
x = Shell("VTel",6) ’VTel started minimized, without focus’
Because the Shell function is asynchronous, the application starting VTel must wait a
short interval and verify that VTel is successfully started before attempting to communicate
with VTel. The method depends on the communication medium selected.
For more information on using VTel as an OLE automation server, see VTel Automation
Server Programmer's Guide.
24 VTel Programmer Guide
The asynchronous nature of the system
The asynchronous nature of the system
The asynchronous design of Avaya Computer Telephony for IC presents situations that
must be anticipated by connected applications.
While some requests are processed locally, others may involve distributed components of
the Telephony system. These distributed components may be connected through a LAN or
a WAN. Some requests may wait for another user’s response or for communication delays
in a phone system.
All applications that process events must be designed to manage these situations. For
example, VDUChange events may be reported from various sources at various times in
any order.
In general, applications should not make a request and postpone all other operations until
the response to that request is received. For example, if Logout and Exit commands
arrive at VTel just before a MakeCall request, the application may never receive a
response, since VTel will no longer be available.
Designing for asynchronous processes is more difficult than designing for synchronous
processes, and requires careful attention during the initial application design.Most
applications are generally more complex than originally envisioned.
When programming asynchronous processes, you may want to:
● establish queues for both requests and events
● affix a unique identifier to each request to allow its response to be easily distinguished
from others
● use time outs to allow your application to recover from problems elsewhere
Issue 2.1 August 200325
Communicating with other applications
Race conditions
Because telephone functions occur in real time, most operations are subject to race
conditions.
A race condition exists when two competing events "race" and the result is determined by
which comes in first. In such a situation an external event may occur that temporarily
invalidates an application’s state information. For example, at any time during a telephone
call the caller may hang up, the agent may perform functions on the telephone set, or the
agent may perform functions using VTel that cause a state change.
Applications interacting with VTel should never assume that any state information that they
hold about a call remains valid. The state information received from event messages is
accurate at that time, but may change before an application can act on it. A request to
release a call, place a call on hold, or transfer a call may fail because the call has already
been disconnected. In this case the failure is not a hard error, but is due to a temporary
loss of synchronization.
26 VTel Programmer Guide
Requests and errors
Because of the real time behavior described above, certain requests may return a normal
response even if the request is not successful. In these cases you must rely on the events
returned to determine if the request was ultimately successful.
In general, those requests that immediately return specific information can be relied upon
as being correct at that point in time. For example, a MakeCall() request returns the
EDU ID of the outbound call that was created. Once you have this EDU ID you know that
an outbound call was created successfully.
Requests that perform an action without returning information must be judged in terms of
the events that follow. For example, if there is an incoming call and you submit an
Answer() to respond, one of these scenarios may result:
● the Answer() request may succeed and the agent will receive a
TS.IncomingCall.event.
● the Answer() request may fail because the call has ended before the request reaches
the telephone switch and the EDU ID no longer exists. You may not know that the
Answer() request did not succeed until some later time.
Requests and errors
● the Answer() request may succeed at the telephone switch, but the call ends before
the TS.IncomingCall.event can be sent, resulting in the EDU ID being invalidated.
● Various other race conditions may occur at the Telephony Server or EDU Server to
prevent the TS.IncomingCall.event from being issued.
● The Answer() request waits in the queue for preceding requests to be issued, and the
state changes during this time period.
In all cases, the only real guarantee is receiving the TS.IncomingCall.event. Since a
normal response to an Answer() request cannot guarantee that it actually succeeded,
errors are only returned for syntactical problems with the request, or if Telephony returns
an error. If the call no longer exists at the point that VTel processes the request, it is
ignored.
Note:
Note:VTel does not return an error when an answer or hangup fails, because the
information may not be correct or useful.
Issue 2.1 August 200327
Communicating with other applications
Using the Ping() method to test the connection
The Ping() method simply echoes a response. This is especially useful during early
development for testing the communication path to VTel. Since this is a non-destructive
internal command, you do not need a valid login. However, since Contact Engine servers
also respond to this command, a valid login allows you to quickly test communication to
both VTel and major Contact Engine servers. For more information about pass-through
requests, see Pass-through requests
During later use, an external application can occasionally use the Ping() method to
validate the connection during periods of low activity, as shown in this example:
[VTel.Ping()][45]
[VTel.Ping.response(,)][45]
on page 44.
28 VTel Programmer Guide
Multiple concurrent telephone calls
VTel allows an agent to handle multiple telephone calls concurrently, subject to the
limitations of the telephone switch. Generally, an agent handles only one telephone call at
a time. In some cases, however, it is useful to have more than one call open in VTel:
● an agent with multiple line appearances places one call on hold while placing another
call for consultation
● an agent with multiple line appearances places one call on hold while answering
another direct call
● an agent continues wrap-up activities after disconnecting a call and another direct call
comes in
An external application must be able to handle multiple simultaneous calls from Avaya
Computer Telephony for IC. The EDU ID uniquely identifies each call and is used to
associate messages with the correct call.
Multiple concurrent telephone calls
Issue 2.1 August 200329
Communicating with other applications
Socket usage
Generally, VTel uses three (3) TCP sockets, one each for:
● the Telephony Server
● the EDU Server
● a default Telephony session.
If an agent has more than one phone number, one (1) additional socket is required for each
additional phone number. Socket connections for additional sessions are created and
destroyed as needed.
30 VTel Programmer Guide
Chapter 3:Initiating access to VTel
This section describes a typical sequence of events that occur when connecting to VTel
from an external application. This section includes the following topics:
● Installing and running VTel on page 32
● Configuring VTel on page 33
● Using Assign to connect to VTel on page 34
● Logging in - access to Telephony resources on page 35
● Logging out on page 36
● Exiting VTel on page 36
For additional information on connecting to VTel from external applications, see Starting
VTel from other applications on page 24.
Issue 2.1 August 200331
Initiating access to VTel
Installing and running VTel
The VTel.exe file is installed automatically with Avaya Interaction Center.
!
!
Important:
Important:
Important:With Interaction Center releases 6.0 and higher, VTel does not function out-
of-the-box. If you need to enable VTel, please contact Technical Support for
assistance. For contact information, see Contacting Technical Support
page 10.
Dynamic IP addressing
The Toolkit 2.2.5 and higher supports dynamic IP address identification. VTel 2.2.5 and
higher are affected by this functionality.
If a machine on which VTel is installed is using DNS, DNS must be configured properly on
that machine or VTel may hang on login.
on
Additionally, in order for VTel to determine the IP address of the machine on which it is
installed, your local host file or network DNS server must contain one of two aliases:
● vesprip1
● vesprip2.
This alias must identify the IP address of a machine that has the TCP "Echo Service"
configured and running.
32 VTel Programmer Guide
Configuring VTel
Much of the appearance and behavior of VTel is determined by the entries and options
selected in its configuration file. Configuration information is supplied in this local text file,
which is read each time the VTel executable is started.
When first started, VTel looks for the name of a configuration file to use. If none is found, it
defaults to vtel.ini. VTel then attempts to open this file and read the configuration
information.
Configuring VTel
A description of vtel.ini is given in The vtel.ini configuration file
on page 105.
Configuration options can include:
● OLE and VESPddeSync (used to enable OLE Automation)
● WrapupCodeDialog (used to provide wrapup functionality)
● DirectoryGuiType (used to specify the type of Dial Directory that will be displayed)
There are also options that govern DEFINITY Reason Codes and DTMF functionality. For
information on DEFINITY Reason Codes and DTMF, see VTel User’s Guide
.
It is strongly recommended that you examine the vtel.ini file to determine what options
are available and what settings are best for your system.
Issue 2.1 August 200333
Initiating access to VTel
Using Assign to connect to VTel
After VTel starts, an application must establish a bi-directional connection so responses
can be returned for all requests. Refer to Using DDE
directional communication. Once the connection is established, the application gains a
degree of control over VTel functions.
Note:
Note:Requests requiring access to Telephony resources will fail until after a login
has been performed.
To establish a DDE connection, the DDE Link Topic is needed to identify the applications
that wish to communicate. This is indicated by the LinkTopic parameter of the Assign() command. The LinkTopic parameter contains the description of the
application to respond to and the specific DDE topic, separated by the pipe or vertical bar
character (|). These may be adjustable, or preset and fixed, depending on the language
and application software that is used. In the following code example, the LinkTopic
parameter is represented by the literal "DDEApp|DDETopic":
on page 22 for a discussion of bi-
[VTel.Assign("DDEApp|DDETopic")]
If the attempt is successful, VTel will send a DDE message to the specified application and
topic:
[VTel.Assign.response(,"DDEApp|DDETopic")]
To assign from VTelX to VTel, the following Assign() command and response would be
sent:
A login request must be sent before any access is granted to Telephony resources. There
are four forms of the login command:
● Login() directs VTel to log into the Telephony system, creating an assignment to the
agent's telephone set.
● LoginACD() directs VTel to log into the Telephony system, creating an assignment to
the agent's ACD phone and, depending on the ACD system, allowing the agent to
specify the queue that they service.
● LoginVESP() directs VTel to log into the Telephony system only. No phone
assignments are made. This command is used to obtain direct access to Interaction
Engine Servers without using VTel for telephony control.
● LoginTelephony() is used with LoginVESP(), allowing a two-step process for
logging into VTel. LoginTelephony() directs VTel to log into the Telephony Server
and the EDU Server, creating an assignment to the agent's ACD phone and, depending
on the ACD system, allowing the agent to specify the queue that they service.
If the agent and station information are not needed, or if they are supplied by default
through the Telephony system, the additional parameters may be omitted.
[VTel.Login("login","password",,,)]
If the attempt is successful, VTel will send a message to the originating application.
[VTel.Login.response(,"login","password",,,)]
An event message is also sent to all assigned applications.
A login may be performed from an external application or directly by the agent from the
VTel user interface. VTel can be configured to rely entirely on an external login without
prompting the agent. This allows an external application to handle the login process and to
do so either with its own interface or by controlling the VTel login dialog.
If the system has been configured to permit login from both an external application and
from the VTel interface, a conflict may result. The agent may perform a direct login before
the application does so, in which case the application will receive an error unless it first
sends a logout request.
Issue 2.1 August 200335
Initiating access to VTel
Logging out
A single logout request from any source (either from the VTel user interface or from an
external application) will log out all current interfaces.
If the logout request is from the VTel user interface, the agent will be prompted for another
login. If the request is from an external application, a response will be returned to the
requester, followed by a logout event sent to each application currently monitoring events.
There will be no login prompt displayed unless requested by the external application. For
more information, see GuiLogin
The agent is not permitted to log out unless all work has been closed, including both phone
calls and Electronic Data Units (EDUs).
[VTel.Logout()]
on page 60.
Exiting VTel
VTel can be told to exit, which will end the application. All assigned applications will be
deassigned.
[VTel.Exit()]
36 VTel Programmer Guide
Chapter 4:Message syntax
This section describes the DDE message syntax that provides a language-independent
interface to Avaya Computer Telephony for IC services. This section contains the following
topics:
● DDE message syntax on page 37
● Command name on page 37
● Arguments on page 38
● Responses on page 39
● Request IDs on page 41
● Event messages on page 41
DDE message syntax
DDE message syntax
DDE messages employ a syntax consistent with that used by VTel, the Telephony DDE
Server, and other CORBA-based components. The syntax is similar to a function call,
consisting of a command name with a list of arguments enclosed in parentheses and
separated by commas. The entire command is enclosed in square brackets and may be
suffixed by a request identifier:
The command name may contain any combination of the characters A-Z (uppercase or
lowercase), 0-9, underscore (_) and period (.). Commands cannot start with an underscore
or digit. Separate elements of commands with periods.
Issue 2.1 August 200337
Message syntax
Each command name contains the name of the server that the request is targeted for,
followed by the request itself. These elements are separated by a period. Requests for
VTel are preceded by VTel. For example:
[VTel.Exit()]
Arguments
All arguments are either strings or sequences of couples (also called name-value pairs).
A sequence of couples is enclosed in curly brackets ({}) and includes a maximum number
of elements (couples), actual element count, and the couples. Each couple is further
enclosed in curly brackets and contains a name and a value, each of which is a string
enclosed in quotation marks, separated by a comma:
The maximum number of elements (max) limits the number of couples that will be returned
in response to a request. The maximum number must be a positive integer or zero. It is
often set to zero (0) to indicate that the response size is unlimited (that is, any number of
values may be returned). If the numbers is not zero, then a response to the request can be
truncated. For example, the size of the response from a request to get the values in an
EDU can be limited to five elements:
The actual number of couples (n) is the count of the elements in the sequence. An empty
sequence has zero in the element count, for example:
{0,0} or {5,0}
Note:
Note:Couples in a sequence are not positional. The couples may appear in any
order. The ordering may change at any time.
Strings are enclosed in quotation marks. Strings may contain any characters; however,
quotation marks and backslash characters must be written with a backslash in front of
them (that is, \ and \\).
38 VTel Programmer Guide
Null Values
Null strings are represented by an empty field, such as the one after ani in this code
example.
In this last line of this example, the first zero in {0,0} indicates "send back all the values
found"; the second zero indicates that there are no couples in the sequence, where the
sequence is simply being used to indicate the maximum number of couples to be returned.
Responses
Responses
For every request made to VTel, there is a response returned to the application that made
the request. This response message consists of .response appended to the request
name, an exception string, the argument list of the request (which may be modified to
return the results) and, if required, a return code:
For any request, there are five reasons why a problem may occur.
Communications path
The request cannot be communicated to one of the components due to a communications
failure.
Issue 2.1 August 200339
Message syntax
Faulty request
VTel cannot understand enough of the request to attempt processing or even identify the
destination. A generic response message is sent to the requester, who is identified by the
communications path. The original request is not returned as this will often "break" the
parsing components in the requester.
Server not found
A request is made to a server that did not respond at this time.
Method not found
A server attempts to perform an unknown method. The method does not exist in the
vespidl.pk file and is therefore not registered with the Telephony Server.
Method-specific problem
These are documented with the specific server and method.
Exceptions
The exception field indicates all serious problems with a request, such as a requested
server that does not exist. An empty exception field indicates the request was processed
without serious error. This is indicated in the response below by a comma delimiter with no
preceding quotes.
When present, an exception consists of three string elements, separated by colons (:).
The first element indicates the error level, and is typically a literal word. Common exception
elements include SYSTEM, VTel, and USER (a USER exception might occur if unintelligible
information was passed to the Telephony Server, for example). The second element is a
hexadecimal code for the error. The third is a string describing the error. All three are
contained within one set of double quotes.
Note:Describing strings may contain additional colons.
For example, if a supplied EDU ID does not exist, the following request-response
sequence might occur:
[VTel.VDUGetOneValue("1df5d9e6003b00002a1f430002","ani",)]
[VTel.VDUGetOneValue.response("USER:4000350:No such
If an exception is returned, all of the other returned information may be invalid, including
the return code.
Return code
As shown in the response syntax, a return code may be added to the end of the response.
If it is present, this value may give you additional information, but it is not an error indicator.
The type and meaning of this value depends on the server and particular method invoked.
If an exception is returned, this value is not valid.
VTel will internally process most return code issues. Others will be passed through by VTel.
Request IDs
Anything enclosed in square brackets after the request is echoed in the response. This is
optional and can be used by the sender to identify the request by generating a unique ID
number for each.
This enables the application to match the requests with the corresponding responses. It is
the responsibility of the user application to generate a unique ID number. Sequential
request counters are recommended.
Note:
Note:No response sequence is guaranteed or implied by this ID number.
Requests of the same or different types may be processed and replied to in
an arbitrary order.
Event messages
Event messages sent from VTel to user applications use a slightly different syntax than
request messages:
[eventid({eventtype,eventname,seqCouple})]
"5084863244")][44]
Issue 2.1 August 200341
Message syntax
Event ID
The event ID is similar to the command field of the request messages, consisting of
elements separated by periods. The first element contains the name of the server (for
example, VTel). The next element contains the event name. The third element contains
the literal word event. For example:
VTel.Disconnect.event
Event type
The literal 0.
Event name
A string describing the event. For example:
"Disconnect"
seqCouple
A sequence of couples with the remaining event information. For example:
This section describes the VTel methods. It contains the following topics:
● Telephone switch dependency on page 43
● Pass-through requests on page 44
● Initiating calls on page 45
● Terminating calls on page 45
● Querying and setting EDU values on page 46
● VTel command summary on page 47
● Interface Description Language (IDL) specification on page 50
Telephone switch dependency
● VTel methods (requests from other applications) on page 52
Telephone switch dependency
The availability and operation of certain commands is dependent on the telephone switch
being used, its options and software version, and its configuration. For example:
● if a switch does not support standard ACD services, a phone generally cannot be made
Busy, and the WrapUp mode will not prevent additional incoming calls.
● if the switch is configured for AutoReady operation, you may encounter a condition
where the phone state cannot be changed by VTel before another call arrives
The number of available inbound and outbound line appearances available will vary
depending on both configuration and trunk capacity. VTel cannot always predict line
appearances, and may only return a failure if an outbound request is rejected.
Issue 2.1 August 200343
Methods
Pass-through requests
In addition to functions performed within VTel, VTel also accepts pass-through requests for
other Contact Engine servers. The targeted server is named in the command name;
requests for the Telephony Server are preceded by "TS.", the EDU Server by "EDU.", and
so on. For example:
[TS.Ping()]
[TS.Ping.response(,)]
VTel will not act on these commands, but functions only as a conduit.
Note:
Note:If the VTel user logs out after a pass-through request has been sent, but
before a response has been returned, the response will be lost.
When an application connected to VTel submits its first pass-through request, VTel assigns
a session ID to that application. Each instance is assigned a different session ID. VTel can
then return the response to the appropriate application instance.
In some cases, there are several ways to perform a function. For example, an EDU entry
for a telephone call may be accessed by sending a request either to VTel or directly to the
EDU Server. The result, particularly timing, may be subtly different. In general, you should
not perform telephony functions directly on phones managed by VTel. Doing so may result
in a momentary loss of synchronization between information in the server and that
displayed by the VTel interface.
There are also differences in the domains of various functions. The EDU functions
available from VTel generally apply only to those EDUs in use by VTel. While
VTel.VDUGetActive() returns the EDU IDs currently being monitored on the
workstation by VTel, the direct VDU.GetActive() returns the EDU IDs of active EDUs in
Avaya Computer Telephony for IC.
Queuing
When a pass-through request comes in to VTel, VTel internally queues the request. The
internal queue is unlimited in size. The pass-through request will not be sent to the Toolkit,
and then to Telephony, until all previous requests have been sent. No additional queued
requests will be sent until responses from previous requests have been received, or a time
out has occurred. This ensures a deterministic sequence of operation.
Thus, if the network becomes unresponsive for several seconds while a large number of
pass-through requests are being sent to VTel, those pass-through requests will be queued
in VTel until the Toolkit can re-establish a link with Telephony. Once the network responds
again, all pass-through requests are issued sequentially.
44 VTel Programmer Guide
DDE
Each DDE message must have have a completed request and response sequence, or
handshake. This applies to each request, response, and event message issued using
DDE, because of the Microsoft DDEML specification.
DDE messages sent to VTel must abide by this DDE protocol, ensuring that a second
message is not sent until a DDE ACK has been received from the first message.
Initiating calls
Calls are dialed through the MakeCall() request. A call may be made to a dialable
number, ACD queue, or UserID. The request must include a placeholder for the EDU ID,
which is returned in the response to a successful MakeCall() attempt:
Telephone calls may be terminated using the Hangup() or Terminate() requests. The
Hangup() request may place the agent's telephone in the WrapUp state, without
terminating the EDU, or it may be configured to operate like the Terminate() request.
The Terminate() request performs a hangup, then terminates the EDU.
The resulting telephone state depends on the VTel configuration and the telephone switch
options. For additional information, see Telephone switch dependency
on page 43.
Issue 2.1 August 200345
Methods
Querying and setting EDU values
EDU values may be queried and set through VTel. The VTel commands that operate on the
EDU are a subset of those available from the EDU Server and generally apply only to
those EDUs that are active in VTel. Exceptions are the VDUFindVDU() and VDUGetData() commands, which can access information not currently active in VTel.
Only EDUs currently active in VTel can be edited.
Getting one value from the EDU
One value can be retrieved from the EDU using the VDUGetOneValue() request:
BusyMake a phone number Busy (dependent on the telephone
switch)
BusyOverrideChanges the current preset to Busy (dependent on the
telephone switch)
BusyPhonesetMake a phoneset Busy (dependent on the telephone
switch)
Change PasswordChange the Avaya Computer Telephony for IC password
for the current user
VTel command summary
ConferenceCancelCancel a conference
ConferenceCompleteEstablish an n-way conference
ConferenceInitBegin a conference call
DeassignBreak the connection between VTel and a user application
DropDrop a party from a conference call (dependent on the
telephone switch)
ExitDirect VTel to terminate
GetActiveObsolete (see VDUGetActive)
GetInfoGet general information about the current session
GetPhoneInfoGet general information about the default phone
GuiCallHistoryView information on previous related phone conversations
(requires the DUStore Server)
GuiLoginDisplay the standard VTel login dialog
HangupHang up the phone and the EDU remains
HoldPlace an active call on hold
HoldReconnectRemove the hold state for a current call and make it active
LogEntryAdd an entry to the VTel log file
Issue 2.1 August 200347
Methods
NameDescription
LoginLog user into Telephony and assign to the user's phone
LoginACDLog user into Telephony as an ACD phone
LoginTelephonyLog user into Telephony Server and EDU Server only,
assigning to the user's phone
LoginVESPLog user into Telephony only; no phone access through
VTel
LogoutLog user out of Telephony, deassigning the user's phone
LogoutTelephonyLog user out of Telephony Server and EDU Server only,
deassigning user's phone
LogoutVESPLog user out of Telephony only, does not deassign user's
phone
MakeCallDial a number and return a EDU ID
PingTest the connection from an external application
ReadySet a phone to the Ready state (dependent on the
telephone switch)
ReadyOverrideChanges the current preset to Ready (dependent on the
telephone switch)
ReadyPhonesetSet a phoneset to the Ready state (dependent on the
telephone switch)
ReleaseObsolete (see Terminate)
ResetPhonesRelease all calls and set VTel to a neutral state
RestartServerAttempt to restart the specified server
SwapHeldToggle between a newly added call and call(s) on hold
(dependent on the telephone switch)
TerminateHang up a call and release the EDU
TransferBlind transfer
TransferCancelCancel a consultative transfer
TransferCompleteFinish a consultative transfer
TransferInitBegin a consultative transfer
VDUCreateCreate a new EDU and have it monitored by VTel
VDUFindVDUFind all EDUs that match a search criteria (requires the
48 VTel Programmer Guide
DUStore Server)
VTel command summary
NameDescription
VDUGetActiveGet a list of all EDUs active in VTel
VDUGetDataGet all data from any EDU
VDUGetOneValueReturn one value from a EDU in use
VDUGetValuesReturn multiple values from a EDU in use
VDUGetCurrentValueSet the "current" EDU ID context, notifying any GUI
VDUSetValuesSet multiple values in the EDU
WrapUpHang up the call, enter the WrapUp state, do not release
the EDU (dependent on the telephone switch)
WrapUpOverrideChanges the current preset to WrapUp (dependent on the
telephone switch)
?.get_timeoutObtain the Toolkit’s response timeout
?.set_timeoutSet the Toolkit’s response timeout
Issue 2.1 August 200349
Methods
Interface Description Language (IDL) specification
The CORBA Interface Description Language describes the syntax for VTel commands:
interface VTel : General {
ORBStatus Answer( in string vduid );
ORBStatus Assign( in string linktopic );
ORBStatus Busy( in string phonenumber );
ORBStatus BusyOverride( in string phonenumber );
ORBStatus BusyPhoneset( void );
ORBStatus ChangePassword( in string oldpassword, in string
newpassword );
ORBStatus ConferenceCancel( in string vduid );
ORBStatus ConferenceComplete( in string vduid );
ORBStatus ConferenceInit( in string vduid, in string phonenumber );
ORBStatus Deassign( void );
ORBStatus Drop( in string vduid, in string phonenumber );
ORBStatus Exit( void );
ORBStatus GetActive( out SeqString vduidvalues );
ORBStatus GetInfo( out SeqCouple values );
ORBStatus GetPhoneInfo( in string phonenumber,
out SeqCouple values );
ORBStatus GuiCallHistory( in string account );
ORBStatus GuiLogin( in string login, in string password,
in string agentid, in string agentpassword, in
string stationid);
ORBStatus Hangup( in string vduid );
ORBStatus Hold( in string vduid );
ORBStatus HoldReconnect( in string vduid );
ORBStatus LogEntry( in string text );
ORBStatus Login( in string login, in string password, in string
agentid, in string agentpassword, in string
stationid);
ORBStatus LoginACD( in string login, in string password, in string
agentid, in string agentpassword, in string
stationid, in string queue);
ORBStatus LoginTelephony( in string login, in string password,
in string agentid, in string
agentpassword, in string stationid,
in string queue);
ORBStatus LoginVESP( in string login, in string password );
ORBStatus Logout( void );
ORBStatus LogoutTelephony( in string retry_limit, in string
wait_seconds );
50 VTel Programmer Guide
Interface Description Language (IDL) specification
ORBStatus LogoutVESP( void );
ORBStatus MakeCall( in string phonenumber_orig, in string
phonenumber_dest, out string vduid );
ORBStatus Ping( void );
ORBStatus Ready( in string phonenumber );
ORBStatus ReadyOverride( in string phonenumber );
ORBStatus ReadyPhoneset( void );
ORBStatus Release( in string vduid );
ORBStatus ResetPhones( void );
ORBStatus RestartServer( in string server, in long retrylimit,
in long waitseconds );
ORBStatus SwapHeld( in string vduid );
ORBStatus Terminate( in string vduid );
ORBStatus Transfer( in string vduid, in string phonenumber );
ORBStatus TransferCancel( in string vduid );
ORBStatus TransferComplete( in string vduid );
ORBStatus TransferInit( in string vduid, in string phonenumber );
ORBStatus VDUCreate( in SeqCouple values, out string vduid );
ORBStatus VDUFindVDU( in string criteria, out SeqString values );
ORBStatus VDUGetActive( out SeqString vduidvalues );
ORBStatus VDUGetData( in string vduid, out SeqCouple values );
ORBStatus VDUGetOneValue( in string vduid, in string name,
out string value );
ORBStatus VDUGetValues( in string vduid, out SeqCouple values );
ORBStatus VDUSetCurrent( in string vduid );
ORBStatus VDUSetValues( in string vduid, in SeqCouple values );
ORBStatus WrapUp( in string phonenumber );
ORBStatus WrapUpOverride( in string phonenumber );
?.get_timeout( out unsigned long number);
?.set_timeout( in unsigned long number);
};
Issue 2.1 August 200351
Methods
VTel methods (requests from other applications)
This section describes each of the VTel methods available to other applications.
Any function or operation available from any VTel user interface can also be
accomplished by using one or more methods. Some methods may not have any
equivalents in a particular user interface.
In each of the methods requiring a phone number for the user’s phone set, an
empty or null argument can be supplied indicating use of the default number. If a
phone set has only a single number with multiple line appearances, that phone
number is the default. Where there are multiple phone numbers on the local
phone set, the default is the last phone number used.
Note:
Note:Use of a default phone number applies only to the local phone set.
A destination phone number must be supplied to make an
outbound call.
A call may be made to a dialable number, ACD queue, or UserID. The UserID may
be the Telephony login ID, the phone login ID, or the station or equipment number
for the phoneset (see the arguments for the Login, LoginACD, and LoginVESP
methods), depending on circumstances.
Answer
IDL SyntaxORBStatus Answer( in string vduid );
DescriptionAnswers an incoming call. This is required only if neither the telephone switch nor
VTel are in auto-answer mode.
Input
Parameters
NameRequiredDescription/Comments
vduidYesThe EDU ID corresponding to the incoming
call.
Output
Parameters
Examples
NotesA previous incoming call event will have provided the EDU ID to use. If the call
None.
[VTel.Answer("2df5d9e6003b00007800002a1f430002")]
has already been answered, this is harmless and without error.
52 VTel Programmer Guide
VTel methods (requests from other applications)
Assign
IDL SyntaxORBStatus Assign( in string linktopic );
DescriptionFor DDE communications, establishes a basic request and response connection
with VTel, allowing responses and events to be sent to the attached application.
Input
Parameters
NameRequiredDescription/Comments
linktopicYesApplication name and DDE topic.
Output
Parameters
Examples
None.
[VTel.Assign("DDEApp|DDETopic")]
Busy
IDL SyntaxORBStatus Busy( in string phonenumber );
DescriptionIf not in an active ACD call, this sets a phone to the Busy state. From within an
ACD call, it may either preset the Busy state or hang up the call, placing the
phone in the Busy state. For more information, see Phone states after hang up
page 18.
Input
Parameters
NameRequiredDescription/Comments
phonenumberNoDialable number or null (default phone).
on
Output
Parameters
Examples
NotesThis method is dependent on the telephone switch and the type of phone
None.
[VTel.Busy("1234")]
[VTel.Busy()]
assigned. Refer to the IDL chapter of your Telephony Services manual. This
method does not typically affect incoming calls that are not processed through a
queue.
Issue 2.1 August 200353
Methods
BusyOverride
IDL SyntaxORBStatus BusyOverride( in string phonenumber );
DescriptionIf in call, and presets are on, changes the current preset to Busy and disallows
any attempts to change the preset for the remainder of the call unless by means of
another override command (such as ReadyOverride or WrapUpOverride).
If not in call, or presets are not on, behaves like the Busy command.
Input
Parameters
NameRequiredDescription/Comments
phonenumberNoDialable number or null (default phone).
Output
Parameters
Examples
NotesThis method is dependent on the telephone switch and the type of phone
None.
[VTel.BusyOverride("1234")]
[VTel.BusyOverride()]
assigned. Refer to the IDL chapter of your Telephony Services manual.
BusyPhoneset
IDL SyntaxORBStatus BusyPhoneset( void );
DescriptionIf there are no active calls, this sets the entire phoneset to the Busy state. If there
are active calls, the result is switch dependent (see the documentation for your
telephone switch).
Input
Parameters
Output
Parameters
None.
None.
Examples
NotesThis method is dependent on the telephone switch. Refer to the IDL chapter of
54 VTel Programmer Guide
[VTel.BusyPhoneset()]
your Telephony Services manual to determine availability.
VTel methods (requests from other applications)
ChangePassword
IDL SyntaxORBStatus ChangePassword( in string oldpassword, in string
newpassword );
DescriptionChanges the current Telephony password.
Input
Parameters
NameRequiredDescription/Comments
oldpasswordYesThe currently used Telephony password.
newpasswordNoThe new Telephony password, or empty for no
password.
Output
Parameters
Examples
NotesSome configurations may not permit an empty or blank password.
None
[VTel.ChangePassword("violet","fragrant")]
ConferenceCancel
IDL SyntaxORBStatus ConferenceCancel( in string vduid );
DescriptionFollowing a ConferenceInit(), this terminates the call made to the additional
party. The previous conversation(s) are taken off hold.
DescriptionBreaks the connection between VTel and the external application. With DDE
communications, no further commands are accepted until another Assign().
Input
Parameters
Output
Parameters
Examples
NotesThis also stops any event reporting to the external application. It does not affect
None.
None.
[VTel.Deassign()]
the current state of VTel or any phones or calls. Its effect can be delayed if other
prior messages are queued waiting on a busy connection. If this is executed
before responses to previous requests have been sent, the responses are lost.
Drop
IDL SyntaxORBStatus Drop( in string vduid, in string phonenumber );
DescriptionDrops a party from a conference call.
Input
Parameters
NameRequiredDescription/Comments
vduidYesThe EDU ID of a current conference call.
phonenumberYesThe dialable number, UserID, or ACD queue of
Output
Parameters
Examples
NotesIf 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 is dependent on the
the party to be dropped.
Issue 2.1 August 200357
Methods
telephone switch and the type of phone assigned. Refer to the IDL chapter of your
Telephony Services manual to determine availability.
Exit
IDL SyntaxORBStatus Exit( void );
DescriptionCauses the VTel application to end.
Input
Parameters
Output
Parameters
Examples
NotesThis method will be rejected if there is a current login in effect.
None.
None.
[VTel.Exit()]
GetActive
IDL SyntaxORBStatus GetActive( out SeqString vduidvalues );
DescriptionObsolete method; see VDUGetActive
on page 77.
GetInfo
IDL SyntaxORBStatus GetInfo( out SeqCouple values );
DescriptionReturns general information about the current state and configuration of VTel.
Input
Parameters
Output
Parameters
58 VTel Programmer Guide
None.
NameDescription/Comments
valuesInformation about the current status of VTel.
NotesThis is a self-contained object that allows the user to find information or perform
an action, but does not return any information.
This method requires that the DU Store Server be available.
GuiLogin
IDL SyntaxORBStatus GuiLogin( in string login, in string password, in
string agentid, in string agentpassword, in string
stationid);
DescriptionCauses VTel to display its standard Login dialog, prompting the agent to perform a
login from the user interface. This does not actually perform a login, nor does it
wait for the agent to respond. A successful response only means that the VTel
Login dialog is visible. The parameters are all optional, and can be used to set the
default responses that will be displayed in the Login dialog.
Input
Parameters
NameRequiredDescription/Comments
loginNoTelephony login ID.
passwordNoTelephony password.
agentidNoPhone login ID.
agentpasswordNoPhone password.
stationidNoStation or equipment number for this
60 VTel Programmer Guide
phoneset.
VTel methods (requests from other applications)
Output
None.
Parameters
Examples
[VTel.GuiLogin("Fred",,,,)]
NotesThis method will return an error for an invalid login, or if another login is currently
in progress. No input parameters are needed unless you wish to set default
values.
Hangup
IDL SyntaxORBStatus Hangup( in string vduid );
DescriptionPlaces the phone on-hook, disconnecting the call. The state of the EDU depends
on the current configuration and any preset actions.
Input
Parameters
NameRequiredDescription/Comments
vduidYesThe EDU ID of the telephone call.
Output
None.
Parameters
Examples
[VTel.Hangup("2df5d9e6003b00007800002a1f430002")]
NotesRace conditions may occur if the agent also releases the call through the VTel
user interface, or the caller hangs up at about the same time. An error condition
indicating an invalid EDU ID should generally be considered a normal return. If the
call has been hung up but the EDU is still available, no error is returned, since 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.
● the conversation(s) that were put on hold remain on hold.
Issue 2.1 August 200361
Methods
Hold
IDL SyntaxORBStatus Hold( in string vduid );
DescriptionSets an active call to the hold state.
Input
Parameters
NameRequiredDescription/Comments
vduidYesThe EDU ID of the telephone call.
Output
Parameters
Examples
NotesIf the call exists and is currently on-hold, this is harmless and ignored without
None.
[VTel.Hold("2df5d9e6003b00007800002a1f430002")]
error. Should you need to know when the call is actually put on hold, look for the
No-load event.
HoldReconnect
IDL SyntaxORBStatus HoldReconnect( in string vduid );
DescriptionRemoves the hold state for a current call and makes it active.
Input
Parameters
NameRequiredDescription/Comments
vduidYesThe EDU ID of the telephone call.
Examples
NotesIf the call exists but is currently off-hold, this is harmless and ignored without error.
Should you need to know when the call is actually reconnected, look for the
InCallevent.
VTel methods (requests from other applications)
LogEntry
IDL SyntaxORBStatus LogEntry( in string text );
DescriptionPermits a desktop application to add entries to the VTel log file.
Input
Parameters
NameRequiredDescription/Comments
textYesThe text that is to be written to the VTel log file.
Examples
NotesEach LogEntry entry is automatically given a date-time stamp, identified as to the
[VTel.LogEntry("This is a test")]
connection number of the requester, and followed by a new line.
Login
IDL SyntaxORBStatus Login( in string login, in string password, in
string agentid, in string agentpassword, in string
stationid);
DescriptionDirects VTel to log into Telephony, creating an assignment to the agent’s
telephone set.
Input
Parameters
NameRequiredDescription/Comments
loginYesTelephony login ID.
passwordYesTelephony password, if one was assigned.
agentidNoPhone login ID.
agentpasswordNoPhone password.
stationidNoStation or equipment number for this
Output
Parameters
None.
phoneset.
Issue 2.1 August 200363
Methods
Examples[VTel.Login("llutton","qwerty",,,)]
NotesThis method will return an error for an invalid login, or if another login is currently
in progress. The agent and station parameters may not be needed, depending on
your configuration and the type of login desired.
For the Meridian Link, agentid corresponds to the position ID and stationid to the
equipment number. The agent ID (if agent ID software is being used) can only be
entered through IC Manager; it cannot be entered through VTel.
LoginACD
IDL SyntaxORBStatus LoginACD( in string login, in string password, in
string agentid, in string agentpassword, in string
stationid, in string queue);
DescriptionDirects VTel to log into Telephony, creating an assignment to the agent’s ACD
telephone set.
Input
Parameters
NameRequiredDescription/Comments
loginYesTelephony login ID.
passwordYesTelephony password, if one was assigned.
agentidNoPhone login ID.
agentpasswordNoPhone password.
stationidNoStation or equipment number for this
phoneset.
queueNoQueue for assignment.
Output
None.
Parameters
Examples
[VTel.LoginACD("llutton","qwerty",,,,)]
NotesThis method will return 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 your configuration and the type of login desired.
For the Meridian Link, agentid corresponds to the position ID and stationid to the
equipment number. The agent ID (if agent ID software is being used) can only be
entered through IC Manager; it cannot be entered through VTel.
64 VTel Programmer Guide
VTel methods (requests from other applications)
LoginTelephony
IDL SyntaxORBStatus LoginTelephony( in string login, in string
password, in string agentid, in string agentpassword, in
string stationid, in string queue);
DescriptionDirects VTel to assign and log into the Telephony Server and the EDU Server.
LoginVESP() must be called before LoginTelephony().
Input
Parameters
NameRequiredDescription/Comments
loginYesTelephony login ID.
passwordYesTelephony password, if one was
assigned.
agentidNoPhone login ID.
agentpasswordNoPhone password.
stationidNoStation or equipment number for this
phoneset.
queueNoQueue for assignment.
Output
None.
Parameters
Examples
[VTel.LoginTelephony("llutton","qwerty",,,,)]
NotesThis method allows a two-step process for logging into VTel. It is paired with
LogoutTelephony().
This method will return 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 your configuration and the type of login desired.
For the Meridian Link, agentid corresponds to the position ID and stationid to the
equipment number. The agent ID (if agent ID software is being used) can only be
entered through IC Manager; it cannot be entered through VTel.
Issue 2.1 August 200365
Methods
LoginVESP
IDL SyntaxORBStatus LoginVESP( in string login, in string password );
DescriptionDirects VTel to log into Telephony only. No phone assignments are made.
Input
Parameters
NameRequiredDescription/Comments
loginYesTelephony login ID.
passwordYesTelephony password, if one was assigned.
Output
Parameters
Examples
NotesThis method will return an error for an invalid login, or if another login is currently
None.
[VTel.LoginVESP("llutton","qwerty")]
in progress.
Logout
IDL SyntaxORBStatus Logout( void );
DescriptionDirects VTel to log out from Telephony, deassigning the agent's telephone set.
Input
Parameters
Output
Parameters
None.
None.
Examples
NotesThis method will fail if there is any work in progress. Works in progress may
66 VTel Programmer Guide
[VTel.Logout()]
include active phone calls and EDUs that have not been terminated because of
either a WrapUp state or an application locking the resources.
If the VTel GUI was visible before logout, it will be hidden after logout and the user
will not be prompted for another login unless a GuiLogin() request is made.
This allows the external application to display its own login interface, or to
determine when the VTel login dialog is visible.
VTel methods (requests from other applications)
LogoutTelephony
IDL SyntaxORBStatus LogoutTelephony( in string retry_limit, in string
wait_seconds );
DescriptionDirects VTel to deassign and log out of the Telephony Server and the EDU Server.
LogoutVESP() must be called after LogoutTelephony().
Input
Parameters
NameRequiredDescription/Comments
retry_limitNoNumber of attempts to make. (The default is 0.)
wait_secondsNoNumber of seconds between attempts. (The
NotesThis method will fail (that is, a given try will fail) if there is any work in progress.
Works in progress may include active phone calls and EDUs that have not been
terminated because of either a WrapUp state or an application locking the
resources.
If retry_limit is -1, retries will occur at intervals of wait_seconds until
success is achieved.
If retry_limit is a positive integer, a maximum of that many retries will occur,
with an interval of wait_seconds between each try. A response will not be
returned until success is achieved or until the retry_limit has been reached. If
the request was ultimately unsuccessful, an error response is returned.
This method allows a two-step process for logging out of VTel. It is paired with
LoginTelephony().
If the VTel GUI was visible before logout, it will be hidden after logout and the user
will not be prompted for another login unless a GuiLogin() request is made.
This allows the external application to display its own login interface, or to
determine when the VTel login dialog is visible.
Issue 2.1 August 200367
Methods
LogoutVESP
IDL SyntaxORBStatus LogoutVESP( void );
DescriptionDirects VTel to log out from Telephony only but does not deassign the agent's
telephone set.
Input
Parameters
Output
Parameters
Examples
NotesThis method will fail if LoginVESP() has not been issued or if there is any work in
None.
None.
[VTel.LogoutVESP()]
progress. Works in progress may include active phone calls and EDUs that have
not been terminated because of either a WrapUp state or an application locking
the resources.
If the VTel GUI was visible before logout, it will be hidden after logout and the user
will not be prompted for another login unless a GuiLogin() request is made.
This allows the external application to display its own login interface, or to
determine when the VTel login dialog is visible.
MakeCall
IDL SyntaxORBStatus MakeCall( in string phonenumber_orig, in string
phonenumber_dest, out string vduid );
DescriptionDirects VTel to initiate a call on the selected phone line.
Input
Parameters
NameRequiredDescription/Comments
phonenumber_origNoDialable number, UserID, or null (default
phonenumber_destYesDialable number, UserID, or ACD queue of
68 VTel Programmer Guide
phone) for the phone from which the
outbound call is originating.
the phone that is the destination of the
outbound call.
Output
Parameters
VTel methods (requests from other applications)
NameDescription/Comments
vduidThe EDU ID of the completed telephone call.
Examples
NotesRace conditions may occur if a telephone call arrives at the same time that an
attempt to make an outgoing call is made. This results in an error return. If the
phone can be set to the Busy state, this will prevent queued calls, but direct calls
typically cannot be prevented.
Depending on the available outbound line appearances and the destination
(internal or outside line), this request may fail. Some of these failures cannot be
easily predicted due to the number of factors involved. For more information, see
Race conditions
on page 26.
Ping
IDL SyntaxORBStatus Ping( void );
DescriptionTests the connection (a DDE connection, for example) to ensure that VTel is still
responding to messages.
Input
Parameters
None.
Output
Parameters
Examples
NotesBecause this only tests the connection to VTel, it does not require a valid login.
None.
[VTel.Ping()]
Ready
IDL SyntaxORBStatus Ready( in string phonenumber );
DescriptionIf not in an active ACD call, sets a phone to the Ready state. From within an ACD
call, may either preset the call in the Ready state or hang up the call, placing the
Issue 2.1 August 200369
Methods
Input
Parameters
phone in the Ready state. For more information , see Phone states after hang
up on page 18
NameRequiredDescription/Comments
phonenumberNoDialable number or null (default phone).
Output
None.
Parameters
Examples
[VTel.Ready("1234")]
[VTel.Ready()]
NotesThis method is dependent on the telephone switch and the type of phone
assigned. Refer to the IDL chapter of your Telephony Services manual. This
method does not typically affect inbound calls that are not processed through a
queue.
ReadyOverride
IDL SyntaxORBStatus ReadyOverride( in string phonenumber );
DescriptionIf in call, and presets are on, changes the current preset to Ready and disallows
any attempts to change the preset for the remainder of the call unless by means of
another override command (such as BusyOverride or WrapUpOverride).
If not in call, or presets are not on, behaves like the Ready command.
Input
Parameters
NameRequiredDescription/Comments
phonenumberNoDialable number or null (default phone).
IDL SyntaxORBStatus TransferComplete( in string vduid );
DescriptionEnds a consultative transfer by connecting the additional party to the original
conversation(s), and disconnecting the initiating agent from the call. The initiating
agent will typically retain the EDU and move to WrapUp state, unless a different
VTel configuration option has been selected, or a preset state has been set. For
more information, see Phone states after hang up
NotesYou may not specify the EDU ID. This is assigned by Avaya Computer Telephony
for IC.
You must explicitly terminate any EDUs that are created with VDUCreate(). Use
Terminate() to do so.
VDUFindVDU
IDL SyntaxORBStatus VDUFindVDU( in string criteria, out SeqString
values );
DescriptionRetrieves a list of all EDUs in Avaya Computer Telephony for IC that match the
given criteria, including both active calls and those stored in the DUStore Server.
Input
Parameters
NameRequiredDescription/Comments
criteriaYesThe search criteria to be used. The criteria are the same
Output
Parameters
NameDescription/Comments
valuesA list of EDU IDs matching the criteria.
76 VTel Programmer Guide
as those used by the EDU Server for event monitoring.
See Electronic Data Unit Server Programmer Guide
for
more information on event monitoring.
VTel methods (requests from other applications)
Examples[VTel.VDUFindVDU("login_id=Joe",{0,0})]
NotesThe EDU may exist anywhere in Avaya Computer Telephony for IC.
This method requires that the DUStore Server be available.
VDUGetActive
IDL SyntaxORBStatus VDUGetActive( out SeqString vduidvalues );
DescriptionReturns a list of all EDU IDs currently being monitored by VTel. These EDU IDs
may or may not be related to a current phone conversation. Connected
applications may enter or change information in these EDUs; any changes will
result in notification events.
Input
Parameters
Output
Parameters
Examples
None.
NameDescription/Comments
vduidvaluesA list of all EDU IDs currently active in VTel.
enough room for the response. While it can be limited by setting the maximum
number to return, this is not very useful in this case as the ordering of return
values is arbitrary and you cannot determine what has been missed.
VDUGetOneValue
IDL SyntaxORBStatus VDUGetOneValue( in string vduid, in string name,
This method may return a large number of data elements. Be sure to allow
enough room for the response. While it can be limited by setting the maximum
number to return, this is not very useful in this case as the ordering of return
values is arbitrary and you cannot determine what has been missed.
VDUSetCurrent
IDL SyntaxORBStatus VDUSetCurrent( in string vduid );
DescriptionFrom the list of EDU IDs being monitored at the time, this method allows you to
select a single EDU ID to have the current focus. An event is sent to all GUI
screens and all connected applications when the focus is changed to a different
EDU.
"2df5d9e6003b00007800002a1f430002"}}}})]
[VTel.VDUSetCurrent("1234XXX")]
[VTel.VDUSetCurrent.response("VTel:040002E0:VDUID not valid in
VTel","1234XXX")]
NotesThose GUI screens that present available calls will typically respond to this
immediately. This may cause another call to be put on hold and an abrupt change
in the EDU information presented to the user. If the user initiates this change by
selecting another call from a VTel GUI, the attached application will be notified. If
an external application initiates this change, it must coordinate this action with the
user interface to prevent the user from being "surprised" by the abrupt change in
displayed information or by a phone conversation suddenly being put on hold.
VDUSetValues
IDL SyntaxORBStatus VDUSetValues( in string vduid, in SeqCouple
For existing names the old values will be replaced. New names will produce
additional entries. Duplicate names are not useful, because the last value entered
for a given name will dominate.
80 VTel Programmer Guide
VTel methods (requests from other applications)
WrapUp
IDL SyntaxORBStatus WrapUp( in string phonenumber );
DescriptionFrom within an ACD call, may either preset the WrapUp state or hang up the call,
placing the phone in the WrapUp state. For more information, see Phone states
after hang up on page 18.
Input
Parameters
NameRequiredDescription/Comments
phonenumberNoDialable number or null (default phone).
Output
None.
Parameters
Examples
[VTel.WrapUp("1234")]
[VTel.WrapUp()]
NotesThis method is dependent on the telephone switch and the type of phone
assigned. Refer to the IDL chapter of your Telephony Services manual.
WrapUpOverride
IDL SyntaxORBStatus WrapUpOverride( in string phonenumber );
DescriptionIf in call, and presets are on, changes the current preset to WrapUp and disallows
any attempts to change the preset for the remainder of the call unless by means of
another override command (such as BusyOverride or ReadyOverride).
If not in call, or presets are not on, behaves like the WrapUp command.
Input
Parameters
NameRequiredDescription/Comments
phonenumberNoDialable number or null (default phone).
This section describes the VTel events. It contains the following topics:
● Summary of events on page 84
● Event messages to other applications on page 86
Issue 2.1 August 200383
Event notification
Summary of events
An application that has created a session with VTel may receive the following event
messages from VTel:
NameDescription
AnnouncementA new message has been broadcast.
BusyA phone is Busy and will not accept incoming calls.
BusyOutboundThe phone called is busy.
BusyPresetThe phone will be in Busy state after Hangup.
ConferenceA party has been added to a conference.
ConferenceCancelA conference call has been canceled. The new call has been
ConferenceCompleteA conference call has been completed. The new call has been
terminated and the original party taken off hold.
established and the original party taken off hold.
ConferenceInitA conference call has been initialized. The original party was put
on hold and the new call has been placed.
ConnectA phone connection has been made.
DisconnectA previous phone connection has been disconnected.
DropA party has dropped out of a conference.
ExitVTel is about to terminate.
InCallAn active call has been taken off hold, or a new call answered.
IncomingCallAn incoming call has arrived.
LoginUser is logged into Telephony.
LoginTelephonyUser is logged into Telephony and EDU services.
LogoutUser is logged out of Telephony and phone is deassigned.
LogoutTelephonyUser is logged out of Telephony and EDU services.
LogoutVESPUser is logged out of Telephony.
MakeCallA user has made an outbound call.
OnHoldAn active call has been put on hold.
ReadyA phone is now available for incoming calls.
84 VTel Programmer Guide
Summary of events
NameDescription
ReadyPresetThe phone will be in Ready state after Hangup.
ResetPhonesAll current telephony activity has been cleared from VTel.
RingOutboundAn outbound call has been placed, but not yet answered.
ServerFailedThe Telephony Server or EDU Server has failed.
ServerRestartThe Telephony Server or EDU Server has been restarted.
TerminateConnectionThis application connection to VTel is being terminated.
TransferA blind transfer to another phone has occurred.
TransferCancelA consultative transfer has been canceled
TransferCompleteA consultative transfer has been completed.
TransferInitA consultative transfer has been initialized. The original party
was put on hold and the new call has been placed.
VDUChangeSome of the information associated with this EDU has changed.
VDUCurrentWithin VTel, the single EDU that is currently in focus.
VDUTerminatedAn EDU is no longer active.
WrapUpA phone is in the WrapUp state, with the call disconnected but
call information still available for further work. In many systems
the phone will not accept further incoming calls while in this
state.
WrapUpPresetThe phone will be in WrapUp state after Hangup.
Issue 2.1 August 200385
Event notification
Event messages to other applications
In many examples presented here, the vdu_id field has been truncated for a
more convenient presentation. When using the vdu_id field, its value must be 32
characters long.
Announcement
DescriptionA new announcement message has been broadcast.
NotesThe Conference event is sent to all the parties in the conference call (except for
the one just added).
More information may be associated with this event than is described above. This
is dependent on your telephone switch. Refer to the Event chapter of your
Telephony Services manual.
For notification of parties being dropped from a conference call, see Drop
page 90.
ConferenceCancel
DescriptionA conference call has been canceled. The call to the new party has been
terminated and the original conversation(s) have been taken off hold.
Output
Parameters
NameDescription/Comments
vdu_idThe EDU ID corresponding to the telephone call.
More information may be associated with this event than is described above. This
is dependent on your telephone switch. Refer to the Event chapter of your
Telephony Services manual.
For notification of parties being added to a conference call, see Conference
page 87.
Exit
DescriptionAny valid login has ended and the VTel program is about to terminate.
Output
Parameters
Examples
90 VTel Programmer Guide
None.
[VTel.Exit.event({0,"Exit",{0,0}})]
on
Event messages to other applications
InCall
DescriptionA call has come off hold or a new call has been answered.
Output
Parameters
NameDescription/Comments
vdu_idThe EDU ID corresponding to the telephone call.
Examples
[VTel.InCall.event({0,"InCall",{1,1,{"vdu_id",
"2f562bfa00780261f430002"}}})]
IncomingCall
DescriptionA new call has arrived.
Output
Parameters
NameDescription/Comments
call_typeIdentifies call as ACD or direct.
vdu_idThe EDU ID corresponding to the telephone call.
DescriptionA problem has caused VTel to terminate the connection to this application. This
event is received only by a single application. Typically, it is caused by the
application failing to respond to a VTel Ping() request before the timeout.
96 VTel Programmer Guide
Event messages to other applications
Output
Parameters
Examples
None.
[VTel.TerminateConnection.event({0,})]
Transfer
DescriptionA blind transfer has been made.
Output
Parameters
NameDescription/Comments
vdu_idThe EDU ID corresponding to the telephone call.
DescriptionThe call has been disconnected (on-hook) but the EDU remains available for
additional work pertaining to this call. Depending on the configuration options and
telephone switch, the phone may have been placed in a WrapUp mode and be
unable to accept further ACD calls.
Output
Parameters
NameDescription/Comments
vdu_idA formerly active EDU ID monitored by VTel.
Examples
[VTel.WrapUp.event({0,"WrapUp",{1,1,{"vdu_id",
"2f56288300000000780000261f430002"}}})]
Issue 2.1 August 200399
Event notification
WrapUpPreset
DescriptionA phone is preset to a WrapUp state after hangup. For more information, see