Page 1
™ Avaya Interaction Center Release 6.1 VTel Programmer Guide 585-248-220 Issue 2.1 August 2003...
Page 2
Link disclaimer Preventing toll fraud Avaya Inc. is not responsible for the contents or reliability of any linked "Toll fraud" is the unauthorized use of your telecommunications system Web sites and does not necessarily endorse the products, services, or by an unauthorized party (for example, anyone who is not a corporate information described or offered within them.
Before You Begin Typographical Conventions This guide uses the following font conventions: Font Type Meaning This font signifies commands, information that you enter into the command computer, or information contained in a file on your computer. This font indicates variables in a command string. commandvariable italics This font is used to add emphasis to important words and for...
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.
Page 11
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.
Page 12
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...
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 ●...
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...
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.
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 ●...
Phone states 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. The VTel configuration file (see Configuring VTel on page 33) accommodates and supports...
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.
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: In order to avoid conflicts, all clients within the Avaya Interaction Center CAUTION: environment must share the same settings.
Page 20
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 ●...
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 ●...
Using DDE 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.
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’...
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.
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.
Requests and errors 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.
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.
● 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.
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.
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 ●...
The VTel.exe file is installed automatically with Avaya Interaction Center. Important: Important: With Interaction Center releases 6.0 and higher, VTel does not function out- Important: of-the-box. If you need to enable VTel, please contact Technical Support for assistance. For contact information, see Contacting Technical Support page 10.
Configuring VTel 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.
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 on page 22 for a discussion of bi- directional communication.
Logging in - access to Telephony resources Logging in - access to Telephony resources 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 ●...
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.
DDE message syntax 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 ●...
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).
Responses Null Values Null strings are represented by an empty field, such as the one after ani in this code example. {2,2,{"vdu_id","2df5d9e6003b00007800002a1f430002"},{"ani",}} Null names cannot be used in a couple. Syntax examples [VTel.Assign ("DDEApp|DDETopic")] [VTel.Login("llutton","querty","5301","1111","1812")] [VTel.Login("llutton","querty",,,)] [VTel.VDUGetOneValue("2df5d9e6003b00007800002a1f430002","ani",)] [VTel.VDUSetValues("2df5d9e6000002a1f430002",{0,1,{"ani","5089525120"}})] [VTel.VDUGetValues("2df5d9e6003b00007800002a1f430002",{0,0})] In this last line of this example, the first zero in {0,0} indicates "send back all the values found";...
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.
Request IDs 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.
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.
Telephone switch dependency Chapter 5: Methods 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 ●...
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.
Initiating calls 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.
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.
Changes the current preset to Busy (dependent on the telephone switch) BusyPhoneset Make a phoneset Busy (dependent on the telephone switch) Change Password Change the Avaya Computer Telephony for IC password for the current user ConferenceCancel Cancel a conference ConferenceComplete Establish an n-way conference...
Page 48
Methods Name Description Login Log user into Telephony and assign to the user's phone LoginACD Log user into Telephony as an ACD phone LoginTelephony Log user into Telephony Server and EDU Server only, assigning to the user's phone LoginVESP Log user into Telephony only; no phone access through VTel Logout Log user out of Telephony, deassigning the user's phone...
Page 49
VTel command summary Name Description VDUGetActive Get a list of all EDUs active in VTel VDUGetData Get all data from any EDU VDUGetOneValue Return one value from a EDU in use VDUGetValues Return multiple values from a EDU in use VDUGetCurrentValue Set the "current"...
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 );...
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.
VTel methods (requests from other applications) Assign IDL Syntax ORBStatus Assign( in string linktopic ); Description For DDE communications, establishes a basic request and response connection with VTel, allowing responses and events to be sent to the attached application. Input Parameters Name Required...
Methods BusyOverride IDL Syntax ORBStatus BusyOverride( in string phonenumber ); Description If 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).
VTel methods (requests from other applications) ChangePassword IDL Syntax ORBStatus ChangePassword( in string oldpassword, in string newpassword ); Description Changes the current Telephony password. Input Parameters Name Required Description/Comments oldpassword The currently used Telephony password. newpassword The new Telephony password, or empty for no password.
Methods ConferenceComplete IDL Syntax ORBStatus ConferenceComplete( in string vduid ); Description Following a ConferenceInit(), this retains the new conversation with the additional party, while the previous conversation(s) are taken off hold so that all connected parties can speak together. Input Parameters Name Required...
VTel methods (requests from other applications) Deassign IDL Syntax ORBStatus Deassign( void ); Description Breaks the connection between VTel and the external application. With DDE communications, no further commands are accepted until another Assign(). Input None. Parameters Output None. Parameters Examples [VTel.Deassign()] Notes...
Methods telephone switch and the type of phone assigned. Refer to the IDL chapter of your Telephony Services manual to determine availability. Exit IDL Syntax ORBStatus Exit( void ); Description Causes the VTel application to end. Input None. Parameters Output None.
VTel methods (requests from other applications) Examples [VTel.GetInfo({0,0})] [VTel.GetInfo.response(,{5,5,{"pbx_name","Definity"}, {"login_name","vtelsim"},{"pbx_rev","G3V2"}, {"build","(Build 1)"},{"version","2.1.27"}})] Notes The available information may vary in different configurations. GetPhoneInfo IDL Syntax ORBStatus GetPhoneInfo( in string phonenumber, out SeqCouple values ); Description Returns switch-dependent information about the default phone. Input Parameters Name...
Methods Description Search old EDUs for historical information related to the given account number. The results of the search are displayed in the Call History dialog box. Input Parameters Name Required Description/Comments account An account number to use for the initial search.
VTel methods (requests from other applications) Output None. Parameters Examples [VTel.GuiLogin("Fred",,,,)] Notes This 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.
Methods Hold IDL Syntax ORBStatus Hold( in string vduid ); Description Sets an active call to the hold state. Input Parameters Name Required Description/Comments vduid The EDU ID of the telephone call. Output None. Parameters Examples [VTel.Hold("2df5d9e6003b00007800002a1f430002")] Notes If the call exists and is currently on-hold, this is harmless and ignored without error.
VTel methods (requests from other applications) LogEntry IDL Syntax ORBStatus LogEntry( in string text ); Description Permits a desktop application to add entries to the VTel log file. Input Parameters Name Required Description/Comments text The text that is to be written to the VTel log file. Examples [VTel.LogEntry("This is a test")] Notes...
Methods Examples [VTel.Login("llutton","qwerty",,,)] Notes This 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.
VTel methods (requests from other applications) LoginTelephony IDL Syntax ORBStatus LoginTelephony( in string login, in string password, in string agentid, in string agentpassword, in string stationid, in string queue); Description Directs VTel to assign and log into the Telephony Server and the EDU Server. LoginVESP() must be called before LoginTelephony().
Methods LoginVESP IDL Syntax ORBStatus LoginVESP( in string login, in string password ); Description Directs VTel to log into Telephony only. No phone assignments are made. Input Parameters Name Required Description/Comments login Telephony login ID. password Telephony password, if one was assigned. Output None.
VTel methods (requests from other applications) LogoutTelephony IDL Syntax ORBStatus LogoutTelephony( in string retry_limit, in string wait_seconds ); Description Directs VTel to deassign and log out of the Telephony Server and the EDU Server. LogoutVESP() must be called after LogoutTelephony(). Input Parameters Name...
Methods LogoutVESP IDL Syntax ORBStatus LogoutVESP( void ); Description Directs VTel to log out from Telephony only but does not deassign the agent's telephone set. Input None. Parameters Output None. Parameters Examples [VTel.LogoutVESP()] Notes This method will fail if LoginVESP() has not been issued or if there is any work in progress.
VTel methods (requests from other applications) Output Parameters Name Description/Comments vduid The EDU ID of the completed telephone call. Examples [VTel.MakeCall("4004","5089525120",)] [VTel.MakeCall(,"5089525120",)] Notes Race 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.
Methods phone in the Ready state. For more information , see Phone states after hang on page 18 Input Parameters Name Required Description/Comments phonenumber Dialable number or null (default phone). Output None. Parameters Examples [VTel.Ready("1234")] [VTel.Ready()] Notes This method is dependent on the telephone switch and the type of phone assigned.
VTel methods (requests from other applications) ReadyPhoneset IDL Syntax ORBStatus ReadyPhoneset( void ); Description If there are no active calls, this sets the entire phoneset to the Ready state. If there are active calls, the result is switch dependent. Consult the documentation for your telephone switch for more information.
Methods Output None. Parameters Examples [VTel.ResetPhones()] Notes Because this method is used to recover from synchronization errors, any additional errors received during the execution of this method are ignored. RestartServer IDL Syntax ORBStatus RestartServer( in string server, in long retrylimit, in long waitseconds ); Description Attempts to restart the server specified, restoring the connection with the same user login information that was used previously.
VTel methods (requests from other applications) Input Parameters Name Required Description/Comments vduid The EDU ID of a current call. Output None. Parameters Examples [VTel.SwapHeld("2df5d9e6003b00007800002a1f430002")] Notes This method is dependent on the telephone switch. Refer to the IDL chapter of your Telephony Services manual to determine availability. Terminate IDL Syntax ORBStatus Terminate( in string vduid );...
Methods Input Parameters Name Required Description/Comments vduid The EDU ID of a current call. phonenumber Dialable number, UserID, or ACD queue of the phone that the call is to be transferred to. Output None. Parameters Examples [VTel.Transfer("2df5d9e6003b00007800002a1f430002","George")] TransferCancel IDL Syntax ORBStatus TransferCancel( in string vduid );...
VTel methods (requests from other applications) Input Parameters Name Required Description/Comments vduid The EDU ID of a current call. Output None. Parameters Examples [VTel.TransferComplete("2df5d9e6003b00007800002a1f430002")] TransferInit IDL Syntax ORBStatus TransferInit( in string vduid, in string phonenumber ); Description Begins a consultative transfer. The current conversation(s) are put on hold, and an outbound call is placed to an additional party, using the same EDU ID as the previous call.
ORBStatus VDUFindVDU( in string criteria, out SeqString values ); Description Retrieves 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...
[VTel.VDUGetActive({0,0})] [VTel.VDUGetActive.response(,{2,2,"2df5d9e6003b00007800002a1f430002", "2df5d9e6003b00007800003bff430002"})] VDUGetData IDL Syntax ORBStatus VDUGetData( in string vduid, out SeqCouple values ); Description Retrieves all values from an EDU, which may reside anywhere in Avaya Computer Telephony for IC. Input Parameters Name Required Description/Comments vduid Any EDU in Telephony.
Methods Output Parameters Name Description/Comments values Values of all data elements currently in the EDU. Examples [VTel.VDUGetData("2df5d9e6003b00007800002a1f430002",{0,0})] Notes 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.
VTel methods (requests from other applications) Description Retrieves all values from an EDU. Input Parameters Name Required Description/Comments vduid An EDU active in VTel. Output Parameters Name Description/Comments values All data elements contained in this EDU. Examples [VTel.VDUGetValues("2df5d9e6003b00007800002a1f430002",{0,0})] Notes The EDU must currently exist within VTel. This method may return a large number of data elements.
Methods Examples [VTel.VDUSetCurrent("2df5d9e6003b00007800002a1f430002")] [VTel.VDUSetCurrent.response(,"2df5d9e6003b00007800002a1f430002")] [VTel.VDUCurrent.event({0,"VDUCurrent",{{1,1,{"vdu_id", "2df5d9e6003b00007800002a1f430002"}}}})] [VTel.VDUSetCurrent("1234XXX")] [VTel.VDUSetCurrent.response("VTel:040002E0:VDUID not valid in VTel","1234XXX")] Notes Those 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.
VTel methods (requests from other applications) WrapUp IDL Syntax ORBStatus WrapUp( in string phonenumber ); Description From 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.
Methods Notes This method is dependent on the telephone switch and the type of phone assigned. Refer to the IDL chapter of your Telephony Services manual. get_timeout IDL Syntax ORBStatus get_timeout( out unsigned long number ); Description Returns the current value of the Toolkit timeout, which is the length of time the Toolkit will wait for an acknowledgment for a transaction with Telephony.
Chapter 6: Event notification 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 2003...
Event notification Summary of events An application that has created a session with VTel may receive the following event messages from VTel: Name Description Announcement A new message has been broadcast. Busy A phone is Busy and will not accept incoming calls. BusyOutbound The phone called is busy.
Page 85
Summary of events Name Description ReadyPreset The phone will be in Ready state after Hangup. ResetPhones All current telephony activity has been cleared from VTel. RingOutbound An outbound call has been placed, but not yet answered. ServerFailed The Telephony Server or EDU Server has failed. ServerRestart The Telephony Server or EDU Server has been restarted.
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 Description A new announcement message has been broadcast. Output Parameters Name...
Event messages to other applications Output Parameters Name Description/Comments vdu_id The EDU ID corresponding to the telephone call. called The phone number or login ID used to place the outbound call. Examples [VTel.BusyOutbound.event({0,"BusyOutbound",{2,2,{"vdu_id", "2df5d9e6003b00007800002a1f430002"},{"called","jsmith"}}})] BusyPreset Description A Busy preset has been established for a current call; the phone will become Busy after the call is disconnected.
Event notification Name Description/Comments number_in_call A digit representing the number of parties now involved in the conference. vdu_id The EDU ID corresponding to the telephone call. Examples [VTel.Conference.event({0,"Conference",{6,6,{"dest","4100"}, {"dest","4007"},{"dest","4001"},{"orig","4001"},{"number_in_call", "3"},{"vdu_id", "30a3911f00000000780000111f430002"}}})] Notes The Conference event is sent to all the parties in the conference call (except for the one just added).
Event messages to other applications Output Parameters Name Description/Comments vdu_id The EDU ID corresponding to the telephone call. Examples [VTel.ConferenceComplete.event({0,"ConferenceComplete",{1,1,{"vdu_id" "2f562a7c0780261f430002"}}})] ConferenceInit Description A conference call has been initiated. The original conversation(s) have been put on hold, and a call has been placed to a new party. Output Parameters Name...
Event notification Output Parameters Name Description/Comments vdu_id The EDU ID corresponding to the telephone call. Examples [VTel.Disconnect.event({0,"Disconnect",{1,1,{"vdu_id", "2f562c6d07861f43002"}}})] Drop Description While in a conference, one of the parties has disconnected (hung up) and dropped out of the conference. This will also be received when the last party disconnects, but will then be immediately followed by a Disconnect.event.
Event messages to other applications InCall Description A call has come off hold or a new call has been answered. Output Parameters Name Description/Comments vdu_id The EDU ID corresponding to the telephone call. Examples [VTel.InCall.event({0,"InCall",{1,1,{"vdu_id", "2f562bfa00780261f430002"}}})] IncomingCall Description A new call has arrived. Output Parameters Name...
Event notification Name Description/Comments station_id* Station or equipment number of phoneset. queue* Queue number agent is assigned to. The inclusion of the station_id and queue parameters depends on the request that generates the event. See the examples for this event. Examples If the request was Login: [VTel.Login.event({0,"Login",{3,3,{"login_name","jsmith"},...
Output Parameters Name Description/Comments login_name Telephony login ID. Examples [VTel.LogoutTelephony.event({0,"LogoutTelephony",{1,1,{"login_name", "jsmith"}}})] LogoutVESP Description The user has logged out of Avaya Computer Telephony for IC. Output Parameters Name Description/Comments login_name Telephony login ID. Examples [VTel.LogoutVESP.event({0,"LogoutVESP",{1,1,{"login_name","jsmith"}}})] Issue 2.1 August 2003...
Event notification MakeCall Description A user has placed an outbound call. Output Parameters Name Description/Comments vdu_id The EDU ID corresponding to the telephone call. Examples [VTel.MakeCall.event({0,"MakeCall",{1,1,{"vdu_id", "2f562c6d00780261f430002"}}})] OnHold Description A user has placed an active call on hold. Output Parameters Name Description/Comments vdu_id...
Event messages to other applications ReadyPreset Description A phone is preset to a Ready state after hangup. For more information, see Phone states after hang up on page 18. Output Parameters Name Description/Comments vdu_id The EDU ID corresponding to the telephone call. Examples [VTel.ReadyPreset({0,"ReadyPreset", {1,1,{"vdu_id","2df5d9e6003b007800002a1f430002"}}})]...
If the Telephony Server or EDU Server fails, this event will be sent to all connected applications. Output Parameters Name Description/Comments interface Either Avaya TS (TS) or EDU Server (EDU). Examples [VTel.ServerFailed.event({0,"ServerFailed",{1,1,{"interface","TS"}}})] ServerRestart Description If the Telephony Server or EDU Server fails, and is then restarted, this event will be sent to all connected applications.
Event messages to other applications Output None. Parameters Examples [VTel.TerminateConnection.event({0,})] Transfer Description A blind transfer has been made. Output Parameters Name Description/Comments vdu_id The EDU ID corresponding to the telephone call. Examples [VTel.Transfer.event({0,"Transfer",{1,1,{"vdu_id", "2f562a4a00070261f430002"}}})] TransferCancel Description A consultative transfer has been canceled. Output Parameters Name...
Event notification Examples [VTel.TransferComplete.event({0,"TransferComplete",{1,1,{"vdu_id", "2f562a7c0780261f430002"}}})] TransferInit Description A consultative transfer has begun. The original conversation(s) have been put on hold, and a call has been placed to an additional party. Output Parameters Name Description/Comments vdu_id The EDU ID corresponding to the telephone call. Examples [VTel.TransferInit.event({0,"TransferInit",{1,1,{"vdu_id", "2f562aab00780261f430002"}}})]...
Event messages to other applications Output Parameters Name Description/Comments vdu_id The EDU ID now having the current focus. Examples [VTel.VDUCurrent.event({0,"VDUCurrent",{1,1,{"vdu_id", "30a393fb00000000780000111f430002"}}})] VDUTerminated Description VTel is no longer monitoring this EDU. Output Parameters Name Description/Comments vdu_id The EDU ID corresponding to the telephone call. Examples [VTel.VDUTerminated.event({0,"VDUTerminated",{1,1,{"vdu_id", "2f5628660080000261f430002"}}})]...
Event notification WrapUpPreset Description A phone is preset to a WrapUp state after hangup. For more information, see Phone states after hang up on page 18. Output Parameters Name Description/Comments vdu_id An active EDU ID monitored by VTel. Examples [VTel.WrapUpPreset.event({0,"WrapUpPreset",{1,1,{"vdu_id", "2f5628830000780261f430002"}}})] 100 VTel Programmer Guide...
TS/VDU.SessionFailed.event. For the Avaya TS, such an event usually corresponds to a failure in the connection between the Avaya TS and the phone switch. However, the result is the same loss of control for the clients, and it is processed in the same manner.
Server failure processing ServerFailRetryWaitTime This entry determines the time to wait (in seconds) between attempts to reconnect. For example, to make reconnect attempts at 2 second intervals: ServerFailRetryWaitTime ServerFailPrompt This entry determines whether VTel automatically prompts the agent concerning attempts to reconnect.
In general, the agent will have to complete the current call manually. For some phones, telephony control cannot be re-established until this is done. For example, if the DEFINITY PBX is processing an ACD call to an agent, it will not allow the Avaya TS to re-establish control until the call is ended.
Page 104
Server failure processing 104 VTel Programmer Guide...
VTel. This file is, for the most part, self-documenting. However, in the following presentation, additional comments are occasionally inserted. Note: If you have had VTel customized for you by Avaya, your vtel.ini file may Note: have more entries than are given here. If your file is designed for a specific switch, it will have fewer entries than are given here.
VTel documentation that expand on the function described. Important: Important: The file reproduced here is used with the stand-alone VTel application. The Important: vtel.ini file used with Avaya Agent has different settings than those described here. # ---------------------------------------------------------------- # VTEL.INI # VTel configuration file...
Page 107
OLE functionality is disabled. # Enable OLE Automation for Win32. VESPddeSync # Enables use of synchronous Avaya Telephony # pass-through interface to permit associating # OLE originated requests and their responses. In a number of cases, VTel (by default) filters the event information passed to it from the Telephony Server.
# Disable all dialogs in VTel. This must be run in # NO_GUI mode. Errors are logged to vuser.log DisableVESPLogout # Prevents a hardphone logout from logging Avaya # Agent out of VESP instead of just voice channel WarnIfACDandDirect # Warns agent if ACD and Direct phone calls were...
VTel are out of sync, and that he must perform a manual logout from VTel. # Disables VTel from sending telephony messages to Avaya Telephony. Should be used # for clients that do not use VTel to control telephony functionality. All # telephony requests will return a successful response, though no request has been # made.
The vtel.ini configuration file # CategoryReasonOutcome # To enable WrapUp functionality in VTel uncomment this INI file option. # WrapupCodeDialog Reason # WrapupCodeLimit # Number of entries per CSR ( 0 unlimited ) # WrapupCodePrivate # Codes are seen only by CSR who entered them # WrapupCodeRequired # An entry is required at wrapup # WrapupCodeMenu...
Page 111
Depending on the WrapupCodeDialog option used above, you must provide the names of the Reason, Category, and/or Outcome code tables that contain the relevant data. These tables can be displayed, edited, deleted, saved, and restored using Avaya Interaction Center Manager. For more information, see VTel WrapUp codes on page 125.
Page 112
The vtel.ini configuration file # current call. MakeCallInCall # The AutoAnswer options will cause an incoming call to be # immediately answered, provided there are no other current calls. AutoAnswerACD # Immediately answer incoming ACD calls AutoAnswerDirect # Immediately answer incoming direct calls # These allow the Ready or Busy on an ACD phone to cause # termination of all ACD calls and their related VDUs.
Page 113
Annotated vtel.ini file # -----Phone type # This affects the information needed for Login, and the Login Dialog shown. While # this shows the phone's capabilities, a non-agent may still login to an ACD # oriented Dialog. Typically, ACD applies to Aspect, EAS to Definity, and MRD to # Meridian.
Page 114
101. # On server fail, the number of times to attempt a reconnection # to the Avaya Telephony server, or zero to disable this function and # prevent any attempt at auto-reconnect. This should only be set to zero # if your application (via VTel API) is handling this.
Page 115
Annotated vtel.ini file # ---------------------------------------------------------------- [desktop] MainLocation # Screen location for main window BroadcastLocation # Screen location for Broadcast message TransferLocation # Screen location for Trans/Conf dialog ErrorLocation # Screen location for Error dialogs LoginLocation # Screen location for Login dialog OtherLocation # Screen location for Statistics, About, Ringing, # and Confirm Logout dialogs...
Page 116
The vtel.ini configuration file # ---------------------------------------------------------------- # Describes the bitmaps used for each button, in each state. # This only applies if your interface uses bitmap buttons. # Choices must be made from the list of available bitmap pictures. # Refer to each GUI design for locations of each button. If the # button number does not appear on a particular GUI design, the # information here will be ignored.
Page 117
Annotated vtel.ini file 3 &Conference 4 &Directory 5 &Ready 6 Re&lease 7 &WrapUp #7 DT&MF 8 &Answer #8 &Messages # ---------------------------------------------------------------- # Enabling rules for buttons # These control the actions taken and conditions enabled. For any # desired action or state destination, follow this with states # that will allow this action (qualifiers).
Page 118
The vtel.ini configuration file # Available from-state Names: Available Agent is available to accept new calls Alert Incoming call has arrived but not answered (ringing) Busy Agent can not accept new calls InCall Currently speaking to another party Hold Another party is currently on hold WrapUp Call disconnected, but doing additional work NewMessage...
Page 119
Annotated vtel.ini file [DirectButtonRules] DisabledDn InCall Alert Hangup InCall DisabledUp Hold InCall InCall Hold DisabledUp Directory HaveMessage HaveMessage NewMessage Logout DTMF [NameAliases] # ---------------------------------------------------------------- # Names displayed for states. # Whenever a particular GUI announces the current state, this # allows changing the text that is displayed. Missing (or # commented) entries use default names.
Page 120
The vtel.ini configuration file 120 VTel Programmer Guide...
Telephony error is the error type ● TS.AnswerVDU failed! is a comment on the specific error ● Number: 67109360.0 is a number for internal Avaya use ● 12/31/96 is the date (December 31, 1996) ● 14:20:48 940 is the time (20 minutes, 48 seconds, and 940 milliseconds past 2 P.M.) ●...
VTel errors Alphabetical list of VTel errors Error Context-specific comments DDE error Refer to the Windows API Quick Reference in the Microsoft Visual C++ online documentation Does not exist When parsing configuration file: Name of missing configuration file ● - Configuration line with name of missing bitmap On call transfer/conference: ●...
Page 123
Alphabetical list of VTel errors Error Context-specific comments Method syntax error Bad line/value from configuration file Minor delimiter error Missing parameter Bad line from configuration file No error found Not available Number is out of range Number out of range button/label Parameter error Bad line from configuration file Request not valid in the...
VTel WrapUp codes Appendix C: VTel code tables This appendix discusses VTel WrapUp codes and DEFINITY Reason codes. This section contains the following topics: VTel WrapUp codes on page 125 ● WrapUp code storage in VDU on page 129 ● VTel DEFINITY reason codes on page 131 ●...
Page 126
VTel code tables Note: The code tables are loaded at agent login. VTel will access the Directory Note: Server to retrieve information stored in these tables. All of the tables contain rows of codes and associated descriptions. In order to ensure a consistent presentation within VTel dialogs, wrapup code lengths should be restricted to a maximum of 8 characters, and wrapup code descriptions to a maximum of 40 characters.
Page 127
VTel WrapUp codes Reason table not used with Category table Auto Insurance Home Insurance New Mortgage Refinanced Mortgage Note: The EnforceWrapupFormatCategory_Reason option is a precautionary Note: option. Its sole function is to check whether "with Category Table" format and "without Category Table" format entries are combined in the same Reason Table.
Page 128
VTel code tables UseLegacyWrapupCodesScheme UseIndirectWrapupTables An example of the table option settings is: #ReasonCodes MyReasonTable #OutcomeCodes MyOutcomeTable #CategoryCodes MyCategoryTable #ReasonCodesIndirect MyReasonIndirectTable #OutcomeCodesIndirect MyOutcomeIndirectTable #CategoryCodesIndirect MyCategoryIndirectTable The following are examples of Category and Indirect Category code tables in such a case: Category table (MyCategoryTable) Permanent Code Text...
WrapUp code storage in VDU WrapUp code storage in VDU After entry, wrapup codes are stored in a VDU. A container syntax is used to group and organize the wrapup code entries. Containers are described in the Agent Data Unit Server Programmer's Guide.
VTel code tables Legacy scheme for WrapUp code storage in VDU Note: Advanced Reporting Tools for Avaya IC historical reporting does not support Note: the use of the legacy scheme for wrapup codes. In the legacy scheme, the wrapup code container hierarchy produces name/value pairs of the form: {"Wrapup.n.Source.ID.C.R.O","Text"}...
VTel DEFINITY reason codes In the second example, Susan Brown is the third agent to receive the call, and her wrapup dialog does not allow for entry of Outcome codes. {"Wrapup.1.VTel.jsmith.21.3.001","Branch Referral;Investment;Approved"} {"Wrapup.3.VTel.sbrown.21.3.0","Branch Referral;Investment;"} VTel DEFINITY reason codes Note: These reason codes are associated only with the DEFINITY switch. To Note: implement this functionality, appropriate settings must be made for the switch.
Page 132
VTel code tables DefinityLogoutCodes y # Enable Definity Reason codes for Logout DefinityAuxCodes # Enable Definity Reason codes for AUX Work # ----Definity Reason code tables DefinityLogoutTable MyDefinityLogoutTable DefinityAuxTable MyDefinityAuxTable Logout or Aux (an abbreviation for Auxiliary Work, also known as Busy) entries will only be used if the corresponding option(s) have been set to yes.